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


# 预测下一个词，可能要记住整段经历

王德泉 · Coding with AI · Lecture 04


<a id="n10-8d6773c7a54b"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N10.html#n10-8d6773c7a54b)

盒子当前被遮住，要补出“现在盒子里有___枚木球”。只看最后一张画面，无法知道答案；过去的事件却能提供所需信息：开始三枚，取走一枚，再放入两枚，当前应为四枚。


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

这个短答案依赖的是一段状态更新：三变成二，二再变成四。最后一个动作“放入两枚”只给出变化量，没有告诉我们变化前的数量。因此，同样的最后一句放在不同历史后面，可以要求不同答案。


<a id="n10-7be09ffb2172"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N10.html#n10-7be09ffb2172)

现在只把最后一步换成“取走两枚”，其他条件保持不变，答案变成零。这个对照有用，因为它明确指出哪条信息应该使判断改变。若一个系统对两个版本都回答“四”，我们就知道它至少在这组题上没有正确使用改变的事件。


[课程图解] 只把最后的放入两枚改成取走两枚，规则答案从四变为零。；图中标签与关系：只改变最后一个动作 开始 3 枚 取走 1 枚 放入 2 枚 规则答案：四 开始 3 枚 取走 1 枚 取走 2 枚 规则答案：零
只把最后的放入两枚改成取走两枚，规则答案从四变为零。


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

**“训练只要求预测一个词，为什么要谈状态？”** 因为监督接口短，不代表完成预测所需的信息简单。文字中的数量、程序里较早定义的变量、故事里人物已经知道的事实，都可能影响当前一个位置。为了在这些情境中持续预测准确，模型可能需要形成能够保留和更新关系的表示。


<a id="n10-097862002c60"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N10.html#n10-097862002c60)

但不要把这句话倒过来用：写下“预测下一个词”的目标，并没有证明模型已获得可靠世界模型。图中的四与零是按题目规则算出的答案，是用来提出检验的例子，不是真实模型实测。答对两题也仍可能有不同内部实现，不能由行为结果直接认定它用了哪种记忆机制。


<a id="n10-461fbb8b695e"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N10.html#n10-461fbb8b695e)

到 N56，我们会回到同一盒木球，进一步区分行为成功、内部机制与现实迁移的证据。眼下先看训练怎样使用这类完整记录：正确下文已经在资料里，模型可以拿哪些部分作输入，又必须把哪些部分留在评分端？


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


## 画面怎样推进


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

当前盒内被遮住，填数量需要回看历史事件。

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


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

三枚减一再加二得到四枚，答案依赖连续状态更新。

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


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

只改最后动作成取走两枚，答案为零；这是规则构造对照，未声称模型实测。

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


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


## 继续阅读与实验


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


### 同一句“放入两枚”，为什么可以得到不同答案？


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

历史 A 从三枚开始，先取走一枚，再放入两枚，结果为四枚；历史 B 从一枚开始，同样先取走一枚、再放入两枚，结果为两枚。最后一个动作完全相同，答案仍不同，因为它只提供变化量，必须与此前留下的状态合成。


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

因此，当前只要求输出“四”这个短词，也可能需要保存长历史中的关系。自检：一个模型答对上述两题，能否直接认定它内部有一个计数器？不能；规则给出了可核对的行为答案，内部机制还需其他证据。先通过改变一条事件检查它是否使用相关信息，再讨论如何实现记忆。


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

[继续读：只看最近一项会遗漏什么](https://codingai-lec04.pages.dev/lecture.html#ch02-short-context)


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


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

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

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


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


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

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

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


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


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

从下一位置的输入与目标出发，列出要正确预测必须保留哪些更早信息；不要只观察最后一个词。

先看：第21–23页与43–57页：序列预测

