训练有现成下文,生成要接住自己的选择
记录中的句子是“桌上放着一只红色的杯子”。训练一个位置时,模型可读“桌上放着一只”,要预测的是后面的颜色;“红色”留在评分区,等预测给出后再比较。这道题不能把目标词提前放进当前输入,否则就改变了模型需要完成的工作。
再看预测“杯子”的后续位置,输入是“桌上放着一只红色的”;其中连接词“的”也已经属于真实记录前缀。刚才还在评分区的真实词,如今已经是这个新位置之前的记录。因此,“训练用真实前缀”没有违反信息边界:要问的是哪一个预测位置,不能把上一题的答案与这一题的答案混为一谈。
完整语料已经存在,所以在计算图支持的架构中,许多位置的训练可以一起计算;递推结构可能仍带有自己的顺序依赖。但同时计算不等于每个位置都能看见整句答案。因果遮罩限定每个预测使用哪些先前信息;若未来目标通过其他位置绕回来,训练可能得到很好分数,却借用了真正生成时不存在的信息。
“训练既然可以并行,为什么生成还常常一个词一个词地来?” 因为训练的真实前缀已经给定;生成的后续还没出现。模型本次若选了“蓝色”,下一步读到的就是自己写出的蓝色前缀,而不是记录中的红色。常规自回归生成必须先完成这项选择,才能在它的条件下继续。
这也解释一种常见失败:模型先写错一个颜色、姓名或假设,后面却把它当成已经成立的前提,继续写出很顺的话。顺畅延续说明它响应了当前前缀,不说明它纠正了早期错误。需要更可靠的长任务时,检索、阶段检查、执行测试或草稿修订可以补上不同类型的反馈,但应针对实际错误来源选择。
训练并行、一次网络计算内部的并行与输出位置之间的生成并行,是不同问题。接下来先不改训练或网络,只改变怎样从当前候选里作选择,看看最终结果会怎样变化。
画面怎样推进
第1步
预测颜色时,模型只读允许前缀,真实红色留在评分端。
打开这一停点第2步
预测杯子的后续位置时,记录中的红色及连接词的都已属于真实前缀,当前目标留在评分端。
打开这一停点第3步
训练前缀来自真实记录,生成前缀来自模型自己的选择;接得顺不保证早期选择正确。
打开这一停点学习材料
与当前画面直接相关
真实前缀能用,真实目标为什么不能用?
把“红、杯、结束”分成三道题:开始标记预测“红”;开始标记和“红”预测“杯”;开始标记和“红、杯”预测“结束”。同一个真实“红”,在第一题是不可见目标,在第二题是合法前缀。信息边界必须按当前预测位置判断,不能把所有真实词一概当成泄漏。
训练程序已有整句,适当架构可同时计算这些题,但各位置仍只能读取合法前缀。生成时没有整句答案:本次采到“蓝”,下一步就要接住“蓝”。自检:并行算出训练损失,能否推出后续 token 已可同时生成?不能;待生成的前缀尚未作出选择,两种并行的条件不同。
连续阅读
CLS 02 · 自回归:学习条件与产生序列
按连续正文理解这条方法的训练信号、使用过程与算例;数学与实践在相关问题旁展开。
先看:第2章,从对象和问题开始
阅读与实践
LAB 01 · 自回归:联合概率、贪心与温度
先读本册保存结果,再按实现顺序核对一个算例;最后只改一个变量。
先看:先看保存结果与读图解释
在 Deepnote 阅读与运行来源与进一步阅读
Autoregressive Models
逐位置标记前缀、当前目标与未来信息;用同一句话核对真实记录前缀和模型生成前缀。
先看:第40–42页与44–57页:训练与生成
