现代语言模型采样技术详解:温度、DRY采样与Top-K/P方法如何影响文本生成
大型语言模型(LLMs)生成文本的核心在于对词汇表中的词元(即分词后的子词或字符序列)进行概率分布计算,并从中选择最合适的下一个词元。本文详细介绍了LLMs使用词元的原因及其生成文本的过程,以及多种流行的采样方法如何在保持输出多样性的前提下控制生成过程的随机性。 为什么使用词元? 避免过长的序列:使用字符级或单词级的方法会导致序列长度过长,增加计算复杂度。子词级分词可以在保持合理序列长度的同时捕捉更复杂的模式。 适应新词和低频词:纯单词分词难以处理新的或罕见的单词,而子词分词可以将这些单词分解为已知的部分。例如,“grompuficious”可能被分解为“g-romp-u-ficious”。 跨语言迁移:子词分词有助于处理多语言模型和形态学复杂的语言(如德语和芬兰语)。 生成文本的过程 预测:模型为每个位置计算所有可能的下一个词元的概率分布。 选择:从概率分布中选择一个词元加入正在生成的文本。采样方法在此步骤中引入控制的随机性,使输出更加多样化。 采样方法 温度采样(Temperature) 原理:通过调整概率分布来控制模型的随机性。低温度(接近0)使模型更保守,高温度(1.0以上)使模型更加创意。 技术实现:通过将模型生成的logits除以温度值来调整分布。温度小于1时,高概率的词元变得更加突出;温度大于1时,分布更加平坦。 出现惩罚(Presence Penalty) 原理:减少已出现词元的重复。类似派对主持人让每个人都有机会发言。 技术实现:对已出现在生成文本中的词元减去固定的惩罚值。 频率惩罚(Frequency Penalty) 原理:基于词元已出现的次数来减少其重复。重复次数越多,越少被选择。 技术实现:将每个词元的出现次数乘以惩罚值并从logits中减去。 重复惩罚(Repetition Penalty) 原理:不仅惩罚生成的文本中的词元,也惩罚提示中的词元。对正负logits的影响不同。 技术实现:对正logits进行除法,对负logits进行乘法,确保已出现的词元不太可能再次被选择。 DRY采样(Don't Repeat Yourself) 原理:检测并惩罚重复的n-gram模式,预防循环和重复。 技术实现:识别出生成文本中的重复模式,并对可能继续重复的词元进行指数级惩罚。 Top-K采样 原理:只考虑前K个最有可能的词元,排除极不可能的选择。 技术实现:将logits排序并只保留前K个最高的值。 Top-P采样 原理:选择最有可能的词元,其累积概率超过阈值P。 技术实现:将logits转换为概率并选择累积概率达到P的最小词元集。 Min-P采样 原理:设置质量阈值,选择不低于最高概率词元的一定比例的词元。 技术实现:将logits转换为概率并排除低于阈值的词元。 Top-A采样 原理:基于最高概率词元的平方来设置动态阈值,模型更自信时阈值更高。 技术实现:将logits转换为概率,并设置阈值为最高概率词元的平方。 尾部自由采样(Tail-Free Sampling) 原理:通过检测概率分布的曲率来排除不相关的选项。 技术实现:计算第二导数的绝对值,识别分布开始变平的点,并排除这些点之后的词元。 Eta截止(Eta Cutoff) 原理:根据模型的确定性动态设置概率阈值,避免选择过于意外或过于可预测的词元。 技术实现:计算当前分布的负熵,并设定一个与Eta和负熵相关的阈值。 局部典型采样(Locally Typical Sampling) 原理:选择“平均”的词元,而不是最有可能或最不可能的词元。 技术实现:基于每个词元的负对数概率与平均值的差异来选择词元。 二次采样(Quadratic Sampling) 原理:通过二次和三次方程重塑整个概率分布。 技术实现:应用非线性调整,使得最高概率词元更加突出,同时温和地压制较低概率的词元。 Mirostat采样 原理:通过反馈控制环路维持一致的“惊喜”水平。 技术实现:测量每个词元的“惊喜”(即意外程度)并与目标值比较,动态调整采样的保守或创意程度。 动态温度采样(Dynamic Temperature Sampling) 原理:根据当前概率分布的不确定性调整温度值。 技术实现:计算归一化的熵,并根据指数参数插值计算动态温度。 束搜索(Beam Search) 原理:同时探索多个最有可能的路径,最终选择最有可能的序列。 技术实现:维护固定数量的候选序列,并在每一步选择最有可能的组合。 对比搜索(Contrastive Search) 原理:在选择下一个词元时平衡似然性和多样性,避免文本过于重复或不连贯。 技术实现:基于词元的似然性和与现有上下文的相似度计算综合得分。 采样顺序 实际应用中,多种采样方法通常按以下顺序应用: 1. 生成原始logits。 2. 应用词元过滤/禁用。 3. 应用重复、频率和出现惩罚。 4. 应用基于模式的技术(如DRY)。 5. 应用温度缩放。 6. 应用分布整形方法(如Top-K、Top-P、Min-P等)。 7. 从最终的分布中抽样。 采样方法之间的相互作用 温度缩放的位置:温度缩放应在过滤之前还是之后,会影响最终输出。例如,先温度缩放再过滤,可能会使原来不在前40名的词元变得可能被选择。 惩罚顺序:惩罚在其他采样方法之前的执行,可以使分布的峰值变得更加均匀,影响后续采样的效果。 DRY的位置:DRY早期应用可以更好地防止重复模式,而晚期应用则可能失效。 协同组合:Top-K和Top-P结合能提供多样性和灵活性,而高温度和低Top-K则互相冲突。 业内评价 这些采样方法大大丰富了LLMs的生成能力,使模型在不同应用场景下更具表现力和灵活性。例如,Mirostat和Dynamic Temperature Sampling在维持文本连贯性和多样性方面表现出色,而Top-K和Top-P则是创意写作的强大工具。业内专家认为,合理选择和组合这些方法是提升LLMs生成质量的关键。 公司背景 Google的Tensor2Tensor库和OpenAI等公司在LLMs的发展和优化中起到了重要作用,提供了许多高效的采样算法和技术。这些公司在自然语言处理领域的研究和实践推动了LLMs技术的发展,使其在各种实际应用中更加成熟。