# 预训练、规模扩展与上下文学习

接着Transformer的信息流，先对齐预训练、规模规律与上下文学习，再追问信息怎样读回、学到了什么、怎样在机器上执行。沿记忆装置、视觉证据与文本训练走到一次具体判断，最后把问题交给搜索、推理与验证。

## Transformer 搭起来了，能力还需要怎样解释？

已经看懂 Transformer 的信息流之后，还需要解释训练后的能力从哪里来。本讲从读回、证据与执行三个问题继续。

### 信息怎样留下来，怎样用出来？

Transformer 的结构规定信息经过哪些计算：当前输入经 attention 读取与 MLP 变换，形成输出；训练参数是这些运算持续使用的对象。知道信息流，并不等于已经解释了训练后的全部能力。本讲接着追问：信息如何被承载并读回，哪些观察足以支持“学到了什么”的判断，以及计算、存储和搬运如何限制实际执行。

[对应图解与此步说明](pages/OV01.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

图中只保留上一讲可识别的信息流，不是完整 Transformer 堆栈，也不把整个模型简化成一层 attention 和一层 MLP。输入示例来自 Lecture05；输出位置用于说明计算方向，不代表现场运行结果。三问是本讲选择的观察视角，不穷尽能力形成的全部原理。

</details>

证据与口径：Lecture05 熟悉句子的课程回访；图为计算关系示意，不是模型实测。

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 再想一步

可以沿三问检查一个新模型：先指认它用到的信息，再说明支持能力判断的证据，最后列出执行所需对象。三个答案可以来自不同实验，不能用一张结构图同时代替。

### 从本页继续阅读

- [从训练目标到参数更新](/pages/RC-P1.html)：用同一份 A/B 记录完整追踪输入、目标、损失与更新。
- [参数与当前上下文](/pages/AR09.html)：区分长期参数和本次输入形成的读取状态。

[从训练目标到参数更新](./pages/RC-P1.html)：用同一份 A/B 记录完整追踪输入、目标、损失与更新。

[参数与当前上下文](./pages/AR09.html)：区分长期参数和本次输入形成的读取状态。

</details>

[逐页阅读与备课模拟](pages/OV01.html)

## 预训练、后续适配与使用，分别在改变什么？

先区分两类变化：训练把什么留下来，当前输入又怎样影响这一次计算？

### 训练改变参数；上下文改变当前输入。

训练支路是“数据与目标→优化更新→参数”；使用支路是“参数＋当前上下文→输出”。预训练与后续 SFT 都可以更新参数，但用途与训练材料不同；SFT 不是所有模型必经的固定阶段。常见 ICL 设置把任务说明与示例放入当前上下文，不在本次任务适应中更新模型参数。训练目标、投入规律与使用方式提供共同基础，本讲随后会深入它们背后的承载、证据与执行问题。

[对应图解与此步说明](pages/OV02.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

ICL 在这里指 GPT-3 论文所采用的无梯度任务适应设置。当前输入会改变中间表示、K/V 等状态和输出分布，“参数不更新”不等于“计算没有变化”。后续适配还有其他形式；本页只借 SFT 定位参数更新，Scaling Law 则用于研究投入关系，不是第三个训练阶段。

</details>

证据与口径：训练／使用关系为课程示意；ICL 的无梯度设置核对 GPT-3 原论文。

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 再想一步

要判断改变会持续到哪里，先检查是否执行了参数更新。上下文中的示例还可能通过改变注意力读取和中间表示影响输出；这种当次计算变化与优化器更新参数有不同的持续范围。

### 从本页继续阅读

- [一份文本怎样产生训练信号](/pages/RC-P1.html)：从原始材料、下一项目标到损失，展开一次训练过程。
- [SFT 到底改变什么](/pages/RC-A4.html)：用 prompt 与回应目标说明后续监督如何更新参数。
- [GPT-3 的上下文适应设置](https://arxiv.org/abs/2005.14165)：原论文图2.1和方法部分区分 zero-shot、one-shot 与 few-shot。

[一份文本怎样产生训练信号](./pages/RC-P1.html)：从原始材料、下一项目标到损失，展开一次训练过程。

[SFT 到底改变什么](./pages/RC-A4.html)：用 prompt 与回应目标说明后续监督如何更新参数。

[GPT-3 的上下文适应设置](https://arxiv.org/abs/2005.14165)：原论文图2.1和方法部分区分 zero-shot、one-shot 与 few-shot。

</details>

[逐页阅读与备课模拟](pages/OV02.html)

## 预测下一个词，或恢复遮住的内容

同一句原文可以怎样提供学习信号？对照前缀预测与遮挡预测，找出输入和目标的位置。

### 原文本提供目标，预测差异用于更新参数。

同一句原文本可以提供两类训练信号。下一 token 预测给出前缀“我／昨天／给了／他／一本”，目标是原句下一项“书”；遮挡语言建模给出“我／昨天／给了／[MASK]／一本／书”，目标是被选中位置原有的“他”。模型的预测与这些目标比较，形成用于更新参数的误差信号。目标的存在不意味着模型预测正确，也不意味着该前缀只有一种语言上合理的后续。

[对应图解与此步说明](pages/OV03.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

中文词块是为了对齐输入与目标所作的教学切分，不是真实 tokenizer 的运行结果。两行是不同目标的并列示例，不是同一模型必经的连续阶段。BERT 原论文预训练还使用 NSP；本页只借其 MLM 目标说明遮挡预测。MLM 的训练目标是原位置 token，而不是任意语义合理的替代词。

下一 token 的完整样本、对齐、loss 和更新在 RC-P 段展开。视觉 MAE 的遮挡、像素预测与损失位置会由自己的模型与证据说明。

</details>

证据与口径：中文切分为教学构造；MLM 目标核对 BERT 原论文 §3.1，未展示模型实测预测。

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 再想一步

自监督目标由数据构造，但并不省略误差计算与优化。一个训练位置的目标确定，不等于语言中只有一个合理续写；损失衡量的是对给定训练目标分配的概率。

### 从本页继续阅读

- [一次文本训练的完整过程](/pages/RC-P2.html)：在 A/B 记录上继续看目标右移、预测计分和参数更新。
- [BERT 的遮挡语言建模目标](https://arxiv.org/abs/1810.04805)：原论文3.1节说明如何从可见上下文预测被选中位置。

[一次文本训练的完整过程](./pages/RC-P2.html)：在 A/B 记录上继续看目标右移、预测计分和参数更新。

[BERT 的遮挡语言建模目标](https://arxiv.org/abs/1810.04805)：原论文3.1节说明如何从可见上下文预测被选中位置。

</details>

[逐页阅读与备课模拟](pages/OV03.html)

## Scaling Law 让我们看见投入与效果的关系

投入增加时，损失怎样变化？预算不变时，又该怎样分配模型规模与训练数据？这两个问题需要分开。

### 条件范围内，投入扩大对应近似幂律损失下降；固定预算还要分配。

在特定模型、数据与训练范围内，扩大模型规模和训练投入，交叉熵损失可呈近似幂律下降。这种经验趋势可以拟合，却不是“参数越多，所有能力必然越好”。若训练计算预算固定，则要共同选择模型参数量 N 与训练 token 数 D：把预算更多分给模型，就会限制可用于训练的数据量。总投入增加与固定预算内分配是两个不同问题。后文再用原论文实验图比较配置；这里不设通用指数或最佳比例。

[对应图解与此步说明](pages/OV04.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

Kaplan 等人的 Scaling Laws 研究特定模型、数据与计算条件下的损失关系；Chinchilla 研究固定训练计算预算下模型参数与训练 token 的分配。不同研究的训练条件与最优拟合不能混成一个不变比例，训练计算最优也不等于部署的经济最优。

</details>

证据与口径：定性关系图；一手依据为 Scaling Laws 与 Chinchilla，不含新增实测曲线。

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 再想一步

“近似幂律”表示在所研究范围内，投入按比例扩大时，损失的变化可由经验函数拟合；它不是每次加同样数量参数就下降相同损失。固定预算问题则比较多组 N 与 D 的组合，而不是在原训练量上无限增加参数。拟合的指数、最佳比例和适用范围要回到各篇论文，不能跨实验直接照搬。

### 从本页继续阅读

- [固定计算预算怎样分配](/pages/RC-C2.html)：正文结合 Chinchilla 实验图比较参数规模与训练量。
- [Scaling Laws 原研究](https://arxiv.org/abs/2001.08361)：阅读模型、数据、训练计算与交叉熵损失的经验关系和适用条件。
- [Chinchilla 原研究](https://arxiv.org/abs/2203.15556)：比较固定训练计算预算下模型大小与数据量的分配。

[固定计算预算怎样分配](./pages/RC-C2.html)：正文结合 Chinchilla 实验图比较参数规模与训练量。

[Scaling Laws 原研究](https://arxiv.org/abs/2001.08361)：阅读模型、数据、训练计算与交叉熵损失的经验关系和适用条件。

[Chinchilla 原研究](https://arxiv.org/abs/2203.15556)：比较固定训练计算预算下模型大小与数据量的分配。

</details>

[逐页阅读与备课模拟](pages/OV04.html)

## 给几个例子，模型这一次改变了什么？

保留同一份 A/B 事实，只在输入前加入 C/D 示例。观察这一步改了什么，又没有改什么。

### 同一组参数，当前输入加入示例。

当前 A/B 材料为“A 用时12秒，B 用时8秒，未测量内存”，任务要求概括结果并保留未知。另一份输入在同一任务前加入 C/D 示例：“C 用时10秒，D 用时7秒，未测能耗；D 在本次测试中耗时更短，能耗尚未比较。”两份输入共用模型参数，差别是上下文有没有示例。示例提供回应组织方式，不能替代 A/B 的事实；本页没有展示 A/B 的模型实测输出，也没有保证示例一定改善结果。

[对应图解与此步说明](pages/OV05.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

全部 A/B、C/D 数值为课程教学构造。C/D 的文本是示例答法，不是模型运行记录。常见 ICL 使用不执行参数梯度更新，但输入改变会使当前表示与输出分布变化；任务效果应另行评价。

</details>

证据与口径：A/B、C/D 为教学构造；无梯度 ICL 概念核对 GPT-3 原论文。

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 再想一步

若要评价示例的作用，应固定模型、任务材料和评分方式，只改变示例条件，并在多个输入上比较。这里先用输入对照明确变量，随后正文再将条件比较与实际输出分开讨论。

### 从本页继续阅读

- [示例加入后，当前计算怎样变化](/pages/RC-A2.html)：从当前输入 X 到 K/V，区分固定参数与请求状态。
- [同一 A/B 任务的完整对照](/pages/RC-A1.html)：查看有无示例、回应组织与事实保留的具体区别。

[示例加入后，当前计算怎样变化](./pages/RC-A2.html)：从当前输入 X 到 K/V，区分固定参数与请求状态。

[同一 A/B 任务的完整对照](./pages/RC-A1.html)：查看有无示例、回应组织与事实保留的具体区别。

</details>

[逐页阅读与备课模拟](pages/OV05.html)

## “预测与压缩”的直觉，还留下什么问题？

一次补全可能来自片段记忆，也可能利用可复用关系。怎样把“学到规律”的直觉变成可检查的问题？

### 留下片段与复用规律，需要进一步辨别。

在“我昨天给了他一本书”中，具体词序可以作为片段保留，“谁／何时／给谁／什么”的关系也可成为待研究的可复用结构。预测利用重复信息；压缩视角提醒我们，复用规律可能减少对每个例子的单独描述。但片段记忆与规律学习并不互斥，也不能仅凭一次正确补全辨别内部用了哪一种。需要进一步追踪信息的表示与读取，并设计能区分解释的新观察。

[对应图解与此步说明](pages/OV06.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

角色结构是教师用于提出问题的语言分析，不是该模型内部状态的实测可视化。这里不主张“压缩＝智能”的等式，也不把记忆贬为死记或把泛化说成与记忆无关。后面的随机检索装置只使一个读取问题可追踪，不代表完整大模型学习机制。

</details>

证据与口径：句式与压缩关系为教学直觉及待检验解释，不是模型内部实测结论。

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 再想一步

区分解释需要设计会产生不同预测的输入，例如保留关系而更换具体词语，或保留熟悉词语却改变关系。结果可以约束“仅记片段”的解释，但仍不能凭一个成功例子定位网络中的全部机制。

### 从本页继续阅读

- [文本预测可能要求哪些能力](/pages/RC-P5.html)：从 A/B 记录的后续预测理解不同位置依赖的结构。
- [从读取装置进入记忆问题](/pages/AR01.html)：固定查询和目标，观察关联增加时读回的改变。

[文本预测可能要求哪些能力](./pages/RC-P5.html)：从 A/B 记录的后续预测理解不同位置依赖的结构。

[从读取装置进入记忆问题](./pages/AR01.html)：固定查询和目标，观察关联增加时读回的改变。

</details>

[逐页阅读与备课模拟](pages/OV06.html)

## 第一问：写进去之后，怎样还能读回来？

固定查找线索与目标内容，只增加其他关联。先认清查询、存储与读回的分工，再观察干扰。

### 固定查询和目标，只增加存入的关联。

关联读取把查找线索与目标内容分开：查询提供线索，存储保存关联，读回结果再与目标比较。随后实验固定查询和目标，只增加其余写入的关联，观察读取是否被干扰。这使“容量”不再仅是累计存入条数，而是需要同时指定写入方式、读取方式及正确性的判断标准。此处只是引入实验对象，尚未展示结果或容量公式。

[对应图解与此步说明](pages/OV07.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

查询与目标来自 AR01 的同一教学随机向量实验。目标图样将64个分量排成8×8，便于比较，不是自然图像理解任务。

</details>

证据与口径：同源随机向量读取示意，沿用 AR01 与 Alex Wang 推导的条件。

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 再想一步

检索的评价对象是读回向量与目标向量的差别。把向量排成图样便于看见差别，数值指标仍要使用同一尺度和误差定义，不能只凭图像看起来相似就认定读对。

### 从本页继续阅读

- [固定查询的四档读回](/pages/AR01.html)：查看查询、目标、存入关联数与干扰指标的完整实验。
- [记忆容量的条件与指标](/topics/memory-capacity.html)：展开写入、读取、随机向量假设和误差标准。

[固定查询的四档读回](./pages/AR01.html)：查看查询、目标、存入关联数与干扰指标的完整实验。

[记忆容量的条件与指标](./topics/memory-capacity.html)：展开写入、读取、随机向量假设和误差标准。

</details>

[逐页阅读与备课模拟](pages/OV07.html)

## 第二问：它学到了什么，怎样才算有证据？

任务结果与内部响应回答不同问题。先辨认两组材料的模型身份，再看观察怎样引出检验。

### 看任务表现，也让内部解释接受检验。

MAE 的遮挡输入、预测与原图，允许比较模型完成任务的方式与误差；Goodfire 的猫车材料来自另一模型 InceptionV1，用于观察某个内部单元在哪些输入上响应较强。两者不是同一模型连续开展的实验。任务成绩说明能做什么，内部响应帮助提出解释，新例、近反例及受控干预再检验解释的支持范围。可视化的价值在于使这些比较可观察，而不是仅凭漂亮图像宣布机制已被证明。

[对应图解与此步说明](pages/OV08.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

MAE 的重建质量与下游任务能力需要分别评价；Goodfire 图像模型观察、语言模型归因及消融也需保持实验身份。单元的激活图不单独建立因果性，特定条件的局部干预也不推出所有单元都有唯一功能。

</details>

证据与口径：MAE 与 Goodfire／InceptionV1 原始素材，模型和实验身份分开；本页不展示新增实测。

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 再想一步

表现、解释和干预之间需要可追溯的桥梁：先确定输入和测量对象，再提出能预测新例的解释，最后选择真正改变内部计算的操作。一次干预支持的结论仍受输入与对照范围约束。

### 从本页继续阅读

- [MAE 的预测、目标与误差](/pages/VR03.html)：看同一校车图的遮挡、重建与原图如何构成训练信号。
- [猫和汽车为何共同激活](/pages/RG02.html)：从真实高响应图像提出解释，并寻找下一步检验。
- [Goodfire 原始研究](https://already-clean.goodfire.com/)：区分自然样例、内部观察、归因、消融和解释评价。

[MAE 的预测、目标与误差](./pages/VR03.html)：看同一校车图的遮挡、重建与原图如何构成训练信号。

[猫和汽车为何共同激活](./pages/RG02.html)：从真实高响应图像提出解释，并寻找下一步检验。

[Goodfire 原始研究](https://already-clean.goodfire.com/)：区分自然样例、内部观察、归因、消融和解释评价。

</details>

[逐页阅读与备课模拟](pages/OV08.html)

## 第三问：算式成立，机器怎样把它算完？

让一次矩阵计算真正发生，除了运算，还需要哪些存储与搬运？沿同一份参数和当前状态追踪。

### 算多少、存多少、搬多少？

可执行的计算包含参数与当前状态的存储、读取、运算和结果写回。计算量、存储容量及数据搬运是相互关联但不同的约束；算式正确，并不保证设备装得下或能以可接受的延迟执行。训练需要保存与更新有关的额外对象，使用需要处理当前请求状态。规模的收益取决于数据与训练条件，实际选择还须同时衡量执行代价。

[对应图解与此步说明](pages/OV09.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

本页是硬件执行的机制示意，没有指定 GPU 型号、吞吐实测或通用价格。训练状态账、分片、分块 attention、prefill／decode 与 KV 的具体对象与边界，保留在正文系统段逐一建立。

</details>

证据与口径：计算、存储、搬运关系为教学示意；未给出硬件基准或通用最优配置。

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 再想一步

计算、存储与搬运并不总是同时成为瓶颈。同样的算式可因工作集大小和数据复用方式不同而产生不同等待；要改善执行，必须先识别当前资源限制。

### 从本页继续阅读

- [一次更新要保留哪些对象](/pages/RC-T1.html)：从8B教学配置区分权重、梯度、主权重和优化器状态。
- [搬运怎样改变执行代价](/pages/RC-T3.html)：看分块 attention 保留计算关系而改变读写组织。
- [当前请求怎样产生状态](/pages/RC-V1.html)：区分 prefill、逐步生成与 K/V 追加。

[一次更新要保留哪些对象](./pages/RC-T1.html)：从8B教学配置区分权重、梯度、主权重和优化器状态。

[搬运怎样改变执行代价](./pages/RC-T3.html)：看分块 attention 保留计算关系而改变读写组织。

[当前请求怎样产生状态](./pages/RC-V1.html)：区分 prefill、逐步生成与 K/V 追加。

</details>

[逐页阅读与备课模拟](pages/OV09.html)

## 先看清承载与证据，再回到文本训练

从可追踪的读取装置出发，再看真实模型的任务与内部证据，最后回到文本训练和实际选择。

### 先固定一个查询：写得更多，还能读清吗？

课堂先由联想记忆建立可追踪的写入、读取与容量问题，再用视觉任务和内部机制研究区分表现、解释与检验。视觉段之后的短计算桥说明同一表示怎样执行，然后回到文本预训练、上下文使用、训练和推理资源，最终依据新测量修正选择。下方的查询—存储—读回对象与下一页 AR01 相同：查询和目标固定，接下来只增加关联。

[对应图解与此步说明](pages/OV10.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

路线中的视觉证据提供观察与检验的方法，不直接证明所有语言能力。联想记忆只打开一种可计算读取装置，正文随后建立外积、串扰、写入改动、非线性读取以及与 attention 的关系。

</details>

证据与口径：课程路线示意；读取对象同源于 AR01 的教学实验。

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 再想一步

这里先把写入和读取变成可计算对象，再把视角移向真实模型。前者解释一种装置如何工作，后者检验训练和内部行为；两者相连，但不能彼此替代证据。

### 从本页继续阅读

- [从第一条关联开始读回](/pages/AR01.html)：进入 AR01，认识 key、value、查询、目标和已存关联数。
- [本讲完整图文讲义](/handbook.html)：按实际课堂顺序阅读同源图解与每一步解释。

[从第一条关联开始读回](./pages/AR01.html)：进入 AR01，认识 key、value、查询、目标和已存关联数。

[本讲完整图文讲义](./handbook.html)：按实际课堂顺序阅读同源图解与每一步解释。

</details>

[逐页阅读与备课模拟](pages/OV10.html)

## 写进去了，为什么还可能用不上？

关联记忆把线索key与内容value成对保存。查询是拿来查找的线索，目标是希望读回的内容；两者不必相同。本例将64维value排成8×8灰度方格，固定目标和查询，只把同一存储数组的前缀从1条扩展到16、64、256条。读回中的目标贡献仍在，其他条目的贡献却逐渐混入。可用性因此要由读取结果判断，而不能仅数已经写入多少条。

### 先固定目标和查询

沿用刚才的读取装置。我们存一对关联：线索key用来查找，内容value是希望取回的东西。画面中的k₀是固定查询，v₀是目标内容，M表示已存关联数。现在M等于一，读取Wk₀与目标相同。图样只是把六十四个数排成八乘八，方便比较，并不是让模型识别一张照片。随后只增加其他关联，看看同一查询还能否读清同一目标。

[对应图解与此步说明](pages/AR01.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

关联对的记号为(kᵢ,vᵢ)，下标i标识条目。固定查询取第0条的key，目标是同一条的value；M增加时沿用同一数组前缀。key与value都为64维，但其职责不同。

</details>

### 更多条目参与同一次读回

目标内容和查询都不变，只有存储中参与写入的关联数增加：十六、六十四、二百五十六。把每档读回与最左侧目标逐格比较，目标的结构越来越被其他变化淹没。原来那一条仍参与写入，问题是其他条目也在这次读取里贡献了内容。因此“已经存入”与“此刻能单独取回”不是一回事。

[对应图解与此步说明](pages/AR01.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

同一数组的前缀；seed=20261021。显示灰度统一为[−0.125,0.125]，只裁剪显示，不改变指标。

</details>

### 给混入一个可比较的尺度

把想要的贡献叫信号，把其他条目的贡献叫干扰。这里用干扰范数除以目标贡献范数，得到R。四档分别约为零、零点四五五、一点零三九和二点一四二。R等于一，只是一条方便的比较线：干扰与信号差不多大，不代表所有任务在这里一起失效。接下来去掉图样，只存两组线索与内容，亲手算清楚干扰从哪里来。

[对应图解与此步说明](pages/AR01.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

本页R=‖读出−目标贡献‖/‖目标贡献‖，指标按未裁剪向量计算。它不同于之后跨随机样本取平方期望再开方的理论RMS曲线。

</details>

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

这里的目标不是证明模型记住了图像，而是为“记住”选一个可检查的读回标准。同一查询、相同数组前缀和固定灰度，使变化能追溯到新增关联。

### 与本页直接相关的完整材料

- [AM01 · 模型要用上更多知识，先要能承载、能读取](pages/AM01.html)：原图、逐态说明与已校准推导。
- [AM02 · 写进去了，还要在需要时读得回来](pages/AM02.html)：原图、逐态说明与已校准推导。

### 条件、推导与来源

#### AM01 · 模型要用上更多知识，先要能承载、能读取

要理解大模型为什么可能用上更多知识，先分清结构的承载能力与训练形成的实际能力。

“先能记住，再讲怎样训练”是解释次序。实际训练时，数据、目标和参数更新一起发生，不存在先把空网络训练完、再把知识放进去的机械流程。

### 来源与继续阅读

[Alex Wang：对应原文小节](https://alexwang.ai/posts/associative-memory/#closing-thoughts)。两个必要视角是本课程的开场组织，不是原文逐字开场。

[M01 原阅读材料](pages/M01.html)。旧阅读材料保留自身的算例与记号；不要将旧三条目行向量例与本节两条目列向量例混算。

[完整推导与实验口径](topics/memory-capacity.html) · [原文配套源码入口](https://github.com/KeAWang/associative-memory-blog)。

#### AM02 · 写进去了，还要在需要时读得回来

先用同一查询下的读回质量，给“记住”一个可检查的含义。

本节实验关注向量读回的保真程度。分类只要求正确候选胜出、生成只要求相关token更有可能时，可以采用不同指标；相应容量不能直接比较。

### 来源与继续阅读

[Alex Wang：对应原文小节](https://alexwang.ai/posts/associative-memory/#recall-picks-up-interference)。

[I03 原阅读材料](pages/I03.html) · [M02 原阅读材料](pages/M02.html)。旧阅读材料保留自身的算例与记号；不要将旧三条目行向量例与本节两条目列向量例混算。

[完整推导与实验口径](topics/memory-capacity.html) · [原文配套源码入口](https://github.com/KeAWang/associative-memory-blog)。

[写进去了，怎样判断还读得回来](./pages/AM02.html)：从key、value、查询和目标的不同职责开始，给出四档读回与未裁剪干扰指标。

[从两条关联算出串扰](./pages/AR02.html)：把64维图样换成二维A/B例，逐步计算外积写入和查询读出。

[容量曲线的假设与指标](./topics/memory-capacity.html)：展开随机单位向量、RMS比值和比较阈值，分清向量检索与现实知识。

[LAB 01 · M1 · 同一查询与目标，写得更多会怎样？](https://deepnote.com/workspace/ise3309jingao-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/Fall-26-Lecture-06-2ff4b87b-2904-4b9c-b9e9-bdbd72962691/notebook/LAB-01-e1f6f8c1ebd543c5ade548e0af61edc1?utm_source=openai&utm_medium=mcp&utm_campaign=openaimcp&utm_content=e1f6f8c1ebd543c5ade548e0af61edc1&utm_term=get_notebook)：固定查询、目标和记忆前缀，比较 M=1、16、64、256 的读回。这里是受控关联记忆计算。

</details>

[逐页阅读与备课模拟](pages/AR01.html)

## 读 A 时，为什么 B 也出来了？

二维A/B装置把串扰变成可手算的结果：k_A=v_A=(1,0)，k_B=(0.6,0.8)，v_B=(0,1)。外积写入W=Σvᵢkᵢᵀ得到[[1,0],[0.6,0.8]]。查询A时，Wk_A=(1,0.6)=v_A+0.6v_B；B的key与查询内积不为零，因此B的value也参与输出。A的key与value恰好相同只是选数巧合，B清楚显示二者的不同职责。

### 认清同一组 key 与 value

刚才的八乘八图样来自六十四维向量；现在换成能手算的二维例子，线索与内容的角色保持不变。A的key是(1,0)，value也是(1,0)，这只是选数巧合。B的key是(0.6,0.8)，value却是(0,1)，可见查询线索不必长得像要取回的内容。两个key长度都是一，方向并不垂直。先把这两对关联放在固定位置，W从零矩阵开始。

[对应图解与此步说明](pages/AR02.html#b0)

### 把 A 写入同一个 W

先把A的value排成一列，把它的key排成一行，相乘形成一个两行两列的矩阵，这叫外积。得到的矩阵只有左上角是一，其余为零。把它加进W，以后遇到A这样的线索，就会沿A的内容方向输出。这里请看清尺寸：写入的是一块和W同样大的矩阵，不是把一个标签塞进某个独立格子。

[对应图解与此步说明](pages/AR02.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

$v_i\in\mathbb R^{d_v}$、$k_i\in\mathbb R^{d_k}$均为列向量，故$v_i k_i^\top\in\mathbb R^{d_v\times d_k}$。

</details>

### 再把 B 加进去

B也产生一块外积矩阵，这次非零项在第二行，是零点六和零点八。我们没有给B另开一个抽屉，而是把两块矩阵相加。W现在的第一行是一、零，第二行是零点六、零点八。继续累加非常容易；但这只能说明两条都参与了写入，是否能单独读出，需要下一步检查。

[对应图解与此步说明](pages/AR02.html#b2)

### 输入 A，却读出 A 加 0.6B

现在把A的线索(1,0)交给W。第一行与它相乘得到一，第二行得到零点六，所以输出是(1,0.6)，而不是目标(1,0)。A的一份内容还在，但B也跟着贡献了零点六份。请注意，我们没有在读出之后加入噪声；这个混合是刚才那次矩阵乘法本身产生的。

[对应图解与此步说明](pages/AR02.html#b3)

### 展开成匹配分数，再汇总 value

把同一计算展开：先算查询和每个key的内积，再用这些分数加权value。A和自己匹配得一，B与A匹配得零点六，因此答案就是一份A加零点六份B。这里的系数可以带符号，也不必加起来等于一，所以还不是概率。两条时已经能看到串扰；接下来问条目继续增加、或线索维度变大时，干扰会怎样积累。

[对应图解与此步说明](pages/AR02.html#b4)

<details>
<summary>进一步解释与计算条件</summary>

A/B例与开场随机64维图样是不同实验。此处保留职责与读取规则，不保留维度或随机样本。查询A时B产生0.6的交叉项，正是两条key内积为0.6。

可展开检查查询B：$Wk_B=(0.6,1)^\top=0.6v_A+v_B$。这与查询A的串扰对称，完整画面见AM04/b2。

</details>

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

本段始终使用两条目、列向量约定。两个外积的和为 W=[[1,0],[0.6,0.8]]；读取是先匹配再汇总。旧三条目行向量算例仍在完整阅读中，但不混入此处计算。

### 与本页直接相关的完整材料

- [AM03 · 先写入两组“线索—内容”](pages/AM03.html)：原图、逐态说明与已校准推导。
- [AM04 · 读A时，为什么B也会出来？](pages/AM04.html)：原图、逐态说明与已校准推导。

### 条件、推导与来源

#### AM03 · 先写入两组“线索—内容”

目标仍被保存，读出却可能夹杂别的内容；现在用两组向量把装置拆到能手算。

`W=Σᵢvᵢkᵢᵀ`，`W∈R^(d_v×d_k)`。本例两个外积分别是`[[1,0],[0,0]]`、`[[0,0],[0.6,0.8]]`。

### 来源与继续阅读

[Alex Wang：对应原文小节](https://alexwang.ai/posts/associative-memory/#an-outer-product-memory-store)。

[I02 原阅读材料](pages/I02.html)。旧阅读材料保留自身的算例与记号；不要将旧三条目行向量例与本节两条目列向量例混算。

[完整推导与实验口径](topics/memory-capacity.html) · [原文配套源码入口](https://github.com/KeAWang/associative-memory-blog)。

#### AM04 · 读A时，为什么B也会出来？

两次外积已经加到同一个W，接下来检查能否只读回目标。

`Wx=Σᵢvᵢ(kᵢᵀx)`；对单位key查询`k_j`，`Wk_j=v_j+Σ_(i≠j)vᵢ(kᵢᵀk_j)`。

### 来源与继续阅读

[Alex Wang：对应原文小节](https://alexwang.ai/posts/associative-memory/#recall-picks-up-interference)。

[I03 原阅读材料](pages/I03.html) · [M02 原阅读材料](pages/M02.html)。旧阅读材料保留自身的算例与记号；不要将旧三条目行向量例与本节两条目列向量例混算。

[完整推导与实验口径](topics/memory-capacity.html) · [原文配套源码入口](https://github.com/KeAWang/associative-memory-blog)。

[外积怎样共同写入一个W](./pages/AM03.html)：保留A/B向量、两个外积矩阵及相加后的W，按列向量约定核对尺寸。

[读取为什么带出其他内容](./pages/AM04.html)：展开Wx=Σvᵢ(kᵢᵀx)，同时核验查询A与查询B。

[从随机内积得到容量曲线](./topics/memory-capacity.html)：由交叉项平方期望解释干扰随M与dₖ变化的趋势。

</details>

[逐页阅读与备课模拟](pages/AR02.html)

## 可以扩大空间，也可以改写入和读取

从固定的二维例子转到随机单位key/value，可以分开比较条目数与维度。在外积写入、精确查询假设下，干扰RMS比值为√((M−1)/dₖ)。固定dₖ=64，增加M使曲线上升；固定M=128，增加dₖ使曲线下降。R=1只是一条共同参照线。扩大空间、联合选择写入权重、改变汇总前的响应，是作用于不同对象的三条改进路线。

### 固定维度，增加条目

先把二维小例子换成很多随机单位线索，key的维度固定为六十四。横轴是条目数，纵轴是理论RMS干扰与目标项的比值。单个无关匹配通常不大，但很多小贡献仍会合成可观干扰。曲线在约六十五条达到R等于一。这个量级描述当前假设和指标，不是一道所有记忆任务共同的失效开关。

[对应图解与此步说明](pages/AR03.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

独立各向同性单位value使交叉项期望为零；$R_{RMS}=\sqrt{(M-1)/d_k}$。这里先对平方干扰取期望再开方，不是一次抽样错误率。

</details>

### 固定条目，扩大维度

现在横轴换了，请先看轴名：不再增加条目，而是固定一百二十八条，增加key的维度。曲线向下，因为随机线索在更高维空间中通常更容易分开，无关内积更小。扩大空间确实是一个办法，但相关矩阵和计算也会变大。我们还可以保留空间大小，改变写进去和读出来的方法。

[对应图解与此步说明](pages/AR03.html#b1)

### 在装置上定位三种改变

回到A的查询。沿同一次计算，可以改三个地方：增加线索的维度，重新选择写入后的W，或者改变匹配分数参与汇总的方式。这三件事不能混称为“把模型做大”。刚才第一条已经看到了。下面先保留两条关联和两行两列的W，只重新选择四个权重，检查是否能够把两条都读对。

[对应图解与此步说明](pages/AR03.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

三条路线改变不同对象：维度改变表示空间；联合拟合改变写入矩阵；非线性改变汇总前的响应。这一态只建立选择位置，随后先沿写入路线核验。

</details>

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

有限维修正使dₖ=64的外积RMS比较线位于M=65，常用量级说法约为64。负匹配不能简单按绝对值累加；相消也不保证干扰为零。

### 与本页直接相关的完整材料

- [AM05 · 条目越多，干扰怎样累积？](pages/AM05.html)：原图、逐态说明与已校准推导。
- [AM06 · 能改的地方有三个](pages/AM06.html)：原图、逐态说明与已校准推导。

### 条件、推导与来源

#### AM05 · 条目越多，干扰怎样累积？

二维例解释干扰来源，随机向量模型继续检查条目数和维度的影响。

独立零均值、各向同性、单位长度value使交叉项的期望消失。随机单位key有`E[(kᵢᵀk_j)²]=1/d_k`，故外积存储的平方平均干扰/信号为`(M−1)/d_k`，RMS比值为`√((M−1)/d_k)`。常用量级写法`√(M/d_k)`忽略一条目标记忆。不要把每一项绝对值简单相加成`M/√d_k`，也不要说正负相消后必然没有噪声。

### 来源与继续阅读

[Alex Wang：对应原文小节](https://alexwang.ai/posts/associative-memory/#recall-picks-up-interference)。

[I03 原阅读材料](pages/I03.html)。旧阅读材料保留自身的算例与记号；不要将旧三条目行向量例与本节两条目列向量例混算。

[完整推导与实验口径](topics/memory-capacity.html) · [原文配套源码入口](https://github.com/KeAWang/associative-memory-blog)。

#### AM06 · 能改的地方有三个

扩大维度不是唯一改进办法，写入与读取也可以分别调整。



### 来源与继续阅读

[Alex Wang：对应原文小节](https://alexwang.ai/posts/associative-memory/#how-do-we-reduce-interference)。

[M03 原阅读材料](pages/M03.html)。旧阅读材料保留自身的算例与记号；不要将旧三条目行向量例与本节两条目列向量例混算。

[完整推导与实验口径](topics/memory-capacity.html) · [原文配套源码入口](https://github.com/KeAWang/associative-memory-blog)。

[随机向量下的RMS干扰](./pages/AM05.html)：给出√((M−1)/dₖ)的来历，区分一次抽样与理论平方平均。

[空间、写入与读取三种选择](./pages/AM06.html)：在同一装置上定位三类可改变的对象，接回下一页联合拟合。

[线性写入的完整边界](./topics/memory-capacity.html)：核对独立key、伪逆、过载投影与噪声查询的不同条件。

</details>

[逐页阅读与备课模拟](pages/AR03.html)

## 同样大小的 W，可以把两条都读对

外积直接累加不是唯一写法。令同一个2×2矩阵同时满足W*k_A=v_A、W*k_B=v_B：A的约束固定第一列为(1,0)，B再给出0.6+0.8b=0、0.8d=1，所以W*=[[1,−0.75],[0,1.25]]。两条key保持不变，读回却都精确。推广到64维时，线性独立条件下M≤64的精确恢复区，与过载后约M=128达到R=1的区间不同；更好的写法延后干扰，但没有无限容量。

### 只换 W，先检查 A

原先把两次外积直接相加，没有要求每一条都单独读对。现在改写入办法：一起求一个W星，使W星乘A的key得到A的value，乘B的key得到B的value。A的key是(1,0)，所以矩阵第一列必须是(1,0)。B又要求第一行的零点六被抵消、第二行得到一，因此另外两个数解成负零点七五和一点二五。尺寸仍是两行两列，线索和内容也没变，变的是四个权重如何联合选择。先查A：新读出恰好是(1,0)。

[对应图解与此步说明](pages/AR04.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

令W*=[[a,b],[c,d]]。W*k_A=v_A给a=1、c=0；W*k_B=v_B给0.6a+0.8b=0、0.6c+0.8d=1。故唯一解为[[1,−0.75],[0,1.25]]。本例展示改写入的可行性，不声称真实网络用这一步解析求逆完成全部学习。

</details>

### 再检查 B，key 仍不正交

再查B。W星第一行给出零点六减去零点七五乘零点八，结果为零；第二行给出一点二五乘零点八，结果为一，所以读回(0,1)。原来外积W会读出(0.6,1)，比较就能看到串扰被消掉。两条key始终没有变得正交；这两个独立方向可以由合适的线性变换分开。新W不是凭空出现的标准答案，而是由两条读回约束共同求出的。

[对应图解与此步说明](pages/AR04.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

这里解的是无正则最小二乘问题；有限独立key的可拟合性，不保证噪声查询、病态矩阵或未见输入也能精确读回。

</details>

### 精确恢复与阈值改善是两件事

回到六十四维的曲线，灰色仍是外积累加，蓝色是联合拟合。key线性独立时，六十四条以内可以精确恢复；这段零误差区和后面约一百二十八条才达到R等于一的区域要分开。过载部分采用各向同性近似，两条曲线后段仍会升高。更认真写入延后了问题，却没有消除问题。那就回到读取：弱匹配能否少贡献一些？

[对应图解与此步说明](pages/AR04.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

过载投影中目标项是$P_{jj}v_j$，不是固定的$v_j$；R约为$\sqrt{M/d_k-1}$。约2dₖ是干扰/实际目标项阈值，不是精确恢复条数。

</details>

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

W*=[[1,−0.75],[0,1.25]] 可直接核验两次乘法。拟合范围、精确恢复区和过载阈值各有不同含义，完整伪逆与投影推导保留。

### 与本页直接相关的完整材料

- [AM07 · 同样一个线性层，可以把两条都读对](pages/AM07.html)：原图、逐态说明与已校准推导。
- [AM08 · 最优线性写入能延后干扰，仍然有边界](pages/AM08.html)：原图、逐态说明与已校准推导。

### 条件、推导与来源

#### AM07 · 同样一个线性层，可以把两条都读对

先改写入：key/value与矩阵尺寸都不变，只重新选择权重。

求解`min_W Σᵢ||Wkᵢ−vᵢ||²`。本例代入可直接核验：`W*k_A=(1,0)`；`W*k_B=(0.6−0.75×0.8,1.25×0.8)=(0,1)`。独立key数量不超过输入维度时，无正则的线性回归可拟合所有这些指定关联。病态key、数值精度、噪声查询是另外的问题。

### 来源与继续阅读

[Alex Wang：对应原文小节](https://alexwang.ai/posts/associative-memory/#the-optimal-linear-memory-store)。

[I02 原阅读材料](pages/I02.html)。旧阅读材料保留自身的算例与记号；不要将旧三条目行向量例与本节两条目列向量例混算。

[完整推导与实验口径](topics/memory-capacity.html) · [原文配套源码入口](https://github.com/KeAWang/associative-memory-blog)。

#### AM08 · 最优线性写入能延后干扰，仍然有边界

手算例说明写入能改善；曲线检查改善在哪个范围成立。

`M>d_k`且K满列秩时，`W*=VᵀK(KᵀK)⁻¹`。权重矩阵`P=K(KᵀK)⁻¹Kᵀ`是投影，目标贡献是`P_jj v_j`，不能仍把目标系数写成1。由`Σ_(i≠j)P_ij²=P_jj−P_jj²`，若`P_jj≈d_k/M`，比值近似`√(M/d_k−1)`。因此约`2d_k`是“干扰约等于信号”的量级，不是精确恢复`2d_k`条。全节R的分母是实际目标项`a_jj v_j`，所以它不普遍等于`||f(k_j)−v_j||/||v_j||`，更不是错误率。

### 来源与继续阅读

[Alex Wang：对应原文小节](https://alexwang.ai/posts/associative-memory/#the-optimal-linear-memory-store)。

[I03 原阅读材料](pages/I03.html)。旧阅读材料保留自身的算例与记号；不要将旧三条目行向量例与本节两条目列向量例混算。

[完整推导与实验口径](topics/memory-capacity.html) · [原文配套源码入口](https://github.com/KeAWang/associative-memory-blog)。

[两条线性约束怎样求出W*](./pages/AR04.html)：保留两条key/value，核对W*两行乘法和线性独立条件。

[精确恢复与过载阈值](./pages/AM08.html)：用64维曲线区分M≤64零误差区和约128的R=1阈值。

[伪逆、投影与目标项分母](./topics/memory-capacity.html)：展开过载区的P矩阵及实际目标贡献，解释为什么不能说精确存128条。

</details>

[逐页阅读与备课模拟](pages/AR04.html)

## 让弱匹配在汇总前少出力

此处回到原始key匹配分数[1,0.6]，不使用W*的输出。对分数逐项施加ReLU不改变这两个正数，再平方得到[1,0.36]，最后才汇总value。输出由v_A+0.6v_B变为v_A+0.36v_B。顺序决定含义：处理每条关联的响应与处理混合后的内容坐标不同；本页也没有将分数归一化为概率。

### 回到原始分数，不接 W* 的答案

刚才改的是怎样写入。现在走另一条路，明确回到最初两条key的匹配分数：A是一，B是零点六。这里没有接着把W星的正确答案做平方，也不重新训练W。我们保留每条匹配，在它们汇总成答案之前，单独改变每条内容能够贡献多少。

[对应图解与此步说明](pages/AR05.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

本页从联合拟合路线退回原始K/V匹配，以隔离读取规则的作用。始终不使用W*输出作为非线性函数的输入。

</details>

### ReLU不变，平方才压小正数

ReLU先把负分数截成零；不过眼前两个数都为正，因此只做ReLU并没有改变它们。再平方，一仍是一，零点六变成零点三六。目标保持，较弱的正匹配相对下降。顺序很关键：先对每项响应做非线性，再汇总value；不是对已经混在一起的输出做一次平方。

[对应图解与此步说明](pages/AR05.html#b1)

### 比较实际贡献，B仍然存在

于是同一查询从一份A加零点六份B，变成一份A加零点三六份B。B并没有消失，只是少贡献了一些。我们现在获得的是选择性的具体机制，不是一个能保证任何数据都检索正确的开关。把刚才发生的三个动作连起来：比较线索、逐项非线性、再汇总内容，看看它像哪一种已经见过的网络。

[对应图解与此步说明](pages/AR05.html#b2)

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

本页未归一化。$f(x)=\sum_i v_i\sigma(k_i^\top x)$；平方ReLU是$\max(s,0)^2$。

### 与本页直接相关的完整材料

- [AM09 · 弱匹配经过非线性，能少贡献一些](pages/AM09.html)：原图、逐态说明与已校准推导。

### 条件、推导与来源

#### AM09 · 弱匹配经过非线性，能少贡献一些

线性写入仍有边界；现在回到原始相似度，只改读取规则。

`f(x)=Σᵢvᵢσ(kᵢᵀx)`；本页没有归一化。平方ReLU是`max(s,0)²`，不是对所有带符号相似度直接平方。负相关项先被截断，避免把强负匹配变成强正贡献。

### 来源与继续阅读

[Alex Wang：对应原文小节](https://alexwang.ai/posts/associative-memory/#mlp-as-a-nonlinear-memory-store)。

[M03 原阅读材料](pages/M03.html)。旧阅读材料保留自身的算例与记号；不要将旧三条目行向量例与本节两条目列向量例混算。

[完整推导与实验口径](topics/memory-capacity.html) · [原文配套源码入口](https://github.com/KeAWang/associative-memory-blog)。

[先改匹配分数，再汇总内容](./pages/AM09.html)：在A/B算例中分别看ReLU截负、平方压低弱正响应以及输出变化。

[从非线性读取认出MLP](./pages/AR06.html)：把同一计算链对应到W₁、σ、W₂，说明手工构造与训练模型的差别。

</details>

[逐页阅读与备课模拟](pages/AR05.html)

## 从已经发生的运算中，认出 MLP

匹配线索Kx、逐项非线性σ、组合内容Vᵀσ(Kx)，构成两层MLP的计算形式。将K和Vᵀ分别称为W₁和W₂，运算本身不变。在手工构造中，中间宽度H=M，每条候选占一个响应；真实模型的方向由训练共同形成，不必逐行对应人类事实。随机检索曲线说明非线性可改变干扰积累，显式K/V的存储也随M增长。

### 沿三步辨认计算

我们不是先摆出一个MLP名词，再给它找用途。刚才解决读取问题时，已经走出了这条计算链：第一个矩阵把输入与不同线索比较，中间逐项施加非线性，第二个矩阵把各项响应组合为输出。请沿箭头再走一次，计算对象还是同一批线索、响应和内容。两层MLP的形式就在这三个动作里。

[对应图解与此步说明](pages/AR06.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

MLP是多层感知机；此处指带逐项非线性的两层前馈结构。先辨认已经做过的三个动作，再给W₁、W₂名称，避免把命名当作新的运算。

</details>

### 只换矩阵名称，不换计算

把第一个矩阵叫W一，第二个叫W二，运算并没有换。显式构造中，每条候选占一个中间响应，所以宽度H等于条目数M。真实模型中的方向由训练形成，不必一行对应一条人类能命名的事实；多个方向可以共同参与一个判断。这个关联记忆视角帮助我们理解计算，不是把MLP直接还原成一格一条的知识字典。

[对应图解与此步说明](pages/AR06.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

真实FFN还可能带偏置、门控、残差与归一化。Geva等研究支持参数化关联解释，但不能由此推出知识全部储存在MLP或一单元一事实。

</details>

### 两个条目的变化，成为一条曲线的移动

换回同条件随机检索，灰色是线性，紫色是ReLU，绿色是平方ReLU。每个无关条目少贡献一点，很多项累积起来，达到同一条R等于一的线就要更多条目。这里平方曲线到千条量级，当前球面RMS口径约二千八百一十七。与此同时，显式K/V也随条目数增长；曲线比较的是读取规则，不是在固定总参数量里免费塞入更多知识。

[对应图解与此步说明](pages/AR06.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

平方RMS阈值2817与原博客近似约2700分开标识。立方约38299、SwiGLU特设及完整高阶矩推导在AM11完整阅读，不进入默认下一步。

</details>

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

保留显式构造H=M这一条件。容量曲线不能直接解释固定宽度MLP能记住多少现实事实。

### 与本页直接相关的完整材料

- [AM10 · 比较线索、调节响应、汇总内容：认出MLP](pages/AM10.html)：原图、逐态说明与已校准推导。
- [AM11 · 改变响应函数，容量曲线为什么会移动？](pages/AM11.html)：原图、逐态说明与已校准推导。

### 条件、推导与来源

#### AM10 · 比较线索、调节响应、汇总内容：认出MLP

匹配、非线性与汇总的操作已建立，现在辨认其网络形式。

[Geva等](https://arxiv.org/abs/2012.14913)在其研究模型中将FFN的key响应与文本模式、value与输出分布联系起来，并分析多个记忆贡献的组合。本页只采用这一受实验支持的解释，不把全部知识归属到MLP，不把每个hidden unit等同于一条事实。偏置、残差、归一化和门控结构另在材料中展开。

### 来源与继续阅读

[Alex Wang：对应原文小节](https://alexwang.ai/posts/associative-memory/#mlp-as-a-nonlinear-memory-store)。

[M04 原阅读材料](pages/M04.html) · [P05 原阅读材料](pages/P05.html)。旧阅读材料保留自身的算例与记号；不要将旧三条目行向量例与本节两条目列向量例混算。

[完整推导与实验口径](topics/memory-capacity.html) · [原文配套源码入口](https://github.com/KeAWang/associative-memory-blog)。

#### AM11 · 改变响应函数，容量曲线为什么会移动？

从单个弱匹配的降低，走向大量随机候选的整体干扰。

对球面均匀单位key，`s=kᵀx`，精确查询目标得分为1。`E[ReLU(s)^(2p)]=(2p−1)!!/[2d_k(d_k+2)…(d_k+2p−2)]`，因此RMS干扰比为这一矩乘`M−1`再开方。大维度近似给出平方和立方的不同常数，不能只写`d_k^p`后把它当精确计数。独立复算在`d_k=64`时，平方ReLU的RMS阈值约2817；blog中常用近似约2700，二者指标/近似口径应分别标明。

### 来源与继续阅读

[Alex Wang：对应原文小节](https://alexwang.ai/posts/associative-memory/#reducing-interference-with-higher-powers)。

[M03 原阅读材料](pages/M03.html)。旧阅读材料保留自身的算例与记号；不要将旧三条目行向量例与本节两条目列向量例混算。

[完整推导与实验口径](topics/memory-capacity.html) · [原文配套源码入口](https://github.com/KeAWang/associative-memory-blog)。

[两层MLP的关联记忆读法](./pages/AM10.html)：给出K/V与W₁/W₂的尺寸对应，说明一单元一事实为何不是结论。

[线性、ReLU与高阶响应曲线](./pages/AM11.html)：保留各条RMS曲线、阈值和显式K/V存储随M增长的条件。

[指数与幂次为何相关](./pages/AM12.html)：展示指数级数及截断曲线，并解释低阶常数项和负响应的边界。

</details>

[逐页阅读与备课模拟](pages/AR06.html)

## 指数拉开比例，softmax给出分配

二维A/B例固定β=4，原匹配分数[1,0.6]经指数成为[54.598,11.023]。B/A由0.6降为约0.202，因此选择性增强；两项绝对值变大不妨碍相对干扰减小。再除以共同总和65.621，得到[0.8320,0.1680]，比例不变、总和为一。最后用这两个权重汇总value，仍然得到混合输出。它与常用attention公式的尺度写法不同，计算职责一致。

### 指数都变大，为什么相对干扰更小？

仍是同一组A/B关联，原分数是一和零点六，这一页锐度β固定为四。取指数后分别约为五十四点五九八和十一点零二三；两个绝对值都变大了。但以A为一份，B只剩零点二零二份，比原来零点六少得多。我们关心的是B相对于A有多大，不能仅看指数输出是否变大来判断干扰。

[对应图解与此步说明](pages/AR07.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

二维演示β=4：exp(4)=54.598150、exp(2.4)=11.023176，B/A=exp(−1.6)=0.2018965。尚未进入64维容量实验。

</details>

### 共同除以总和，比例不变

现在把两项都除以同一个总和六十五点六二一，得到约零点八三二和零点一六八。看权重条，A占百分之八十三点二，B占百分之十六点八。总和变成一，而B与A的相对比例没变。读回因此仍是两个value的混合，只是更偏向A；归一化不是突然把B删除，更不是把胜出标签直接当答案。

[对应图解与此步说明](pages/AR07.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

归一化分母65.621326；权重[0.832018385,0.167981615]。数值稳定实现先减最大logit再指数；只除以总和不能避免溢出。

</details>

### 把这条读取链与 attention 对上

匹配、取指数、除以总和、汇总value，就是softmax注意力的基本读取过程。上一讲通常把QK转置除以key维度的平方根；这里先将向量规范成单位长度，再用β表示锐度。尺度约定不同，比较的仍是匹配强弱。两条关联上的机制已经清楚：指数拉开比例，归一化给出总和为一的分配。下一页才切回六十四维、许多随机候选，用相同指标检查它能走多远。

[对应图解与此步说明](pages/AR07.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

列向量约定$f(x)=V^\top\operatorname{softmax}(\beta Kx)$。标准attention为$\operatorname{softmax}(QK^\top/\sqrt{d_k})V$。若q、k典型长度约√dₖ，可对应单位向量约定下β≈√dₖ，并非任意训练模型的精确恒等式。指数与幂次的完整支线：见AM12/b1、b2，另用dₖ=64、β=8，不能混为本页条件。

</details>

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

本页整个默认过程固定二维[1,0.6]、β=4。指数与幂次的联系完整保留在AM12深入阅读；AM13保留缩放、稳定实现和原公式。

### 与本页直接相关的完整材料

- [AM12 · 指数怎样拉开强匹配和弱匹配？](pages/AM12.html)：原图、逐态说明与已校准推导。
- [AM13 · 归一化以后，就是熟悉的softmax读取](pages/AM13.html)：原图、逐态说明与已校准推导。

### 条件、推导与来源

#### AM12 · 指数怎样拉开强匹配和弱匹配？

提高幂次以外，指数也可以改变强弱匹配间的相对贡献。

`exp(βs)=Σ_(p≥0)(βs)^p/p!`。所有指数项整体除以目标权重后，非目标项相对权重为`exp(β(s_i−1))`。本页β=4仅为二维演示，后面的随机64维容量实验另用β=8，切换处必须明示。

### 来源与继续阅读

[Alex Wang：对应原文小节](https://alexwang.ai/posts/associative-memory/#self-attention-as-a-non-parametric-memory-store)。

[I04 原阅读材料](pages/I04.html) · [M03 原阅读材料](pages/M03.html)。旧阅读材料保留自身的算例与记号；不要将旧三条目行向量例与本节两条目列向量例混算。

[完整推导与实验口径](topics/memory-capacity.html) · [原文配套源码入口](https://github.com/KeAWang/associative-memory-blog)。

#### AM13 · 归一化以后，就是熟悉的softmax读取

回到两条key、β=4的例子，把正响应归一化成总和1。

用列向量查询记号，`f(x)=Vᵀsoftmax(βKx)`。标准attention为`softmax(QKᵀ/√d_k)V`，差别包括行列约定和Q投影。若q、k的典型长度约`√d_k`，其内积缩放可对应单位向量约定下`β≈√d_k`，不是对任意训练模型都精确成立。实现稳定softmax需先减最大logit，再指数和归一化；仅“除以总和”不能保证计算中不溢出。[Transformer原论文](https://arxiv.org/abs/1706.03762)。

### 来源与继续阅读

[Alex Wang：对应原文小节](https://alexwang.ai/posts/associative-memory/#self-attention-as-a-non-parametric-memory-store)。

[I04 原阅读材料](pages/I04.html)。旧阅读材料保留自身的算例与记号；不要将旧三条目行向量例与本节两条目列向量例混算。

[完整推导与实验口径](topics/memory-capacity.html) · [原文配套源码入口](https://github.com/KeAWang/associative-memory-blog)。

[从指数到softmax的一次完整手算](./pages/AR07.html)：列出β=4的指数、共同分母、归一权重及value混合输出。

[标准尺度与稳定softmax](./pages/AM13.html)：比较单位向量β与QKᵀ/√dₖ，并解释先减最大logit的数值作用。

[指数的级数展开与截断](./pages/AM12.html)：改用64维β=8的独立曲线实验，保留不同截断项的条件与结果。

</details>

[逐页阅读与备课模拟](pages/AR07.html)

## 同一实验里，读取规则改变了多少？

容量对照重新采用64维随机单位key/value、精确查询和β=8，不延续上一页二维β=4的算数。相同RMS指标和R=1参照下，线性、平方ReLU、指数的阈值分别约65、2817、127万。数量级说明读取规则的重要性；它没有把显式候选的保存和计算成本消掉，也不是固定现实模型可以背诵的知识条数。

### 先确认条件，再读同一比较线

现在明确换回随机向量实验：key和value都是六十四维，查询恰好等于一个已存key，指数锐度β为八。三条曲线使用同一种RMS比值与R等于一的线。沿交点看，线性是几十条，平方ReLU是千条，指数到了百万量级。变化来自读取分配的选择性，不是把三个不同任务的分数拼在一起。

[对应图解与此步说明](pages/AR08.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

从AR07的二维β=4切换到dₖ=dᵥ=64、β=8，目的由展示一次计算变为比较随机检索量级。图中线性65、平方2817、指数约127万采用同一球面RMS口径。

</details>

### 把百万条放回它的实验含义

当前球面RMS计算约一百二十七万，高斯近似约一百二十万。它们都是这组理想随机检索条件的量级，不是现实模型保证的知识数或上下文长度。候选仍需保存、计算，真实查询也常不等于目标key。这个结论已经足够有意思：读取规则本身能改变可用关联的范围。接下来回到Transformer，问这些K/V究竟从哪里来。

[对应图解与此步说明](pages/AR08.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

可继续阅读AM16的长上下文锐度调整（LogN、Su、YaRN）和资源限制。本段不在默认路线展开各算法。噪声查询相似度ρ<1会降低相对目标优势。

</details>

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

球面RMS约127万、高斯近似约120万与博客采样统计属于不同口径。幂次、指数、查询噪声和候选存储的完整条件可从关联阅读继续。

### 与本页直接相关的完整材料

- [AM15 · 注意力的检索容量，要连同实验条件一起读](pages/AM15.html)：原图、逐态说明与已校准推导。
- [AM16 · 上下文变长，读取的锐度也值得重新考虑](pages/AM16.html)：原图、逐态说明与已校准推导。

### 条件、推导与来源

#### AM15 · 注意力的检索容量，要连同实验条件一起读

条目可随输入增加；在大量候选下，读取选择性还能维持到什么量级？

对高维随机单位key相似度近似`N(0,1/d_k)`，精确查询下相对目标的RMS干扰近似`√M·exp(β²/d_k−β)`。令其为1得到`M≈exp(2β−2β²/d_k)`；`d_k=64,β=8`给`e^14≈1.20×10^6`。独立球面积分RMS复算约`1.27×10^6`，与高斯近似和作者采样统计不是同一口径。若目标相似度变为ρ，同一高斯估计替换为`exp(2βρ−2β²/d_k)`，可在补充材料演示查询噪声使收益下降。

### 来源与继续阅读

[Alex Wang：对应原文小节](https://alexwang.ai/posts/associative-memory/#self-attention-as-a-non-parametric-memory-store)。

[I04 原阅读材料](pages/I04.html)。旧阅读材料保留自身的算例与记号；不要将旧三条目行向量例与本节两条目列向量例混算。

[完整推导与实验口径](topics/memory-capacity.html) · [原文配套源码入口](https://github.com/KeAWang/associative-memory-blog)。

#### AM16 · 上下文变长，读取的锐度也值得重新考虑

固定锐度仍会积累干扰；只调整读取锐度，能否部分补偿长度增长？

原始Qwen报告中的LogN做法、Su的推导以及YaRN的尺度不同，不能合称所有模型都这样缩放。参考：[Qwen](https://arxiv.org/abs/2309.16609)、[Su原文](https://kexue.fm/archives/8823)、[YaRN](https://arxiv.org/abs/2309.00071)。有限个互异key、精确查询、可任意提高锐度的数学极限，与有限精度、计算预算、训练分布及噪声查询下的实际系统应分开讨论。

### 来源与继续阅读

[Alex Wang：对应原文小节](https://alexwang.ai/posts/associative-memory/#handling-many-key-value-pairs-in-long-context)。

[M03 原阅读材料](pages/M03.html)。旧阅读材料保留自身的算例与记号；不要将旧三条目行向量例与本节两条目列向量例混算。

[完整推导与实验口径](topics/memory-capacity.html) · [原文配套源码入口](https://github.com/KeAWang/associative-memory-blog)。

[同条件容量曲线怎样读](./pages/AM15.html)：比较线性、平方、指数在共同RMS阈值下的交点，并区分球面值与高斯近似。

[查询不精确时会怎样](./topics/memory-capacity.html)：完整推导解释查询相似度降低为何削弱目标优势。

[长上下文里的读取锐度](./pages/AM16.html)：按问题继续读LogN、Su、YaRN及其存储与计算边界；不作为主讲支线。

</details>

[逐页阅读与备课模拟](pages/AR08.html)

## 参数没变，这次可读的内容可以变

训练参数与当前状态都能排列成矩阵，但产生方式不同。W₁/W₂、W_K/W_V是普通推理中固定的规则；当前输入X通过这些规则产生本次K/V。增加输入位置会增加K/V的行数，改变内容，却不改变投影参数尺寸。把A12秒、B8秒的新记录加入上下文可以改变本次回答，这本身不构成参数更新或跨请求的永久记忆。

### 先辨认参数中的关联

刚才从MLP理解关联记忆时，承担检测和输出方向的是训练后的W一和W二。普通推理里，这些参数保持不变。不同输入会激活不同响应组合，但模型不会仅仅因为读了一条新记录，就自动把它永久刻进参数。先把这一类对象认清：训练留下的是处理输入的规则。

[对应图解与此步说明](pages/AR09.html#b0)

### 投影规则固定，本次K/V随输入计算

右边的attention也有训练参数：W下标K和W下标V，是生成key和value的投影规则。把当前输入X交给同一规则，才得到本次的K/V。输入中增加位置，K/V增加行，但投影矩阵本身不因此变大。我们要分清规则和这次规则处理出来的内容，不能把它们含糊地都叫权重。

[对应图解与此步说明](pages/AR09.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

非参数式条目描述的是条目可随输入长度变化，不代表attention没有可训练参数。每层/每头的K/V来自对应表示，不是一token一事实。

</details>

### 用A/B记录检查这个区别

现在把这次实验记录放进当前输入：相同设置下，A用十二秒，B用八秒。模型可以利用这些新数字改变回答，而参数完全不必更新。换一份记录，本次K/V和读到的内容会变；下一个请求还能否看到旧记录，要看应用是否重新提供或保留上下文，不能只凭上次读过就说永久学会了。后半课会继续用这份A/B记录检验训练与使用的区别。

[对应图解与此步说明](pages/AR09.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

KV cache是保留中间计算结果的工程机制，既不是优化器状态，也不等同于参数学习。普通推理、应用保留、参数更新分开。

</details>

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

A12秒/B8秒是本课贯穿记录；本段引入它的身份，后半课只添加新任务和新测量，不重置事实。

### 与本页直接相关的完整材料

- [AM14 · 有的关联在参数里，有的条目来自这次输入](pages/AM14.html)：原图、逐态说明与已校准推导。

### 条件、推导与来源

#### AM14 · 有的关联在参数里，有的条目来自这次输入

读取公式已经连上，接下来区分关联在参数中还是来自当前输入。

此处“非参数式”描述可随输入长度增长的条目，不表示attention没有可训练参数。每层、每头的key/value是该层表示的投影，不是“一条token对应一条独立事实”。KV缓存是保留计算结果的工程机制，本页只埋线索，具体成本由后续服务段展开。

### 来源与继续阅读

[Alex Wang：对应原文小节](https://alexwang.ai/posts/associative-memory/#self-attention-as-a-non-parametric-memory-store)。

[M04 原阅读材料](pages/M04.html) · [N08 原阅读材料](pages/N08.html) · [N09 原阅读材料](pages/N09.html)。旧阅读材料保留自身的算例与记号；不要将旧三条目行向量例与本节两条目列向量例混算。

[完整推导与实验口径](topics/memory-capacity.html) · [原文配套源码入口](https://github.com/KeAWang/associative-memory-blog)。

[参数规则与本次K/V](./pages/AM14.html)：沿X→投影→K/V看行数与内容变化，区分上下文使用、应用保留和参数学习。

[示例进入输入会改变什么](./pages/RC-A1.html)：后半课以同一AB记录和CD示例检查普通ICL没有优化器更新时的变化。

[缓存保存的是哪种状态](./pages/RC-V1.html)：推理页区分prefill、decode、各层K/V与训练优化器状态。

</details>

[逐页阅读与备课模拟](pages/AR09.html)

## 把结构上的可能性，交给真实训练检验

手工关联例建立了结构怎样承载与读取信息的可能性，不能单独证明真实训练会形成何种能力。attention与MLP都处理当前表示、使用训练参数；它们在完整网络中共同作用。接下来的视觉证据分两步回答新问题：照片怎样成为结构可接收的输入，以及实际训练后的表示能否在独立任务上取得收益。

### 放回熟悉的Transformer

回到上一讲的Transformer框图，attention与MLP现在多了一层可以计算的含义。前者按当前条目读取，后者可以从训练参数中的关联来理解；它们都在变换表示，协同影响后续结果。我们已经回答了怎样可能承载与读取，却还没有回答真实训练到底学成了什么。能表示、能学到、能在任务上用好，是三个需要分别检查的问题。

[对应图解与此步说明](pages/AR10.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

线性层梯度更新ΔW=−η(∂L/∂y)xᵀ也是外积形式，但误差信号不是原始事实value；不能把一步更新说成写入一条完整知识。

</details>

### 把观察对象交给同一张照片

刚才的小例子由我们亲手安排线索和内容，真实模型要从数据与目标中形成这些表示。现在换成能直接看见对象与结果的视觉任务。眼前是一张校车照片：我们先问它如何接入同类结构，再用实际训练和独立评测看效果怎样。结构提供可能性，成绩检验它是否在这些条件下被用起来。先别急着讨论内部含义，下一步从照片怎样变成输入开始。

[对应图解与此步说明](pages/AR10.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

校车照片只是将研究问题交给可观察输入；本页不提前切patch或给出分类结果，避免与VR01/VR02重复。

</details>

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

attention与MLP的计算结构可以承担读取与关联，但结构上的可能性还不能证明真实训练已经形成了所需能力。前面的手工例子中，key和value由我们指定；真实模型要从数据和训练目标中形成表示，再用独立任务评测检验。接下来先看图像如何进入模型，以及不同训练条件下的实际表现。

### 与本页直接相关的完整材料

- [AM17 · 有承载机制，还要把知识学进去](pages/AM17.html)：原图、逐态说明与已校准推导。
- [AM18 · 机制说得通以后，去视觉实验中看结果](pages/AM18.html)：原图、逐态说明与已校准推导。

### 条件、推导与来源

#### AM17 · 有承载机制，还要把知识学进去

机制分析完成后，回到开场的另一条线：训练实际形成了什么能力？

对线性层`y=Wx`，一步梯度下降是`ΔW=−η(∂L/∂y)xᵀ`，形式上也是外积更新。它说明梯度可以怎样改变输入与输出方向的关联；`−η∂L/∂y`是误差信号，不是原始事实value，不能说每一步梯度把一条完整知识原样存入。整网的非线性、表示变化和优化历史还需另论。

### 来源与继续阅读

[Alex Wang：对应原文小节](https://alexwang.ai/posts/associative-memory/#closing-thoughts)。

[M04 原阅读材料](pages/M04.html)。旧阅读材料保留自身的算例与记号；不要将旧三条目行向量例与本节两条目列向量例混算。

[完整推导与实验口径](topics/memory-capacity.html) · [原文配套源码入口](https://github.com/KeAWang/associative-memory-blog)。

#### AM18 · 机制说得通以后，去视觉实验中看结果

增加模型与材料是否改善任务表现，需要真实训练和评测来回答。



### 来源与继续阅读

[Alex Wang：对应原文小节](https://alexwang.ai/posts/associative-memory/#closing-thoughts)。

[X01 原阅读材料](pages/X01.html)。旧阅读材料保留自身的算例与记号；不要将旧三条目行向量例与本节两条目列向量例混算。

[完整推导与实验口径](topics/memory-capacity.html) · [原文配套源码入口](https://github.com/KeAWang/associative-memory-blog)。

[结构能表示，训练是否学到](./pages/AM17.html)：对齐承载能力、训练结果和任务使用，说明外积梯度不等于一次写入事实。

[图像怎样成为向量序列](./pages/VR01.html)：沿同一校车照片追踪patch、投影与位置表示，再进入真实任务评价。

[视觉训练的两类证据](./topics/vision-scaling.html)：完整阅读ViT条件比较与MAE目标、迁移结果，分清结构与投入。

</details>

[逐页阅读与备课模拟](pages/AR10.html)

## 同一张照片，改变进入模型的方式

图像无需先翻译成文字才能进入Transformer。照片切成patch，每块像素展平并经过可训练线性投影，再加入与原图位置对应的位置表示。所有patch使用同一投影规则，随后形成encoder接收的向量序列。课堂4×4网格只用于追踪裁片；ViT-B/16中的16是16×16像素patch边长，224×224图片通常有196块。

### 原图与patch一一对应

同一张校车照片，切块、编号，再按顺序排成序列。四乘四的十六块是教学网格，不是实验真实块数，也不是十六个词。沿一个编号，从右侧裁片找回原图位置。

[对应图解与此步说明](pages/VR01.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

patch意为图像块，encoder意为编码器。4×4是这张图上的教学网格，真实ViT /16为16×16像素patch；两种数字的职责不同。

</details>

### 打开第7块的接口

打开第七块。像素展平为向量，经过可训练线性投影，再加位置表示，就成为模型输入。其他块使用同一投影规则。真实ViT的/16指十六乘十六像素块，二百二十四图像通常有一百九十六块。

[对应图解与此步说明](pages/VR01.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

真实/16指16×16像素patch；224×224图像通常有196块。此校车照片来自MAE Figure2，用于接口教学，不冒称ViT原实验输入。

</details>

### 接得进去以后，还要看训练效果

全部向量交给encoder，经过attention与MLP，接上分类输出。接口已经接通，训练效果还要看实验：更大的ViT，在同一个分类任务上就一定更好吗？

[对应图解与此步说明](pages/VR01.html#b2)

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

4×4是教学网格；真正的patch规格与原论文配置分开。照片来源、编号与裁片一一对应。

### 与本页直接相关的完整材料

- [N11 · 把一张图变成一串可以计算的向量](pages/N11.html)：原图、逐态说明与已校准推导。

### 条件、推导与来源

#### N11 · 把一张图变成一串可以计算的向量

图像分成 patch，每块像素展平后进行可训练线性投影并加位置表示。画面 4×4、16 个块仅是序列化教学示意。真实 ViT-B/16 的 /16 指 16×16 像素块；224×224 图像对应 14×14=196 块。图像取 MAE Figure 2 校车原图作为连续对象，不冒称为 ViT 论文中的原始示例。

来源：[ViT v2](https://arxiv.org/pdf/2010.11929v2)，§3.1；校车来自[MAE v3](https://arxiv.org/pdf/2111.06377v3)，Figure 2。

[相关的完整阅读材料](pages/X01.html)保留原有公式、引用和原始图解。

[图像块的输入接口](./pages/N11.html)：从教学网格到真实patch配置，解释展平、共享投影和位置表示。

[ViT原论文的结构与结果](https://arxiv.org/pdf/2010.11929v2)：含图像序列接口、预训练配置和真实迁移评价，核对/16的含义。

[视觉学习的完整问题链](./topics/vision-scaling.html)：接着读结构比较、图片自监督目标及训练后的分类迁移。

</details>

[逐页阅读与备课模拟](pages/VR01.html)

## 训练条件改变，同一对模型的排序也改变

ViT Figure3报告带标签预训练、ImageNet微调后的独立分类评价。纵轴为top-1准确率，横轴为ImageNet、ImageNet-21k、JFT-300M三种预训练数据集。粉色B/16与浅蓝L/16保持相同patch边长；在ImageNet列L/16低于B/16，到JFT列则反转。这个结果要求结合训练条件判断结构潜力。数据数量、组成和计算投入同时变化，不能把三个点读成只改样本数的因果实验。

### 一次读清坐标和一个点的来历

先看一个点的来历：在横轴指定的数据集里，图片和类别目标参与预训练，误差更新模型参数；随后按论文协议到ImageNet做带标签微调，最后用未参与训练的验证图片统计分类top-1正确率。纵轴就是这个百分比，横轴是三个不同预训练数据集。我们固定追踪粉色B/16与浅蓝色L/16，L是更大的配置；16表示相同的patch边长。灰色方点和范围保留为BiT卷积模型参照。

[对应图解与此步说明](pages/VR02.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

预训练流程中的类别目标来自相应有标签数据集；ImageNet微调继续更新参数，验证阶段统计top-1准确率。课堂校车来自MAE Figure2，仅作输入接口示意，不是此图实验样本。原图未提供供本课逐点复写的精确数表，因此屏幕只比较已确认的相对位置。

</details>

### 先看左列，大模型反而更低

只看ImageNet这一列，粉色B/16点高于浅蓝色L/16点：较大的L/16反而较低。两者用同样的patch边长，最终也在同一个ImageNet指标上评价。可见把结构做大，并没有在这套训练条件下自动换来更高正确率。先记住这个排序，保持两种颜色和模型名称不变，再看右列。

[对应图解与此步说明](pages/VR02.html#b1)

### 同一对模型移到JFT列

在JFT-300M这一列，浅蓝色L/16高于粉色B/16，排序反转。较大的结构在更充分的训练条件下获得更大的相对收益，小条件下的排序因此不能代表它的长期上限。图能直接支持的是这项观察；数据数量、数据组成和训练投入都改变了，仅凭这三个点不能分别算出每个因素的因果贡献。

[对应图解与此步说明](pages/VR02.html#b2)

### 把这次反转限定在实验实际改变的条件

把两列放在一起，结论是结构与训练条件要共同选择。这里的预训练仍使用类别标签，“预训练”说的是先后阶段，并不等于无标签。三个数据集的数量与组成同时变化，总计算也没有配平；图也没有证明卷积不能扩展。于是自然出现下一问：如果不再额外给每张图片标类别，图片本身还能怎样提供训练目标？

[对应图解与此步说明](pages/VR02.html#b3)

<details>
<summary>进一步解释与计算条件</summary>

ViT Figure4的同源JFT子集、冻结表示5-shot评价及ConvNeXt反证在相关完整材料。视觉5-shot不是语言提示ICL。

</details>

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

采用ViT v2 Figure3原图，保留数据集、模型身份、BiT范围与下游评价流程；不将不同数据集比较变成纯数据量因果实验。

### 与本页直接相关的完整材料

- [N12 · 这张图比较的，究竟是哪一次训练？](pages/N12.html)：原图、逐态说明与已校准推导。
- [N13 · 在这个条件下，做大 ViT 没有换来更好成绩](pages/N13.html)：原图、逐态说明与已校准推导。
- [N14 · 扩大训练以后，同一对模型的排序变了](pages/N14.html)：原图、逐态说明与已校准推导。

### 条件、推导与来源

#### N12 · 这张图比较的，究竟是哪一次训练？

ViT Figure 3 的横轴是 ImageNet、ImageNet-21k、JFT-300M 三个预训练数据集，数量与组成同时变化；纵轴为目标 ImageNet 的 top-1 分类准确率。这里先做带标签预训练，再带着参数到 ImageNet 进行带标签微调与验证集评测。因此“预训练”是学习流程位置，不必然指无标签训练。/16 表示 16×16 像素的 patch。灰色区间来自不同规模 BiT，不是单一小模型。

来源：[ViT v2](https://arxiv.org/pdf/2010.11929v2)，物理 p.7 Figure 3、§4.3、p.15 Table 5。

[相关的完整阅读材料](pages/X02.html)保留原有公式、引用和原始图解。

#### N13 · 在这个条件下，做大 ViT 没有换来更好成绩

左列比较同一 ImageNet 预训练数据集、同为 /16 patch、同一目标评测下的 B/16 与 L/16。L/16 更大，但该条件中准确率更低。图像局部先验可帮助解释为何卷积在较小训练条件下有效，但这张图不单独识别所有原因，也没有匹配每个模型的参数量与总计算。

来源：[ViT v2](https://arxiv.org/pdf/2010.11929v2)，Figure 3 左列。

[相关的完整阅读材料](pages/X02.html)保留原有公式、引用和原始图解。

#### N14 · 扩大训练以后，同一对模型的排序变了

JFT-300M 列中 L/16 高于 B/16，修正了仅凭左列得出的扩展判断。该图换了数据集数量和组成，训练计算也不完全相等，因此不把全部增益归为纯样本数。

![ViT 同源子集实验 Figure 4](assets/evidence/vit-v2-figure4.png)

Figure 4 在同源 JFT 子集上补充研究规模变化，其 5-shot 指冻结表征后拟合线性分类器，并非语言模型的提示 ICL。

![ConvNeXt Table 1](assets/evidence/convnext-v2-table1.png)

现代卷积同样可以从结构与训练配方获益；本段不主张卷积不能扩展。原图完整条件见[视觉扩展正文](topics/vision-scaling.html)。

来源：[ViT v2](https://arxiv.org/pdf/2010.11929v2)，Figure 3/4；[ConvNeXt](https://arxiv.org/pdf/2201.03545v2)，Table 1。

[相关的完整阅读材料](pages/X02.html)保留原有公式、引用和原始图解。

[三个数据集下的模型排序](./pages/VR02.html)：原Figure3与训练/微调/评价协议并读，保留B/16、L/16和BiT身份。

[更受控的JFT子集与5-shot评价](./topics/vision-scaling.html)：Figure4固定数据来源比较规模，说明冻结表示拟合与语言ICL不同。

[ViT v2原始论文](https://arxiv.org/pdf/2010.11929v2)：核对Figure3/4/5、模型配置与训练条件。

</details>

[逐页阅读与备课模拟](pages/VR02.html)

## 模型预测在这里，目标也在这里

MAE重建示例由同一原始校车图产生输入和目标：模型收到39/196个可见patch，根据它们预测被遮位置的像素。预测保留黄色车身、两层轮廓和窗户大致位置，但车窗边界和车头文字与原图有差异。目标像素来自遮挡前的原图，可以给误差定量计分。这个示例约80%遮挡，与常用75%训练设置分开；重建相似不等于下游分类已经有效。

### 先看模型实际收到的39块

我们见过完整校车照片，但模型这一轮只收到左边的零散块：一百九十六块中可见三十九块，约百分之八十被遮住。任务是根据可见部分，预测被遮像素。先有全图、再做遮挡，输入与目标就都能从材料本身产生；观众看到的全图不等于模型输入。

[对应图解与此步说明](pages/VR03.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

此Figure2示例约80%遮挡；MAE常见方法配置为75%，两者分开。这里mask是造训练题，不是因果attention mask。

</details>

### 先揭预测，不提前引用目标细节

中间出现论文报告的重建。可以认出黄色车身、上下两层和窗户的大致位置，但窗框边界和车头文字还不清楚。现在看到的是预测结果，还不能只凭轮廓相似就说它每处都补对。下一步揭开原图，在相同位置检查哪些结构恢复了、哪些细节仍错了。

[对应图解与此步说明](pages/VR03.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

此图来自MAE v3 Figure2的原始预测，未把可见原图块覆盖回重建图。该制作与来源事实用于解释预测身份，不作为主讲结论。示例39/196可见块约80%遮挡；常用方法训练设置75%须另分。

</details>

### 同位置比较误差，监督从原图来

原图里车窗框和车头文字更清晰；预测保留了车身的大结构，却没有恢复这些具体像素。两图中的同一位置因此给出可计算的误差。原图在遮挡之前已经存在，训练能从被遮位置的真实像素获得目标，不需要另请人逐张写答案。重建是否准确与表示能否用于分类仍是两个问题；下一页先沿这项误差看参数怎样更新，再看留下的表示怎样转用。

[对应图解与此步说明](pages/VR03.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

像素重建loss只计被遮位置，常用patch像素归一化。重建像不像与表示能否迁移分类需分别评价。

</details>

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

三图均来自MAE v3 Figure2校车行，固定身份与尺寸。真实重建不作美化；输入限制、预测、目标与后续独立评价分开。

### 与本页直接相关的完整材料

- [N15 · 只看这些碎片，模型要补回什么？](pages/N15.html)：原图、逐态说明与已校准推导。
- [N16 · 重建可以不完美，监督却可以很明确](pages/N16.html)：原图、逐态说明与已校准推导。

### 条件、推导与来源

#### N15 · 只看这些碎片，模型要补回什么？

本页左图是 MAE v3 Figure 2 校车行的真实遮挡输入，196 个 patch 中可见 39 个，约 80% 被遮住。观众之前见过全图，不代表模型该轮得到全图。遮挡人为构造了输入限制，原始图片同时提供预测目标；这里的 mask 是构造重建训练题，不是因果 attention mask。

来源：[MAE v3](https://arxiv.org/pdf/2111.06377v3)，物理 p.2 Figure 2 校车行。

[相关的完整阅读材料](pages/X03.html)保留原有公式、引用和原始图解。

#### N16 · 重建可以不完美，监督却可以很明确

三张图片固定为论文遮挡输入、论文重建、原始图像。重建图保留原始误差，不贴回可见区域，也不进行生成式美化。训练时只对被遮位置计算像素重建损失；原论文还讨论 patch 像素归一化等实现条件。重建是否像原图与预训练表征是否能迁移分类，是需要分别评价的两个问题。

来源：[MAE v3](https://arxiv.org/pdf/2111.06377v3)，Figure 2 与 §3。

[相关的完整阅读材料](pages/X03.html)保留原有公式、引用和原始图解。

[遮挡、预测和目标各在哪里](./pages/VR03.html)：同一校车三联图保留真实误差，解释39/196可见块和像素目标。

[误差怎样更新，表示怎样转用](./pages/VR04.html)：完整路径连接encoder、decoder、被遮位置loss、分类头和标签微调。

[MAE v3原图与方法](https://arxiv.org/pdf/2111.06377v3)：核对Figure2重建展示、方法遮挡设置和Table3下游评价。

</details>

[逐页阅读与备课模拟](pages/VR03.html)

## 误差更新参数，训练后的表示再转用

MAE预训练时，encoder处理可见patch，decoder结合其表示与mask占位预测像素；被遮位置的预测与原图目标形成loss，经反向传播更新参数。分类迁移保留encoder、移除重建decoder、接上分类头。完整图像全部patch进入模型，类别标签提供新的微调目标，之后由独立验证图片评价。可迁移的是训练后的参数与表示，并非那一张重建图或凭空出现的类别知识。

### 从可见块到被遮位置的预测

打开补图路径：大encoder只处理可见块，形成表示；表示与被遮位置的mask占位一起进入小decoder，产生像素预测。占位不是被遮的真实像素。原图走另一条目标支路，用来检查预测。

[对应图解与此步说明](pages/VR04.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

MAE此处的encoder/decoder表示重建职责，不是翻译模型自回归逐词输出的同义替代。encoder只处理可见patch，decoder接表示与mask占位；目标支路独立提供原图像素。

</details>

### 被遮位置的误差，回到训练参数

对齐同一被遮位置的预测与目标，差异形成重建loss，再通过反向传播更新encoder和decoder参数。样本、目标、损失、更新现在连起来了。自监督指材料自身提供目标，并非没有监督信号；请看更新箭头确实回到了参数。

[对应图解与此步说明](pages/VR04.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

方法结构示意采用常见75%遮挡，与前页真实展示约80%分开。MAE decoder预测像素，不是翻译逐词生成的decoder。

</details>

### 保留同一个encoder，换成分类使用

转到分类时，保留的是重建训练过的encoder参数，重建decoder被移除。完整图像的全部patch经过encoder，输出表示交给新接的分类头。类别答案从哪里来？来自目标任务的带标签训练图片；分类预测与类别目标形成损失，微调分类头和encoder。完成后再用独立验证图片统计准确率。于是补图不是直接变成分类答案，而是先提供有用的表示起点，再由新任务的监督把它用于分类。

[对应图解与此步说明](pages/VR04.html#b2)

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

MAE预训练的大encoder处理可见子集，小decoder结合mask token重建；下游保留encoder，输入全图，去除重建decoder，再微调和评测。两条路径在相同encoder处接续。

### 与本页直接相关的完整材料

- [N17 · 训练时补图，之后拿走的是哪一部分？](pages/N17.html)：原图、逐态说明与已校准推导。

### 条件、推导与来源

#### N17 · 训练时补图，之后拿走的是哪一部分？

MAE 的大 encoder 仅处理可见图像块。编码表示与 mask token 一起交给较小的重建 decoder，生成像素预测。下游分类保留 encoder，去掉重建 decoder，输入完整图像的全部 patch，添加分类头，进行带标签微调与独立评测。本结构图采用方法常见的 75% 遮挡说明，不将上页示例的 80% 混进方法配置。重建 decoder 与上一讲翻译 decoder 的接口不同。

来源：[MAE v3](https://arxiv.org/pdf/2111.06377v3)，物理 p.1 Figure 1 与 §3。

[相关的完整阅读材料](pages/X03.html)保留原有公式、引用和原始图解。

[重建训练的两条数据支路](./pages/VR04.html)：可见patch进入模型，原图提供目标；loss更新参数，目标不偷渡进输入。

[保留encoder后的分类评价](./pages/VR05.html)：移除decoder、接分类头、带标签微调后，用独立验证集比较收益。

[MAE结构与训练协议原文](https://arxiv.org/pdf/2111.06377v3)：核对encoder/decoder职责、mask token、被遮位置损失和迁移配置。

</details>

[逐页阅读与备课模拟](pages/VR04.html)

## 同模型的收益，要连同额外训练一起读

MAE Table3在ImageNet-1K、224×224评价中比较两条路线。B/16、L/16、H/14从头监督训练为82.3、82.6、83.1；MAE预训练后微调为83.6、85.9、86.9。相同L/16提升3.3个百分点，说明该路线有分类迁移收益。两路共享训练图片池，却非等计算：MAE还使用1600轮预训练。H/14的patch规格与B/L不同，448分辨率结果也不混入本图。

### 先立同模型的监督训练参照

先分开两个对象：ImageNet一K训练图片池用于学习，独立验证集用于评价。纵轴是二百二十四分辨率下的分类准确率。灰线来自论文自己的从头监督训练。重点追L/16的八十二点六，B与H留作趋势参照。

[对应图解与此步说明](pages/VR05.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

top-1是模型排名第一的类别与真实标签相同的比例。灰线、蓝线都由独立ImageNet验证图片评价；用于学习的训练图片池与验证集角色不同。

</details>

### 同一个L/16，82.6到85.9

加入蓝线：先做MAE预训练，再分类微调。同一个L/16从八十二点六到八十五点九，提升三点三个百分点。B和H也显示在图里。这把“学到的表示是否有用”交给另一项明确任务，不再仅凭重建照片作判断。

[对应图解与此步说明](pages/VR05.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

B/L/H从头82.3/82.6/83.1；MAE后83.6/85.9/86.9；差值1.3/3.3/3.8pp。H/14 patch规格不同；不混入448分辨率87.8。

</details>

### 同样图片池，不是同样计算

蓝线还多做一千六百轮重建预训练。同一图片池不等于同样计算，因此这是任务方式与投入共同改变了结果。我们已经看到可迁移收益，但分数仍没说明内部正在区分什么；这个问题需要换一种观察办法。

[对应图解与此步说明](pages/VR05.html#b2)

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

按MAE v3 Table3重绘，保留原表核对入口。训练图片池与验证集分开，224评测与448结果分开，同文对照与等计算实验分开。

### 与本页直接相关的完整材料

- [N18 · 先立参照：同一批训练图片，从头训练能做到什么？](pages/N18.html)：原图、逐态说明与已校准推导。
- [N19 · 先学重建，再做分类，大模型的收益更明显](pages/N19.html)：原图、逐态说明与已校准推导。

### 条件、推导与来源

#### N18 · 先立参照：同一批训练图片，从头训练能做到什么？

指标是独立 ImageNet 验证集上的分类 top-1，输入分辨率统一为 224×224。两条训练路线共享 ImageNet-1K 训练图片池，但验证集与训练图片池分开。论文 Table 3 的从头监督训练基线为 B/16 82.3、L/16 82.6、H/14 83.1；B/L/H 代表不同模型规模，H 的 patch 尺寸也为 /14，不能把跨规模图读成严格只改一个参数的实验。

来源：[MAE v3](https://arxiv.org/pdf/2111.06377v3)，物理 p.7 Table 3 / Figure 8。

[相关的完整阅读材料](pages/X04.html)保留原有公式、引用和原始图解。

#### N19 · 先学重建，再做分类，大模型的收益更明显

MAE 后微调成绩为 83.6、85.9、86.9，与从头监督训练逐模型差值为 1.3、3.3、3.8 个百分点。MAE 额外预训练 1600 epoch；共同使用训练图片池不等于等计算。ViT-H/448 的 87.8 使用不同分辨率，不混入本图 224 比较。

![MAE 原始 Table 3](assets/evidence/mae-v3-table3.png)

原表保留供核对配置；主屏曲线按 Table 3 重绘，不是新实验。

来源：[MAE v3](https://arxiv.org/pdf/2111.06377v3)，Table 3；本课按原表重绘。

[相关的完整阅读材料](pages/X04.html)保留原有公式、引用和原始图解。

[同一模型的收益与额外投入](./pages/VR05.html)：完整B/L/H表、百分点差值及1600轮条件就地可核，避免混入448分辨率结果。

[MAE Table3原始证据](https://arxiv.org/pdf/2111.06377v3)：查看原表及相关分类微调协议，区别同图片池与等计算比较。

[从任务成绩走向内部区分](./pages/VR06.html)：解释为什么下一段更换模型，进一步看同一单元的自然响应。

</details>

[逐页阅读与备课模拟](pages/VR05.html)

## 分数之外，网络内部在区分什么？

分类成绩回答表示是否有用，内部响应研究回答这些表示在区分什么。接下来的猫与汽车自然图来自InceptionV1同一单元的高响应例，研究对象已经更换；它不是前述MAE checkpoint的内部审计。保留同一单元与不同输入，才能进一步检查这些物体是否有共同结构，以及这种解释是否经得住新证据。

### 成绩不能替代内部解释

分类分数说明表示有用，却没解释内部形成了哪些区分。下面换一组能深入观察的网络，从内部响应寻找解释；这不是对刚才那台MAE checkpoint的审计。

[对应图解与此步说明](pages/VR06.html#b0)

### 让猫与汽车提出一个困惑

这里换到InceptionV1。同一个单元的高响应自然例里，为什么同时有猫和汽车？先留住这个困惑，下一段沿照片里的结构寻找解释。

[对应图解与此步说明](pages/VR06.html#b1)

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

分类分数告诉我们训练后的表示能否转用于任务，却不能直接说明网络内部的单元在区分什么。要继续追问，需要观察具体输入引起的内部响应。接下来的猫与汽车例子换用InceptionV1：这是另一个模型上的机制证据，不是对刚才MAE模型的内部审计。

### 与本页直接相关的完整材料

- [GF01 · 分数提高了，内部究竟学出了什么？](pages/GF01.html)：原图、逐态说明与已校准推导。

### 条件、推导与来源

#### GF01 · 分数提高了，内部究竟学出了什么？

N19 的 85.9% 是 MAE 预训练后 ViT-L 在给定分类微调设置下的 top-1 准确率；与同模型从头监督训练的 82.6% 相差 3.3 个百分点。额外 1600 epoch 预训练仍计入比较条件。这一结果支持容量能够被训练利用，不直接说明哪一个中间单元在做什么。

本段使用 Goodfire 文章中的 InceptionV1、作者自训的 ConvNeXt，以及文中语言模型案例。这里不是对前一页 MAE 的逐层机制验证。我们沿作者的观察和修正过程学习四类证据：自然输入上的响应、可视化工具产生的图、连接与干预，以及新的检验例。作者将其整体主张表述为工作假说；局部观察与全网判断分开。

来源：Nick Cammarata（2026），Goodfire，[Neural Networks Are Already Clean](https://already-clean.goodfire.com/)。 图与原始照片保留原作者权利；本课按原图选择固定状态、重排并加中文标注，未重跑原文模型实验。

[猫与车为何激活同一单元](./pages/RG02.html)：从两张自然照片进入同一InceptionV1单元，随后看局部结构和相反响应。

[Goodfire内部机制全文](./topics/goodfire-internals.html)：按自然例、训练轨迹、归因、干预和新例检验组织证据，保留模型切换。

[Goodfire原始研究](https://already-clean.goodfire.com/)：原图、案例与作者论证，是后续局部机制材料的共同来源。

</details>

[逐页阅读与备课模拟](pages/VR06.html)

## 猫和汽车，为什么会出现在一起？

MAE 的分类成绩说明表示对任务有用；要理解内部形成了什么，需要观察具体单元。这里换到 InceptionV1。作者选出的猫和汽车照片都会强烈激活同一个单元，它们的日常类别却不同。先保留“兼做两份工作”的猜想，再检查照片里的共同结构。

### 先看自然照片

按我们的日常分类，左边的猫和右边的汽车差得很远。现在有一个神经元，两种图都会让它强烈响应。一个自然猜想是，它兼做了两件不相干的工作。我们先保留这个猜想，再检查有没有遗漏的共同结构。注意，这里看到的是作者选取的自然照片，还不是对全部响应分布的结论。

[对应图解与此步说明](pages/RG02.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

自然照片只展示输入内容，图中没有响应热图或逐像素色标。这里的“强响应”依据原文选例，不是把猫/车类别直接写成单元功能；本态只提出两种待检验读法。

</details>

证据与口径：Goodfire · Cammarata 2026 · #v-figure

### 锁定同一个单元

补上定位：InceptionV1 的 4e 层，第五十五号单元。这里确实是同一个单元，不是分别挑了一个猫单元和一个车单元。编号帮助我们追踪对象，本身不是语义标签。接下来模型和照片都不换，只改变观察尺度，看看它响应的局部在哪里。

[对应图解与此步说明](pages/RG02.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

4e:55表示网络中的层与单元坐标。两种照片都来自同一坐标的响应选例，因此“两个单元各自分类”不能解释当前观察；下一页保持照片身份，改变局部观察尺度。

</details>

证据与口径：Goodfire · Cammarata 2026 · #v-figure

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

这里展示作者选取的自然照片：猫来自 p47742，汽车来自 pCarX5。二者均是原文 InceptionV1 单元 4e:55 的正响应例子。照片不是本课生成的，也不是激活热图。层名 4e 与单元编号 55 用于定位研究对象，编号不代表语义标签。

作者曾参与的旧解释把它看成猫与车的多义混合；重新观察后修正了这个判断。本页先保留旧困惑，是为了让下一页的局部结构真正改变解释，而不是先给答案再找图片。这里没有把两张选例当作全部响应分布。

来源：Nick Cammarata（2026），Goodfire，[Neural Networks Are Already Clean](https://already-clean.goodfire.com/)。 [原图／段落 v-figure](https://already-clean.goodfire.com/#v-figure)。 图与原始照片保留原作者权利；本课按原图选择固定状态、重排并加中文标注，未重跑原文模型实验。

## 继续沿这个问题阅读

[本例的完整图、原逐态说明与推导](pages/GF02.html)。



[同一单元为什么同时响应猫和车](./pages/RG02.html)：保留两张自然照片及4e:55定位，解释为什么物体类别差异只提出疑问，不能直接确定内部机制。

[从整张照片到同一响应局部](./pages/RG03.html)：沿原圆框与真实局部放大比较猫脸、车头，再看台球桌和新干线怎样约束形状解释。

[Goodfire：重看猫车单元](https://already-clean.goodfire.com/#v-figure)：原文Cars and Animals与交互原图，供核对自然例、区域定位和作者解释变化。

</details>

[逐页阅读与备课模拟](pages/RG02.html)

## 全图类别不同，局部结构可能相通

猫和汽车的整体类别不同，但同一单元的响应可能来自较小的局部结构。先在原自然照片上定位，再放大同一片区域，最后加入台球桌和新干线，检验“尖形／V形”候选解释能否跨过类别。

### 先在整图定位

还是刚才的猫与汽车。看这两个圈落在哪里：猫脸的中间和汽车前脸的相应部位。圆框来自原图的响应局部定位，不是一幅逐像素热图。先把整张照片的类别名放到一旁；下一步只放大圈里的同一部分。

[对应图解与此步说明](pages/RG03.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

圆框由原图交互的区域坐标确定。比较时应先找到圈内实际对象，保留整图作为定位；圆框范围不表示激活的精确支撑区域。

</details>

证据与口径：Goodfire · Cammarata 2026 · #v-figure

### 放大同一局部

现在把同一局部放大，两边都有向下收尖的结构。于是有了另一个解释：这个单元可能在区分尖与圆。它能把两个物体名连接起来，但现在还只解释了两张图。我们把它作为候选，让它接着面对新的对象。

[对应图解与此步说明](pages/RG03.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

两处局部都有向下收尖的轮廓，这是候选描述的共同依据。V形不是脱离自然输入的数学判别式，也没有由两张照片证明充分或必要条件。

</details>

证据与口径：Goodfire · Cammarata 2026 · #v-figure

### 换类别，检查结构

物体换成台球桌和新干线，尖形结构仍然出现。下方的小图让我们保留局部来自哪里的定位。现在检查的是跨类别的共同模式，而不只是给猫与车换一个更宽泛的名称。接着反过来问：什么会把同一个单元推向另一侧？

[对应图解与此步说明](pages/RG03.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

台球桌和新干线补充跨类别的自然例，使“猫或车”这个类别并集不再是最简描述。图下整图缩略保留局部来路；要进一步缩小解释空间，还需相反侧与连接证据。

</details>

证据与口径：Goodfire · Cammarata 2026 · #v-figure

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

本页全图中的圆框、下一态的局部放大均按照原图交互给定的位置和三倍放大参数。圆框是原图的响应区域定位，不是本课算出的热图；颜色也不是激活值色标。原图未在此提供逐像素热图，不凭空绘制一幅。

猫与汽车局部都支持“尖形／V 形”的候选读法，但只有两张图还不够。作者给出的台球桌与新干线例子跨越了动物／车辆的常用类别，扩大了候选解释要覆盖的范围。泛化可能沿几何结构发生，而不是按人的名词表发生。新的自然例仍是作者选取的检验例，本课没有独立进行盲测。

来源：Nick Cammarata（2026），Goodfire，[Neural Networks Are Already Clean](https://already-clean.goodfire.com/)。 [原图／段落 v-figure](https://already-clean.goodfire.com/#v-figure)。 图与原始照片保留原作者权利；本课按原图选择固定状态、重排并加中文标注，未重跑原文模型实验。

## 继续沿这个问题阅读

[本例的完整图、原逐态说明与推导](pages/GF03.html)。



[自然例、圆框与放大各说明什么](./pages/RG03.html)：解释原图局部坐标、三倍放大与照片身份；圆框是定位，不是逐像素激活热图。

[尖与圆：再检查相反响应和连接](./pages/RG04.html)：用自然正负侧、上游构成和下游用途继续检验V形候选，而不止给四张照片找一个名称。

[换可视化设置，会改变什么](./pages/GF07.html)：保留同一checkpoint的优化图与自然响应对照，区分模型变化与观察工具变化。

</details>

[逐页阅读与备课模拟](pages/RG03.html)

## 一个解释，能否接住两侧与两端？

一个候选解释如果只覆盖几个正例，仍然容易过宽。这里增加两类约束：同一单元的相反响应是否呈现相反结构；上下游连接是否与这个区分的形成和使用相符。自然例与优化图各自承担不同证据职责。

### 同一单元的两侧

上排是刚看到的尖形正侧，下排是原文记录的相反侧：圆脸、蜗牛壳、球与钟。它们不共享一个物体名，却有较圆的结构，连狗也能出现在相反一侧。这给“尖与圆的区分”增加了一条约束。这里的正负是原文所研究信号的方向，不是正确与错误，也不是说 ReLU 输出了负数。

[对应图解与此步说明](pages/RG04.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

正负侧是原文所研究响应信号的两端；本页不把负侧当作分类错误，也不声称ReLU后输出为负。尖与圆比物体名称更能同时概括两排选例。

</details>

证据与口径：Goodfire · Cammarata 2026 · #v-figure

### 沿上游找构成

沿左边看，尖嘴、尖耳脸和车辆前部这些路线汇向同一个 4e:55。每组的自然例与优化图并排放着：前者是输入上的实际响应例，后者是帮助观察的可视化。共享区分不只在两张照片上说得通，它与上游构成也能对上。线宽只在各侧按原文口径读取。

[对应图解与此步说明](pages/RG04.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

上游三组分别显示自然例与优化图：自然例是输入上的响应，优化图受目标和先验影响。线宽在输入侧由原图drive比例决定，不能和下一态读出侧去除后的下降量直接比较。

</details>

证据与口径：Goodfire · Cammarata 2026 · #v-figure

### 沿下游找用途

再向右走，火焰、尖脸、长嘴与 V 形杯等路线会使用这个区分。连接表明这个区分会被后续计算使用。现在，同一个解释要同时接住自然例、相反响应和上下游关系。我们因而有理由认真对待它，也清楚它目前解释的是这个单元和这些选定连接。有些共同点能从成品看出来；另一些单元到了终点已经响应好几类对象。它们怎样走到一起？这一次看真实保存下来的训练过程。

[对应图解与此步说明](pages/RG04.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

读出侧呈现4e:55如何被若干下游路线使用。图中只保留原文精选连接，连接与自然例相符支持共享解释，但没有穷尽所有路径。下一页更换训练对象，追踪的是发展过程。

</details>

证据与口径：Goodfire · Cammarata 2026 · #v-figure

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

原文同时展示 4e:55 的正、负侧。正侧的尖形与负侧的圆形是相对同一单元、原文所测响应量的两端，不是在宣称 ReLU 后输出为负。本课遵从原文“pushes it negative”的说法；理解时必须区分非线性前信号与经过整流后的输出。

上游节点为 4d:493（尖嘴）、4d:477（尖耳脸）、4d:201（车辆前部）；下游为 5a:94（火焰、消防船水柱与狐脸）、5a:352（尖脸）、5a:317（长嘴与 V 形杯）。本课保留这些节点与方向，线宽在每一侧按原图元数据相对缩放。输入侧 data-w 为 0.321/0.031/0.029；读出侧为 38.3/34.1/22.1，原图提示分别是 drive 比例与去掉 4e:55 后下降量，口径不同，不跨两侧比较粗细，也不当作完整网络全部边。

优化图负责提出候选，自然例说明其实际响应，上下游关系检查这个区分如何被构建与使用。几类证据相互制约，是支持作者解释的理由；不是仅凭箭头存在就宣称全网机制已经证明。同一原图的自然照片、局部定位与精选连接按问题顺序展开，完整证据与原图来源仍可继续核对。

来源：Nick Cammarata（2026），Goodfire，[Neural Networks Are Already Clean](https://already-clean.goodfire.com/)。 [原图／段落 v-figure](https://already-clean.goodfire.com/#v-figure)。 图与原始照片保留原作者权利；本课按原图选择固定状态、重排并加中文标注，未重跑原文模型实验。

## 继续沿这个问题阅读

[本例的完整图、原逐态说明与推导](pages/GF04.html)。

- [汽车为什么会经过看起来像“狗”的单元？](classroom/GF05.html?step=b0&from=RG04&returnStep=b0)
- [模型更大，共享的姿态一定会被拆开吗？](classroom/GF06.html?step=b0&from=RG04&returnStep=b0)
- [同一个神经元，换显微镜会看到什么？](classroom/GF07.html?step=b0&from=RG04&returnStep=b0)
- [工具改进之外，网络本身也会影响观察](classroom/GF08.html?step=b0&from=RG04&returnStep=b0)
- [神经元在放行什么，又挡住什么？](classroom/GF11.html?step=b0&from=RG04&returnStep=b0)
- [从石墙、屋顶，走到修道院响应](classroom/GF15.html?step=b0&from=RG04&returnStep=b0)
- [删掉弱响应，丢的是哪种信息？](classroom/GF18.html?step=b0&from=RG04&returnStep=b0)
- [地图要落到同一个真实节点](classroom/GF29.html?step=b0&from=RG04&returnStep=b0)


[两侧与两端的完整读图](./pages/RG04.html)：按4e:55的正负侧、三条上游和三条下游读真实对象；解释为什么两侧线宽不能跨侧比较。

[汽车经过“狗”单元：观察工具的影响](./pages/GF05.html)：从自由优化图转到自然路线引导优化与自然响应比例，解释旧读法为何需要修正。

[正负激活与最终贡献](./pages/GF11.html)：用门控与读出例区分内部信号的符号和对答案的促进或抑制，避免把负侧理解成“不喜欢”。

[从局部到一张完整电路](./pages/GF15.html)：修道院实例保留自然图、上游结构和晚层路线，可练习沿真实节点读连接。

</details>

[逐页阅读与备课模拟](pages/RG04.html)

## 混合不是只看终点：沿训练看它怎样长出来

只看训练终点，很难知道几个响应类别怎样走到一起。真实 checkpoint 保留了同一坐标在训练中途的状态。本页按两行固定单元、三列时刻并排保留证据，观察田野相关响应如何延伸，以及两次训练的后期差异。

### 早期的共同起点

这里换成两次真实训练中保存的单元：上行是重新训练的InceptionV1末层338号，下行是ConvNeXt末层399号。每一行一直追踪同一个坐标，列是训练时刻。先看零点七epoch：强响应自然例多是油菜花田，其中也有狗。后面会保留这一列，检查它们如何从这个起点发展，而不凭终点名单倒推。

[对应图解与此步说明](pages/RG09.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

epoch表示训练遍历数据的进度。上、下行来自两次训练中的不同单元，不能把两行当成同一模型切换结构。时间列一旦出现便保留，下一态可以横向对照；照片数量不表示响应份额。

</details>

证据与口径：Goodfire · Cammarata 2026 · #neuron-overflow, #recursive-generalization, #conjoined-features

### 相邻侧面开始扩展

一点五epoch这一列加入后，零点七那列仍在。横着看同一行，球、果实和狗的响应例开始出现。它们可能通过颜色、环境和局部形状与先前场景相连。图中记录的是这些照片在该时刻的强响应；哪些因素真正驱动变化，还要进一步控制比较。先把观察到的变化和候选解释分开。

[对应图解与此步说明](pages/RG09.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

一点五epoch列与早期列同时可见。观察是相邻时间的强响应照片出现球、果实和狗；颜色、环境、局部形状是候选连接，而不是已经分别隔离的因果因素。

</details>

证据与口径：Goodfire · Cammarata 2026 · #neuron-overflow, #recursive-generalization, #conjoined-features

### 后期的路线分开

现在三列并排。InceptionV1从田野相关例延伸到球、狗和蔬菜，ConvNeXt这一行的后期例仍更多围绕田野。请用同一行的前后照片作比较，而不要按格子数量推响应占比。作者把相邻关系不断长出分枝称为递归泛化；这两条真实轨迹给发展解释加了约束。接着回问：它与前面“能读回多少关联”究竟是同一个问题吗？

[对应图解与此步说明](pages/RG09.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

末态三列同时显示，InceptionV1末期的场景、球、狗和蔬菜可与早期田野直接对照；ConvNeXt一行仍主要展示田野与其中的狗。完整五时刻原图的灰带才表示各组最强响应例份额，本舞台的均匀照片格不编码份额。

</details>

证据与口径：Goodfire · Cammarata 2026 · #neuron-overflow, #recursive-generalization, #conjoined-features

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

原图对象为从头训练的 InceptionV1末层单元338、使用相同数据和训练配方并含LayerNorm与残差的ConvNeXt末层单元399。原图包含epoch0.7、1.5、3、6、12；本页课堂先读0.7、1.5、12三个固定状态，完整中间轨迹与图例见下方本地原图。每行图组背后的灰带表示该组占神经元最强响应例的份额；主屏只选真实照片定位观察，不重画没有复算的比例曲线。

InceptionV1最初主要响应油菜花田与山谷，花田里也有狗；随后到球、果实、狗，后来延伸到西兰花。ConvNeXt也短暂触及球和水果，但随后保留田野主线，分枝较少。这是两个实际记录的案例，不是所有单元必然遵循的定律。

![原文两个单元完整checkpoint图，英文标签](assets/goodfire/a/neuron-overflow-full.svg)

补充材料中的iy→diy→do it yourself是原文概念插图的中文重排；这里不声称拥有语言模型的训练checkpoint。文章 [Watching Neurons Develop](https://already-clean.goodfire.com/#watching-training) 描述沿重训InceptionV1追踪坐标，作者也记录曾因缩放不当误以为出现任意混合。附录 [Relation to Conjoined Features](https://already-clean.goodfire.com/#conjoined-features) 承认2021年Multimodal Neurons已有从共享侧面向多方向泛化的线索；新命名突出多层分枝与发展过程。本文尚未完成整模型的严格发展审计。

来源：Nick Cammarata（2026），Goodfire，[Neural Networks Are Already Clean](https://already-clean.goodfire.com/)。 [原图／段落 neuron-overflow](https://already-clean.goodfire.com/#neuron-overflow)。 [原图／段落 recursive-generalization](https://already-clean.goodfire.com/#recursive-generalization)。 [原图／段落 conjoined-features](https://already-clean.goodfire.com/#conjoined-features)。 图与原始照片保留原作者权利；本课按原图选择固定状态、重排并加中文标注，未重跑原文模型实验。

## 与本页相关的深入阅读

### A16｜训练轨迹怎样帮助检验分枝

重训 InceptionV1 suffix 的图让同一坐标按 checkpoint 并排显示，优化图下方配最强响应处的自然裁剪。它能区分一个成品单元里的邻近反应是怎样逐步出现的；但观察尺度错误仍可能把轨迹看成任意混合。作者临近发布时再次误调显微镜的经历，是提醒我们保留自然例、位置与工具设置，而不是为了一个发展故事挑几张顺眼的图。

[原文 Watching Neurons Develop](https://already-clean.goodfire.com/#watching-training) · [完整训练显微镜](https://already-clean.goodfire.com/training-map.html) · [GF09](classroom/GF09.html?step=b0)

### A24｜递归泛化与 conjoined features 的关系

Multimodal Neurons 已描述从共同侧面向多个方向泛化的 conjoined features。本文承认这一先行观察，并选择“递归泛化”强调分枝还能再分枝、过程发生于生长而不是两个静态概念被接起来。早期只有成品，曾猜是训练早期的残留；后来的视觉轨迹显示分枝还会继续生长。名称变化本身不是新证据，应把发展记录和概念解释分别保留。

[原文 Relation to Conjoined Features](https://already-clean.goodfire.com/#conjoined-features) · [GF09](classroom/GF09.html?step=b0)

### A26｜怎样让“递归泛化”自身也可以失败

一个有约束的递归泛化解释应预测语义空间中的局部来路、分枝方向及训练次序，而不是见到任何两个响应都补一个共同祖先。本文承认没有严谨证明所有重度多义例都如此，也没有大语言模型所需的完整 checkpoint。成品上的路径一致性可以增加信心，但要确证发展因果仍需要时序数据。保留这一限制，才能避免把“任意打包的空隙解释”换成另一个无所不包的故事。

[原文 Is Recursive Generalization Hard to Vary?](https://already-clean.goodfire.com/#recursive-generalization-testable) · [GF09](classroom/GF09.html?step=b0) · [GF24](classroom/GF24.html?step=b0)

## 继续沿这个问题阅读

[本例的完整图、原逐态说明与推导](pages/GF09.html)。

- [模型更大，共享的姿态一定会被拆开吗？](classroom/GF06.html?step=b0&from=RG09&returnStep=b0)
- [工具改进之外，网络本身也会影响观察](classroom/GF08.html?step=b0&from=RG09&returnStep=b0)
- [规模变了，区分的粒度也变了吗？](classroom/GF12.html?step=b0&from=RG09&returnStep=b0)
- [罕见、看错与故意教错，是同一回事吗？](classroom/GF17.html?step=b0&from=RG09&returnStep=b0)
- [规模变大：同一耳朵家族怎样细化？](classroom/GF28.html?step=b0&from=RG09&returnStep=b0)


[语言分枝的概念示意：iy → diy → do it yourself](pages/GF09.html#b3)；这张图不是语言模型训练的checkpoint。

[五个checkpoint与响应份额](./pages/RG09.html)：完整原图包含0.7、1.5、3、6、12 epoch及灰带；照片用于识别内容，灰带才表达组内份额。

[语言分枝的概念示意](./pages/GF09.html#b3)：iy、diy与do it yourself展示可相连的局部关系；这里没有语言训练录像，不能与视觉checkpoint混同。

[罕见、误标与对抗输入](./pages/GF17.html)：区分罕见输入的既有响应、错误标签训练造成的变化以及优化构造输入，避免把它们都叫异常。

[原文训练显微镜](https://already-clean.goodfire.com/training-map.html)：原作者提供的训练过程浏览器，可进一步查看不同层与单元的实际发展轨迹。

</details>

[逐页阅读与备课模拟](pages/RG09.html)

## 能承载多少，与为什么共享

联想记忆问的是在指定规则和误差标准下能读回多少关联；Goodfire 的案例问的是训练后哪些响应共享一个机制、为什么共享。两个问题相关，但既不能用容量计算解释具体组织，也不能用几个机制案例推翻前面的条件化推导。

### 容量与组织，分别问清

前面问的是，给定写入和读取方式，能可靠读回多少条关联。这里追的是，训练后的某些响应为什么聚在同一个机制里。即使一个结构能承载很多内容，也还要研究它实际怎样组织这些内容。Goodfire 对一类共享解释提出质疑，不会自动推翻前面的条件化容量推导。现在把观察方法带到一句话，沿其中的关系追到模型准备写出的下一个词。

[对应图解与此步说明](pages/RG10.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

左侧承接随机K/V装置中的明确规则和读取标准，右侧承接4e:55与真实训练例。本文较窄的“任意打包不相关计算”组织假说，不等于所有特征多于维度、组合或向量叠加命题；对词义的完整对齐可在正文核对。

</details>

证据与口径：Goodfire · Cammarata 2026 · #packing-vs-growing, #superposition-of-the-gaps, #features-and-definitions

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

本文重点质疑的superposition是一个组织假说：不相关的计算因为很少干扰，任意共用神经元容量。它不同于“可描述的特征多于维度”，也不同于向量相加、多个神经元共同完成任务或普通组合式表示。前一节联想记忆的条件化容量推导没有因此被推翻。

原图packing-vs-growing用32个图形作概念对照：相近颜色与形状代表相近对象；减少神经元时，一边按相似性形成较粗组，另一边把不相干项打包。本课只重画这个对照的精选组，标明示意，不伪装模型测量。共享带来的干扰成本和复用收益可以并存；仅有特征数与维数的比较不能回答为何这些具体计算共用同一个单元。

正文Superposition of the Gaps保留三个观察盲点。其一，某单元看似同时响应pr、Base64网址与孟加拉文字，解码／转写后仍与pr相关。其二，某Qwen单元看似响应逗号，完整上下文显示它跟踪Colorado，逗号是上下文摘要位置；作者还通过steering观察到徒步相关生成。其三，只给两段文本会让长上下文机制显得没有主题，完整前文可能改变解释。这些是作者研究案例，不是本课实验；也不意味着任何未解释例都必有漂亮答案。

附录 [A Note on Superposition](https://already-clean.goodfire.com/#superposition-note) 与 [A Note on Features and Definitions](https://already-clean.goodfire.com/#features-and-definitions) 区分计数命题、组织命题与词义变迁。作者认可Toy Models在其预设特征和重建目标下的实验，争论真实网络中共享的复用收益是否被这些设定覆盖。不能把本文写成Toy Models实验已被证伪。尚不能解释的响应应当保留为未知；工具、数据覆盖和发展关系都是可进一步检验的候选原因。

来源：Nick Cammarata（2026），Goodfire，[Neural Networks Are Already Clean](https://already-clean.goodfire.com/)。 [原图／段落 packing-vs-growing](https://already-clean.goodfire.com/#packing-vs-growing)。 [原图／段落 superposition-of-the-gaps](https://already-clean.goodfire.com/#superposition-of-the-gaps)。 [原图／段落 features-and-definitions](https://already-clean.goodfire.com/#features-and-definitions)。 图与原始照片保留原作者权利；本课按原图选择固定状态、重排并加中文标注，未重跑原文模型实验。

## 与本页相关的深入阅读

### A01｜superposition 到底是哪一个命题

同一个词曾指向向量叠加、特征数超过维数、分布式组合，以及因很少相撞而把无关计算放在一起。本文重点质疑最后一种作为真实网络难解释性的默认原因，尤其是它对神经元如何生长的解释。特征数量超过维数也可以来自有用组合；残差流没有特权坐标基，也不能单独证明任意打包。评价本文必须先固定所谈命题，而不是把它当作否定所有同名理论。

[原文 A Note on “Superposition”](https://already-clean.goodfire.com/#superposition-note) · [GF10](classroom/GF10.html?step=b0)

### A20｜特征、机制与组织不是同义词

人类关心的一种概念、网络自己的可复用计算构件、SAE 中一个字典方向，都可能被叫作 feature，却不是同一个对象。给猫、车、V 各计一个特征还是只计 V，会改变“特征数”，不一定改变网络。本文因此优先追问什么被什么读取、为什么响应会同处一处。字典仍可作为有用视图；只有确实存在妨碍理解的原生组织问题时，才需要论证替换机制的成本值得承担。

[原文 A Note on Features and Definitions](https://already-clean.goodfire.com/#features-and-definitions) · [GF10](classroom/GF10.html?step=b0) · [GF28](classroom/GF28.html?step=b0)

## 继续沿这个问题阅读

[本例的完整图、原逐态说明与推导](pages/GF10.html)。

- [把一层从 480 个通道压到 10 个，会怎样？](classroom/GF13.html?step=b0&from=RG10&returnStep=b0)
- [没找回细曲线，究竟说明了什么？](classroom/GF14.html?step=b0&from=RG10&returnStep=b0)
- [如果把瓶颈放到最后一层呢？](classroom/GF14A.html?step=b0&from=RG10&returnStep=b0)
- [换成 SAE 字典，会多看见什么？](classroom/GF16.html?step=b0&from=RG10&returnStep=b0)


[三个命题的完整对齐](pages/GF10.html#b1)与[pr／编码／转写案例](pages/GF10.html#b2)、[Colorado与长上下文观察盲点](pages/GF10.html#b3)。

[同一个superposition词，哪些命题不同](./pages/RG10.html)：把特征数与维度、可复用组合及任意打包不相关计算分开，明确本文主要质疑的组织解释。

[压缩一层后怎样评价表示](./pages/GF13.html)：瓶颈重训、任务成绩及曲线恢复构成一个可核对实验，帮助区别可表达、学到和可读。

[SAE字典与原生组件](./pages/GF16.html)：比较字典视图和网络原有组件，说明重构误差、活动事件与解释对象为何不同。

</details>

[逐页阅读与备课模拟](pages/RG10.html)

## 从一段文字，追到一个下一词

在 Qwen3-32B 的一个保存案例中，输入用“Pride Lands 中后来成为国王的幼狮的死敌”暗指 Scar。归因图追踪指定下一词位置；随后比较未删除、删除作品与狮子背景两组，以及同层同数量随机删除，检验这两组是否实际影响预测。

### 先弄清输入与下一词

这次换成 Qwen3-32B。图书馆失窃，卡片只说：Pride Lands 中后来成为国王的幼狮的死敌。这里的幼狮是辛巴，他的死敌是刀疤 Scar；这不是电影知识测试，我们把人物关系先交代清楚。输入没有直接写 Scar。模型已经写到画面中的回答前缀，即将接出名字，我们追的就是这个指定位置怎样形成答案。

[对应图解与此步说明](pages/RG19.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

舞台保留原文关键留言、提问和实际回答前缀。中文人物关系是为理解任务而补的背景，不是原输入额外出现了Simba或Scar。后续测量始终对应这次输入与Scar下一token。

</details>

证据与口径：Goodfire · preeclampsia-circuit · 原文实验／图数据；据原图重排

### 沿真实节点读一次路线

从底部 Pride Lands 线索往上，先进入作品与狮子背景的两个组，再与反派、死敌等信息共同走向答案。请沿图实际走一遍。方框数字是神经元数，线宽表示这张归因图里的贡献；蓝边是相反方向的贡献。内部数值取正还是负，与最后促进还是抑制答案，还要结合读出关系。作者把复杂活动分组后展示，我们沿真实节点读，不替图添一条更顺口的路线。现在特别留意作品与狮子背景这两组，合起来十八个单元。

[对应图解与此步说明](pages/RG19.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

原图JSON中lk组为The Lion King、7个神经元，lions组为Lions, savanna、11个。金框与同源放大只定位这两组，不增添Simba节点。线宽为分组贡献，蓝边为相反方向贡献，不能用单元激活符号直接代替对答案的净贡献。

</details>

证据与口径：Goodfire · preeclampsia-circuit · 原文实验／图数据；据原图重排

### 删除中介，比较匹配对照

现在在原图同一位置标出要删除的两组：The Lion King七个，Lions与savanna十一个，共十八个。未删除时，当前下一词Scar的概率约零点九一；指定删除后降到约零点二四，实际回答转为Simba。同层、同数量随机删除，Scar仍约零点九一。删除规模相近而影响不同，支持这两个中介组确实参与本次计算。它仍是当前输入和位置的局部证据。接下来再问：解释能不能在测量之前预测一个新的输入？

[对应图解与此步说明](pages/RG19.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

原图数据outs[0].p为0.9057；ko.ids=[lk,lions]，ko.p.scar为0.2378。原文配文给同层同数量随机删除约0.91，没有为它提供更精确小数。舞台红叉是对原归因图的干预定位标记，不是重新测得的删除后归因边。三种条件都读P(Scar)，而非准确率。

</details>

证据与口径：Goodfire · preeclampsia-circuit · 原文实验／图数据；据原图重排

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 输入、位置与研究对象
本页采用原文轮播中的 Scar 案例，模型为 **Qwen3-32B 的原生 MLP 神经元**，不是前面 MAE，也不是 Claude 的 transcoder。原始提问描述市立图书馆密室失窃，唯一线索是一张留言卡：署名是“Pride Lands 中后来成为国王的幼狮的死敌”，并要求只答名字。图中给出的实际回答前缀是 `The person responsible is **`，接下来要预测 `Scar`。因此分析的对象有明确的输入与输出位置，而不是一般性地声称网络“理解狮子王”。

原图把单元按解释汇成组，方框内数字是神经元数。所示组包括 `Pride Lands` 词语组（6）、狮子／草原（11）、The Lion King（7）、Disney and Africa（8）、字母 scar（2）、反派（5）及 sworn enemy（3）。线宽编码组间贡献强弱；蓝边表示与答案方向相反的贡献。图里的聚合边不是一条新增的物理连线，也不是每个节点到答案都只起促进作用。原文的选图和分组用于把复杂归因图讲清楚，不是完整模型结构。

### 删除中介，和什么比较
作者删除 The Lion King 与 Lions, savanna 两组，共 18 个神经元。下一个目标 token `Scar` 的概率约为 **0.24**，回答转向 **Simba**；同层、同数量随机删除的对照约为 **0.91**。原图未删除时的精确值为 0.9057，指定删除为 0.2378。这个比较支持这些单元在当前输入上的作用，不能单凭结果推出它们是唯一通路，或所有《狮子王》问题都由同样 18 个单元解决。Simba 是有结构的错误，也比随机名字更提示中间步骤出了问题。

### 与原文医疗图的关系
原文先将 Claude 3.5 Haiku 的跨层 transcoder 图与 Qwen3-32B 原生神经元图对照。两模型、表示方法不同；因此不能把差异量化成哪种方法普遍更优。Qwen 医疗案例中删除四个诊断枢纽单元后询问转向另一种症状，展示的是同类“追踪—删除—看回答改变”的研究动作。本课改以无需医学背景的 Scar 案例作为主讲，医疗图与原文完整轮播保留为来源入口。

### 能检测，不等于模型实际使用
附录 *Social Security: Detection and Use* 回查一个由三个神经元组成的短语 probe。probe 可以准确检测 Social Security，但沿模型实际下一 token 计算所追到的路线包含词汇延续、表格字段、退休及输出单元，还存在 Social Security 与 401(k) 的竞争。研究者展示的是筛查 31 个单元中的 11 个；图中数值是删除单元后目标 log probability 变化的求和，负值意味着删除有害。检测器的成功不能自动当作模型使用那个方向作决定的证据。

来源：Nick Cammarata（与 Curt Tigges 合作语言部分），2026，*Neural Networks Are Already Clean*，Goodfire，[preeclampsia-circuit](https://already-clean.goodfire.com/#preeclampsia-circuit)。本课呈现原文结果及据原图数据重排的选定状态；没有重新运行模型实验。原作者权利保留。

## 继续沿这个问题阅读

[本例的完整图、原逐态说明与推导](pages/GF19.html)。

- [神经元在放行什么，又挡住什么？](classroom/GF11.html?step=b0&from=RG19&returnStep=b0)
- [一个神经元的负侧，可能藏着真正的工作](classroom/GF20.html?step=b0&from=RG19&returnStep=b0)
- [名字很多，是否就必须打包进隐蔽空间？](classroom/GF21.html?step=b0&from=RG19&returnStep=b0)
- [模型更大以后：一张选例图能告诉我们多远？](classroom/GF22.html?step=b0&from=RG19&returnStep=b0)
- [Attention：看哪里，还要问搬了什么](classroom/GF27.html?step=b0&from=RG19&returnStep=b0)


[Scar：完整输入、分组归因与18单元删除](./pages/RG19.html)：给出原输入、下一token位置、7与11两个组，以及0.9057和0.2378的原图数据；随机对照按同层同数量匹配。

[负侧为何可能承担关键工作](./pages/GF20.html)：Santa实例与SwiGLU代数区分正负激活和答案贡献，展示只看正侧标签可能漏掉的机制。

[检测到一个概念，模型是否实际使用](./pages/GF19.html)：Social Security探针与模型下一词路线不同，提供检测能力和因果使用的具体对照。

[更大模型中的钱包归因图](./pages/GF22.html)：Kimi K3选例保留推进与阻碍、单元删除及未画路径；它不是整台大模型的审计。

</details>

[逐页阅读与备课模拟](pages/RG19.html)

## 把解释交出去，再测一个新输入

能解释旧例，还不等于能预测新例。Blind maximum 先把单元解释交给看不到原高激活样本的另一方，由它构造预期强响应的输入，再读取模型激活。本页沿 action 的一个原文实例，分开解释、预测和测量。

### 先把解释交给另一方

第一位 agent 研究单元后写下一段解释。第二位只能看到这段解释，看不到单元和原来的最高响应样本。它要据此写一个预计会强烈激活单元的新句子。先把预测写下来，再去测量。这里用信息隔离减少只对旧例讲故事的空间，尚没有替解释预先宣布成功。

[对应图解与此步说明](pages/RG23.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

信息隔离是两方可见材料不同：调查方可看单元及例子，构造方只看解释。这有助于避免仅复述旧样本，但原文未在此交代完整搜索预算，不能额外承诺“一次生成、零迭代”。

</details>

证据与口径：Goodfire · blind-maximum · 原文实验／图数据；据原图重排

### 让解释作出具体预测

这段解释说，它对 action 表示参与活动、发挥作用的用法敏感。新句子写一位替补投手在十一季里参加了四百一十二场比赛。看英文 saw action 中的 action：不是一个孤立动作，而是参与比赛。按解释，这个位置应当接近它要找的用法。到现在我们还没有看测量值；画面下方中文只帮助理解，实际被测的是上面的英文。

[对应图解与此步说明](pages/RG23.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

原文该实例明确标峰值token为action。中文“参加比赛”帮助解读saw action，不作为另一次测量输入；字符412与eleven seasons都来自原被测句。

</details>

证据与口径：Goodfire · blind-maximum · 原文实验／图数据；据原图重排

### 测量支持了什么

原文新句子的激活是十八点四，高于那份一百亿 token 语料里找到的十五点零。比较的是同一单元的激活量，不是概率或准确率。解释帮助另一方在尚未见过的输入上作出了有效预测；语料最佳只是有限检索中的最高值，不是理论上限。不过，命中一个中心，还不知道解释的边界在哪里。下一步换一个单元，让两个句子看起来很像，检查另一种解释能否分清关系。

[对应图解与此步说明](pages/RG23.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

15.0是100亿token语料中检索到的最好激活，18.4是按解释构造的新输入的激活。它们在同一单元上比较，不是概率；中心命中不足以排除解释漏掉其他分枝，因此下一页检验边界。

</details>

证据与口径：Goodfire · blind-maximum · 原文实验／图数据；据原图重排

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### Blind maximum 的信息隔离
第一位 agent 可以调查神经元，形成短解释；第二位只看到这段解释，看不到单元本身、原始高激活例和其他内部细节，写出一个预期会最大激活它的新句子。然后才测量模型响应。图中 Qwen3-32B **L8/N5247** 的解释围绕不可数名词 action 表示“参与行动、正在起作用”的用法。第二位写了棒球替补投手在 11 个赛季中参与 412 场比赛的句子，峰值 token 为 action。原文显示 100 亿 token 搜索中找到的最佳例约 15.0，这个新句子约 18.4。二者是同一单元的激活量，不是百分比或概率。

原轮播另一例为 L56/N6360：请求到达负责方后，接下来是“我们正在处理”的谓语。新句子写软件支持团队确认能重现通知故障，停在 `The devs are`，激活约 99.5，对应语料中最佳为 82.0。它也提示我们，响应位置可能是即将出现某种表达之前，而非在某个主题名词上。

### 为什么中心命中不等于广度覆盖
生成一个强例可以说明解释抓住了至少一个中心区域，却不能排除还有第二份工作。作者进一步按输入到该单元的归因聚类，在宠物芯片例中分出动物标记、走失宠物／救助、microchip／RFID 等上游束。对每束分别做盲构造，同时消融其他束，并与相同消融条件下的最强语料例比较。这样比一次中心命中覆盖更多方向，但仍不是全域完备证明。

### 不能用单一分数取代批评
“猫或车”这种解释可能在很多预测测试里得高分，却仍漏掉 V 形机制；观察火焰输入或反极就能击中其弱点。有效的反驳往往针对具体解释。Blind maximum 是一种预先约束信息、再测量的办法，与后面 near miss、消融和上游检查互补。

来源：Nick Cammarata（与 Curt Tigges 合作语言部分），2026，*Neural Networks Are Already Clean*，Goodfire，[blind-maximum](https://already-clean.goodfire.com/#blind-maximum)。本课呈现原文结果及据原图数据重排的选定状态；没有重新运行模型实验。原作者权利保留。

## 继续沿这个问题阅读

[本例的完整图、原逐态说明与推导](pages/GF23.html)。



[完整说明：第二个新例、上游分束与覆盖范围](pages/GF23.html)。

[从解释到盲构造输入](./pages/RG23.html)：完整记录action的原文句子、峰值token、15.0与18.4激活，以及信息隔离与未规定搜索预算的区别。

[第二个新例与上游分束](./pages/GF23.html)：软件支持团队例与宠物芯片分束展示中心命中之外的覆盖检查，区分不同单元和不同消融条件。

[解释能否分开近似句子](./pages/RG24.html)：继续比较spoken for原例与近失配，再看完整样本的分母、阈值和失败例。

</details>

[逐页阅读与备课模拟](pages/RG23.html)

## 句子很像，关系还一样吗？

现在换到另一个单元 L36/N15664，检查解释的边界。前页 action 单元是 L8/N5247；这里 spoken for 的候选含义是已经许诺归属、尚未交付。两个原文文本前缀保留相近题材，却分别说许诺小马归属与运输母马；相对激活的差异检验关系判断，而非仅识别“马”这个主题。

### 先明确两个关系条件

上一页检验了 action 的中心新例。现在换到另一个单元，检验 spoken for 的边界：东西或人已经许诺给某一方，但尚未交付。原文展示的英文前缀说小马还没出生，饲养者就已许诺把它交给某马厩。它同时满足归属承诺和尚未交付。前缀停在for是原图的展示形式，不是让我们补写答案。我们先根据已经出现的关系作预测，再看相近却不满足关系的输入。

[对应图解与此步说明](pages/RG24.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

原文figure #explanations-could-lose确实把文本展示到for为止；这里保留其前缀身份，不补写后续。现有正文与图例没有明确标出这对例子的峰值token、索引或取值位置，因此不将最后的for另标成已知测量token。

</details>

证据与口径：Goodfire · explanations-could-lose · 原文实验／图数据；据原图重排

### 只改变关键关系

第二个前缀保留小马、出生前与马厩，改为把母马运过去。promised it描述小马归属的许诺，driven the mare只说明母马发生运输。原测量分别为最强语料例激活的百分之八十一和百分之二十，区分的是关系而不只是题材。百分之二十仍有响应，但低于原测试百分之三十的强响应阈值；它不是理解准确率，也不是答案概率。

[对应图解与此步说明](pages/RG24.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

promised it描述对小马归属的承诺；driven the mare描述运输母马。原图相对激活为81%和20%，分母是该单元最强语料例。20%并不等于零，它低于完整测试使用的30%强响应阈值。

</details>

证据与口径：Goodfire · explanations-could-lose · 原文实验／图数据；据原图重排

### 把失败也放回完整样本

接下来换到完整样本，不再只看刚才的单元。随机抽取的二百个单元中，一百八十三个解释描述正侧，进入这一测试口径；每个都有五个新例和五个近失配。以最强语料例激活的百分之三十为阈值，强响应率是百分之七十六和百分之十一。逐单元比较，有一百六十四个赢、十五个平，也有四个输了。这比只列成功例更有信息。近失配主要检验边界，若单元还有别的工作，仍需检查那些方向和实际作用。

[对应图解与此步说明](pages/RG24.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

183是随机抽出的200个单元中解释描述正侧的子集，每个解释各有5个新例与5个近失配。76%和11%是这些输入达到30%阈值的比例；164/15/4是逐单元比较的赢/平/输，分母与输入条数不同。

</details>

证据与口径：Goodfire · explanations-could-lose · 原文实验／图数据；据原图重排

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 同一解释的命中与近失配
本页换到另一个单元；前页 action 的中心命中与这里的边界测试不属于同一单元。主图单元是 **Qwen3-32B L36/N15664**，解释为“东西或人已经答应给某一方，但尚未交付”，即 spoken for。命中句写小马还没出生，饲养者就已许诺给某马厩；near miss 保留小马、马厩与出生前的情境，却改成把母马送到马厩，并没有许诺归属。原图给这两个文本前缀报告的响应分别为最强语料例的 **81% 与 20%**。第二对葡萄酒预售约定与已经出售的例子为 **43% 与 16%**。

这些百分数是激活值相对于该单元最强语料例的比例，既不是答案概率，也不是“81%的句子理解正确”。两句只换关键条件，是为了减少用大类主题就能蒙对的可能，但仍不能证明唯一机制。

### 文本前缀与测量位置
原图的两个英文片段都止于 `for`，葡萄酒例止于 `at`；这就是原文提供的展示内容，不在课堂替实验续写。原文正文、图注和该对例子的HTML没有明确标出峰值token、token索引或取值位置，因而只能核定文本展示与相对激活读数，不能把最后一个词直接宣布为测量位置。

### 主图与完整样本的两个分母
主图展示最初 20 个单元；每个解释生成 5 个命中新例与 5 个近失配，因此各 100 条。以达到最强语料例的 30% 为强响应阈值，命中有 **81/100**，近失配 **8/100**；20 个单元的均值比较都在命中侧更强。

附录的完整测试从 gallery 随机取 200 个单元，其中 **183 个解释描述正侧**进入这一口径：命中新例强响应约 **76%**，近失配约 **11%**；逐单元比较赢 164、平 15、输 4。不能把主图的 81%／8%当成全部 183 单元的结果，也不能悄悄删除失败的 4 个。

### 这个测试不能单独解决 superposition
一个真正同时做 X 或 Y 的单元，也可能把“不属于 X 或 Y”的近失配拒绝得很好。因此 near miss 检查的是边界，不单独判定概念为什么共处。作者还让 agent 构造尽可能遥远的概念，每单元 5 条，这些文本强响应约 1%；183 个单元中有 179 个在这些文本上从未强响应。但“agent 想到的远概念”仍不是整个可能输入空间。

好的解释要接受多种批评：中心新例、相近反例、远概念、符号分区、上游构成和实际干预。本文据这些结果提出组织机制假说，仍不把它们变成全模型的完备证明。

来源：Nick Cammarata（与 Curt Tigges 合作语言部分），2026，*Neural Networks Are Already Clean*，Goodfire，[explanations-could-lose](https://already-clean.goodfire.com/#explanations-could-lose)。本课呈现原文结果及据原图数据重排的选定状态；没有重新运行模型实验。原作者权利保留。

## 与本页相关的深入阅读

### A12｜近失配、遥远概念和盲测中心各检验什么

从 gallery 随机抽 200 个单元后，183 个解释描述正侧。agent 先只读解释，分别写五个应该激活的新例和五个近失配，再测响应；达到语料最强响应的 30% 算强。完整样本的新例强响应率为 76%、近失配为 11%，按单元计赢 164、平 15、输 4。主图展示前 20 个，81/100 对 8/100 是这个子集的数字，不能与整体混写。

近失配检查语义边界，却不能独自区分“X 或 Y”的任意打包；它对 X、Y 都可以有清楚边界。作者另让 agent 写最遥远概念，约 1% 达强响应，179/183 个单元没有一次强响应。有限构造仍不穷尽所有潜在用途。Blind maximum 测中心、近失配测边界、遥远概念挑战无关分支、路径与干预再问怎样发生；没有一个单分数替代其余工作。

[原文 Explanations That Could Lose](https://already-clean.goodfire.com/#near-miss-test) · [GF23](classroom/GF23.html?step=b0) · [GF24](classroom/GF24.html?step=b0)

## 继续沿这个问题阅读

[本例的完整图、原逐态说明与推导](pages/GF24.html)。



[前20个单元的子集与完整统计对照画面](pages/GF24.html#b2)。此处保留两个分母供核对；本页课堂统计只使用183个正侧解释口径。

[spoken for：关系变化与相对激活](./pages/RG24.html)：两个原文前缀及81%/20%读数并列；解释归属许诺与运输母马为何不同，以及来源没有给出的token定位边界。

[20个单元与183个正侧解释](./pages/GF24.html#b2)：原子集图和完整统计分别保留，核对各5条、30%强响应阈值、164赢15平4输。

[近失配与遥远概念检验不同问题](./pages/GF24.html)：正文说明近邻边界测试为何不能单独排除另一个无关分枝，并保留遥远概念结果和覆盖范围。

[Goodfire原始例图与统计](https://already-clean.goodfire.com/#near-miss-test)：原图保留止于for/at的文本展示、相对激活条及前20单元；正文给出完整183口径。

[LAB 02 · V4 · 原研究证据台：预测、揭示，再审读边界](https://deepnote.com/workspace/ise3309jingao-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/Fall-26-Lecture-06-2ff4b87b-2904-4b9c-b9e9-bdbd72962691/notebook/LAB-02-e6eecd2d72554ef4adacc0b797db4b32?utm_source=openai&utm_medium=mcp&utm_campaign=openaimcp&utm_content=e6eecd2d72554ef4adacc0b797db4b32&utm_term=get_notebook)：在 V4 选择 EVIDENCE_CASE="RG24"，先写预测，再揭示原研究的近失配证据；本活动不重新测量模型激活。

</details>

[逐页阅读与备课模拟](pages/RG24.html)

## “约九成”，究竟解释了什么？

局部研究和干预之后，才能回头读总体估计。约90%的对象是 Qwen3-32B 初步审查中的 neuron poles，即神经元响应的正侧或负侧；判断标准是一个主要工作及相关分枝。这个数字随激活阈值与工作划分粒度而变。

### 约九成，指什么对象

经过局部检验，回头读总体说法。原文的“约九成”，指 Qwen3-32B 初步审查中，神经元的正侧或负侧，通常能用一个主要工作及相关分枝来描述。这里的 poles 就是响应的两个侧向。阈值和怎样划分“一项工作”会影响结果；它不是参数解释进度，也不覆盖所有输入。下面这组尚未解释好的响应，应当留在结论旁边。

[对应图解与此步说明](pages/RG25.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

poles在这里指正、负响应侧向，判断通常针对每一侧的主要工作及相关分枝。弱激活阈值与工作划分粒度会改变分类；原文约90%、约7%、约2–4%是近似估计，不能相加后硬凑精确100%。

</details>

证据与口径：Goodfire · language-models · 原文实验／图数据；据原图重排

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### Qwen3-32B 初步审计的口径
原文开头明确说 **neuron poles**：约 90% 有一个主要工作，常伴随相关小分枝；另约 7% 有两个相关工作；约 2—4% 尚未理解。正文有时简写为 neurons，本课按更明确的 poles 口径呈现。它们是作者的粗略估计，阈值与“一个工作”的粒度会影响结果；各项近似数不应硬凑到 100%。这不是全部参数的解释比例，也不是各种输入上的机制覆盖率。

深层、弱激活阈值、上游子电路密度、跨语言近义表达是否合并，都改变评定。例如 Titanic 的弱响应可能延伸到航行、蒸汽机或时代背景；有时工具只看向前上下文，漏掉单元在提示下一个 boat token。作者另称少量深入样本的强激活下约 97% 为非任意混合；这个更小、选择更深的集合不替代总体估计。

### 1000 篇神经元小论文是什么
原站提供随机选择的 1000 个单元的详细研究页，帮助检查具体解释。它们是可打开的研究材料，不意味着每一篇都经过相同强度的穷尽验证，也不等于所有单元。正文中的比例与每个图的对象范围应分别读。

### 历史比较，不画精确进步曲线
2023 年 OpenAI 自动解释项目在 GPT-2 XL 上宽松口径也不到 2% 可解释。作者这次用近乎不迭代的流程再写 500 篇单元研究，约 70% 看起来有一个粗略工作、约 5% 很纯；但评分协议不同。更好的工具、研究者对 motif 的认识和模型架构／规模都可能影响可读性，不能用“2→70→90”折线宣称一次控制实验的进步。

原文对 2023 *Towards Monosemanticity* 某个被称为混合学术引用、对话、HTTP、韩文的单元提出“不要接句点”的替代解释：负 logit 连接多与句点有关，韩文例位于音节未完成处。但作者没有那个模型继续实验，韩文也可能是第二个相关模式，因此这里只能保留候选解释，不能宣布旧例已彻底解决。

### Simulation scores 为什么不是唯一裁判
附录认为，精确模拟每个激活值会同时考验注意力把信息放在哪个标点、弱响应衰减率，以及解释模型输出精确数值的能力。一个解释可能抓住机制，却因这些因素得分低；反过来“猫或车”也可能模拟得不错却漏掉 V 形结构。模拟分数可作为一种指标，但不替代具体新例、近失配与因果实验。

### 归因图审计的范围
附录报告 agent 阅读 100,000 张归因图，作者亲自检查数千张图像与语言图。作者尚未发现一个大组的联合活动持续无法解释，但明确把这视作定性证据，认为当前工具不足以换成精确“清晰度分数”。一个可信反例就可能明显改变其判断。因此“研究仍在继续”体现在具体可改变结论的例子和测量协议里，不是泛泛一句保留意见。

来源：Nick Cammarata（与 Curt Tigges 合作语言部分），2026，*Neural Networks Are Already Clean*，Goodfire，[language-models](https://already-clean.goodfire.com/#language-models)。本课呈现原文结果及据原图数据重排的选定状态；没有重新运行模型实验。原作者权利保留。

## 与本页相关的深入阅读

### A02｜模拟激活分数为什么不等同于解释质量

模拟器要预测精确数值，也要猜注意力把信息放在哪个标点上。一个解释可能抓住了单元的主要判断，却不擅长预测物体缩小时激活下降的精确速率；反过来，一个“猫或车”的预测器也可能在原例上得分很好，却错过 V 形。作者建议把模拟分数当成若干检验之一，并配新例、近失配与干预；这不是说数值预测没有用途，而是计分目标与研究问题必须对齐。

[原文 On Simulation Scores](https://already-clean.goodfire.com/#on-simulation-scores) · [GF25](classroom/GF25.html?step=b0)

### A11｜大量归因图审阅建立了什么证据

作者让 agent 审阅约 100,000 张归因图，并亲自检查数千张视觉与语言图；他报告很多异常在辨认新的模式后消失，尚未找到一个仍无法解释的重要单元群。但作者明确把它看作定性证据，没有把现有工具的结论压成可信“清洁率”。审阅数量不等于无偏样本、统一协议或完整覆盖；真正有力的反例仍可能改变判断。

[原文 Audits of Attribution Graphs](https://already-clean.goodfire.com/#attribution-audits) · [GF25](classroom/GF25.html?step=b0)

## 继续沿这个问题阅读

[本例的完整图、原逐态说明与推导](pages/GF25.html)。

- [删掉弱响应，丢的是哪种信息？](classroom/GF18.html?step=b0&from=RG25&returnStep=b0)
- [一个神经元的负侧，可能藏着真正的工作](classroom/GF20.html?step=b0&from=RG25&returnStep=b0)
- [残差流：轨迹图怎样才有解释力？](classroom/GF26.html?step=b0&from=RG25&returnStep=b0)
- [地图要落到同一个真实节点](classroom/GF29.html?step=b0&from=RG25&returnStep=b0)


[约7%与约2–4%的完整近似分类](pages/GF25.html#b0)、[阈值与工作粒度](pages/GF25.html#b1)、[GPT-2 XL历史协议对照](pages/GF25.html#b2)。

[约90%的分母、阈值与粒度](./pages/RG25.html)：解释neuron poles、主要工作与相关分枝；保留约7%和约2–4%的近似分类而不强制凑到100%。

[弱响应改变了怎样的边界](./pages/GF18.html)：从具体弱响应及消融范围理解激活阈值，区分单元数量、响应幅度与实际因果作用。

[历史评分为何不能画进步折线](./pages/GF25.html)：GPT-2 XL历史与再审计协议、simulation score及归因图定性审阅各有对象，不能与Qwen比例直接连线。

[不能完全解释的具体响应](./pages/RG30.html)：用mixed5a:719的自然响应检查“一个主要工作”是否真的接住反例，给总体判断留可修改之处。

</details>

[逐页阅读与备课模拟](pages/RG25.html)

## 把尚未解释的例子留在桌面上

一个尚未解释清楚的单元可以帮助检验总体判断的边界。InceptionV1 mixed5a:719 响应领结、蝴蝶和泳衣，也响应礼鞋、沙滩包与拖鞋。简单的“中间收窄”概括不能接住全部证据，剩余部分应继续作为研究问题。

### 提出一个暂定概括

先看 mixed5a:719 这组响应。领结、蝴蝶与泳衣这些对象，中间都收窄、两边张开，“沙漏形”是一个可能的概括。原图上部保留同一单元的优化图与自然例，两个视角都指向类似形状。这个名字是候选解释，不能在几张顺眼的图上就结束。接着看同一个单元剩下的响应。

[对应图解与此步说明](pages/RG30.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

本态展示原图上部响应证据的固定视窗。中间收窄是从当前可见对象提出的候选，不是作者已经证明的完整函数。优化图和自然例受不同选择因素影响，应一起读。

</details>

证据与口径：Goodfire 原文、原图及其同源交互数据；本页按原数据重绘与中文讲解。

### 把难解释的响应保留下来

继续往下看，礼鞋、沙滩包与拖鞋没有都满足刚才的简单描述。作者找到一些共同来源，也提出带着语义残留的泛化解释，但还没有完全讲清。我们保留这些响应为待解决问题，不把标签无限放大后宣布成功。照片里有这些响应是观察；为什么相连是候选解释；整个网络多清晰则是更大的判断。能追到局部机制已经让研究前进，还不等于模型被解释完了。

[对应图解与此步说明](pages/RG30.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

保留上部缩略定位后才出现下部礼鞋、沙滩包与拖鞋。共同早期来源可以提示解释方向，却尚不足以说明全部响应；这就是应保留的具体未知。作者的85%另属总体机制判断的主观信念，不能作本例覆盖率。

</details>

证据与口径：Goodfire 原文、原图及其同源交互数据；本页按原数据重绘与中文讲解。

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

主文 Unresolved / counterevidence；附录 On the Title。作者约85%的数字是对其总体机制判断的主观信念，不是逐神经元解释覆盖率。

## 与本页相关的深入阅读

### A19｜保留一个没有完全解释的反应

InceptionV1 mixed5a:719 会响应中间收窄的领结、蝴蝶、泳衣上部，也响应伴随它们的礼鞋、沙滩包和拖鞋。作者倾向于把它读成共同形状加语义残留，因为早层共享通路；但他没有完全解释这些例外。课程保留这个对象，是为了让“还不知道”可以落在一组实际反应上，而不是被一个足够宽的名字抹掉。

[原文 Unresolved Responses](https://already-clean.goodfire.com/#counterevidence) · [GF30](classroom/GF30.html?step=b0)

### A22｜规模推断为什么仍是一项假说

作者把两件事分开：旧模型混乱的经典解释是否成立，以及任意打包会不会在下一规模出现。后一项没有由前一项直接排除。他的猜想是更成熟的相关电路更容易吸引新知识，罕见事实则沿相关通路生长，因而规模增大可能加强组织而非任意打包。可检验的预测是承载罕见事实的单元与注意力头应和事实内容有关。原文明确没有证明这一发展机制，不能据此保证更大模型永远更清楚。

[原文 Does Scale Help or Hurt Superposition?](https://already-clean.goodfire.com/#scale-and-superposition) · [GF28](classroom/GF28.html?step=b0) · [GF30](classroom/GF30.html?step=b0)

### A23｜怎样读一个比证据更大胆的标题

作者没有完成所有网络的全审计。他说约 85% 确信的是“几乎所有机制可能来自这一类组织过程”的假说，而不是报告“85% 神经元已解释”。标题表达的是对生成机制的判断变化，不能用作清洁率、正确率、安全性或对齐程度的测量。本文的有力之处在具体案例与可继续检查的方法；它的雄心仍需更多模型、协议和反例承受。

[原文 On the Title](https://already-clean.goodfire.com/#on-the-title) · [GF30](classroom/GF30.html?step=b0)

### A25｜分枝较弱，是否就可以不管

作者目前观察到的旁枝通常较罕见，在各自语境中也较少具有主干那样大的因果作用，因此不像罕见但极关键的隐藏机制。这是经验判断，并非保证；它还提出未知的抑制过度生长压力。研究上有价值的是能够解释旁枝的来路与作用，而不是仅统计 top-k 与一个标签吻合多少。若出现少见却影响巨大的分枝，就应更新这一判断。

[原文 Why We’re Not Worried About Recursive Generalization](https://already-clean.goodfire.com/#recursive-generalization-worry) · [GF21](classroom/GF21.html?step=b0) · [GF30](classroom/GF30.html?step=b0)

## 继续沿这个问题阅读

[本例的完整图、原逐态说明与推导](pages/GF30.html)。

- [从可解释案例，走向可执行研究](classroom/GF31.html?step=b0&from=RG30&returnStep=b0)


[观察、机制与作者信念的完整区分](pages/GF30.html#b2)。

[沙漏形之外，还有哪些响应](./pages/RG30.html)：原图保留领结、蝴蝶、泳衣与礼鞋、包、拖鞋；共同来源是线索，不能替代完整机制解释。

[把未知写成可执行研究](./pages/GF31.html)：保留输入控制、响应测量、连接与干预的研究候选，明确方案尚不是已完成实验。

[怎样读比证据更大胆的标题](./pages/GF30.html#b2)：区分作者85%主观信念、初步审计的比例与可扩展性假说，说明哪些新结果可改变判断。

</details>

[逐页阅读与备课模拟](pages/RG30.html)

## 回到 MAE：表示怎样落成一轮计算？

把三个层次重新接在一起：记忆装置展示结构的承载与读取，MAE 独立评测检验训练收益，Goodfire 案例追踪内部区分与作用。接下来回到先前 MAE 的可见 patch 表示，让这些向量进入实际矩阵计算，讨论并行、存储与搬运。

### 回收已经走过的证据

记忆装置帮助我们理解承载与读取的可能性；视觉训练检验这种可能性有没有转成任务收益；猫与车、Scar 这些案例进一步追内部形成了什么、怎样参与计算。这三类证据接起来，才逐步回答模型怎样学到并用上知识。它们相互补充，不能拿其中一类替另外两类作答。现在把表示放回一轮真正要执行的计算。

[对应图解与此步说明](pages/RG32.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

三行分别回指默认课堂已经展示的联想记忆装置、MAE分类结果、猫车与Scar，不依赖迁到深入层的其他案例。MAE与Goodfire是不同模型与研究设置，三类证据只能按各自对象连接。

</details>

证据与口径：AM 随机向量检索装置；MAE · He 等（2022）· Figure 2 / Table 3；Goodfire 原文局部机制案例

### 同一批可见patch，准备计算

回到前面这张校车图。进入这一轮 MAE encoder 的是可见 patch，每个位置成为一个向量，排成矩阵 X。后面一层层的变换，要靠共享权重和这些表示实际算出来。下一步就沿这一批向量看：哪些计算能一起做，训练时要保存什么，数据又要怎样搬运。同一个W会作用于X的许多行，这就是下一页要打开的多行计算。

[对应图解与此步说明](pages/RG32.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

X在此表示已经嵌入的MAE可见token向量，不是整幅原始像素。W表示接下来要看的某层共享变换；图只定位对象，没有为MAE另造维度或测量。计算桥继续沿X与W展开，而不重讲视觉实验。

</details>

证据与口径：MAE · He 等（2022）· Figure 2 校车遮挡输入；X 与 W 为教学计算定位示意

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

本页先回收记忆装置、MAE任务结果和Goodfire局部机制各自回答的问题，再明确返回MAE encoder的计算对象。校车遮挡图沿用MAE Figure 2的原图证据，X与W图形只定位计算关系，没有新增模型测量。

本课既有 N11–N19 与后续 N20。此桥接图为教学定位图；校车图沿用本课 MAE Figure 2 既有证据资产，不引入新模型结果。

## 继续沿这个问题阅读

[本例的完整图、原逐态说明与推导](pages/GF32.html)。

- [分数提高了，内部究竟学出了什么？](classroom/GF01.html?step=b0&from=RG32&returnStep=b0)


[容量、任务收益与内部机制](./pages/RG32.html)：用本讲实际出现的三个对象梳理各自支持的判断，明确Goodfire并非对刚才MAE的内部审计。

[回到MAE的训练与迁移](./pages/VR04.html)：核对可见patch、encoder、重建目标和分类迁移，再识别进入下一段的表示矩阵X。

[同一W怎样作用于多行表示](./pages/RC-H1.html)：沿可见token排成的X与共享W展开矩阵运算，区分行内并行与层间计算依赖。

</details>

[逐页阅读与备课模拟](pages/RG32.html)

## 同一组表示，怎样变成可执行的运算？

一批已知位置的表示可排成矩阵 X，共用投影 W 形成 XW。位置并行是计算的组织方式，attention、MLP 和后续层仍有先后依赖。图像与文字可共享这类算子接口；可读取的位置则由各自任务规定。

### 从可见位置接着走

继续沿这批 MAE 可见图块看。每个已知位置经过前面的处理，得到一行表示；把这些行排起来，就是矩阵 X。W 是接下来共享使用的投影参数。图里的色块表示坐标位置，不是这台模型的实测激活值。我们先保持输入与参数身份，看看输出怎样产生。

[对应图解与此步说明](pages/RC-H1.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

此处沿用 RG32 的 MAE 校车遮挡图与可见 patch 身份。X 为行向量排成的矩阵；不是把先前 Goodfire 的单元当作 MAE 实测结果。

</details>

证据与口径：教学构造与机制示意；非模型实测

### 同一 W 作用于多行

同一个 W 分别作用于 X 的许多行，结果排成输出矩阵 XW。每行接受相同的变换，因而能组织成硬件擅长的矩阵运算；增加输入位置会增加工作，却不要求为每行另学一套 W。图像和已知文字位置都可以这样排成多行，但接下来允许各行读取谁，还由任务决定。

[对应图解与此步说明](pages/RC-H1.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

设 X 为 T×d、W 为 d×h，则 XW 为 T×h。T 改变行数，W 的形状可以不变。这里只打开共享线性投影，不把完整 Transformer 层简化为一个矩阵乘法。

</details>

证据与口径：教学构造与机制示意；非模型实测

### 算子与层的先后依赖

下方是运算依赖：attention 先产生当前表示，MLP 才能接着变换，再送到下一层。能一起做的是依赖已经满足的工作，不是让所有层同时完成。为看清文字预测的读取边界，下一页借上一讲的半句英文，只跟踪 gave 这一行，然后再回到 A/B 记录。

[对应图解与此步说明](pages/RC-H1.html#b2)

证据与口径：教学构造与机制示意；非模型实测

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 进一步阅读

- [同一组已知输入，可以一起做哪些运算？：原图、推导与逐态解释](pages/N20.html#b0)

### 条件与来源

以下从计算对象、条件与原始证据继续展开。

#### 原 N20：同一组已知输入，可以一起做哪些运算？

同一投影作用于已知输入的许多行，可实现为大矩阵乘法。GPU 矩阵计算单元及 CUDA、Triton 等实现层负责组织具体执行；它们不改变数据依赖。图像 encoder 与因果文本模型可共用部分矩阵算子，但可见性规则不同。算子内的位置并行不能取消 attention、MLP 与层之间的先后依赖。

来源：Transformer 矩阵计算；L5 T34。

[相关的完整阅读材料](pages/Q01.html)保留原有公式、引用和原始图解。

[从一行投影到整批矩阵乘法](./pages/N20.html)：沿 X 的每一行、同一个 W 与输出行核对尺寸，解释哪些计算能并行、哪些必须等待。

[并行与因果读取](./pages/N21.html)：用 BOS / I / gave / him 的前缀—目标对照，分清数据已知与当前预测可见。

</details>

[逐页阅读与备课模拟](pages/RC-H1.html)

## 一起计算，不等于工作量不再增长

文字预测可以成批处理已知位置，同时让每一行只读取合法前缀。完整位置表的大小是 n²，因果有效配对是 n(n+1)/2：4 个位置分别为 16 与 10，8 个位置分别为 64 与 36。参数不必增加，中间计算与状态却会增长。

### gave 行只读合法前缀

先借上一讲的英文片段检查一行。gave 这一输入位置允许读取 BOS、I 和 gave；右侧 him 是要预测的目标。训练文件虽然包含完整句子，当前行也不能把后面的输入 him 当线索。这是在文字任务里添加的因果规则，与多行能否成批计算是两件事。

[对应图解与此步说明](pages/RC-H2.html#b0)

证据与口径：教学构造与机制示意；非模型实测

### 长度从四到八

现在离开具体句意，只改变位置数，做一个隔离长度影响的计数。四个 query 与四个 key 有十六个完整配对；变为八个位置后有六十四个，金框标出原来的四乘四范围。参数规则没变，但本次需要处理的位置关系增加了。

[对应图解与此步说明](pages/RC-H2.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

4 与 8 是独立教学计数，并不是给上一态的英文句子补写一倍文本；完整配对 n² 与因果有效配对 n(n+1)/2 必须区分。

</details>

证据与口径：教学构造与机制示意；非模型实测

### 完整表与有效配对分开

若只允许因果前缀，上三角不参与读取：四个位置是十项，八个位置是三十六项。有限长度下增长三点六倍，不是恰好四倍；两种计数都呈二次量级。图中参数 W 与本次中间表要分开看。工作量增加以后，这些对象还要有地方保存、有通路送去计算。

[对应图解与此步说明](pages/RC-H2.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

n=4：1+2+3+4=10；n=8：1+…+8=36。这里仅讨论稠密 attention 位置配对项，不把投影、MLP 等全部成本归为平方项。

</details>

证据与口径：教学构造与机制示意；非模型实测

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 进一步阅读

- [整段在手，不等于每一行都能偷看答案：原图、推导与逐态解释](pages/N21.html#b0)

- [长度翻倍，哪一块工作会接近四倍？：原图、推导与逐态解释](pages/N22.html#b0)

### 条件与来源

以下从计算对象、条件与原始证据继续展开。

#### 原 N21：整段在手，不等于每一行都能偷看答案

输入 BOS / I / gave / him 对应下一词标签 I / gave / him / a。gave 行可读取 BOS、I、gave，而不能读取后面的输入 him。标签 him 在目标端，不作为该行可见输入。训练前向之后另有 loss 与反向更新；推理 prefill 处理已知提示，只做前向；decode 生成未知新 token，需要逐步等待。

来源：L5 T30/T34 的因果训练与生成；原句片段固定使用 him。

[相关的完整阅读材料](pages/Q01.html)保留原有公式、引用和原始图解。

#### 原 N22：长度翻倍，哪一块工作会接近四倍？

dense attention 的完整分数矩阵尺寸为 n²；n=4 时16格，n=8 时64格。因果有效配对数为 n(n+1)/2，分别为10与36，有限 n 下比值为3.6而非4，但同属二次增长。投影参数可以不变，激活和注意力中间状态仍随序列长度增长。整个模型还有投影与 MLP 等不同增长项，不能将所有训练成本都写为 n²。

来源：[FlashAttention v2](https://arxiv.org/pdf/2205.14135v2)对 dense attention 中间矩阵的分析；4/8为教学构造。

[相关的完整阅读材料](pages/Q02.html)保留原有公式、引用和原始图解。

[gave 的前缀与 him 的目标身份](./pages/N21.html)：完整输入—目标对齐和因果可见区，说明为何批量训练不等于允许看未来。

[长度翻倍的两种计数](./pages/N22.html)：从完整方阵和有效下三角分别复算 16→64 与 10→36，并说明二次项的适用范围。

</details>

[逐页阅读与备课模拟](pages/RC-H2.html)

## 算得完、装得下、搬得动

显存保存大对象，片上工作区接收当前计算需要的数据。直接分阶段 attention 可以把 S、P 等完整中间表写回后再读；这使计算吞吐、容量与搬运带宽成为不同约束。后续分块执行改变的是保存与读写安排，仍需完成规定的读取目标。

### 给数据找到物理位置

左侧是高带宽显存 HBM，保存较大的输入、参数和中间结果；右侧是靠近计算的片上工作区，容量小得多。当前要算 Q 与 K 的匹配，先沿蓝色箭头把数据读过来。数据已经放在显存里，并不等于计算单元已经拿到它。

[对应图解与此步说明](pages/RC-H3.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

HBM 是 High Bandwidth Memory；本图只区分显存与片上工作区的职责，不给某型号芯片的容量或速度。

</details>

证据与口径：教学构造与机制示意；非模型实测

### 算完还要写回和再读

算出分数表 S 以后，一种直接实现把它写回 HBM；下一阶段再读出来做归一化。于是一次预测除了乘加，还包含保存、写回和再次读取。红线表示写回，蓝线表示读入，方向不同但处理的是同一个中间对象 S。

[对应图解与此步说明](pages/RC-H3.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

S=QKᵀ（可带任务规定的缩放与 mask），后续 P=softmax(S)，再 O=PV。这里保留代表性的 S 写回与重读，完整三阶段读写和分块比较在 RC-T3 展开。

</details>

证据与口径：教学构造与机制示意；非模型实测

### 把三个约束带到训练

现在可以区分三张账：容量看要保存多少，带宽看单位时间要搬多少，算力看乘加要做多少。完整大表能否少写回，后面还会回到这幅图。先问这些昂贵运算为何值得反复做：MAE 用原图构造目标，普通文字又怎样提供训练目标？

[对应图解与此步说明](pages/RC-H3.html#b2)

证据与口径：教学构造与机制示意；非模型实测

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 进一步阅读

- [算得快之外，还要装得下、搬得动：原图、推导与逐态解释](pages/N23.html#b0)

### 条件与来源

以下从计算对象、条件与原始证据继续展开。

#### 原 N23：算得快之外，还要装得下、搬得动

直接 attention 实现会生成分数矩阵，写入显存，再读出做 softmax，随后使用归一化权重汇总 V。HBM 容量、片上工作区容量、计算吞吐和数据搬运带宽是不同约束。这里先定位问题；N49–N51 回到同样的内存层级，用分块与在线归一化解释如何减少保存和搬运，不提前把名称当答案。

来源：[FlashAttention v2](https://arxiv.org/pdf/2205.14135v2)，§3.1 IO 分析。

[相关的完整阅读材料](pages/Q02.html)保留原有公式、引用和原始图解。

[一次 attention 的读入、写回与再读](./pages/N23.html)：沿 Q/K→S→P→O 定位每个对象在哪里，理解计算与搬运为何是两张账。

[分块怎样减少完整中间表的搬运](./pages/RC-T3.html)：比较直接实现和分块实现；保留所有允许位置，并解释必须共同归一化的原因。

</details>

[逐页阅读与备课模拟](pages/RC-H3.html)

## 普通记录，怎样自己产生训练题？

语言建模把完整材料拆成“合法前缀”和“实际后续”。A/B记录的完整文本是训练资料；在某个位置做预测时，模型只读该位置及此前内容。后续单位用于计分，而不是提前出现在当前可见输入中。改变截断位置，同一段资料便产生另一道预测题。

### 完整资料在这里

前面MAE有完整图片，再遮住部分像素作为预测题。现在把材料换成同一份A/B记录：相同设置下A用时十二秒，B用时八秒，内存没有测量。这段普通文字没有附带人工编写的问题和答案，但已经包含每个位置实际出现的后续。画面上方是完整资料，我们先保留它，再把某一次预测能读到的输入单独取出来。

[对应图解与此步说明](pages/RC-P1.html#b0)

证据与口径：A/B记录为教学构造；语言建模目标对应GPT-1 §3.1。

### 读到 B 用时，预测八

看第一条输入副本：它只读到“B用时”，未来内容被挡住。完整资料中接着出现的是八，所以训练程序知道这一次应当用八来计分。模型此刻要产生的是下一项的概率分布；八在独立目标端，并没有进入这一行的可见前缀。资料完整存在和当前预测不能偷看后续，可以同时成立。

[对应图解与此步说明](pages/RC-P1.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

“输入副本”表示当前预测的可见范围，不要求实现中真的复制出许多字符串。整段并行训练可用因果遮罩同时实现各位置的前缀约束。

</details>

证据与口径：A/B记录为教学构造；语言建模目标对应GPT-1 §3.1。

### 换位置，产生另一个目标

再换一个截断位置，读到“未测量”，目标就变成“内存”。同一段材料因此能在许多位置不断出题：有些要求表达习惯，有些要求数值与对象对应。目标来自原文，不是自动核查现实；记录若写错，训练目标也可能带着错误。先把目标组织清楚，再谈材料质量：如果整段都参加一次训练，每个输入位置该对应哪一项？

[对应图解与此步说明](pages/RC-P1.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

本页以可读词块说明机制；实际tokenizer可能将数字、标点或词语分成不同数量的token。后续页的16单位也属于明确指定的教学切分。

</details>

证据与口径：A/B记录为教学构造；语言建模目标对应GPT-1 §3.1。

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

| 当前合法前缀的末尾 | 原文实际后续／目标 | 当前预测不能读取的部分 |
| --- | --- | --- |
| B用时 | 8 | 8及其后的未来输入 |
| 未测量 | 内存 | 内存及其后的未来输入 |

完整资料用于构造监督；前缀用于生成预测；目标用于评价预测，三者职责不同。

### 深入解释与来源

#### 这段普通实验记录，怎样自己产生训练题？

普通记录能够提供语言建模监督：给定一段合法前缀，用材料里真实出现的下一单位作为目标。本例在“B用时”之后预测“8”，在“未测量”之后预测“内存”。完整原文属于资料区，模型的当前输入副本仍受因果限制。这里学习的是材料分布；训练目标本身不会自动核验记录是否符合真实世界。

### 来源与材料身份

- [原始入口](https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf)：§3.1，PDF物理第3页，语言建模目标；AB记录为本课教学构造

[从一段记录取得两道预测题](./pages/N24.html#b0)：用“B用时→8”和“未测量→内存”两对输入与目标，区分完整资料、当前可读前缀和计分端。

[把预测目标排成整段训练](./pages/N25.html#b0)：从开始标记到结束标记核对输入和目标的错位，说明因果可见性与同层并行如何同时成立。

[文本预训练的完整过程](./topics/pretraining.html)：从材料构造监督，接到概率、损失、参数更新与能力评价，解释预测后续为什么既有用也有边界。

[LAB 03 · T1 · 完整材料怎样产生多个预测目标？](https://deepnote.com/workspace/ise3309jingao-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/Fall-26-Lecture-06-2ff4b87b-2904-4b9c-b9e9-bdbd72962691/notebook/LAB-03-9280cd5ad74c43cba2c65cd705ff8dd6?utm_source=openai&utm_medium=mcp&utm_campaign=openaimcp&utm_content=9280cd5ad74c43cba2c65cd705ff8dd6&utm_term=get_notebook)：从同一 A/B 记录生成多组前缀与目标，区分教学切分和真实 tokenizer。

</details>

[逐页阅读与备课模拟](pages/RC-P1.html)

## 一组参数，面对一排前缀与目标

本例把正文分成16个可读教学单位，令x₀为开始标记BOS，x₁到x₁₆为正文。输入位置i读取x₀到xᵢ，预测下一项；末尾正文位置预测结束标记EOS。第二个“用时”位于x₉，其目标是x₁₀=8。所有位置共用参数，因果遮罩分别限定每个位置的读取范围。

### 先认出整段单位

同一段记录被分成十六个方便读图的单位。这里的token是教学单位，真实分词器不一定这样切。金色的是第二个“用时”，它紧接B、后面是八。先认出这三个相邻对象；下一步只重排输入与目标，不更换材料。

[对应图解与此步说明](pages/RC-P2.html#b0)

证据与口径：指定16单位的教学切分；因果语言建模目标对应GPT-1 §3.1。

### 输入与下一目标对齐

BOS是开始标记，它所在的位置预测第一单位“在相同设置下”。向后看，金色第二个“用时”记为x₉，它产生的预测要对照下一项x₁₀，也就是八。末尾句号对应的下一目标是结束标记EOS。因此两排各有十七格：上排是输入位置，下排是该位置应预测的后续，不能按相同文字把上下格直接配对。

[对应图解与此步说明](pages/RC-P2.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

索引从0开始：x₀=BOS；x₉是第二个“用时”，即把BOS计入后第10输入列。目标为x₁₀=8。x₁₆是正文末尾句号，其目标为EOS。

</details>

证据与口径：指定16单位的教学切分；因果语言建模目标对应GPT-1 §3.1。

### 只展开当前合法前缀

现在固定金色x₉这一行。它允许读取x₀到x₉，包括已有的A十二秒和B用时；x₁₀以及更后面的输入不可读。目标八仍留在计分端。训练程序可以一次持有整段文字，却必须对每个预测位置分别执行这样的因果可见性规则，否则任务就变成把未来答案抄回来。

[对应图解与此步说明](pages/RC-P2.html#b2)

证据与口径：指定16单位的教学切分；因果语言建模目标对应GPT-1 §3.1。

### 各位置共同计分

其他位置也各有自己的合法前缀、目标概率和损失Lᵢ。各项损失汇总后约束同一组参数θ，不是一列对应一台模型。同层的输入已知，可以批量计算；每行可读谁仍由因果规则决定。现在我们把十七项中的金色目标单独拿出来，追一次概率怎样变成可用于更新参数的数。

[对应图解与此步说明](pages/RC-P2.html#b3)

<details>
<summary>进一步解释与计算条件</summary>

训练损失可以对选定位置求和或求均值，本页只表达多个位置共同训练共享参数。具体归一方式、padding目标和实现移位约定须一致。

</details>

证据与口径：指定16单位的教学切分；因果语言建模目标对应GPT-1 §3.1。

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

| 输入位置 | 可读取的前缀 | 目标 |
| --- | --- | --- |
| x₀=BOS | BOS | x₁“在相同设置下” |
| x₉=第二个“用时” | x₀…x₉ | x₁₀=8 |
| x₁₆=末尾句号 | x₀…x₁₆ | EOS |

标签向后错开一项解决“预测谁”；因果mask解决“读取谁”。这两个设计不能互相替代。

### 深入解释与来源

#### 同一段文字，给每个位置一个后续目标

本例采用16个可读教学单位，非真实tokenizer输出。记x₀=BOS，x₁…x₁₆为正文；输入位置i使用x₀…xᵢ，预测xᵢ₊₁（i=0…15）；位置16预测EOS。因此上、下两行各有17项。第二个“用时”是x₉，也就是把BOS计为第1列后的第10输入列；对应目标为x₁₀=8。因果mask阻挡未来输入，不会把标签变成当前可读内容。各位置使用同一组参数，训练序列已知带来同层并行，并不取消每个位置的可见范围。

### 来源与材料身份

- [原始入口](https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf)：§3.1，物理第3页；因果decoder说明见同节
- [原始入口](https://codingai-lec05.pages.dev/classroom/T34.html?step=b0)：L5已知输入并行与右移标签基线；当前16单位切分为教学构造

[逐列核对输入、目标与索引](./pages/N25.html#b0)：列出16个正文单位与BOS/EOS，核对首列、第二个“用时”及末列，分开标签对齐和输入可见性。

[从当前目标的概率算损失](./pages/N26.html#b0)：固定目标8，比较两组假设概率的负对数损失，再沿前向、反向和优化器走一次更新。

[LAB 03 · T1 · 完整材料怎样产生多个预测目标？](https://deepnote.com/workspace/ise3309jingao-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/Fall-26-Lecture-06-2ff4b87b-2904-4b9c-b9e9-bdbd72962691/notebook/LAB-03-9280cd5ad74c43cba2c65cd705ff8dd6?utm_source=openai&utm_medium=mcp&utm_campaign=openaimcp&utm_content=9280cd5ad74c43cba2c65cd705ff8dd6&utm_term=get_notebook)：检查 input、target、causal mask 及 BOS/EOS 对齐，说明各位置怎样使用同一组参数。

</details>

[逐页阅读与备课模拟](pages/RC-P2.html)

## 把后词概率，变成一次参数更新

对当前实际目标8，单项损失可写为−ln pθ(8|前缀)。假设概率0.2与0.5分别对应约1.61与0.69的损失，说明评分规则偏好给实际后续更高概率。两张卡是独立对照。训练则要从一组参数完成前向、求损失、反向求梯度、优化器更新，再用新参数重新预测。

### 两张独立计分卡

目标仍是前一页的八。假设第一组预测给八零点二的概率，取负自然对数得到约一点六一；第二组给零点五，得到约零点六九。其他条件相同，对实际后续分配的概率越高，这一项损失越小。这两张卡只比较评分规则；右卡不是左卡经过一次更新后的测量。

[对应图解与此步说明](pages/RC-P3.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

本页取自然对数：−ln(0.2)=1.609437912…；−ln(0.5)=0.693147181…。不同对数底会改变数值尺度，本课全程采用自然对数。

</details>

证据与口径：概率0.2/0.5为独立教学假设；损失按自然对数复算，未声称一次优化实测。

### 沿第一张预测反传

现在沿第一组预测看训练。输入表示进入Transformer，再经词表头得到分布；目标八选出要计分的概率。反向传播沿这条计算依赖求梯度：如果想改变损失，各个参与计算的参数该怎样改变？红线回到表示参数、attention、MLP和词表头等位置。原文中的十二和八仍是输入材料，梯度并不改写这些文字。

[对应图解与此步说明](pages/RC-P3.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

反向传播求的是损失对可训练参数的导数。输入token身份固定，但其被查取的embedding参数若未冻结，仍可通过本次计算获得梯度。

</details>

证据与口径：概率0.2/0.5为独立教学假设；损失按自然对数复算，未声称一次优化实测。

### 优化器真正更新 θ

优化器根据梯度和自己的状态，将参数θ更新为θ′，然后必须重新做前向计算，才知道新的分布是什么。不能从两张示意卡断言一次更新就把零点二变成零点五：一次更新还汇总其他位置与样本的影响。样本、目标、损失、梯度、更新已经连成闭环。下一问是：后词预测究竟可能要求模型处理多长、多复杂的关系？

[对应图解与此步说明](pages/RC-P3.html#b2)

证据与口径：概率0.2/0.5为独立教学假设；损失按自然对数复算，未声称一次优化实测。

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

| 假设预测 | 目标8的概率 | 单项损失 −ln p |
| --- | ---: | ---: |
| 一 | 0.2 | 1.6094 |
| 二 | 0.5 | 0.6931 |

两行只是同一计分规则的对照。一次训练遵循：参数θ与输入→前向分布→目标损失→参数梯度→优化器更新为θ′→重新前向。输入文字不因反向传播而被改写。

### 深入解释与来源

#### 把真实后词的概率，变成一次参数更新

语言模型位置损失为 $L_i=-\log p_\theta(x_i\mid x_{<i})$，整段损失可取选定位置之和或均值。对目标8，假设概率0.2对应损失1.6094379，假设概率0.5对应0.6931472。两张概率卡只是计分对照，不是一轮优化的前后实测。训练闭环为前向分布、计算损失、反向梯度、优化器更新，再重新前向；一次更新不保证所有样本的损失同时下降。

### 来源与材料身份

- [原始入口](https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf)：§3.1语言建模对数似然；0.2/0.5及损失为本课给定算例

[目标概率怎样变成损失与梯度](./pages/N26.html#b0)：保留两组独立概率卡和负对数计算，区分计分对照与一次实际参数更新的完整依赖链。

[一次更新要保存哪些对象](./pages/N44.html#b0)：把本页的参数、梯度和优化器接到训练显存账，说明权重文件为什么不等于训练现场大小。

[LAB 03 · T2 · 一次 backward 和优化器步，究竟改变了什么？](https://deepnote.com/workspace/ise3309jingao-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/Fall-26-Lecture-06-2ff4b87b-2904-4b9c-b9e9-bdbd72962691/notebook/LAB-03-9280cd5ad74c43cba2c65cd705ff8dd6?utm_source=openai&utm_medium=mcp&utm_campaign=openaimcp&utm_content=9280cd5ad74c43cba2c65cd705ff8dd6&utm_term=get_notebook)：核对一次真实轻量 RNN 更新前后的参数、loss 和目标概率；不把教学计分预设为实测结果。

</details>

[逐页阅读与备课模拟](pages/RC-P3.html)

## 只改一个词，关系判断为什么反过来？

在“The trophy would not fit in the suitcase because it was too big/small”这组教学对照中，对象和放入动作保持不变。big通常把原因连到奖杯过大，small通常把原因连到手提箱过小。要给出明确解释，就需要结合物体、容器及失败原因，而不能只按名词距离决定指代。

### 先保留问题

把完整句子读完：奖杯放不进手提箱，因为它太大。两个物体先只标明角色：奖杯是要放进去的东西，手提箱是容器。我们要判断的不是哪个名词离it最近，而是哪一个对象“太大”能够解释放入失败。先保留这个问题，不让图片大小替我们直接给答案。

[对应图解与此步说明](pages/RC-P4.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

图形是物体/容器角色示意，不把画出的几何尺寸当作实验测量。任务条件来自完整句子。

</details>

证据与口径：Winograd式奖杯/手提箱教学对照；图中解释为教师参考。

### 解释物体太大

通常的解释是奖杯太大，相对于手提箱的可容纳空间放不进去。图中的尝试放入把原因和结果接了起来：物体过大，阻碍放入。最近的名词其实是手提箱，仅靠最近名词规则就会偏离这里的合理关系。显示的是教师参考；它提出任务需要什么关系，并不是一台模型已经做对的证据。

[对应图解与此步说明](pages/RC-P4.html#b1)

证据与口径：Winograd式奖杯/手提箱教学对照；图中解释为教师参考。

### 只把 big 改为 small

现在只把big换成small，名词顺序、两个角色和放入动作都不变。合理原因转向容器：手提箱太小，容不下奖杯。若沿用上一态的“选奖杯”，就忽略了刚刚改变的条件。模型若要明确解释这句话，必须让small与容器容量这层关系参与当前判断。

[对应图解与此步说明](pages/RC-P4.html#b2)

证据与口径：Winograd式奖杯/手提箱教学对照；图中解释为教师参考。

### 比较两种解释

两种原因放在一起：奖杯过大，或手提箱过小，都能解释放不进去。逐个输出token只是输出接口，不把所需依赖限制在相邻一个词。当前句子给本次条件，训练参数可能提供语言和关系模式；是否真的学得可靠，还要独立测试。接下来先看不同训练材料会反复提出什么要求，再看真实的迁移评价。

[对应图解与此步说明](pages/RC-P4.html#b3)

<details>
<summary>进一步解释与计算条件</summary>

该例展示任务可能要求的关系，并不证明任何模型已获得稳定常识。检验模型应使用受控变式和独立评价，而不是只展示教师给出的正确答案。

</details>

证据与口径：Winograd式奖杯/手提箱教学对照；图中解释为教师参考。

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

| 句子中改变的词 | 通常指向的对象 | 如何解释放入失败 |
| --- | --- | --- |
| big | 奖杯 | 物体相对容器过大 |
| small | 手提箱 | 容器可容纳空间过小 |

对象、顺序和动作未变，改变的是造成失败的条件。该对照说明任务要求，不能替代模型能力测量。

### 深入解释与来源

#### “太大”的到底是哪一个？

这是沿用的Winograd式奖杯/手提箱教学改写。完整条件中，物体相对容器过大可以解释放入失败，所以教师参考把“太大”连到奖杯。它展示预测可能需要的关系，不能作为模型真实输出或基准准确率。最近名词、固定选择第一个名词等浅层规则并不足以稳定完成这些关系判断。

### 来源与材料身份

- [原始入口](https://codingai-lec06.pages.dev/handbook.html)：沿用已采用的奖杯/手提箱教学改写；本例新增追问与教师参考，不标真实模型输出

#### 只把 big 换成 small，解释为什么反过来？

只把big改为small，两个物体的位置与放入关系保持不变。当前正常解释转为容器太小。直接翻译成“它太大/太小”不必然错误，只是把指代消解留给读者；本例显式消歧是为了展示关系变化，不宣判唯一正确译文。是否学到可靠常识，需要更多受控变式与独立评价。

### 来源与材料身份

- [原始入口](https://codingai-lec06.pages.dev/handbook.html)：既有奖杯/手提箱big/small教学边界；本例为受控关系对照

#### 翻译时，这一句、这个前缀和过去训练各提供什么？

源句提供当前对象、动作和big/small；目标前缀提供已经表达的内容；参数提供训练所得的语言与关系模式。encoder-decoder可由cross-attention读取源表示H，decoder-only可把源句和指令组织进同一因果前缀，两者都可以自回归输出。逐token生成本身不排斥常识，也不能保证常识可靠。

### 来源与材料身份

- [原始入口](https://codingai-lec05.pages.dev/classroom/T20.html?step=b2)：条件生成读取接口
- [原始入口](https://codingai-lec05.pages.dev/classroom/T42.html?step=b2)：源条件进入decoder-only同一前缀的对照
- [原始入口](https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf)：§3框架、§4实验；不从架构形式直接推导常识能力

[奖杯与手提箱：完整条件怎样决定指代](./pages/N27.html#b0)：从big句子的物体、容器和放入失败关系解释教师参考，保留构造例身份。

[只替换一个词，为什么解释改变](./pages/N28.html#b0)：并排比较big与small；同时说明直译为“它”可以保留歧义，本例不规定唯一中文译文。

[当前句子、目标前缀与训练参数](./pages/N29.html#b0)：把本次条件、已经表达的内容和训练所得语言模式放在不同位置，比较两类条件生成接口。

[LAB 03 · T3 · 预算相同，只改变反复出现的材料](https://deepnote.com/workspace/ise3309jingao-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/Fall-26-Lecture-06-2ff4b87b-2904-4b9c-b9e9-bdbd72962691/notebook/LAB-03-9280cd5ad74c43cba2c65cd705ff8dd6?utm_source=openai&utm_medium=mcp&utm_campaign=openaimcp&utm_content=9280cd5ad74c43cba2c65cd705ff8dd6&utm_term=get_notebook)：比较成对输入与实际输出；把教师参考答案、轻量训练和独立诊断分别看待。

[LAB 04 · I2 · 对照能回答什么？先核输入，再看输出](https://deepnote.com/workspace/ise3309jingao-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/Fall-26-Lecture-06-2ff4b87b-2904-4b9c-b9e9-bdbd72962691/notebook/LAB-04-8d38f8a6b20944129b6587b282ab38d2?utm_source=openai&utm_medium=mcp&utm_campaign=openaimcp&utm_content=8d38f8a6b20944129b6587b282ab38d2&utm_term=get_notebook)：打开本册后，找到同名小节。

</details>

[逐页阅读与备课模拟](pages/RC-P4.html)

## 目标相同，材料让模型反复遇到什么？

相同的语言建模目标可以作用在关系句、实验记录和代码上，但三类材料分别要求因果条件、数值对象对应和程序依赖。材料类别并不自动等于获得的能力。资料库存、抽样后的训练消费和重复次数也必须分开：未被抽到的材料不构成这轮训练经历，重复读取则重复消耗计算。

### 同一预测接口

三种材料都能采用合法前缀预测后续。关系句含有物体、容器和原因；A/B记录含有方案、数值和未测项；代码把A、B映射到耗时，再用min选择对应的键。目标形式相同，预测时必须利用的具体依赖并不相同。

[对应图解与此步说明](pages/RC-P5.html#b0)

证据与口径：三类输入为教学材料；库存、混合权重与重复口径对应GPT-3 Table2.2。

### 反复提出不同要求

关系句要把原因连到对象，实验记录要把十二和八分别连回A和B，代码还要让变量、字典键与函数调用配合。材料决定训练反复向模型提出哪些要求，但“材料里有代码”不等于“模型已经会编程”。训练能否把这些规律变成可用本领，需要下一步的独立任务评价。

[对应图解与此步说明](pages/RC-P5.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

代码是教学输入，未将这里的代码或答案伪称为模型生成。min(times, key=times.get)按字典值选择最小耗时对应的键，本例为B。

</details>

证据与口径：三类输入为教学材料；库存、混合权重与重复口径对应GPT-3 Table2.2。

### 库存与消费分开

再看文档编号组成的训练流。库存里有一、二、三号文档，实际训练却按抽样顺序读了一、二、一、三、一、二。同一文档被读三次，就产生三次训练消费；没被抽到的材料只是库存。筛选、抽样和重复一起改变训练经历。现在先问这些经历能否帮助新任务，稍后再把实际消费放进计算预算。

[对应图解与此步说明](pages/RC-P5.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

GPT-3原表同时报告数据集规模、混合权重与近似epoch；权重经过四舍五入，不能为使总和恰为100%擅改各项。完整五行表保留在本页阅读正文。

</details>

证据与口径：三类输入为教学材料；库存、混合权重与重复口径对应GPT-3 Table2.2。

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

| 材料 | 预测可能需要的依赖 |
| --- | --- |
| 奖杯／手提箱关系句 | 物体、容器、原因条件 |
| A/B实验记录 | 方案、数值、未测范围 |
| 字典与min调用代码 | 变量、键值对应、函数语义 |

库存①②③与训练流①②①③①②不同：前者有三份独特文档，后者发生六次读取。这只是说明计数身份，不是模型能力或泛化测量。

### 深入解释与来源

#### 目标相同，材料让模型反复遇见的关系不同

相同的下一项预测目标可以面对物体关系、记录字段或代码操作等不同内容。材料选择改变反复要求模型处理的规律，但不能仅凭材料类别宣布能力已经获得。库存是可用语料；过滤、去重、抽样比例和重复决定实际训练消费。GPT-3训练300B tokens的语料表区分库存、混合权重与近似epoch，原论文四舍五入后的权重合计不强改为100%。

![GPT-3 Table2.2完整五行](/assets/evidence/gpt3-table2-2.png)

[完整数据配比解释](pages/P03.html) · [Goodfire五步局部表示观察](pages/P05.html)。后者是InceptionV1案例，不是LLM能力证明。

### 来源与材料身份

- [原始入口](https://arxiv.org/pdf/2005.14165v4)：§2.2、Table2.2，PDF物理第9页：库存、训练混合权重、消费/重复分别列示

[同一目标下，三类材料提出不同要求](./pages/N30.html#b0)：保留关系句、A/B记录和代码实例，逐一解释它们的依赖，再看库存到实际训练消费的路径。

[读GPT-3的训练材料表](./pages/P03.html)：对照完整Table2.2的语料规模、混合权重和近似epoch，分开“有多少独特材料”和“实际读过多少”。

[LAB 03 · T3 · 预算相同，只改变反复出现的材料](https://deepnote.com/workspace/ise3309jingao-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/Fall-26-Lecture-06-2ff4b87b-2904-4b9c-b9e9-bdbd72962691/notebook/LAB-03-9280cd5ad74c43cba2c65cd705ff8dd6?utm_source=openai&utm_medium=mcp&utm_campaign=openaimcp&utm_content=9280cd5ad74c43cba2c65cd705ff8dd6&utm_term=get_notebook)：区分材料库存、不同 token 和实际训练消费量，检查固定预算下材料提出的依赖。

[LAB 06 · R1 · 固定计算预算，改变模型与训练量](https://deepnote.com/workspace/ise3309jingao-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/Fall-26-Lecture-06-2ff4b87b-2904-4b9c-b9e9-bdbd72962691/notebook/LAB-06-56ea4de667c74a84a7be00689c8de2d9?utm_source=openai&utm_medium=mcp&utm_campaign=openaimcp&utm_content=56ea4de667c74a84a7be00689c8de2d9&utm_term=get_notebook)：打开本册后，找到同名小节。

</details>

[逐页阅读与备课模拟](pages/RC-P5.html)

## 普通文本训练，能帮助另一项任务吗？

自然语言推断判断一条假设与给定前提的关系：受到支持、与前提冲突，或信息不足。A/B例子只用于解释这三类关系。真实证据来自GPT-1 Table5的MNLI消融：完整方案81.8，无预训练方案75.7，相差6.1个百分点；两条路线均使用下游监督，完整方案含辅助语言模型目标并额外使用预训练资源。

### 三条结论与同一前提

先用熟悉的A/B前提读懂任务：十二和八支持“B在本次测试中耗时更短”，与“A更快”冲突；没有测内存，则“B内存更少”既未得到支持，也未被否定。这三种关系叫蕴含、矛盾、中立，合称自然语言推断，简称NLI。左边三句是课堂构造，用来理解任务，不是论文MNLI数据集中的原题。

[对应图解与此步说明](pages/RC-P6.html#b0)

证据与口径：A/B句对为教学构造，用于解释NLI三关系；不是MNLI原题。

### 换成真实任务和训练路线

现在把证据换成真实MNLI评价。它在不同体裁的前提与假设句对上判断同样三类关系。上路先用普通文本做语言模型预训练，再用带标签的MNLI数据更新参数；下路省去预训练，直接从下游监督训练开始。两路的终点都是MNLI分类评价，这次比较的是训练经历是否带来可迁移收益。

[对应图解与此步说明](pages/RC-P6.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

MNLI为跨体裁自然语言推断任务。此处早期GPT使用下游监督微调及任务输入转换，不应与后面仅前向的ICL或生成式指令SFT混为同一接口。

</details>

证据与口径：GPT-1 §3.2–3.3、§4.2与Table5：有／无预训练的下游监督路线。

### 读同一列真实分数

GPT-1 Table5的同一MNLI列，完整方案是百分之八十一点八，去掉预训练是百分之七十五点七，差六点一个百分点。准确率表示许多句对中关系标签判断正确的比例。这些是原论文实验结果，不是左边三道A/B题的得分，也不是本课现场重跑。结果支持指定条件下普通文本预训练对下游任务有帮助。

[对应图解与此步说明](pages/RC-P6.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

GPT-1 Table5：Transformer w/ aux LM (full)=81.8；Transformer w/o pre-training=75.7；Transformer w/o aux LM=81.1。这里只主读前两项，不与Table2的MNLI-m/mm 82.1/81.4混用。

</details>

证据与口径：GPT-1 Table5 MNLI原实验：full 81.8、无预训练75.7；差6.1个百分点。

### 把证据条件一起带走

把两条路线的条件也一起读：两路都有下游标签，完整方案还加入辅助语言模型目标，而且多用了预训练材料和计算。因此它不是不改参数的纯提示实验，也不是等总预算比较。到这里我们看的是训练后继续更新参数的迁移。接下来把优化器暂时拿开，只给当前输入加一个示例，看看可以改变什么。

[对应图解与此步说明](pages/RC-P6.html#b3)

<details>
<summary>进一步解释与计算条件</summary>

“full + aux LM”中的aux LM是辅助语言模型目标，指下游训练同时保留语言建模辅助项；不能将它改写成另一个没有原文依据的新训练阶段。

</details>

证据与口径：GPT-1 Table5条件：两路有下游监督，full含aux LM；额外预训练数据与计算，非等总预算。

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

| 材料层 | 比较内容 | 可以回答的问题 |
| --- | --- | --- |
| A/B教学例 | B更快／A更快／B内存更少 | 蕴含、矛盾、中立分别是什么意思 |
| GPT-1 Table5原实验 | full 81.8；w/o pre-training 75.7 | 指定训练配置下预训练是否有迁移收益 |

![GPT-1 Table5：MNLI消融的原始证据](/assets/evidence/gpt1-table5.png)

6.1是准确率的百分点差，不是相对增长率。原表和A/B构造例承担不同职责，不能把整页都标为教学模拟。

### 深入解释与来源

#### 先看任务：这条结论能从前提推出吗？

NLI判断前提与假设之间的关系：蕴含是被前提支持，矛盾是与前提冲突，中立是信息不足。本例A/B三句是教学构造，并非MNLI原题。未测内存不能推出B更省，也不能推出A更省或两者相等。MNLI是真实跨体裁的自然语言推断数据集，准确率是在许多句对上选对标签的比例。

### 来源与材料身份

- [原始入口](https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf)：§4.2 Natural Language Inference，物理第5页；本例AB句对为构造例

#### 预训练之后，能否把所得用于另一项任务？

GPT-1 Table5的MNLI列：Transformer w/ aux LM (full)为81.8，Transformer w/o pre-training为75.7，差6.1个百分点。两条路线都有下游监督学习；full还包含辅助语言模型目标，w/o aux LM一行为81.1。本例比较预训练消融，不是纯提示zero-shot，也不是相同总训练预算，不与Table2的MNLI-m/mm 82.1/81.4混用。

[完整迁移比较](pages/P04.html)。

### 来源与材料身份

- [原始入口](https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf)：Table5，PDF物理第8页；§3.2–3.3说明下游监督微调与输入转换

[从A/B前提理解蕴含、矛盾和中立](./pages/N31.html#b0)：三句假设共用12/8秒及未测内存的前提；重点解释未知为何既不是支持，也不是反对。

[GPT-1的MNLI消融原表与训练路线](./pages/N32.html#b0)：直接查看Table5，核对81.8/75.7、辅助LM目标及下游监督，分清预训练迁移、纯提示和等预算比较。

[预训练如何迁到下游任务](./pages/P04.html)：进一步解释预训练参数、下游输入转换和监督训练的关系，保留完整迁移比较。

[LAB 03 · T3 · 预算相同，只改变反复出现的材料](https://deepnote.com/workspace/ise3309jingao-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/Fall-26-Lecture-06-2ff4b87b-2904-4b9c-b9e9-bdbd72962691/notebook/LAB-03-9280cd5ad74c43cba2c65cd705ff8dd6?utm_source=openai&utm_medium=mcp&utm_campaign=openaimcp&utm_content=9280cd5ad74c43cba2c65cd705ff8dd6&utm_term=get_notebook)：分别阅读 GPT-1 原表和课堂轻量模型结果，说明它们各自支持怎样的迁移判断。

</details>

[逐页阅读与备课模拟](pages/RC-P6.html)

## 给同一份 AB 请求加一个示例

上下文学习把任务示例放进当前输入。C/D示例示范“先给本次耗时结论，再保留未测项”的回应方式；A/B的12/8秒与未测内存仍是当前事实来源。该输入对照没有反向传播或优化器更新，图中回应是教师参考，不构成示例改善效果的实测。

### 共同的当前请求

保留同一A/B请求：比较十二与八，并保留未测内存。我们只改变输入是否带有示例，训练参数固定。

[对应图解与此步说明](pages/RC-A1.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

本态没有提供模型输出。比较输入条件时，不应先编一个“无示例答错”的结果，把构造场景变成收益证据。

</details>

证据与口径：A/B与C/D提示及回应为教学构造；示例条件概念对应GPT-3 §2。

### 只增加 C/D 示范

右边加入C/D示例：先比较耗时，再保留未测能耗。它示范回应的组织方式；当前事实仍是A/B，不能把D、七秒或能耗抄进回答。

[对应图解与此步说明](pages/RC-A1.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

C/D示例提供的是如何把已知与未知一起组织成回答；C/D的耗时与未测能耗不能作为A/B的新事实。

</details>

证据与口径：A/B与C/D提示及回应为教学构造；示例条件概念对应GPT-3 §2。

### 按当前事实给参考

两边的教师参考都应是“B在本次测试中耗时更短；内存尚未比较”。这是参考答案，没有模型实测胜负。参数未变，示例怎样影响本次回答？

[对应图解与此步说明](pages/RC-A1.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

图中两个参考回答相同，是因为同一A/B任务的正确参考相同；不是两次模型运行恰好得到相同输出。zero/one-shot描述本次提示中的示例条件，不代表模型此前从未训练过相关任务。

</details>

证据与口径：A/B与C/D提示及回应为教学构造；示例条件概念对应GPT-3 §2。

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

| 项目 | 示例材料 | 当前材料 |
| --- | --- | --- |
| 对象与用时 | C 10秒；D 7秒 | A 12秒；B 8秒 |
| 未测项 | 能耗 | 内存 |
| 可借用的东西 | “本次结果；未知事项”的回应方式 | 当前回答必须依据本列事实 |

上下文学习改变本次输入，不自动写入参数。示例是否改善任务表现，需要实际评价。

### 深入解释与来源

#### 另一个教学构造：用翻译提示对照示例数量

下面暂时离开当前AB/CD记录，回看原N33保留的翻译构造例：它同样比较“不给示例”和“先给一个示例”的输入形式，并非本页AB任务的运行结果。zero-shot与one-shot描述本次输入中给多少任务示例，不是新架构。在这个翻译例内部，两种提示都问cheese，one-shot另给sea otter/loutre de mer成对例子。fromage只作教师参考，没有真实模型运行或左错右对比较。本例按GPT-3的示例形式重新排版，不是WMT正式评测提示的逐字复刻。

### 来源与材料身份

- [原始入口](https://arxiv.org/pdf/2005.14165v4)：§2及Fig2.1，PDF物理第6–7页；本例输入按其zero/one-shot形式重写，教师参考不作GPT-3输出证据

#### 给同一份 AB 记录加一个示例，会教清什么？

提示先用C/D、10/7秒与未测能耗示范“结果；尚不能判断的事项”，再给A/B、12/8秒与未测内存。示例提供格式和边界，当前材料提供事实；二者不能串用数字。教师参考仍需重新读取当前记录。没有执行真实推理时，预期回答与核对方法不应写成实测效果。

### 来源与材料身份

- [原始入口](https://arxiv.org/pdf/2005.14165v4)：§2 few-shot条件设置；AB/CD提示、参考回应为本课构造
- [原始入口](https://arxiv.org/html/2203.02155v1)：§1区分一般语言模型目标与用户期望行为；不将本例伪称论文运行结果

[一个完整示例怎样指导当前请求](./pages/N36.html#b0)：对照C/D示例与A/B当前材料，逐项核对对象、数字、未测项和回应格式，防止把示例事实抄给当前问题。

[另一种示例：英语到法语](./pages/N33.html#b0)：用zero-shot与one-shot完整提示说明示例数量的含义，保留cheese/sea otter教学输入与教师参考。

[固定参数为什么仍会得到不同状态](./pages/N34.html#b0)：把输入变化接到X、K/V与前向计算，解释示例影响回答的入口。

[LAB 04 · I1 · 哪些东西在这次运行中没有改变？](https://deepnote.com/workspace/ise3309jingao-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/Fall-26-Lecture-06-2ff4b87b-2904-4b9c-b9e9-bdbd72962691/notebook/LAB-04-8d38f8a6b20944129b6587b282ab38d2?utm_source=openai&utm_medium=mcp&utm_campaign=openaimcp&utm_content=8d38f8a6b20944129b6587b282ab38d2&utm_term=get_notebook)：核对固定 checkpoint、输入和已保存输出。24 条真实 pilot、独立 6 条诊断与 192 条合成 fixture 分开。

[LAB 04 · I2 · 对照能回答什么？先核输入，再看输出](https://deepnote.com/workspace/ise3309jingao-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/Fall-26-Lecture-06-2ff4b87b-2904-4b9c-b9e9-bdbd72962691/notebook/LAB-04-8d38f8a6b20944129b6587b282ab38d2?utm_source=openai&utm_medium=mcp&utm_campaign=openaimcp&utm_content=8d38f8a6b20944129b6587b282ab38d2&utm_term=get_notebook)：打开本册后，找到同名小节。

</details>

[逐页阅读与备课模拟](pages/RC-A1.html)

## 固定 W，改变 X，当前状态就会改变

在某一层，输入表示X经过训练得到的投影Wₖ和Wᵥ，生成本次K=XWₖ与V=XWᵥ。在当前问题前插入C/D示例，会增加输入位置，并改变后续位置的上下文表示。相同权重仍可产生不同状态和输出分布；这是前向计算，不需要本次优化器更新。

### 同一组参数，两份输入

两份输入使用同一组W。加了前置示例，当前层的表示由X₀变为X₁；X是一排表示向量，不是参数。

[对应图解与此步说明](pages/RC-A2.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

第一层X来自token与位置等输入表示；后层X已经包含之前层处理的上下文。这里的0/1是两份输入条件的编号，不是时间步或模型版本。

</details>

证据与口径：A/B与C/D为教学输入；固定参数仅前向的few-shot设置对应GPT-3 §2。

### 同一投影，新的 K/V

沿相同投影计算K=XWₖ、V=XWᵥ。W没变，X不同，K/V就可以不同。前置示例成为后续位置可读取的内容。

[对应图解与此步说明](pages/RC-A2.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

前置示例参与模型计算并改变条件；它不是绕过当前任务直接复制答案的通道。

</details>

证据与口径：A/B与C/D为教学输入；固定参数仅前向的few-shot设置对应GPT-3 §2。

### 沿合法读取走到预测

当前Q读取合法前缀K/V，经后续计算形成词表分布。这里只有前向，没有优化器更新。机制说明了影响的入口；影响是否有益，还需要独立评价。

[对应图解与此步说明](pages/RC-A2.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

普通ICL只有前向计算。某些研究会把特定情形下的内部计算与学习算法类比，但本图本身不证明一般ICL必然实现梯度下降。

</details>

证据与口径：A/B与C/D为教学输入；固定参数仅前向的few-shot设置对应GPT-3 §2。

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

| 跨两种输入保持不变 | 随当前输入改变 |
| --- | --- |
| 训练权重WQ、WK、WV | 输入位置及各层表示X |
| 参数化的计算规则 | 本次K/V与可能不同的输出分布 |

在某层，K=XWₖ、V=XWᵥ。用同一矩阵处理不同输入可产生不同结果；这不要求执行一次参数更新。

### 深入解释与来源

#### 固定的是 W，改变的是这次进入计算的 X

在某层，固定投影权重与不同层输入产生不同的当前K/V：$K=XW_K$，$V=XW_V$。第一层X来自token和位置表示，后层X是上下文化后的层输入。本例从当前问题前插入示例，后续位置及条件改变；不要推广为纯因果模型追加token后所有旧位置都会变化。普通ICL只作前向，不执行优化器更新，也不等价于宣称内部算法必然是梯度下降。

### 来源与材料身份

- [原始入口](https://arxiv.org/pdf/2005.14165v4)：§2：few-shot评测仅前向，无权重更新；Q/K/V数学关系承接L5已讲Transformer
- [原始入口](https://codingai-lec05.pages.dev/classroom/T43.html?step=b2)：参数更新与当前输入两条路径的既有基线

[固定W与变化X的完整计算关系](./pages/N34.html#b0)：说明第一层与后层X的身份、K/V投影及当前查询的合法读取范围，区分插入示例与末尾追加。

[真实翻译评价怎样检验示例效果](./pages/N35.html#b0)：从机制解释转向GPT-3固定参数的zero/one/few-shot比较，区分可能影响与实际有效。

[LAB 01 · M4 · 参数不变，内容可变；选择性也会放大错误](https://deepnote.com/workspace/ise3309jingao-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/Fall-26-Lecture-06-2ff4b87b-2904-4b9c-b9e9-bdbd72962691/notebook/LAB-01-e1f6f8c1ebd543c5ade548e0af61edc1?utm_source=openai&utm_medium=mcp&utm_campaign=openaimcp&utm_content=e1f6f8c1ebd543c5ade548e0af61edc1&utm_term=get_notebook)：比较参数不变时的内容变化；将关联记忆构造与固定真实模型的记录分开。

[LAB 04 · I1 · 哪些东西在这次运行中没有改变？](https://deepnote.com/workspace/ise3309jingao-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/Fall-26-Lecture-06-2ff4b87b-2904-4b9c-b9e9-bdbd72962691/notebook/LAB-04-8d38f8a6b20944129b6587b282ab38d2?utm_source=openai&utm_medium=mcp&utm_campaign=openaimcp&utm_content=8d38f8a6b20944129b6587b282ab38d2&utm_term=get_notebook)：打开本册后，找到同名小节。

</details>

[逐页阅读与备课模拟](pages/RC-A2.html)

## 示例有效吗？看独立的完整翻译评价

GPT-3 Table3.4报告同一175B模型在WMT’14英语到法语任务上的BLEU：zero-shot 25.2、one-shot 28.3、few-shot 32.6。评测仅前向、不更新模型参数。few-shot采用K=64的设置并受2048上下文窗口限制。该结果是指定翻译任务的证据，与A/B课堂构造例分开。

### 先辨明测量对象

换看真实完整句翻译：GPT-3的175B模型，WMT英语到法语。BLEU衡量译文与参考译文的匹配，不是正确率；这也不是刚才的A/B实验。

[对应图解与此步说明](pages/RC-A3.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

原文为GPT-3 Table3.4，175B模型，WMT’14 English→French；采用multi-bleu.perl口径。完整六方向原表保留在阅读正文。

</details>

证据与口径：GPT-3 Table3.4原始翻译评测：175B、WMT’14 En→Fr、BLEU；固定参数仅前向。

### 比较同模型三条件

同一模型固定参数：零例25.2，一例28.3，少样例32.6，提升7.4分。少样例上限K=64，还受2048 token窗口限制。

[对应图解与此步说明](pages/RC-A3.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

论文§3.3与Appendix H给出1/64个成对示例等设置；K=64与有限上下文窗口须一起解释，不能把它改成任意长度的64句保证。

K=64是论文少样例设置，受上下文窗口约束；不能解释为每个请求保证装入64个任意长度的句对。

</details>

证据与口径：GPT-3 Table3.4原始翻译评测：175B、WMT’14 En→Fr、BLEU；固定参数仅前向。

### 收益带着条件和代价

证据支持这个任务与配置中的收益，不能推广成示例越多越好。若希望每次不附示例也能按要求回应，可以进一步训练参数。

[对应图解与此步说明](pages/RC-A3.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

这个评价把机制可能性推进为指定配置下的收益证据。示例选择、上下文占用和执行成本仍需分别评价。

</details>

证据与口径：GPT-3 Table3.4原始翻译评测：175B、WMT’14 En→Fr、BLEU；固定参数仅前向。

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

| 示例条件 | BLEU |
| --- | ---: |
| Zero-shot | 25.2 |
| One-shot | 28.3 |
| Few-shot，K=64设置 | 32.6 |

![GPT-3 Table3.4：六个翻译方向的原表](/assets/evidence/gpt3-table3-4.png)

这些数值来自真实论文评价，BLEU不是准确率。本课未重跑模型，也未将此结果改写成A/B任务效果。

### 深入解释与来源

#### 示例的作用，要在完整翻译任务上看

这里仅采用GPT-3 Table3.4的175B模型在WMT’14 English→French方向的BLEU：zero-shot25.2、one-shot28.3、few-shot32.6，采用multi-bleu.perl口径。论文设置K=64，并受2048上下文窗口约束，不假定每条输入完整装下64个长句。BLEU不是准确率，7.4分差不能写作准确率提高7.4%。

结果仅支持指定模型、任务、示例与预算条件，不能推广为示例越多越好或超越全部监督模型。

### 来源与材料身份

- [原始入口](https://arxiv.org/pdf/2005.14165v4)：Table3.4，PDF物理第15页；§3.3物理第14页说明1/64个成对示例；Appendix H物理第63页En→Fr14的K=64及175B结果

[固定模型的三种示例条件](./pages/N35.html#b0)：查看同一翻译方向的三根柱和原始六方向表，解释BLEU单位、K=64设置及窗口限制。

[从输入示例走向任务示范训练](./pages/N37.html#b0)：回到A/B任务，比较文档接续和期望回应，再把它们组织为监督微调样本。

[LAB 04 · I3 · 改一次分析条件，看看结论是否稳固](https://deepnote.com/workspace/ise3309jingao-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/Fall-26-Lecture-06-2ff4b87b-2904-4b9c-b9e9-bdbd72962691/notebook/LAB-04-8d38f8a6b20944129b6587b282ab38d2?utm_source=openai&utm_medium=mcp&utm_campaign=openaimcp&utm_content=8d38f8a6b20944129b6587b282ab38d2&utm_term=get_notebook)：重算已有记录，检查分母和对照条件；D−C 不能单独代表示例的因果效应。

</details>

[逐页阅读与备课模拟](pages/RC-A3.html)

## 把期望的回应方式写进训练样本

生成式指令SFT以请求、材料和期望回应组成监督样本，从已有预训练参数继续训练。通顺续文与完成任务的回应都可以通过逐token预测产生，差别在于当前条件下反复训练的期望行为。instruction、input、response表示职责；实际输入仍按模型模板连接为一条带角色边界的序列。

### 撤去示例，保留请求

撤去C/D示例，仍要求根据A/B材料用一句话回答，并保留未知。现在检查后续有没有完成请求。

[对应图解与此步说明](pages/RC-A4.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

“文字通顺”与“完成用户请求”是两个判断。仍使用相同A/B事实，只改变我们希望训练出的回应行为。

</details>

证据与口径：A/B请求与两种后续为教学构造；示范监督训练对应InstructGPT §3.1。

### 两种后续都能逐token生成

“下一节介绍实验装置”虽通顺，却没回答。期望回应同时满足比较、范围、未知与形式四项要求。两种后续是教学构造，不是模型实测。

[对应图解与此步说明](pages/RC-A4.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

期望回应逐项对应：8小于12、限定本次测试、保留未测内存、符合一句话要求。四项是可检查职责，并非实测增益。

</details>

证据与口径：A/B请求与两种后续为教学构造；示范监督训练对应InstructGPT §3.1。

### 把三种职责组成一个样本

把请求、材料、期望回应分别记为instruction、input、response，用这类示范继续训练已有参数，就是监督微调SFT。目标仍是预测后续回应。

[对应图解与此步说明](pages/RC-A4.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

这里是生成式指令SFT：继续以token预测目标训练。它和GPT-1 MNLI页的判别任务微调共享“从预训练参数继续训练”的思想，但输出接口不同。SFT也不等于全部后训练。

</details>

证据与口径：A/B请求与两种后续为教学构造；示范监督训练对应InstructGPT §3.1。

### 连接序列，保留角色边界

三部分连成序列：prompt含指令、材料和回应边界，之后是正确回应。角色标记是教学占位。下一页检查首回应B在哪里预测、在哪里计分。

[对应图解与此步说明](pages/RC-A4.html#b3)

<details>
<summary>进一步解释与计算条件</summary>

instruction/input/response只是职责划分；〈user〉、〈assistant〉和当前切分为教学占位，不宣称适用于所有模型的精确chat template。

完整训练回应虽已知，每个预测位置仍只读合法前缀。该因果规则在下一页与目标是否计分的规则分开。

</details>

证据与口径：A/B请求与两种后续为教学构造；示范监督训练对应InstructGPT §3.1。

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

| 样本职责 | 本例内容 |
| --- | --- |
| Instruction | 只根据材料，用一句话概括结果并保留未知 |
| Input | A 12秒、B 8秒；未测内存 |
| Response | B在本次测试中耗时更短；内存尚未比较 |

三部分经模型适用的角色模板连成序列。SFT继续更新预训练参数；“通顺但未完成任务”的构造对照不是实际模型失败记录。

### 深入解释与来源

#### 同样继续写 token，可以是在续文档，也可以是在回答

基础语言建模与任务回应共享预测后续token的接口。两种后续都是人为构造，不能把文档接续当作某基础模型的真实失败，也不说明基础模型绝不可能完成请求。任务化示范反复展示输入材料、请求和期望回应，SFT只是后训练的一部分；FLAN的任务指令化、InstructGPT的示范和偏好训练各有不同证据，不能把RLHF最终收益归因于单独SFT。

### 来源与材料身份

- [原始入口](https://arxiv.org/html/2203.02155v1)：§3.1 Step1：收集期望行为示范并监督训练；本例两种续写为教学构造

#### 把刚才的请求和回答，变成一条 SFT 样本

instruction、input、response是本例为说明职责而列出的字段。工程中需采用模型对应的chat template，处理角色、分隔与结束标记。本例的标记只是教学占位。训练时以正确回应前缀预测后续，这是teacher forcing。此处是生成式指令SFT，与N32早期GPT判别任务使用分类头的微调不可混成同一输出接口。

### 来源与材料身份

- [原始入口](https://arxiv.org/html/2203.02155v1)：§3.1、§3.5 Supervised fine-tuning；本例AB样本和字段是教学构造，不宣称论文使用此样本

[通顺接续与完成请求的差别](./pages/N37.html#b0)：保留同一A/B请求并对照两种构造后续，核对数值、本次范围、未测项和形式要求。

[从请求与回应组成SFT样本](./pages/N38.html#b0)：展示instruction/input/response到一条训练序列的转换，说明角色边界、teacher forcing和教学模板身份。

[后训练的不同信号](./topics/posttraining.html)：区分示范监督、偏好比较与其他训练目标；SFT是其中一种，不把其他阶段收益统归SFT。

[LAB 03 · T4 · 只给回应计分，会改变可读范围吗？](https://deepnote.com/workspace/ise3309jingao-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/Fall-26-Lecture-06-2ff4b87b-2904-4b9c-b9e9-bdbd72962691/notebook/LAB-03-9280cd5ad74c43cba2c65cd705ff8dd6?utm_source=openai&utm_medium=mcp&utm_campaign=openaimcp&utm_content=9280cd5ad74c43cba2c65cd705ff8dd6&utm_term=get_notebook)：分别指出可读取的输入和计分位置：只给回应计分，不等于看不到用户输入。

</details>

[逐页阅读与备课模拟](pages/RC-A4.html)

## 可读取谁，与哪些目标计分，是两件事

预测首回应B时，合法前缀是完整prompt；预测后续“在”时，训练使用prompt加正确B作为前缀，这叫teacher forcing。本例采用response-only loss：回应目标计分，prompt目标不直接计分。因果mask控制读取范围，loss mask控制计分目标；prompt仍参与前向计算并影响回应损失的梯度。

### 两个合法前缀—目标对

预测首回应B，前缀是完整prompt；预测“在”，前缀再加正确的B。训练用正确回应前缀，称为teacher forcing；推理接自己的生成继续。

[对应图解与此步说明](pages/RC-A5.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

Teacher forcing使用真实的历史回应token；自回归推理则使用自己此前生成的token。两者都保持前缀预测后续，不能据此取消因果约束。

</details>

证据与口径：A/B response-only SFT为明确指定的教学实现；一般示范监督训练对应InstructGPT §3.1。

### loss mask 跟被预测目标走

本例只给回应目标计分。B由prompt末位置的输出预测，但B属于回应，权重仍是一。loss mask要跟目标走，不能漏掉首回应。

[对应图解与此步说明](pages/RC-A5.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

概念性移位写法：shifted_logits=logits[:-1]，shifted_labels=labels[1:]。应按移位后的目标选择mask：B至EOS权重1，prompt目标权重0。实现中的张量维度和框架接口可能不同，关键是对齐同一预测与目标。

</details>

证据与口径：A/B response-only SFT为明确指定的教学实现；一般示范监督训练对应InstructGPT §3.1。

### 两种 mask 各自管理一件事

左边因果mask管可读取谁；右边loss mask管哪些目标计分：prompt目标零，B至EOS一。零不删除prompt，它仍参与前向计算。

[对应图解与此步说明](pages/RC-A5.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

prompt目标的loss权重为0，仅表示这些目标没有直接贡献该项损失。prompt仍参与形成回应所需的表示，包含12、8与未测内存等条件。

</details>

证据与口径：A/B response-only SFT为明确指定的教学实现；一般示范监督训练对应InstructGPT §3.1。

### 仍要完成参数更新

回应概率产生loss，梯度沿共享计算回传，优化器把θ更新为θ′。输入文字不变，相关参数可以更新。response-only是本课选择，并非所有SFT唯一做法。

[对应图解与此步说明](pages/RC-A5.html#b3)

<details>
<summary>进一步解释与计算条件</summary>

“输入文字不变”与“输入表示相关参数可训练”并不冲突。token身份不被优化器改写，embedding及其他未冻结参数仍可能通过回应损失获得梯度。

</details>

证据与口径：A/B response-only SFT为明确指定的教学实现；一般示范监督训练对应InstructGPT §3.1。

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

| 控制项 | 问的问题 | 本例作用 |
| --- | --- | --- |
| causal mask | 当前预测能读谁？ | 允许合法前缀，禁止未来输入 |
| loss mask | 哪些目标进入损失？ | prompt目标0；回应B至EOS目标1 |

首回应B由prompt末位置的logits预测，因此其目标权重为1。完整prompt→B、prompt+正确B→在，是两个连续的teacher-forcing前缀—目标对。

### 深入解释与来源

#### 把刚才的请求和回答，变成一条 SFT 样本

instruction、input、response是本例为说明职责而列出的字段。工程中需采用模型对应的chat template，处理角色、分隔与结束标记。本例的标记只是教学占位。训练时以正确回应前缀预测后续，这是teacher forcing。此处是生成式指令SFT，与N32早期GPT判别任务使用分类头的微调不可混成同一输出接口。

### 来源与材料身份

- [原始入口](https://arxiv.org/html/2203.02155v1)：§3.1、§3.5 Supervised fine-tuning；本例AB样本和字段是教学构造，不宣称论文使用此样本

#### 输入不直接计分，为什么仍然必须计算？

本例明确采用response-only loss。loss mask对应被预测目标而不是直觉上的输入格：首回应B由最后一个prompt位置的logits预测，所以移位后该位置的标签B必须计分。若labels=[prompt₁,…,promptₘ,B,…,EOS]，shifted_logits=logits[:-1]，shifted_labels=labels[1:]；prompt目标权重0，B至EOS目标权重1。直接损失为0不代表prompt不参与attention、不前向计算或其路径梯度为零。causal mask限制可读取位置；loss mask选择计分目标，两者职责不同。

### 来源与材料身份

- [原始入口](https://arxiv.org/html/2203.02155v1)：监督示范训练的一般方法；response-only mask为本课明确指定的实现算例，非声称该论文精确mask配置

[首回应B的位置为什么最容易错一格](./pages/N39.html#b1)：沿prompt末位置的logits到目标B核对移位，保留回应目标权重1以及完整索引解释。

[不计prompt目标，为什么仍要计算prompt](./pages/N39.html#b2)：通过前向依赖与回应损失的反向路径，区分目标权重0、输入删除和梯度为0。

[teacher forcing怎样使用正确回应前缀](./pages/N38.html#b2)：从完整prompt→B、prompt+B→在两对前缀和目标，解释训练与自回归推理的不同。

[LAB 03 · T4 · 只给回应计分，会改变可读范围吗？](https://deepnote.com/workspace/ise3309jingao-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/Fall-26-Lecture-06-2ff4b87b-2904-4b9c-b9e9-bdbd72962691/notebook/LAB-03-9280cd5ad74c43cba2c65cd705ff8dd6?utm_source=openai&utm_medium=mcp&utm_campaign=openaimcp&utm_content=9280cd5ad74c43cba2c65cd705ff8dd6&utm_term=get_notebook)：分别指出可读取的输入和计分位置：只给回应计分，不等于看不到用户输入。

</details>

[逐页阅读与备课模拟](pages/RC-A5.html)

## 换事实，检验行为而非旧答案

新的独立教学记录把耗时改为A 7秒、B 11秒，未测内存与请求形式保持不变。正确参考因此变为A在本次测试中更快，内存仍不能比较。参数是否经过SFT与当前输入是否含示例是两个可以独立控制的条件；四格评价设计用于区分两者作用，尚不代表任何实测胜负。

### 只改变事实

新记录改为A七秒、B十一秒，其他要求不变。我们要保留依据材料比较的行为，不是旧答案“B更快”。

[对应图解与此步说明](pages/RC-A6.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

7/11为与原12/8对照的独立教学材料，未声称真实模型已经在该样例上出现错误或成功。

</details>

证据与口径：7/11记录、教师参考与2×2评价均为教学设计；未填入未运行的模型结果。

### 教师参考随证据改变

教师参考因此改为“A在本次测试中耗时更短；内存尚未比较”。新事实来自当前输入，不必每次先训练进参数；模型能否做到，仍须检验。

[对应图解与此步说明](pages/RC-A6.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

教师参考只说明新材料下正确回应应是什么，不代表模型已经实测答对。要检验稳定性，需要多个独立材料，而非只换一次数字。

</details>

证据与口径：7/11记录、教师参考与2×2评价均为教学设计；未填入未运行的模型结果。

### 拆开参数与输入的作用

表的两行比较预训练与SFT参数，两列比较无例与有例输入：SFT和ICL可以组合。用独立材料核对事实、范围、任务和形式；空表尚无实测胜负。接下来考虑训练资源怎样分配。

[对应图解与此步说明](pages/RC-A6.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

当前四格是评价设计，未实际执行。SFT训练样本与评价样本须分开，改变数字只是必要检查之一；更完整的评价还需覆盖对象、未测项、任务形式及分布变化。

</details>

证据与口径：7/11记录、教师参考与2×2评价均为教学设计；未填入未运行的模型结果。

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

| 当前记录 | 耗时判断 | 内存判断 |
| --- | --- | --- |
| A 12秒／B 8秒 | B在本次测试更快 | 未测，不能比较 |
| A 7秒／B 11秒 | A在本次测试更快 | 未测，不能比较 |

| 参数条件 | 当前无示例 | 当前有示例 |
| --- | --- | --- |
| 预训练参数θ | 待独立评价 | 待独立评价 |
| SFT后参数θ′ | 待独立评价 | 待独立评价 |

四格设计让参数变化与输入变化分别接受检验；没有填写模型胜负。

### 深入解释与来源

#### 换一份材料，检验留下的是行为还是旧答案

把事实反转成A7秒/B11秒，仍保留未测内存，检查是否重新依据材料回应。教师参考A更快，不是已运行后的测量。可以将预训练参数/SFT参数与无示例/同格式示例构成2×2独立评价，检查事实对应、证据范围、任务及格式；四种组合均需独立评价，目前没有实测优劣结论。

SFT之后仍可做ICL，示范目标与偏好目标不同。继续阅读：[奖励模型](pages/H02.html)、[RLHF/PPO](pages/H03.html)、[DPO](pages/H04.html)、[可验证反馈](pages/H05.html)、[LoRA](pages/L01.html)、[QLoRA](pages/L02.html)。[后训练正文](topics/posttraining.html)和[适配正文](topics/adaptation.html)保留完整机制。LoRA冻结原权重、训练低秩增量；QLoRA中的低位保存、反量化与计算精度是不同对象。

### 来源与材料身份

- [原始入口](https://arxiv.org/html/2203.02155v1)：§3.1示范、偏好比较与策略训练的职责；本例四格评价为新教学设计
- [原始入口](https://arxiv.org/abs/2106.09685)：LoRA：冻结预训练权重、训练低秩增量；只作说明入口

[换事实后的参考回答与评价设计](./pages/N40.html#b0)：对照12/8和7/11记录，核对事实、范围、未知与形式；再用预训练/SFT×无示例/有示例组织独立评价。

[把训练选择放入计算预算](./pages/N41.html#b0)：以模型参数量与实际训练token消费建立预算近似，继续回答获得能力需要怎样分配资源。

[参数适配的进一步方法](./topics/adaptation.html)：解释冻结权重、训练低秩增量与低位保存的不同对象，供需要深入训练实现时继续阅读。

[LAB 03 · T4 · 只给回应计分，会改变可读范围吗？](https://deepnote.com/workspace/ise3309jingao-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/Fall-26-Lecture-06-2ff4b87b-2904-4b9c-b9e9-bdbd72962691/notebook/LAB-03-9280cd5ad74c43cba2c65cd705ff8dd6?utm_source=openai&utm_medium=mcp&utm_campaign=openaimcp&utm_content=9280cd5ad74c43cba2c65cd705ff8dd6&utm_term=get_notebook)：区分修改权重与修改上下文，分别核对已有记录和能够支持的结论。

[LAB 04 · I2 · 对照能回答什么？先核输入，再看输出](https://deepnote.com/workspace/ise3309jingao-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/Fall-26-Lecture-06-2ff4b87b-2904-4b9c-b9e9-bdbd72962691/notebook/LAB-04-8d38f8a6b20944129b6587b282ab38d2?utm_source=openai&utm_medium=mcp&utm_campaign=openaimcp&utm_content=8d38f8a6b20944129b6587b282ab38d2&utm_term=get_notebook)：打开本册后，找到同名小节。

[LAB 04 · I3 · 改一次分析条件，看看结论是否稳固](https://deepnote.com/workspace/ise3309jingao-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/Fall-26-Lecture-06-2ff4b87b-2904-4b9c-b9e9-bdbd72962691/notebook/LAB-04-8d38f8a6b20944129b6587b282ab38d2?utm_source=openai&utm_medium=mcp&utm_campaign=openaimcp&utm_content=8d38f8a6b20944129b6587b282ab38d2&utm_term=get_notebook)：打开本册后，找到同名小节。

</details>

[逐页阅读与备课模拟](pages/RC-A6.html)

## 固定预算，模型与训练量怎样取舍？

在固定主要算术预算 C 下，近似关系 C≈6ND 把参数数量 N 与实际训练消费 D 联系起来。N 翻倍、D 减半保持近似预算，却不保证效果相同。库存、重复消费、算术量、墙钟时间和费用必须分别计量。

### 模型与消费

刚才我们区分了更新参数与改变当前输入。若决定训练，先看投入怎样分配。N 是参数数量，D 是实际消费的训练 token 数；同一段材料读三遍，要计三遍。更大的模型通常使每个 token 的计算更贵，在总预算固定时，就不能同时任意增加训练量。

[对应图解与此步说明](pages/RC-C1.html#b0)

证据与口径：课堂预算构造；C≈6ND 为稠密 Transformer 主要算术近似，参考 Chinchilla §3.3

### 主要算术量近似

对这里讨论的常见稠密 Transformer，用 C 约等于六 ND 估算主要前向与反向算术量。六概括这一计算口径，N 与 D 分别对应模型和训练流。它不是训练耗时或价格公式；长序列、架构与具体执行还会引入其他成本。

[对应图解与此步说明](pages/RC-C1.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

C≈6ND 是常见稠密模型的主要算术近似。不能把 MoE 的总参数不加区分代入，也不能将它当作同设备墙钟时间或货币成本。

</details>

证据与口径：课堂预算构造；C≈6ND 为稠密 Transformer 主要算术近似，参考 Chinchilla §3.3

### 锁住预算，再分配

把 C 锁住：如果 N 翻倍，D 就约减半。式子建立了可比较的配置，却没有给出性能胜负。小模型多读一点、大模型少读一点，哪种在这笔预算内更有效？下一页在真实的固定预算实验中比较训练损失。

[对应图解与此步说明](pages/RC-C1.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

保留的教学配置 4B/400B 与 8B/200B 均为 9.6×10²¹ FLOPs；它们不是下一页 3×10²⁰ FLOPs 曲线上的实验点。

</details>

证据与口径：课堂预算构造；C≈6ND 为稠密 Transformer 主要算术近似，参考 Chinchilla §3.3

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 进一步阅读

- [同一笔计算，怎样分给模型和材料？：原图、推导与逐态解释](pages/N41.html#b0)

- [模型翻倍，剩下的训练量减半：原图、推导与逐态解释](pages/N42.html#b0)

### 条件与来源

以下从计算对象、条件与原始证据继续展开。

#### 原 N41：同一笔计算，怎样分给模型和材料？

N 是参数数量，D 是训练实际消费的 token 数，C 是主要训练算术量。重复读同一材料会重复计入 D；独特内容库存不是 D。对常见稠密 Transformer，$C\approx6ND$ 概括主要前向与反向计算，长上下文、架构及实现会增加修正项。它不直接给出墙钟时间或货币成本，也不能把 MoE 总参数未经区分代入。

同一原始配置下，N 与 D 各翻倍得到约 4C；先恢复原始配置后再固定 C，N 翻倍才对应 D 减半。这个算式只生成可比较的配置，不决定哪种配置更好。

[完整预算口径、Kaplan 两种横轴及生命周期成本](topics/scaling.html)；[原预算算例](pages/S01.html)。

#### 原 N42：模型翻倍，剩下的训练量减半

原 N42 材料两张教学配置卡使用十进制 B（十亿）：$6(4\times10^9)(400\times10^9)=6(8\times10^9)(200\times10^9)=9.6\times10^{21}$ FLOPs。它们没有在本课程实际训练，也没有测得比较成绩。

随后采用 Chinchilla v1 Figure 3 物理 p.6 的真实实验，先选择性呈现 $3\times10^{20}$ FLOPs 预算曲线并保留原坐标、实验点和虚线拟合。该预算与构造卡不同，构造卡不是曲线上的数据点。横轴参数用对数刻度，纵轴是训练损失；沿同一预算线改变 N 时，对应训练消费 D 也在改变。论文为不同训练长度匹配学习率日程，不能把一次训练的中途 loss 截点当作同一类实验。

[Chinchilla 原文 §3.2 / Figure 3](https://arxiv.org/pdf/2203.15556v1)；[完整原图及说明](pages/S03.html)。

[固定预算的完整算例](./pages/N41.html)：复算 4B/400B 与 8B/200B 的相同 6ND，并与同时翻倍得到 4C 区分。

[从预算式走向真实实验](./pages/N42.html)：区分教学配置卡与论文固定预算线，读懂点、拟合和训练日程的身份。

</details>

[逐页阅读与备课模拟](pages/RC-C1.html)

## 沿一条真实预算线，看哪里用得更好

Chinchilla Figure 3 比较固定主要计算量下不同参数规模和训练消费的组合。单预算线两侧损失高于谷底附近，提示容量与受训程度需要共同配置；恢复多预算线后，必须区分分配变化与总投入变化。后续 8B 仅为显存教学配置。

### 先读轴与比较条件

这是 Chinchilla 的真实训练实验。横轴是参数 N，采用对数刻度；纵轴是平滑训练损失，越低越好。先只看三乘十的二十次方 FLOPs 这条预算线：圆点来自实验，虚线是拟合。沿线向右增大模型时，训练消费 D 随之减少，不是只改变参数数量。

[对应图解与此步说明](pages/RC-C2.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

保留 Chinchilla v1 Figure 3 的原坐标、实验点和虚线拟合；选择性呈现来自同一原图，不从像素拟造精确最优 N。

</details>

证据与口径：Chinchilla v1 Fig.3 / Appendix F；课堂预算构造与论文实验分开

### 较小模型一侧

左侧模型小，每个 token 较便宜，所以同一预算能支持更多训练消费。可是图上的损失仍高于谷底附近：反复训练无法无限补偿容量与表示能力的限制。这是对这一组曲线的解释，不能推广成所有小模型的固定命运。

[对应图解与此步说明](pages/RC-C2.html#b1)

证据与口径：Chinchilla v1 Fig.3 / Appendix F；课堂预算构造与论文实验分开

### 谷底与较大模型一侧

先对照谷底，再看右侧。谷底附近的配置取得较低损失；继续增大模型时，可训练的 token 更少，模型可能尚未充分受训就耗尽预算。因此问题是共同选择 N 和 D，不是单独把模型或训练量做到最大。

[对应图解与此步说明](pages/RC-C2.html#b2)

证据与口径：Chinchilla v1 Fig.3 / Appendix F；课堂预算构造与论文实验分开

### 恢复其他预算线

恢复其他预算线以后，比较有了两个方向：沿同一条线移动是在分配同一笔投入；换到另一条线才是改变总投入。谷底随条件移动，给出的是这组数据、目标和训练日程下的经验规律。训练损失仍需与实际任务表现分开评价。

[对应图解与此步说明](pages/RC-C2.html#b3)

<details>
<summary>进一步解释与计算条件</summary>

沿线比较与跨线比较是两种实验问题。多预算曲线不能证明参数越多就越好，也不能将训练损失直接换算为用户满意度。

</details>

证据与口径：Chinchilla v1 Fig.3 / Appendix F；课堂预算构造与论文实验分开

### 从纸面配置进入设备

接下来选八十亿参数作为统一的显存算例。它只是便于逐项记账的配置，不是从图中读出的最优点。参数规模定下来以后，还不能直接判断设备能否训练：一次更新要保存的对象，是否只有模型权重？

[对应图解与此步说明](pages/RC-C2.html#b4)

证据与口径：Chinchilla v1 Fig.3 / Appendix F；课堂预算构造与论文实验分开

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 进一步阅读

- [模型翻倍，剩下的训练量减半：原图、推导与逐态解释](pages/N42.html#b0)

- [谷底随预算移动，不能只追求参数更多：原图、推导与逐态解释](pages/N43.html#b0)

### 条件与来源

以下从计算对象、条件与原始证据继续展开。

#### 原 N42：模型翻倍，剩下的训练量减半

原 N42 材料两张教学配置卡使用十进制 B（十亿）：$6(4\times10^9)(400\times10^9)=6(8\times10^9)(200\times10^9)=9.6\times10^{21}$ FLOPs。它们没有在本课程实际训练，也没有测得比较成绩。

随后采用 Chinchilla v1 Figure 3 物理 p.6 的真实实验，先选择性呈现 $3\times10^{20}$ FLOPs 预算曲线并保留原坐标、实验点和虚线拟合。该预算与构造卡不同，构造卡不是曲线上的数据点。横轴参数用对数刻度，纵轴是训练损失；沿同一预算线改变 N 时，对应训练消费 D 也在改变。论文为不同训练长度匹配学习率日程，不能把一次训练的中途 loss 截点当作同一类实验。

[Chinchilla 原文 §3.2 / Figure 3](https://arxiv.org/pdf/2203.15556v1)；[完整原图及说明](pages/S03.html)。

#### 原 N43：谷底随预算移动，不能只追求参数更多

沿单条预算线移动，比较的是固定计算预算下模型规模和训练消费的分配。小模型一侧可能受容量限制；大模型一侧则可能在充分受训前耗尽预算。谷底附近是指定模型、数据、训练与评价条件下的证据，不是永久比例，也不是越大越好的证明。

恢复多预算原图后，换曲线表示改变总训练投入。图中不从像素估算未经表值支持的精确最优坐标。8B 是后段统一教学配置，不对应声称的某个最优点。训练 loss 也不是用户满意度；高频使用时还应考虑服务成本。

[Kaplan / Chinchilla / Gopher 与生命周期成本](topics/scaling.html)；[MoE 总参数、激活参数与异构承载](topics/flashattention-moe.html#moe)。稠密 6ND 不无条件套用 MoE 总参数。

[固定预算线与训练日程](./pages/N42.html)：原图、轴、实验点和拟合完整可查；分清改变 N/D 与截取训练中途状态。

[单预算谷底与多预算变化](./pages/N43.html)：保留左右两侧及多预算图，解释条件化结论与生命周期成本。

[规模规律的证据与边界](./topics/scaling.html)：连接 Kaplan、Chinchilla 及推理成本，讨论为何训练 loss 并非所有应用目标。

</details>

[逐页阅读与备课模拟](pages/RC-C2.html)

## 16 GB 权重，为什么训练状态会更多？

指定 8B 混合精度 Adam 账本包含 BF16 工作权重 16 GB、低精度梯度 16 GB、FP32 主权重 32 GB，以及各 32 GB 的 m/v。持久小计为 128 GB；激活、临时空间与通信缓冲另计，因此它不是运行峰值。

### 先看工作权重与一次更新

仍沿前面的一次更新：先前向计算损失，再求梯度。八十亿参数采用 BF16，每个数两个字节，工作权重就是十六 GB。这里用十进制 GB。权重文件只回答这套参数怎样保存，还没有列出为了修改参数而需要的其他对象。

[对应图解与此步说明](pages/RC-T1.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

BF16 和 FP32 分别为每数 2 与 4 bytes；本页不假定某个实际设备容量。

</details>

证据与口径：8B / 四卡混合精度 Adam 教学构造；ZeRO 机制，非硬件实测

### 按用途加入另外四项

按本页的混合精度 Adam 设定，再加入十六 GB 低精度梯度、三十二 GB FP32 主权重，以及各三十二 GB 的历史统计 m 和 v。m 累计梯度方向，v 累计梯度平方的信息。当前梯度、主权重与这两份历史共同参与更新；新主权重再转成工作精度，供下一步计算。

[对应图解与此步说明](pages/RC-T1.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

m、v 是两份优化器历史统计，不是两套独立模型。图中三类输入一起进入 Adam 更新，再保存新主权重与新 m/v；没有 m/v 先转化为主权重的步骤。

</details>

证据与口径：8B / 四卡混合精度 Adam 教学构造；ZeRO 机制，非硬件实测

### 合计与峰值分开

五项相加是一百二十八 GB，相当于每参数十六字节。这是持久状态的小计，激活、临时工作区和通信缓冲还在账外，不能把它当运行峰值。现在加到四张卡：硬件容量增加了，程序会不会自动把每张卡保存的内容除以四？

[对应图解与此步说明](pages/RC-T1.html#b2)

证据与口径：8B / 四卡混合精度 Adam 教学构造；ZeRO 机制，非硬件实测

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 进一步阅读

- [一次更新，为什么不只需要模型权重？：原图、推导与逐态解释](pages/N44.html#b0)

- [16 GB 的模型，训练状态可以是 128 GB：原图、推导与逐态解释](pages/N45.html#b0)

### 条件与来源

以下从计算对象、条件与原始证据继续展开。

#### 原 N44：一次更新，为什么不只需要模型权重？

一次更新先用工作权重做前向，给真实后词分配概率并计算 loss；反向沿计算图求出参数梯度。梯度表示当前损失对参数的局部变化关系，不是另一份模型知识或生成答案。反向还要使用前向激活或重算得到的中间量。

本课程采用混合精度 Adam 教学设定：BF16 工作权重与低精度梯度、FP32 主权重，以及两份 FP32 历史统计 m/v。优化器据此更新主权重，再形成工作权重供后续计算。实际实现可以采用不同精度和状态策略；这不是唯一训练实现。

[完整训练状态账本](pages/E01.html)；[ZeRO §3.1（原论文讨论 FP16，本课用 BF16 设定）](https://arxiv.org/pdf/1910.02054v3)。

#### 原 N45：16 GB 的模型，训练状态可以是 128 GB

以下全部采用十进制 GB，$1GB=10^9$ bytes，N=8×10⁹ 参数。

| 状态 | 每参数字节 | 本课容量 |
|---|---:|---:|
| BF16 工作权重 | 2 | 16 GB |
| 低精度梯度 | 2 | 16 GB |
| FP32 主权重 | 4 | 32 GB |
| FP32 统计 m | 4 | 32 GB |
| FP32 统计 v | 4 | 32 GB |
| 持久状态小计 | 16 | 128 GB |

图中五条从相同零点起，16GB 条长是32GB条的一半。128GB 不包括激活、临时算子空间、通信缓冲及运行环境；不能当实际运行峰值，也不是所有8B模型的固定训练需求。

[分布训练正文](topics/distributed-training.html) 保留精度、激活重算和峰值条件；[原账本说明](pages/E01.html)。

[一次更新的参数、梯度与历史统计](./pages/N44.html)：沿前向、反向和 Adam 更新说明五类对象的用途，以及主权重怎样形成下一轮工作权重。

[128 GB 的逐项字节账](./pages/N45.html)：完整精度假设和表格，可复算 2+2+4+4+4 bytes/参数，并区分持久状态与峰值。

</details>

[逐页阅读与备课模拟](pages/RC-T1.html)

## 分担数据，与分担保存责任，是两个动作

复制式数据并行让四卡处理不同数据，却每卡保留完整状态。全状态分片可把指定持久小计从每卡 128 GB 降至 32 GB；当前层计算仍需临时取齐参数，反向梯度仍需共同归约，由所属片完成更新。节省长期冗余伴随通信与临时视图。

### 不同数据，完整副本

先采用最直接的数据并行：四张卡读取不同样本，但每张都执行完整模型，因此各自保留同一套完整训练状态。在刚才那份账本下，每卡长期小计仍是一百二十八 GB。数据分开处理，不等于模型状态自动分开保存。

[对应图解与此步说明](pages/RC-T2.html#b0)

证据与口径：8B / 四卡混合精度 Adam 教学构造；ZeRO 机制，非硬件实测

### 只改变长期保管责任

现在只改变长期保存责任。四张卡各保管四分之一参数、梯度与优化器状态，长期小计降到每卡三十二 GB。但每张卡的样本仍需经过所有层；分片保存不是把一条样本永远交给某一张卡独自处理。

[对应图解与此步说明](pages/RC-T2.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

本页比较复制式数据并行与参数、梯度、优化器状态均分片的设定。原 ZeRO 1/2/3 的 56/44/32 GB 逐级账本保留于深入材料；主讲只比较两端。

</details>

证据与口径：8B / 四卡混合精度 Adam 教学构造；ZeRO 机制，非硬件实测

### 当前层临时取齐

轮到当前层时，每张卡临时取齐该层需要的参数，完成计算后可以释放临时完整视图。图里长期小片与当前层完整视图必须分开算：三十二 GB 是长期小计，不是这时刻的峰值。交换缺少的参数还需要通信。

[对应图解与此步说明](pages/RC-T2.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

当前层取齐是临时工作视图，通信缓冲、激活与其他临时对象仍需额外空间。张量并行、流水线并行和状态分片不是同一概念。

</details>

证据与口径：8B / 四卡混合精度 Adam 教学构造；ZeRO 机制，非硬件实测

### 共同梯度，更新同一模型

不同数据产生的梯度必须合成共同的更新依据，再由各状态片的持有者更新。下一轮取齐的是属于同一新版本的参数，不能让四张卡各自走成四台不一致的模型。分片减少重复保存，同时增加通信与临时视图。接着回到单卡：能否减少那张 attention 大表的保存和搬运？

[对应图解与此步说明](pages/RC-T2.html#b3)

证据与口径：8B / 四卡混合精度 Adam 教学构造；ZeRO 机制，非硬件实测

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 进一步阅读

- [四张卡分担数据，为什么仍各存一份？：原图、推导与逐态解释](pages/N46.html#b0)

- [长期分片保存，轮到一层再临时取齐：原图、推导与逐态解释](pages/N47.html#b0)

- [分开保管，也能共同更新同一个模型：原图、推导与逐态解释](pages/N48.html#b0)

### 条件与来源

以下从计算对象、条件与原始证据继续展开。

#### 原 N46：四张卡分担数据，为什么仍各存一份？

数据并行中，每张卡处理不同数据，但每批数据都经过整个模型。各卡参数梯度经汇总后执行一致更新，所以模型副本维持一致。本课 DDP 设定下，各卡都长期保存完整工作权重、梯度和优化器状态：每卡128GB，不因四卡总容量而自动除以四。

层用 L₁…Lₙ 表示，参数分片用 θ₀…θ₃ 表示，不能混为各卡分管不同层。TP 切分同一层的张量计算，PP 分配不同层并安排微批流水线，这些与数据并行的身份不同。

[DDP、TP、PP与流水气泡](topics/distributed-training.html)；[旧四卡图与详细说明](pages/G02.html)。

#### 原 N47：长期分片保存，轮到一层再临时取齐

在本课四卡混合精度账本下，ZeRO-1 仅分片优化器相关状态，每卡 $16+16+96/4=56$ GB；ZeRO-2 再分片梯度，$16+16/4+96/4=44$ GB；ZeRO-3 再分片工作权重，$128/4=32$ GB。上述均是持久状态小计。

实线框保存本卡长期负责的片；当前层计算之前，通过 all-gather 暂时取得该层完整参数视图，虚线框只代表这一层而非整个模型。本卡数据仍走全部层。当前层计算后可释放临时完整视图，再为下一层安排参数。真实 ZeRO/FSDP 实现会选择预取、驻留和通信重叠策略；临时视图、激活与缓冲使运行峰值高于32GB。

[七步训练及ZeRO1/2/3完整账本](topics/distributed-training.html)；[原展开页](pages/E04.html)。

#### 原 N48：分开保管，也能共同更新同一个模型

同一参数在不同数据批次上产生不同梯度贡献。reduce-scatter 将同一个参数的贡献归约，并把结果交给负责该分片的卡；不把不同参数的梯度混加。若训练目标用批次平均损失，归约时还需要与目标口径一致的缩放。

本卡拿到所属参数的共同梯度后，使用自己保存的主权重和 m/v 更新所属片。下一轮 all-gather 取得这些共同更新后的参数，因此所有数据仍在训练同一个模型。完整闭环是：各卡数据前向→需要时取齐层参数→反向产生梯度→按同参数归约分散→所属卡更新→释放临时量→下一轮取得新参数。

[ZeRO §5.2、§7.2，物理p.10、14](https://arxiv.org/pdf/1910.02054v3)；[保留的七步展开与预取/峰值说明](topics/distributed-training.html)。

[数据分工为何不自动减少副本](./pages/N46.html)：以同一四卡结构对照不同数据与完整模型状态，说明复制式数据并行。

[长期分片与当前层取齐](./pages/N47.html)：完整 ZeRO 分级账本与参数取齐/释放图，解释长期小计和临时峰值的区别。

[不同数据怎样更新同一版模型](./pages/N48.html)：逐态展开共同梯度、归约、所属片更新及下一轮参数取齐。

</details>

[逐页阅读与备课模拟](pages/RC-T2.html)

## 相同的读取目标，能否少保存、少搬运？

固定一个 Q 块，逐次处理所有允许的 K/V 块。每块计算后释放局部分数，保留可合并分子 u、分母 l 与稳定尺度 m；全部块完成后才输出 u/l。这样的执行减少完整 S/P 表写回与再读，不删除合法位置，也不消除稠密配对的二次算术。

### 先定位重复落显存的大表

回到前面的硬件图。直接实现先由 Q/K 算出 S，再将 S 读回做归一化得到 P，最后用 P 汇总 V。这里的问题不是这些关系不该算，而是完整 S 和 P 在阶段之间反复写回显存、再被读出来。我们保持同一读取目标，改变执行顺序。

[对应图解与此步说明](pages/RC-T3.html#b0)

证据与口径：教学构造与机制示意；非模型实测

### 第一块结束，只留下可续算信息

现在固定一个 Q 块，只把第一块允许的 K/V 送入片上工作区。局部分数算完即可释放，但留下累计权重 l、累计加权内容 u 和用于稳定计算的尺度 m。其余块仍在显存里等待，不能把第一块的局部平均当作最终输出。

[对应图解与此步说明](pages/RC-T3.html#b1)

<details>
<summary>进一步解释与计算条件</summary>

l 为归一化分母的累计，u 为加权 value 的累计；m 是稳定指数计算的最大值尺度。当新的最大值变大时，旧 u 和 l 必须一起重缩放。三块流程是执行示意，不配成下述两块手算的数值结果。

</details>

证据与口径：教学构造与机制示意；非模型实测

### 后续块进入同一累计

第二块加入时，旧贡献继续保留，再把新块的权重与内容合进同一个累计。两块贡献有不同的总权重，直接平均两份局部答案通常不对；必须连分母一起合并。绿色区表示已经处理，灰色区提醒我们还有允许的位置尚未加入。

[对应图解与此步说明](pages/RC-T3.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

完整手算 w=(2,1,4)、v=(10,20,30)：块1 u₁=40,l₁=3；块2 u₂=120,l₂=4；合并输出 160/7≈22.86。稳定递推与向量公式在本页深入正文保留。

</details>

证据与口径：教学构造与机制示意；非模型实测

### 全部允许位置参与，才写回输出

第三块完成后，当前 Q 块所允许的全部 K/V 都参加了共同归一化，才用 u 除以 l 得到完整输出并写回。减少的是完整中间表的保存与搬运；反向还可以重算部分量来节省空间。稠密配对的平方算术仍在。现在停止更新，看看训练好的参数如何处理一份请求。

[对应图解与此步说明](pages/RC-T3.html#b3)

<details>
<summary>进一步解释与计算条件</summary>

T 是序列长度。FlashAttention 减少中间量物化与 IO，训练反向可以重算；仍覆盖全部允许 key，并没有把一般稠密注意力所有二次算术变成线性。

</details>

证据与口径：教学构造与机制示意；非模型实测

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 进一步阅读

- [算得快之外，还要装得下、搬得动：原图、推导与逐态解释](pages/N23.html#b0)

- [同一张注意力大表，为什么要搬来搬去？：原图、推导与逐态解释](pages/N49.html#b0)

- [分块以后，分子和分母都要一起接着算：原图、推导与逐态解释](pages/N50.html#b0)

- [全部块走完，写回的是同一个注意力输出：原图、推导与逐态解释](pages/N51.html#b0)

### 条件与来源

以下从计算对象、条件与原始证据继续展开。

#### 原 N23：算得快之外，还要装得下、搬得动

直接 attention 实现会生成分数矩阵，写入显存，再读出做 softmax，随后使用归一化权重汇总 V。HBM 容量、片上工作区容量、计算吞吐和数据搬运带宽是不同约束。这里先定位问题；N49–N51 回到同样的内存层级，用分块与在线归一化解释如何减少保存和搬运，不提前把名称当答案。

来源：[FlashAttention v2](https://arxiv.org/pdf/2205.14135v2)，§3.1 IO 分析。

[相关的完整阅读材料](pages/Q02.html)保留原有公式、引用和原始图解。

#### 原 N49：同一张注意力大表，为什么要搬来搬去？

直接分步 attention 实现可能物化完整分数矩阵 S=QKᵀ，再写入 HBM；读出 S 做 softmax 得到概率 P，再写回；之后读取 P 与 V 相乘。蓝色箭头为读入片上、红色为写回。课堂路径代表会物化大中间表的一类直接实现，不表示所有现有库都如此。

T为序列长度。稠密关系按 query 与允许的 key 比较，分块不能随意漏掉本应参与的位置。片上工作区放不下整表时，可分块计算并保留可合并累计；难点是 softmax 仍需跨所有有效位置共同归一。

[FlashAttention 的IO模型与范围](topics/flashattention-moe.html#io)；[论文 §2、§3.1](https://arxiv.org/pdf/2205.14135v2)。

#### 原 N50：分块以后，分子和分母都要一起接着算

原 N50 保留的校准算例：正权重w=(2,1,4)，value=(10,20,30)，前两项为块1、第三项为块2。

$$u_1=2\times10+1\times20=40,\quad l_1=2+1=3;\qquad u_2=4\times30=120,\quad l_2=4.$$

$$o=\frac{u_1+u_2}{l_1+l_2}=\frac{160}{7}\approx22.86.$$

直接平均两个局部均值是$(40/3+30)/2=65/3\approx21.67$，与正确输出不同，因为两块分母不等。

**稳定递推。** logits=(ln2,0,ln4)。首块用m=ln2缩放，得到u=20、l=1.5；第二块的最大值ln4更大，旧分子和分母一起乘1/2，第二块贡献u_b=30、l_b=1。因此新u=40、l=1.75，输出40/1.75=160/7。一般公式为$m'=\max(m,m_b)$，$u'=e^{m-m'}u+e^{m_b-m'}u_b$、$l'=e^{m-m'}l+e^{m_b-m'}l_b$。

完整向量实现与因果mask见[在线softmax正文](topics/flashattention-moe.html#online-softmax)。旧权重(2,1,3)与130/6只作为历史算例，不是原 N50 材料当前数据。

#### 原 N51：全部块走完，写回的是同一个注意力输出

原 N51 材料把N50两块数值验证推广为三块过程示意，不把三块流程配成160/7这一数值结果。固定一个Q块，依次将所有允许的K/V块装入片上工作区，更新最大值m、归一化分母l与分子u。局部中间表释放后，累计量仍保留。第3块完成、所有允许位置都参与后，才计算u/l并写回该Q块输出。

训练反向可以按块重算所需中间量，以额外部分算术换取少保存、少搬运。FlashAttention 保持同类精确attention数学目标，浮点求值顺序变化不保证逐bit一致；稠密算术仍含$T^2$，T为序列长度。固定Q扫描KV是课堂执行视角，不声称逐行复现Algorithm1循环次序。

[FlashAttention §3.1 / Algorithm1 / Theorem1](https://arxiv.org/pdf/2205.14135v2)；[完整在线稳定递推、反向重算、MoE与KTransformers边界](topics/flashattention-moe.html)。

[直接 attention 的三阶段读写](./pages/N49.html)：沿 Q/K→S、S→P、P/V→O 核对每次读入与写回，定位完整大表的成本。

[为什么不能平均局部 softmax 答案](./pages/N50.html)：用 (2,1,4) 和 (10,20,30) 手算正确 160/7、错误 65/3，并展开稳定归一化递推。

[全部块完成后才输出](./pages/N51.html)：三块执行图展示待处理、累计与写回，说明重算、全覆盖和浮点边界。

</details>

[逐页阅读与备课模拟](pages/RC-T3.html)

## 旧参数接收新请求，生成当前状态

参数保存训练所得，K/V 保存特定请求在特定层的当前计算状态。prefill 处理已知提示并产生首分布，选择首 token 后进入逐步 decode。新位置读取允许的旧 K/V 与当前状态，将输出交给下一层，并把本层新 K/V 追加到缓存。训练见过同文，并不等于已有可直接复用的请求缓存。

### 留下参数，接入新请求

训练停下以后，普通推理保留参数，不为每条请求建立训练用的梯度和 Adam 历史。但参数不是为每次请求预先备好的当前状态。即使训练见过相同文字，这份 A/B 请求仍需前向计算，或复用已有且兼容的缓存，才能获得本次表示和 K/V。

[对应图解与此步说明](pages/RC-V1.html#b0)

证据与口径：教学构造与机制示意；非模型实测

### prefill得到首输出分布

先处理已经给定的提示，这个阶段叫 prefill。每层可以成批处理已知位置，各行仍遵守因果读取。它建立各层状态，并得到首输出位置的概率分布；此时并没有整段未知回答。先有分布，再选择第一个 token，是两个动作。

[对应图解与此步说明](pages/RC-V1.html#b1)

证据与口径：教学构造与机制示意；非模型实测

### 选出首token，进入decode

假设选择出图中的教学 token B，它才成为新的已知输入，进入逐步生成的 decode。参数与刚才相同，增加的是一个位置，旧位置已有的兼容计算可以复用。现在放大其中一层，把“使用缓存”拆成具体的读取与追加。

[对应图解与此步说明](pages/RC-V1.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

B 为教学 token 标记，并非本课模型实测分词或生成结果。首分布、选择 token、decode 三个阶段不得混成“一次 prefill 给出完整回答”。

</details>

证据与口径：教学构造与机制示意；非模型实测

### 读取旧状态，追加新状态

新位置形成自己的 Q、K、V。Q 与允许的旧 K 以及当前 K 匹配，按权重汇总对应 V；本层输出送往下一层，新 K/V 则追加到本层缓存。旧因果位置不依赖后来加入的 token，所以兼容时不用重算；但旧 K/V 仍要被读取，缓存也随生成增长。

[对应图解与此步说明](pages/RC-V1.html#b3)

<details>
<summary>进一步解释与计算条件</summary>

图示五列到六列是为了看清追加，不是实际 tokenizer 计数。旧 Q 通常不为所有后续步骤长期保存；临时激活仍存在。

</details>

证据与口径：教学构造与机制示意；非模型实测

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 进一步阅读

- [整段在手，不等于每一行都能偷看答案：原图、推导与逐态解释](pages/N21.html#b0)

- [训练结束后，这一次请求从哪里开始？：原图、推导与逐态解释](pages/N52.html#b0)

- [新 token 读取旧 K/V，再把自己的 K/V 留下来：原图、推导与逐态解释](pages/N53.html#b0)

### 条件与来源

以下从计算对象、条件与原始证据继续展开。

#### 原 N21：整段在手，不等于每一行都能偷看答案

输入 BOS / I / gave / him 对应下一词标签 I / gave / him / a。gave 行可读取 BOS、I、gave，而不能读取后面的输入 him。标签 him 在目标端，不作为该行可见输入。训练前向之后另有 loss 与反向更新；推理 prefill 处理已知提示，只做前向；decode 生成未知新 token，需要逐步等待。

来源：L5 T30/T34 的因果训练与生成；原句片段固定使用 him。

[相关的完整阅读材料](pages/Q01.html)保留原有公式、引用和原始图解。

#### 原 N52：训练结束后，这一次请求从哪里开始？

训练结束后，普通推理保留模型参数，不为每条请求重新建立梯度和 Adam 更新历史。本次输入仍须经过所有层，计算新的表示与 K/V。prefill 是处理已知提示的前向阶段；对因果模型，位置可批量处理，但每个位置只能读取合法前缀，层与层之间仍有依赖。

首输出概率分布与选择首 token 是两个动作。选出首 token 后，才有新的已知输入供下一轮 decode 使用。图中的 B 仅标识示意 token，不宣称真实 tokenizer 切分或模型运行结果，也不把 prefill 画成同时生成完整回答。

[原推理流程与完整说明](pages/V01.html) · [服务系统主题](topics/serving.html) · [PagedAttention §2.1–2.2，物理 p3](https://arxiv.org/pdf/2309.06180)。

#### 原 N53：新 token 读取旧 K/V，再把自己的 K/V 留下来

因果计算使旧位置的表示不依赖后来追加的 token，因此旧 K/V 可以复用。每个新 token 在当前层生成自己的 Q、K、V：Q 匹配允许的旧 K 和当前位置 K，权重用于汇总对应的 V，输出送往下一层，新 K/V 追加本层缓存。

缓存复用省掉的是旧位置重算，不是后续读取成本。旧 Q 通常不需要为所有后续步骤持久保存；临时激活和其他运行状态仍然存在。图示一层，各层有各自的缓存。改变参数、前缀或位置计算条件后，应重新判断兼容性，不能任意修改旧文本而沿用缓存。

[完整 KV 机制](pages/V01.html) · [服务主题与兼容条件](topics/serving.html) · [PagedAttention §2.1–2.2，物理 p3](https://arxiv.org/pdf/2309.06180)。

[从提示到首分布，再进入生成](./pages/N52.html)：完整 prefill→首分布→选 token→decode 图，解释已知输入与未知输出的依赖。

[新 Q 如何读取，K/V 如何留下](./pages/N53.html)：逐条路径区分读取旧状态、追加新状态和交给下一层，附缓存兼容条件。

[精确前缀什么时候可以复用](./pages/N56.html)：对照相同 token 前缀和独立尾部，解释语义相似为何不足以复用缓存。

</details>

[逐页阅读与备课模拟](pages/RC-V1.html)

## 权重能共享，上下文状态仍要付成本

KV 本体估算为 M=2LTh_KVd_headb。指定配置每 token 为 128 KiB，8192 个已缓存 token 为 1 GiB，八份互不共享的同长请求为 8 GiB。长输入、长输出与并发分别增加不同工作，容量、首 token 等待和逐 token 延迟应分开判断。

### 指定配置，再说每token成本

给缓存计量之前，先把配置说清：三十二层、每层八组 K/V、每组一百二十八维，BF16 每数两个字节。每个 token 要保存 K 与 V 两份，乘上层数、组数、维度和字节数，得到一百二十八 KiB。这个量来自指定配置，不是所有八十亿参数模型的固定规格。

[对应图解与此步说明](pages/RC-V2.html#b0)

证据与口径：指定配置的教学算例：32 层、8 KV 组、128 维、BF16；二进制 KiB / GiB

### 长度和独立请求进入账本

如果输入与已经进入缓存的生成部分合计八千一百九十二 token，KV 本体约一 GiB；八个不共享上下文的同长请求就是八 GiB。权重可以共用一份，当前状态却各自对应不同请求。这里用二进制 KiB/GiB，和前面训练账本的十进制 GB 分开。

[对应图解与此步说明](pages/RC-V2.html#b1)

证据与口径：指定配置的教学算例：32 层、8 KV 组、128 维、BF16；二进制 KiB / GiB

### 把慢拆成三个问题

所以要把“慢”拆开。长输入增加 prefill 计算与历史状态；长输出增加顺序 decode 轮次，并继续增长 KV；高并发还叠加排队与容量压力。同一请求可能同时遇到几种压力，先定位增加了哪类工作。执行安排帮助计算完成，却没有给原 A/B 记录补出任何新测量。

[对应图解与此步说明](pages/RC-V2.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

深入材料按作用对象分组：分页改变 KV 物理分配；精确前缀共享减少兼容的重复状态与计算；连续批在生成轮间接纳请求；prefill/decode 分离分别配置阶段资源并支付状态交接成本。这些不是每个请求必经的顺序技术栈。

</details>

证据与口径：指定配置的教学算例：32 层、8 KV 组、128 维、BF16；二进制 KiB / GiB

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 进一步阅读

- [一个请求的当前记忆，可以占到多少空间？：原图、推导与逐态解释](pages/N54.html#b0)

- [逻辑上连续，物理上可以按块长出来：原图、推导与逐态解释](pages/N55.html#b0)

- [相同前缀，可以接出两条不同的后续：原图、推导与逐态解释](pages/N56.html#b0)

- [A 已经答完，C 为什么还在等待？：原图、推导与逐态解释](pages/N57.html#b0)

- [每轮接纳新请求，把空出来的机会用上：原图、推导与逐态解释](pages/N58.html#b0)

- [输入很长、输出很长、人很多，是三种不同压力：原图、推导与逐态解释](pages/N59.html#b0)

### 条件与来源

以下从计算对象、条件与原始证据继续展开。

#### 原 N54：一个请求的当前记忆，可以占到多少空间？

本课指定教学配置为 L=32 层、每层 h_KV=8 组、每组维度 d_head=128，每数 BF16 占 b=2 bytes。KV 的常用存储估算为 $M_{KV}=2LTh_{KV}d_{head}b$，T 是已经进入缓存的输入与生成 token 总长度。首项 2 表示 K 与 V 两份，最后的 b 表示每数存储字节。

每 token：2×32×8×128×2=131072 bytes=128 KiB。8192 token：1073741824 bytes=1 GiB；32768 token=4 GiB。8 个互不共享、各长 8192 token 的请求共需 8 GiB KV。权重可以共享，当前上下文状态不能任意合并。

KiB=2¹⁰ bytes，GiB=2³⁰ bytes；与训练账本的十进制 GB 分开。GQA 是这种减少实际 KV 头/组数的一类架构安排，但本配置不是所有 8B 模型的固定规格。

[原 KV 容量页](pages/V02.html) · [完整服务主题](topics/serving.html) · [PagedAttention §2](https://arxiv.org/pdf/2309.06180)。

#### 原 N55：逻辑上连续，物理上可以按块长出来

把逻辑序列按 B 个 token 一块组织，长度 T 需 ceil(T/B) 个块。图示 B=4、T=6，因此用两块：逻辑0保存1–4，逻辑1保存5–6，末块空2槽。生成到7、8时补满第二块；第9个需要第三块，末块空3槽。

块表把逻辑0、1、2分别映射到物理7、1、5；读写按逻辑顺序定位，物理块无需连续。它不改变 token 的因果顺序，也不是完全零浪费；尾块仍有内部空余。请求完成可以释放独占块，共享块须检查引用计数；写入共享尾块时，具体实现还需写时复制等安排。

PagedAttention/vLLM 在请求缓存的分配与访问层面工作，FlashAttention 在注意力算子的中间量存取层面工作，两者可以配合。

[原分页图与说明](pages/V04.html) · [服务主题](topics/serving.html) · [PagedAttention §4.3 / Fig.6，物理 p6](https://arxiv.org/pdf/2309.06180)。

#### 原 N56：相同前缀，可以接出两条不同的后续

按 N54 的128 KiB/token配置，两个请求各含4096 token共同前缀与2048 token独立尾部。未共享时两份6144 token共12288 token，即1.5 GiB；共享一份前缀后总量4096+2×2048=8192 token，即1 GiB。

精确前缀复用要求同模型、相同 token 序列和兼容的位置及计算条件。文本含义相似不保证 K/V 相同；前文或前缀某个 token 改变后，从改变位置起的后续状态需要重新判断，不能把全段旧缓存当作可原样复用。共同前缀之前未改变且条件兼容的部分仍可独立核对。

两个尾部各有自己的状态和生成路径。共享节省重复 KV，也可能省重复 prefill，但不表示两条请求的全部计算合并。旧材料中的三请求2.25→1.25 GiB是另一构造，与原 N56 材料两请求1.5→1 GiB分开。

[前缀匹配与 RadixAttention / SGLang](pages/V05.html) · [服务主题](topics/serving.html) · [PagedAttention §4.4，物理 p7–8](https://arxiv.org/pdf/2309.06180)。

#### 原 N57：A 已经答完，C 为什么还在等待？

R_A、R_B、R_C 是服务请求标识，与实验方案A/B无关。三个请求需要的生成轮数分别为2、4、2，且为隔离接纳规则，假设入场 prefill 已完成；每轮可安排两个示意生成槽。

固定整批策略：前两轮R_A/R_B并行，R_A结束后其独占状态可释放，但R_C要等R_B整批结束，所以第3/4轮一个槽空闲，第5/6轮R_C才生成。图中的槽表示调度机会，不是GPU为每请求永久划定的物理位置。

没有给每轮规定相同实测毫秒，也没有测量GPU吞吐，因此不能直接将轮数作硬件加速比。

[原批处理演示](pages/V03.html) · [PagedAttention §2.3，物理 p3](https://arxiv.org/pdf/2309.06180)。

#### 原 N58：每轮接纳新请求，把空出来的机会用上

连续批处理在生成轮次间调整活跃请求集合。此例保持N57的请求长度不变：前两轮R_A/R_B共同执行，R_A完成后第三轮R_C补入，R_B不中断；第四轮R_B/R_C均完成。总生成工作量不变，R_C比固定整批少等两轮。

六轮变四轮是调度构造，不是实测1.5倍GPU加速。真实轮耗时受活跃批量、输入处理、内存访问、算子及设备影响。新请求接纳还需要prefill准备、KV容量、延迟目标满足条件，不能只看是否有空格。

评估实际系统时区分排队时间、首token延迟、逐token延迟与吞吐；提高吞吐的安排可能增加个别请求等待。

[原调度页](pages/V03.html) · [完整服务正文](topics/serving.html) · [PagedAttention §2.3 / §4.5](https://arxiv.org/pdf/2309.06180)。

#### 原 N59：输入很长、输出很长、人很多，是三种不同压力

长输入、长输出与高并发不是同一个问题。长输入增加prefill计算与状态；长输出增加顺序decode轮次并持续增长KV；高并发叠加排队、批次安排和容量压力。

在同设备上，大块prefill工作可能干扰正在decode的请求。P/D分离把两类阶段安排到不同资源，prefill结束后交接K/V等必要状态，decode继续产生输出。它允许分别配置与调度资源，也增加状态传输、模型驻留和协调成本，效果依赖输入/输出分布、请求量、设备及互联。不能因图被分成两栏就断言更快。

首token等待与后续逐token延迟应同时考察。Dynamo、LMCache、Mooncake等组件按实际职责在既有正文展开，不组成每次请求必须依次安装的技术栈。

[服务技术栈与资源交接](pages/V06.html) · [完整服务主题](topics/serving.html) · [DistServe §2.1–2.3 / §3.3](https://arxiv.org/html/2401.09670v1)。

[逐维计算 KV 的大小](./pages/N54.html)：把 K/V 两份、层数、KV 组、维度、精度与缓存长度逐项相乘，复算 KiB/GiB。

[上下文增长：物理空间怎样按块分配](./pages/N55.html)：用逻辑块、块表和物理块展示按需增长与尾块空余；作用对象是缓存分配。

[共同前缀：哪部分状态确实能共享](./pages/N56.html)：完整两请求算例从 1.5 GiB 到 1 GiB，并核对精确 token、参数与位置条件。

[并发排队：生成轮之间怎样接纳新请求](./pages/N58.html)：固定整批六轮与连续批四轮的同工作量教学对照，附容量和延迟边界。

[输入处理与逐步生成为什么互相干扰](./pages/N59.html)：定位 prefill/decode 的不同压力，解释分离资源后的 K/V 交接和成本。

</details>

[逐页阅读与备课模拟](pages/RC-V2.html)

## 同一条回答的事实、本领与执行从哪里来？

当前 A/B 输入提供 12 秒、8 秒和未测内存；训练参数提供语言、比较与回应能力；运行系统把参数与当前状态的计算实际完成。教师参考的范围、比较与未知项均可逐句回指材料。优化执行不会替代尚未进行的测量。

### 同一请求，三个来源问题

回到这份原 A/B 材料：十二秒、八秒和未测内存，都来自当前输入。我们已经看过训练与执行，现在把三件事接到同一回答上：这次事实从哪里来，理解和回应的本领从哪里来，以及这些计算怎样真正完成。

[对应图解与此步说明](pages/RC-F1.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

本页主讲是同一回答的证据、训练参数和运行过程溯源。A/B 记录与回应均为教学构造和教师参考，不是模型实跑。

</details>

证据与口径：A/B 教学记录与教师参考；当前事实、训练参数与推理执行的作用位置

### 两条输入，在运行框中会合

过去训练形成参数，当前材料形成这一次的表示与状态；两路在 prefill/decode 过程中会合。若加示例，它也从当前输入进入，不自动更新参数。放大一层可见，attention 与 MLP 都使用训练参数处理当前表示，不能把所有事实或本领机械归给其中一个模块。

[对应图解与此步说明](pages/RC-F1.html#b1)

证据与口径：A/B 教学记录与教师参考；当前事实、训练参数与推理执行的作用位置

### 逐短语溯源

把教师参考逐句核对：“本次测试”限制比较范围；“B 耗时更短”依据十二与八；“内存尚未比较”依据未测项。系统从计算开始就帮助执行，却不能替代没有发生的测量。接下来真正加入一项内存证据，看看原回答和选择应怎样改变。

[对应图解与此步说明](pages/RC-F1.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

候选生成—评价—训练目标—参数更新是独立的后训练问题，完整保留在 N60 延伸阅读。它不是本页画面所执行的流程，也不作为本页主证据。

</details>

证据与口径：A/B 教学记录与教师参考；当前事实、训练参数与推理执行的作用位置

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 回答中的三类来源

A12秒、B8秒与未测内存来自本次材料。训练形成的参数提供语言、比较与回应能力；当前输入形成表示、K/V等状态；若加入示例，示例同样经当前计算起作用，不因此自动改变参数。

运行系统从一开始就包住prefill和decode，缓存、算子和调度帮助计算完成。它不能为材料补出未测量的内存结果。“B在本次测试中耗时更短”依赖12与8及相同设置；“内存尚未比较”依赖未测项。参考回答是教师给出的分析，不是模型实跑。

[参数与当前状态](pages/M04.html) · [SFT](pages/H01.html) · [推理服务](topics/serving.html) · [上下文与记忆主题](topics/context-memory.html)。

### 可选深入：候选生成怎样回到训练

[生成候选，又会成为下一轮训练的材料](pages/N60.html#b0)另行解释候选、评价信号与参数更新之间的步骤。普通请求中的生成和反馈不会因此自动改写参数。

[一句回答怎样逐项回到材料](./pages/N61.html)：完整请求、两路会合图和逐短语对照，区分事实、能力与执行。

[当前输入与参数中的信息](./pages/AR09.html)：把训练形成的投影规则和当前 X/K/V 分开，解释示例为何可以影响回答而不更新参数。

[生成的候选怎样成为训练材料](./pages/N60.html)：独立展开候选、评价、目标与优化器更新，说明普通推理反馈不自动改变参数。

</details>

[逐页阅读与备课模拟](pages/RC-F1.html)

## 新测量与新约束，真的改变选择

当前教学记录为 A12 秒/3 GiB、B8 秒/5 GiB。B 用时更短，A 峰值内存更低；施加峰值严格小于 4 GiB 的约束后，在两项候选中选 A。新测量补足事实，新约束改变选择，执行优化需新测试，不能改写已有证据。

### 加入真正的新测量

现在真正新增一项教学测量：A 的峰值内存为三 GiB，B 为五 GiB；用时仍是十二和八秒。内存已经测过，不能继续沿用“尚未比较”。先分别读两项数据，暂不急着选一个全面更好的方案。

[对应图解与此步说明](pages/RC-F2.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

A12 秒/3 GiB 与 B8 秒/5 GiB 均为课堂构造，用于观察证据和约束如何改变判断；不是本课新增硬件实验。

</details>

证据与口径：新增测量与约束均为教学构造；教师参考分析，非真实A/B实验或模型实跑

### 两种优势分别成立

八小于十二，所以 B 在这次测试中耗时更短；三小于五，所以 A 的峰值内存更低。两个结论同时成立，却落在不同方案上。要把测量变成选择，还需要知道我们优化什么，以及必须先满足什么限制。

[对应图解与此步说明](pages/RC-F2.html#b1)

证据与口径：新增测量与约束均为教学构造；教师参考分析，非真实A/B实验或模型实跑

### 约束改变选择

现在加入约束：峰值内存必须小于四 GiB。A 为三，满足；B 为五，不满足。在当前两个选项和这份记录中，应选 A。若只追求本次更短用时，才支持 B。改变的是选择问题的约束，并没有把原来的速度与内存证据改写。

[对应图解与此步说明](pages/RC-F2.html#b2)

<details>
<summary>进一步解释与计算条件</summary>

严格小于 4 GiB 是硬约束，不是越低越好的一般偏好。本例没有等于 4 GiB 的候选；不得把判定偷换成小于等于。

</details>

证据与口径：新增测量与约束均为教学构造；教师参考分析，非真实A/B实验或模型实跑

### 分清下一步该改变什么

保留当前证据来决定下一步。缺测量，就补证据；反复忽略材料或要求，就检查提示、评价与训练；计算太慢或装不下，就定位执行约束。还没测过的优化，不能把五GiB宣布成三GiB。带着当前选A的判断，回到本讲的三个问题。

[对应图解与此步说明](pages/RC-F2.html#b3)

证据与口径：新增测量与约束均为教学构造；教师参考分析，非真实A/B实验或模型实跑

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 进一步阅读

- [多了一项测量，结论应当怎样改变？：原图、推导与逐态解释](pages/N62.html#b0)

### 条件与来源

以下从计算对象、条件与原始证据继续展开。

#### 原 N62：多了一项测量，结论应当怎样改变？

原 N62 材料在同一教学构造中增加内存测量：A12秒/3GiB，B8秒/5GiB。当前材料已经有内存数据，因此不再把“未测内存”同时显示为当前事实。两项独立结论是B用时更短、A峰值内存更低。

若目标只是这两次测试里更短用时，记录支持B；若先要求峰值内存<4GiB，A=3通过、B=5不通过，当前两选项中支持A。目标与约束改变，判断随之改变；不是给对象固定贴上“更好”标签。

这首先要求读取新输入和条件，不要求立即再训练。实际模型能否稳定做到还需独立材料检验。若慢，应检查prefill、生成长度、KV与调度；若反复忽略要求，应检查提示、评价与训练。优化执行不会把原始测量5GiB改成3GiB，也不能凭空补回未做的测量。

[上下文与参数边界](topics/context-memory.html) · [服务系统](topics/serving.html)。

[新测量怎样改变结论与选择](./pages/N62.html)：保持两项数据、分别比较、添加严格小于 4 GiB 约束，并逐项核对候选。

[先判断缺证据还是缺执行资源](./pages/RC-F1.html)：回顾当前输入、参数和执行系统的不同作用，确定下一步该补什么。

</details>

[逐页阅读与备课模拟](pages/RC-F2.html)

## 记忆容量：存入与读回，要放在一起判断

回看同一查询在 M=1 与 M=256 时的结果：目标仍被写入，为什么读回不同？

### 写入、读取、维度与误差标准共同决定可用容量。

开场使用固定查询 k₀ 与目标 v₀：M=1 时，读回与目标一致；在 M=256 的同源对照中，其他关联贡献明显混入，而目标关联本身仍在存储中。这说明“存入”与“可单独读回”需要一起判断。写入方式、读取方式、维度和允许误差共同决定某个检索任务下的可用容量。模型参数长期承载训练形成的信息，当前上下文则提供本次读取的对象，两者不能混为一类存储。

[对应图解与此步说明](pages/CL01.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

两档来自 AR01 的同一随机向量教学实验，同一数组前缀、同一查询、同一目标和固定显示尺度；图样显示64维 value，不是图像分类成绩。该实验说明特定装置的读取行为，不测量真实语言模型的知识条数。

“参数与当前上下文”是信息来源和计算职责的区分，不意味着所有模型知识都能定位到独立参数条目。

</details>

证据与口径：AR01 同源随机向量实验的 M=1／M=256 对照；不是大模型知识量测量。

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 再想一步

遇到容量结论时，可以追问四个条件是否明确：如何写入、如何读取、表示维度多大、允许多大误差。改变其中一项，就需要重新比较；因此容量应连同任务和测量口径报告。

### 从本页继续阅读

- [原始读回对照与完整条件](/pages/AR01.html)：恢复固定查询、四档关联数和未裁剪指标。
- [改写入与改读取的区别](/pages/AR04.html)：对比联合求解写入和非线性读取分别改变哪个对象。
- [参数与当前上下文的分工](/pages/AR09.html)：把长期参数与当次 K/V 分开，回看实际读取。

[原始读回对照与完整条件](./pages/AR01.html)：恢复固定查询、四档关联数和未裁剪指标。

[改写入与改读取的区别](./pages/AR04.html)：对比联合求解写入和非线性读取分别改变哪个对象。

[参数与当前上下文的分工](./pages/AR09.html)：把长期参数与当次 K/V 分开，回看实际读取。

</details>

[逐页阅读与备课模拟](pages/CL01.html)

## 学到了什么：让解释接受新证据

从猫车观察到 Scar 干预，每一步增加了什么证据？比较时保留不同模型与实验条件。

### 观察提出解释，新例、反例与干预检验解释。

InceptionV1 的猫车高响应图像首先构成内部观察，促使研究者提出“局部尖形／V形”这一跨物体类别的候选解释。另一个 Qwen3-32B 的保存案例，对指定下一 token Scar 比较未删除、指定删除和同层同数量随机删除：概率由0.9057降至0.2378，匹配随机删除约0.91。该受控差异支持所删两组单元对当前预测起作用。两组材料来自不同模型与实验；它们说明观察、解释和检验各增加了什么证据，而不是证明所有模型已经完全可解释。

[对应图解与此步说明](pages/CL02.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

Scar 案例中被指定删除的是 The Lion King 与 Lions/savanna 两组共18个单元（7＋11）；概率变化不是整体准确率下降。该结论限于保存的输入、指定下一词位置、归因和干预协议。自然样例、优化图、归因、消融与近反例的证据强度不同；新例或反例仍可能修正原有解释。

</details>

证据与口径：Goodfire 原始材料；猫车为 InceptionV1，Scar 为 Qwen3-32B 保存案例，数值沿用已校准 RG19。

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 再想一步

如果随机删除产生相近下降，原来的指定解释就会削弱；如果新例与解释预期不符，解释也需修正。对照和反例的作用，是让一种看似合理的说法承担可能被推翻的风险。

### 从本页继续阅读

- [从猫车观察到可检验解释](/pages/RG02.html)：重看高响应图像及解释如何接受后续观察。
- [Scar 归因与受控消融](/pages/RG19.html)：查看原图、两组18单元、指定删除和随机对照的条件。
- [近反例怎样修正解释](/pages/RG24.html)：比较表面相似但结构不同的输入，检查解释边界。

[从猫车观察到可检验解释](./pages/RG02.html)：重看高响应图像及解释如何接受后续观察。

[Scar 归因与受控消融](./pages/RG19.html)：查看原图、两组18单元、指定删除和随机对照的条件。

[近反例怎样修正解释](./pages/RG24.html)：比较表面相似但结构不同的输入，检查解释边界。

</details>

[逐页阅读与备课模拟](pages/CL02.html)

## 可执行性：能力收益要与资源代价一起看

更快的 B 超出内存约束，此时为什么应选 A？用这次选择回收算、存、搬的区别。

### 更快与更省内存不同；选择取决于目标与约束。

在相同教学测试条件下，A 耗时12秒、峰值内存3GiB，B 耗时8秒、峰值内存5GiB。当峰值必须严格小于4GiB时，B 的速度优势不能补偿违反约束；在已给出的两个候选中，应选满足约束的 A。这个判断连接计算、存储与搬运的资源账，也连接任务目标与可执行条件。新的优化方案可以成为候选，但其速度和峰值内存必须重新测量，不能从技术名称推定收益。

[对应图解与此步说明](pages/CL03.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

A/B 数值与峰值约束均为课程教学构造，不是某个真实 GPU 或模型的基准。结论只在当前候选、相同测试口径及这一约束下成立；并未证明 A 在所有任务或所有约束下最好。

</details>

证据与口径：A/B 时间、峰值内存及阈值为教学构造；沿用 RC-F2，不是硬件实测。

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 再想一步

当约束换成峰值小于6GiB时，B才重新进入可行集合，随后还须按任务质量与时间比较。这个条件变化说明，最优选择依赖约束；它没有改变原先小于4GiB条件下选A的判断。

### 从本页继续阅读

- [新测量怎样改变原选择](/pages/RC-F2.html)：回到 RC-F2，逐步比较最初时间信息和新增内存约束。
- [计算、存储与搬运的不同约束](/pages/RC-H3.html)：结合正文机制回看执行代价来自哪些对象。

[新测量怎样改变原选择](./pages/RC-F2.html)：回到 RC-F2，逐步比较最初时间信息和新增内存约束。

[计算、存储与搬运的不同约束](./pages/RC-H3.html)：结合正文机制回看执行代价来自哪些对象。

[LAB 06 · R5 · 先列可行集，再作一次真正会翻转的选择](https://deepnote.com/workspace/ise3309jingao-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/Fall-26-Lecture-06-2ff4b87b-2904-4b9c-b9e9-bdbd72962691/notebook/LAB-06-56ea4de667c74a84a7be00689c8de2d9?utm_source=openai&utm_medium=mcp&utm_campaign=openaimcp&utm_content=56ea4de667c74a84a7be00689c8de2d9&utm_term=get_notebook)：使用 R5 账本说明当前为何选 A，以及改变哪个约束会改变选择。

</details>

[逐页阅读与备课模拟](pages/CL03.html)

## 从一次回答，走向搜索、推理与验证

以当前可行的 A 为基线，下一步能否找到同样装得下、又更快的候选？把目标写成可检验的问题。

### 还有满足内存约束、同时更快的方案吗？怎样验证？

当前选择 A 之后，一个可检验的新问题是：能否找到峰值内存仍严格小于4GiB、同时耗时低于12秒的候选？待研究的过程是提出候选、展开推理、运行并检验，再依据反馈修正。这个过程可能找到改进，也可能在当前条件下没有找到更优解；这里尚未提供新候选的测量结果。后续将继续讨论搜索、推理、验证，并回看中训练与后训练；第九讲通过工具、代码与可验证反馈连接实际任务。

[对应图解与此步说明](pages/CL04.html#b0)

<details>
<summary>进一步解释与计算条件</summary>

反馈可以改变下一次候选、提示或行动；只有显式执行训练更新时才会改变参数。当前上下文中使用反馈，与优化器更新权重是不同过程。中训练与后训练的定义和组织方式随方法而异，并非所有模型必经的固定流水线。

</details>

证据与口径：后续问题与课程承接；未执行或声称完成搜索、推理验证实验。

<details>
<summary>完整推导、原始证据与延伸阅读</summary>

### 再想一步

候选可以从前文的分片、分块计算或请求组织中产生。先说明预期改善哪个瓶颈、可能增加什么代价，再用相同任务与测量口径比较时间和峰值内存。没有得到改进时，记录失败条件也能帮助下一次选择。

### 从本页继续阅读

- [当前判断的全部证据](/pages/RC-F2.html)：保留 A/B 时间、峰值和约束，作为未来候选比较的起点。
- [后训练怎样更新参数](/topics/posttraining.html)：在已有材料中区分反馈信息、训练目标与参数更新。

[当前判断的全部证据](./pages/RC-F2.html)：保留 A/B 时间、峰值和约束，作为未来候选比较的起点。

[后训练怎样更新参数](./topics/posttraining.html)：在已有材料中区分反馈信息、训练目标与参数更新。

</details>

[逐页阅读与备课模拟](pages/CL04.html)

## 继续深入

[完整主题参考](handbook-reference.html) · [按问题选择材料](materials.html)
