完整题目
在自回归文本生成过程中,当模型生成第i个token后,继续生成第i+1个token时,是使用第i位的采样或贪婪选择的token id,还是直接使用其softmax概率分布?这种设计背后的原理是什么?
本文目录
标准自回归解码使用离散token
在第i步,模型输出词表logits,经softmax得到分布。解码器按贪婪、采样、top-k、top-p或Beam Search选出一个或若干候选token id。对单条生成路径,第i+1步通常把已选id查embedding后作为新输入,并缓存该路径对应的K/V。
训练时teacher forcing通常输入真实前缀token;推理输入模型自己选出的token。Exposure bias来自这两种前缀分布的差异,不是来自token离散化。
能否直接使用softmax分布
可以计算期望embedding e=p^T E 并继续前向,或使用Gumbel-Softmax等连续近似,但这会把多个词的语义混进一个向量,改变模型训练时的输入分布,并增加对整个词表的计算与存储。它不会因为“不是离散id”就必然需要为每个候选分别缓存K/V;若只传一个期望embedding,仍只有一条状态。若要精确保留多个离散分支,才需要Beam或树搜索分别维护状态。
因此标准生成选择token id是与离散语言建模目标一致的工程设计,而不是KV Cache强制要求。