Study Notes / 2026 ・ No.01
LLM 札记
为什么显得聪明,在哪里会出错,该怎么用
发布
「LLM 为什么 ___」→ 下一个词的概率
这就是 LLM 的全部。
接收一段文字,计算下一个词的概率,选出一个。
以下七章,都是从这一张图出发,一路接到实务的记录。
为什么聪明
LLM 是一台只练过「猜下一个词」这一个游戏、但练到了极大规模的机器。就这么简单。有意思的是,聪明为什么会从这里长出来。
简单的目标,逼出深层的能力
「要认真猜中下一个词,只靠语法就不够了」——这才是本质。
- 要猜「1234 + 5678 = ___」,需要计算能力
- 要接「凶手是管家。因为___」,需要推理能力
- 要答「这段代码跑不起来的原因是___」,需要对程序的理解
也就是说,「把预测精度提上去」这个简单到极点的目标,作为副产品要求了对世界的知识与推理力。这就是聪明的来路。
处理的四个阶段
为什么会突然变聪明
因为规模定律。增加数据量、参数量与算力,性能会相当可预测地上升。而且规模越过某个阈值之后,像多步推理这样没有教过的能力会突然出现(涌现)。
Attention — 用上下文重塑词义
词的坐标像词典一样是固定的。可是「河岸」和「存进银行」在英文里都是 bank,固定坐标区分不了。必须有一套机制,让词看着上下文重新塑造自己的意思。
Q・K・V 三个角色
| 记号 | 名称 | 作用 | 比作图书馆 |
|---|---|---|---|
| Q | Query | 我想知道什么 | 检索关键词 |
| K | Key | 我是关于什么的词 | 书脊上的标题 |
| V | Value | 我能提供的信息 | 书的内容 |
计算分三步
① 取某个词的 Q 与所有词的 K 的内积(相性)。② 用 softmax 变成合计为 1 的权重。③ 按这组权重对各词的 V 加权平均,作为自己新的向量。
「坐 在 河 的 bank 上」中 bank 的视角
→ 吸收了六成「河」的信息,坐标移向「河岸」的区域
所谓「上下文决定词义」,实体就是这个加权平均。简单得出人意料。
它为什么赢了
- 距离无关 — 与 100 个词之前的词也能一次内积直连。老一代的 RNN 靠传话游戏,会忘掉远处的词
- 全部能以矩阵乘法并行计算 — 从历史上看这一点其实更关键。正因为能在 GPU 上一口气算完,模型才得以做大,才吃到了规模定律的红利
Transformer 取胜的真正理由,与其说是聪明,不如说是「和 GPU 合得来」。
Multi-Head 与层的深度
只取一次平均,只能捕捉一种关系,所以同样的运算要并行跑上几十套。分析下来会发现,有的头在追句法依存,有的头在找指代对象,有的头在维持话题——分工是自然长出来的,并非人为设计。
两点补充
- 因果掩码 — 生成模型若能看到未来的词就等于作弊,因此被遮住。LLM 永远只能从左往右看
- 平方级的成本 — 要算所有词对,上下文越长就越贵越慢。这是当下研究的主战场
训练的三个阶段
| 阶段 | 做什么 | 得到什么 | 算力占比 |
|---|---|---|---|
| 预训练 | 一味地预测下一个词元 | 知识、语言能力、推理的底子 | 99% 以上 |
| SFT | 模仿示范对话 | 「回应指令」这一形式 | 很少 |
| RLHF | 用人的评价来调校 | 有用性、安全性、说话方式 | 很少 |
预训练是把巨大的石料开采出来,后训练是把它雕成形。算力几乎全在前者,但你实际感受到的品质,多半由后者决定。
预训练 — 答案就在数据里
把「实际出现的下一个词元的概率」提上去,仅此而已。正确答案就藏在文本自身之中,所以不需要人工标注也能无限扩充数据。这一点是决定性的。
不过在这个阶段,它还不好用。
知识是有的,但它不知道「问题是拿来回答的」。因为它只是在写「像样的下文」。
SFT — 教会它形式
用人写的高质量问答对来训练,只对回答部分计算损失。新知识几乎不会增加,只是把已有的能力变成取得出来的形状。
RLHF — 用偏好来打磨
写示范既贵又不稳定。相反,「A 和 B 哪个更好」这种选择又快又稳。利用的正是这种不对称。
④ 很关键,只做 ③ 的话模型一定会钻奖励模型的空子(奖励黑客)。写得又臭又长、多加项目符号、多夸对方——它会发现这些没有实质却能提分的偏方。
RLVR — 推理模型的真面目
数学和代码有机器可以自动判定的标准答案。那就不需要奖励模型,可以直接把正确与否当作奖励。而且想得越久正确率越高,于是在训练过程中,模型会自发学会写长长的中间步骤、自我纠正「等等,这里错了」、把不同解法互相对照。这不是人教的,而是它为了提高正确率的结果。
结构性的副作用
- 谄媚 — 人会给「附和自己」的回答打高分,奖励模型学到了这一点,模型于是变得迎合。这是机制上的必然
- 对齐税 — 强化安全性与礼貌之后,输出的多样性和部分性能有时会下降
幻觉从何而来
幻觉不是等着被修的缺陷,而是从这套设计里必然长出来的副作用。它同时也是生成能力正常工作的结果。
原因① 结构上就没有「不知道」这个选项
输出是整个词表上的概率分布,概率再低,分布也不会归零。就算问的是并不存在的论文,看起来像样的词也会以一定概率排出来。因为它必须输出点什么,于是产生了形式完美、内容空洞的句子。
原因② 知识是被有损压缩过的
数万亿词元被压进几千亿个数值里。就像 JPEG 压到极限时,轮廓还在而细节崩掉。
- 反复出现的事实 → 被多次强化,牢固
- 只出现过一次的事实 → 被周围的模式淹没,垮掉
结果它必然带着这样的偏差:对有名的事物很强,对冷门的专有名词、数字、日期、出处很弱。
原因③ 后训练让它更严重
SFT 的示范几乎全都是「堂堂正正回答问题」的文章。可是写示范的人写的是自己知道的东西,转移到模型身上的却只有「回答的形式」。
RLHF 让它更糟。比起「我没有确切的信息」,评价者往往更偏好「创立于 1897 年,首任会长是……」——而且并不去核实对错。于是「答得笃定」这件事本身被奖励了。
容易发生的场景
| 风险 | 场景 |
|---|---|
| 高 | 出处、论文名、URL、条款编号、API 的方法名 |
| 高 | 冷门人物或企业的细节、精确的日期与数值 |
| 高 | 前提本身就错的提问(即使不是事实,它也会编出理由) |
| 中 | 长文的后半(把自己先前的错误当前提继续堆叠) |
| 低 | 一般性说明、摘要、翻译,以及在你给的材料内部就能完成的作业 |
给了材料再让它处理,幻觉少;让它从记忆里往外掏,幻觉多。
怎么应对
- 不靠它的记忆,把材料交给它(做成摘要、分析的形式)
- 以可验证的单位接收结果(代码就跑一遍,出处就自己点开)
- 明确写上「不知道就说不知道」(可以抵消后训练带来的压力)
提示词的技术
模型是通过 Attention 参照上下文来给输出加条件的。也就是说,没写出来的东西就不存在。把前提写到「对人说会显得失礼」的程度,才是正解。
① 具体性 — 效果最大
差别在角色、目的、输出格式三点。另外「你是一位优秀的〇〇」这类说法的效果常被高估,具体的情境说明(读者是业务部门的科长级,技术术语讲不通)要有效得多。
② 给它看一个例子
语气和格式,与其解释不如直接示范。把过去做得好的一份成果贴进去,精度就会明显跳升。
③ 把材料交给它
与其「讲讲〇〇」,不如「读完这份资料,按〇〇的视角整理」。这是应对幻觉的正手。
④ 顺序 — 长资料在前,指令在后
分隔可以用 ---、小标题,或者 XML 标签(<资料>...</资料>)。
⑤ 指定思考的顺序
「先把前提条件与约束梳理出来,再给方案」。上来就要结论,它会被最先冒出的方向带着走。和人一样。
⑥ 不求一击命中,来回打磨
把第一次的输出当作草稿,用「三个方案 → 选一个 → 局部修改」的方式削出来,比写一条冗长完美的提示词落地更快。
⑦ 对付谄媚
- 「我不是要你赞成,请指出弱点」
- 「如果这个方案失败,原因会是什么」
- 「如果我的前提有错,请先说这一点」
第三条同时还能防住由错误前提引发的幻觉,性价比最高。
⑧ 分开会话
长会话的上下文会变脏,会被失败的方向一直拖着走。要换方针就开新会话。加上平方成本的问题,无谓地拉长会话还会变慢。
可以复用的模板
MCP・技能・智能体
LLM 本质上是「放进文字、吐出文字的盒子」,本身没有触及世界的手段。以下是叠在它外侧的三层。它们不是竞争关系,而是层次不同。
| 概念 | 补上什么 | 一句话 | 比作做菜 |
|---|---|---|---|
| MCP | 通往外部系统的手脚 | 能做什么 | 厨具 |
| 技能 | 作业的操作手册 | 怎么做 | 菜谱 |
| 智能体 | 自主的循环 | 谁来转这个圈 | 厨师 |
MCP — 连接的通用规格
把过去按各家 AI 服务分别实现的连接,像 USB-C 一样规格化。做一个 GitLab 的 MCP 服务器,任何支持它的 AI 都能用。MCP 服务器提供「可用工具的清单与说明」,LLM 读了之后判断该调用哪一个。
技能 — 需要时才读的手册
实体就是 Markdown 说明书。巧妙之处在于平时只有说明文字是可见的,等到相应的请求来了才去读正文。因为全部常驻会挤占上下文——和图书馆的索引是同一个思路。
智能体 — 看着结果决定下一步
决定性的区别在于能自己应对预料之外的情况。测试挂了、和设想不一样——能否在这里改变方针,就是它与普通自动化脚本的差距。
三者的配合
分工是:MCP 是手脚,技能是知识,智能体是意志。
实务中一定会碰到的注意点
- 权限 — 它是真的能删文件、能发消息的。设计上必须插入确认环节
- 提示词注入 — 外部数据里可能写着「忽略此前的全部指示」。从外面来的东西一律当作数据而非指令,这是铁律。由于 Attention 会不加区分地参照上下文中的字符串,这仍是一个难以完全防守的领域
- 可靠性的累乘 — 每步 95% 成功,重复 20 次整体就只剩 36%。循环越长,验证越重要
一问一答就能结束的事情,这三样一个都不需要。把智能体用在简单作业上,只会又慢又贵。
规格表怎么读
模型发布时的规格,可以分成规模、容量、精度、种类、成绩、价格六大类。
规模 — B
B = Billion(十亿),即参数量。7B 就是持有 70 亿个数值。这正是第四章所说「被有损压缩的知识」的容量本身。
- 671B-A37B 这样的写法 — 总参数 671B / 每个词元实际激活的是 37B(A = Active)。聪明程度更看总数,速度更看激活数。8x7B 属于同一类
- T(Trillion) — 训练词元数。同样的 B,训练量大的更强
上下文长度 — K / M
128K 即 12.8 万词元。这正是第二章那个平方成本发作的地方。有两点要注意:输入与输出常常是分开计算的;以及标称值与可用值不是一回事——长上下文中段被漏读的现象已被反复观察到,「放得进去,不等于能被准确使用」。
精度与量化 — 本地运行的关键
| 写法 | 每个参数 | 用途 |
|---|---|---|
| FP32 | 4 字节 | 基本只在训练时 |
| BF16 / FP16 | 2 字节 | 标准推理 |
| FP8 / INT8 | 1 字节 | 提速 |
| INT4 / Q4 | 0.5 字节 | 本地运行的主流 |
所需内存 ≒ B 数 × 字节数 × 1.2。7B 的 4bit 约 4〜5GB,70B 的 4bit 约 40〜45GB,70B 的 BF16 约 160GB。Mac 是统一内存,按装机量的七成估算。
Q4_K_M 是 GGUF 的量化方式,K 系是按块改变精度的做法,末尾的 S/M/L 表示尺寸与质量的折中程度。拿不准就选 Q4_K_M 或 Q5_K_M。低于 4bit,质量下滑会突然变得明显。
表示种类的后缀
| 写法 | 含义 |
|---|---|
| Base | 只做了预训练。第三章那个「不回答问题的裸模型」。用作再训练的底座 |
| Instruct / Chat | 做完了 SFT+RLHF。平时用的就是这个 |
| Thinking / -R | 经过 RLVR 训练。先想很久再回答 |
| Distill | 以大模型输出为教师的小型版。往往比同 B 的普通模型更强 |
| VL / Omni | 能处理图像或声音 |
| Coder / Math | 专攻特定领域 |
基准测试
| 名称 | 测什么 |
|---|---|
| MMLU / MMLU-Pro | 广泛的学科知识 |
| GPQA | 专家级的科学题 |
| AIME / MATH | 数学 |
| HumanEval | 短代码生成 |
| SWE-bench | 能否解决真实的 GitHub issue(最接近实务) |
| LMArena (Elo) | 人类的盲测对比 |
基准题混进训练数据的污染始终存在嫌疑,数值又是自报的。测量条件不同就没法比较。看实务就看 SWE-bench,看体感就看 Elo,相对更可信。
许可证与价格
开放权重 ≠ 开源。权重发布了,训练数据和代码却不公开、商用还附带条件,这种情况很常见。若是 Apache 2.0 或 MIT,限制就基本没有了。
- $/1M 词元 — 输入与输出分开计价。输出通常是输入的 3〜5 倍
- 缓存价格 — 在反复使用相同前缀的场景里,会大幅左右实际花费
- TPS / TTFT — 体感速度更取决于首字延迟(TTFT)
运行时可调的参数
这里说的「参数」,全都是怎么从概率分布里挑的设置。回想一下封面的那张图。
| 名称 | 效果 | 参考值 |
|---|---|---|
| temperature | 把分布压平的程度。越高越多样也越不稳 | 事实类 0〜0.3 / 创作 0.8〜1.0 |
| top_p | 取累积概率到 p% 为止的候选 | 0.9 左右 |
| top_k | 只取排名前 k 个作为候选 | 40 左右 |
| max_tokens | 输出上限。输出被截断的第一大原因 | 看用途 |
| stop | 出现该字符串就停止 | 结构化输出时好用 |
| seed | 固定随机数,保证可复现 | 验证时 |
实务上只动 temperature 就够了。和 top_p 一起动,行为就读不懂了。
到底该看哪里
最终,准备 5〜10 个自己的真实任务去试,是最快的办法。公开基准与业务中的好用程度,偏差比想象中大。
结 — 一页总结
- 机制只有预测下一个词元。但要把预测做到极致,就需要对世界的理解。这是聪明的源头。
- Attention 用上下文重塑词义,而它能并行计算,才使规模化成为可能。
- 预训练给能力,后训练给可用的形状。谄媚是后者的副作用。
- 幻觉是这套设计的必然产物。别让它掏记忆,把材料交给它,并以可验证的形式接收。
- 提示词要写清角色、目的、输出格式,靠来回打磨去削。长会话要拆开。
- MCP 是手脚,技能是知识,智能体是意志。外部数据永远当作数据。
- 规格表上B 数与量化决定内存,基准只是参考。拿真实任务去试最快。
LLM 札记 — 全七章 / 2026.09