要点速览
大语言模型(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,开发者或工具预先设置、整段对话都适用的指示)
- 你和模型来回的每一则消息
- 工具回传的结果、附上的图片与文档
- 工具的定义说明
- 模型产生的输出
两个常见的误解:
- 「窗口越大越好」:不一定。Anthropic 指出,随着 Token 数增加,准确度与回想能力会下降,这个现象称为上下文衰退(Context rot)。所以「放进对的内容」和「窗口有多大」一样重要。
- 「模型会自己记得一切」:模型能看到的,就是这次放进窗口的内容。对话越长,早期的内容越可能被挤掉或被摘要取代;Claude Code 的官方文档就提到,对话被自动压缩成摘要时,早期的详细指示可能遗失,建议把需要长期遵守的规则写进固定的指示档,而不是只靠对话开头。出处见文末的链接。
如果你需要让模型根据自己的文档回答,常见做法是 RAG(Retrieval-Augmented Generation,检索增强生成):先从你的数据中找出相关段落,再连同问题一起放进上下文窗口,让回答有所根据。
温度:控制输出有多随机
温度(Temperature)是控制模型输出随机程度的参数:
- 温度高:输出更多变、更有创意,同一个问题可能得到多种不同说法。
- 温度低:输出更保守、更稳定,倾向选择最可能的说法。
要注意:温度调成 0 并不保证结果完全相同。Anthropic 的文档明确说明,API 本身就有非确定性,相同输入在不同次调用中仍可能得到不同输出。因此,「需要百分之百一致」的场合,不要只靠调低温度,而要在流程里加检查。
三个概念一次看懂
| 概念 | 一句话 | 影响什么 | 常见误解 |
|---|---|---|---|
| Token | 模型处理文字的最小单位 | 长度限制、费用、速度 | 以为等于字数 |
| 上下文窗口 | 模型一次能参考的全部内容 | 能记得多少、回答是否一致 | 以为越大越好、以为会自动记得 |
| 温度 | 控制输出的随机程度 | 稳定度与多样性 | 以为设成 0 就完全固定 |
遇到状况时的判断方法
| 你看到的状况 | 先检查什么 |
|---|---|
| 模型忘了前面讲过的规则 | 对话是不是太长?开新对话并重述重点,或把规则放进固定的指示档 |
| 每次答案差很多 | 温度是不是偏高?任务是否需要在流程里加检查 |
| 给了很多数据却答非所问 | 是不是塞了太多不相关的内容?只留和任务有关的部分 |
| 用 API 费用比预期高 | 每次请求是不是都把完整历史与大量文档重复送进去? |
| 回答很肯定却查不到出处 | 可能是幻觉,用可靠来源自己查证 |
接着看什么
- 想知道模型加上工具之后会变成什么:AI 代理是什么?和聊天机器人的差别
- 想知道怎么把需求交代清楚:AI 代理任务说明怎么写
- 要自己串 API:先读 API Key 是什么,以及怎么安全保管
- 名词不熟:到 名词小辞典 查,例如 Token、上下文窗口、温度。
常见问题
大语言模型和 ChatGPT 是同一个东西吗?
不是。大语言模型是背后的 AI 模型,ChatGPT、Claude 这类是把模型包成可以对话的产品。同一个模型可以被包成不同的产品与工具。
Token 等于字数吗?
不等于。Token 可能是一个字、字的一部分、单一字符,甚至字节;同一段文字会被切成几个 Token,会随模型与语言而不同。想知道确切数字,要用该模型提供的 Token 计数工具。
上下文窗口满了会怎样?
看你用的工具而定。直接调用 API 时,如果输入本身就超过上限,会收到错误;有些聊天界面会依先进先出的方式丢掉最旧的内容;Claude Code 这类工具则会在快满时自动把对话压缩成摘要,早期的详细指示可能因此遗失。
温度要设多少才好?
没有固定答案,要看任务。需要稳定、可重复的结果(例如整理数据、改写成固定格式)就调低;需要多种说法或发想就调高。建议从官方文档的默认值开始,再依结果微调。
温度设成 0,每次的结果都会一模一样吗?
不保证。Anthropic 的文档说明,即使温度设为 0,结果也不会完全确定,相同的输入在不同次的 API 调用中仍可能得到不同输出。
模型会记得我上次的对话吗?
模型一次能看到的,就是放进上下文窗口的内容。以 API 来说,每一轮都要把先前的对话历史连同新消息一起送进去,模型才看得到。各种产品另外加的「记忆」功能,是产品层的设计,不同产品差异很大。
留言
用 GitHub 账号登录就能留言,留言会公开显示在 GitHub Discussions。留言前请先看社区规则。