首页 / 从这里开始

大语言模型入门:Token、上下文窗口与温度是什么

作者 JC · 更新于 · 最后查证

简体版由繁体自动转换,少数用词可能和你习惯的不同。

要点速览

大语言模型(LLM)是用大量文字训练、能产生自然语言的 AI 模型,预训练时学的是根据前文预测下一个字。要用好它,先懂三个概念:Token 是模型处理文字的最小单位,也是计费与长度限制的依据;上下文窗口是模型一次能参考的全部内容;温度控制输出的随机程度。

大语言模型入门的第一件事,是分清楚三个名词:大语言模型是什么、模型每次「看到」多少东西、以及它的输出有多随机。这三件事决定了你每天用 AI 时遇到的大多数状况:为什么它突然忘了前面讲过的规则、为什么同一个问题每次答案不一样、为什么用 API 会被算钱。

大语言模型是什么?

大语言模型(也称大型语言模型,LLM,Large Language Model)是参数很多、用大量文字数据训练出来的 AI 语言模型,能产生接近人类的文字、回答问题、摘要信息等。

它的基本训练方式叫预训练(Pretraining):在大量没有标注的文字上,让模型学着「根据前面的文字,预测下一个字」。Anthropic 的文档指出,刚预训练完的模型并不天生擅长回答问题或遵循指示,之后还要经过微调(Fine-tuning,用额外的数据继续训练)和 RLHF(Reinforcement Learning from Human Feedback,用人类对输出的排序回馈来训练模型,使它更符合人类的偏好)等步骤,才会变成我们习惯的「助理」。

这也解释了一个重要的使用习惯:模型会产生听起来很合理的文字,但那不等于查证过的事实。模型很有把握地说出不正确或凭空编造的内容,称为幻觉(Hallucination)。重要的事实,请自己查证。

Token:模型处理文字的最小单位

Token 是语言模型处理文字的最小单位,可能是一个字、字的一部分、单一字符,甚至是字节。

为什么要在意 Token?因为它同时影响三件事:

  • 长度限制:模型一次能处理的内容有上限,上限是以 Token 计算,不是以字数计算。
  • 费用:透过 API 使用模型时,通常依输入与输出的 Token 数计费。
  • 速度:要处理与产生的 Token 越多,通常等得越久。

同一段文字会被切成几个 Token,会因模型与语言而不同。所以不要用「一个中文字大约几个 Token」这种固定换算去估算费用;要知道精确数字,请用你要使用的那个模型所提供的 Token 计数功能。

上下文窗口:模型的「工作记忆」

上下文窗口(Context window)是语言模型在产生回答时,能够参考的全部文字,包括它自己正在产生的回答。Anthropic 的文档把它比喻为模型的「工作记忆」,而且强调它和模型训练时看过的大量数据是两回事。

一次请求中,下面这些全都会占用上下文窗口:

  • 系统指示(system prompt,开发者或工具预先设置、整段对话都适用的指示)
  • 你和模型来回的每一则消息
  • 工具回传的结果、附上的图片与文档
  • 工具的定义说明
  • 模型产生的输出

两个常见的误解:

  1. 「窗口越大越好」:不一定。Anthropic 指出,随着 Token 数增加,准确度与回想能力会下降,这个现象称为上下文衰退(Context rot)。所以「放进对的内容」和「窗口有多大」一样重要。
  2. 「模型会自己记得一切」:模型能看到的,就是这次放进窗口的内容。对话越长,早期的内容越可能被挤掉或被摘要取代;Claude Code 的官方文档就提到,对话被自动压缩成摘要时,早期的详细指示可能遗失,建议把需要长期遵守的规则写进固定的指示档,而不是只靠对话开头。出处见文末的链接。

如果你需要让模型根据自己的文档回答,常见做法是 RAG(Retrieval-Augmented Generation,检索增强生成):先从你的数据中找出相关段落,再连同问题一起放进上下文窗口,让回答有所根据。

温度:控制输出有多随机

温度(Temperature)是控制模型输出随机程度的参数:

  • 温度高:输出更多变、更有创意,同一个问题可能得到多种不同说法。
  • 温度低:输出更保守、更稳定,倾向选择最可能的说法。

要注意:温度调成 0 并不保证结果完全相同。Anthropic 的文档明确说明,API 本身就有非确定性,相同输入在不同次调用中仍可能得到不同输出。因此,「需要百分之百一致」的场合,不要只靠调低温度,而要在流程里加检查。

三个概念一次看懂

概念一句话影响什么常见误解
Token模型处理文字的最小单位长度限制、费用、速度以为等于字数
上下文窗口模型一次能参考的全部内容能记得多少、回答是否一致以为越大越好、以为会自动记得
温度控制输出的随机程度稳定度与多样性以为设成 0 就完全固定

遇到状况时的判断方法

你看到的状况先检查什么
模型忘了前面讲过的规则对话是不是太长?开新对话并重述重点,或把规则放进固定的指示档
每次答案差很多温度是不是偏高?任务是否需要在流程里加检查
给了很多数据却答非所问是不是塞了太多不相关的内容?只留和任务有关的部分
用 API 费用比预期高每次请求是不是都把完整历史与大量文档重复送进去?
回答很肯定却查不到出处可能是幻觉,用可靠来源自己查证

接着看什么

常见问题

大语言模型和 ChatGPT 是同一个东西吗?

不是。大语言模型是背后的 AI 模型,ChatGPT、Claude 这类是把模型包成可以对话的产品。同一个模型可以被包成不同的产品与工具。

Token 等于字数吗?

不等于。Token 可能是一个字、字的一部分、单一字符,甚至字节;同一段文字会被切成几个 Token,会随模型与语言而不同。想知道确切数字,要用该模型提供的 Token 计数工具。

上下文窗口满了会怎样?

看你用的工具而定。直接调用 API 时,如果输入本身就超过上限,会收到错误;有些聊天界面会依先进先出的方式丢掉最旧的内容;Claude Code 这类工具则会在快满时自动把对话压缩成摘要,早期的详细指示可能因此遗失。

温度要设多少才好?

没有固定答案,要看任务。需要稳定、可重复的结果(例如整理数据、改写成固定格式)就调低;需要多种说法或发想就调高。建议从官方文档的默认值开始,再依结果微调。

温度设成 0,每次的结果都会一模一样吗?

不保证。Anthropic 的文档说明,即使温度设为 0,结果也不会完全确定,相同的输入在不同次的 API 调用中仍可能得到不同输出。

模型会记得我上次的对话吗?

模型一次能看到的,就是放进上下文窗口的内容。以 API 来说,每一轮都要把先前的对话历史连同新消息一起送进去,模型才看得到。各种产品另外加的「记忆」功能,是产品层的设计,不同产品差异很大。

留言

用 GitHub 账号登录就能留言,留言会公开显示在 GitHub Discussions。留言前请先看社区规则。

从这里开始