
<a id="n11-title"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N11.html#n11-title)


# 训练有现成下文，生成要接住自己的选择

王德泉 · Coding with AI · Lecture 04


<a id="n11-807abf51ae8d"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N11.html#n11-807abf51ae8d)

记录中的句子是“桌上放着一只红色的杯子”。训练一个位置时，模型可读“桌上放着一只”，要预测的是后面的颜色；“红色”留在评分区，等预测给出后再比较。这道题不能把目标词提前放进当前输入，否则就改变了模型需要完成的工作。


[课程图解] 预测颜色时，真实颜色留在评分区，并未交给这次作答模型。；图中标签与关系：训练记录 可见前缀：来自真实记录 桌上放着一只 待预测 评分区 红色 真实目标 记录照片 本次输入里没有当前目标 先预测，再拿真实目标评分
预测颜色时，真实颜色留在评分区，并未交给这次作答模型。


<a id="n11-6232ed0e1b13"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N11.html#n11-6232ed0e1b13)

再看预测“杯子”的后续位置，输入是“桌上放着一只红色的”；其中连接词“的”也已经属于真实记录前缀。刚才还在评分区的真实词，如今已经是这个新位置之前的记录。因此，“训练用真实前缀”没有违反信息边界：要问的是哪一个预测位置，不能把上一题的答案与这一题的答案混为一谈。


<a id="n11-94b4e52485af"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N11.html#n11-94b4e52485af)

完整语料已经存在，所以在计算图支持的架构中，许多位置的训练可以一起计算；递推结构可能仍带有自己的顺序依赖。但同时计算不等于每个位置都能看见整句答案。因果遮罩限定每个预测使用哪些先前信息；若未来目标通过其他位置绕回来，训练可能得到很好分数，却借用了真正生成时不存在的信息。


<a id="n11-b58f087029f3"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N11.html#n11-b58f087029f3)

**“训练既然可以并行，为什么生成还常常一个词一个词地来？”** 因为训练的真实前缀已经给定；生成的后续还没出现。模型本次若选了“蓝色”，下一步读到的就是自己写出的蓝色前缀，而不是记录中的红色。常规自回归生成必须先完成这项选择，才能在它的条件下继续。


[课程图解] 训练前缀来自记录，生成前缀来自模型本次选择；后续会继承这个区别。；图中标签与关系：两种前缀来源 训练：红色来自记录 桌上放着一只红色的 杯子 生成：蓝色来自本次选择 桌上放着一只蓝色的 杯子
训练前缀来自记录，生成前缀来自模型本次选择；后续会继承这个区别。


<a id="n11-67dac4078a40"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N11.html#n11-67dac4078a40)

这也解释一种常见失败：模型先写错一个颜色、姓名或假设，后面却把它当成已经成立的前提，继续写出很顺的话。顺畅延续说明它响应了当前前缀，不说明它纠正了早期错误。需要更可靠的长任务时，检索、阶段检查、执行测试或草稿修订可以补上不同类型的反馈，但应针对实际错误来源选择。


<a id="n11-dee787797768"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N11.html#n11-dee787797768)

训练并行、一次网络计算内部的并行与输出位置之间的生成并行，是不同问题。接下来先不改训练或网络，只改变怎样从当前候选里作选择，看看最终结果会怎样变化。


<a id="n11-states"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N11.html#n11-states)


## 画面怎样推进


<a id="n11-b0"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N11.html#n11-b0)

预测颜色时，模型只读允许前缀，真实红色留在评分端。

[返回这一课堂停点](https://codingai-lec04.pages.dev/classroom/N11.html?step=b0)


<a id="n11-b1"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N11.html#n11-b1)

预测杯子的后续位置时，记录中的红色及连接词的都已属于真实前缀，当前目标留在评分端。

[返回这一课堂停点](https://codingai-lec04.pages.dev/classroom/N11.html?step=b1)


<a id="n11-b2"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N11.html#n11-b2)

训练前缀来自真实记录，生成前缀来自模型自己的选择；接得顺不保证早期选择正确。

[返回这一课堂停点](https://codingai-lec04.pages.dev/classroom/N11.html?step=b2)


<a id="n11-materials"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N11.html#n11-materials)


## 继续阅读与实验


<a id="n11-learning-unit-001"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N11.html#n11-learning-unit-001)


### 真实前缀能用，真实目标为什么不能用？


<a id="n11-learning-unit-002"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N11.html#n11-learning-unit-002)

把“红、杯、结束”分成三道题：开始标记预测“红”；开始标记和“红”预测“杯”；开始标记和“红、杯”预测“结束”。同一个真实“红”，在第一题是不可见目标，在第二题是合法前缀。信息边界必须按当前预测位置判断，不能把所有真实词一概当成泄漏。


<a id="n11-learning-unit-003"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N11.html#n11-learning-unit-003)

训练程序已有整句，适当架构可同时计算这些题，但各位置仍只能读取合法前缀。生成时没有整句答案：本次采到“蓝”，下一步就要接住“蓝”。自检：并行算出训练损失，能否推出后续 token 已可同时生成？不能；待生成的前缀尚未作出选择，两种并行的条件不同。


<a id="n11-learning-unit-004"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N11.html#n11-learning-unit-004)

[继续读：输入与标签逐位置对齐](https://codingai-lec04.pages.dev/lecture.html#ch02-shift-table)


<a id="n11-chapter-reading"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N11.html#n11-chapter-reading)


### [CLS 02 · 自回归：学习条件与产生序列](https://codingai-lec04.pages.dev/lecture.html#ch02)

按连续正文理解这条方法的训练信号、使用过程与算例；数学与实践在相关问题旁展开。

先看：第2章，从对象和问题开始


<a id="n11-lab01-practice"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N11.html#n11-lab01-practice)


### [LAB 01 · 自回归：联合概率、贪心与温度](https://codingai-lec04.pages.dev/course/notebooks/39071d41f84d4621ad69c6140a6dccc9.html)

先读本册保存结果，再按实现顺序核对一个算例；最后只改一个变量。

先看：先看保存结果与读图解释


<a id="n11-material-1"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N11.html#n11-material-1)


### [Autoregressive Models](https://mit-6s978.github.io/assets/pdfs/lec3_ar.pdf#page=40)

逐位置标记前缀、当前目标与未来信息；用同一句话核对真实记录前缀和模型生成前缀。

先看：第40–42页与44–57页：训练与生成

