temperature和top-p采样

在生成文本时,调整采样策略可以显著影响输出的多样性。两种常用的方法是temperature采样和top-p采样。
temperature和Top-p都是

高->随机,有创造力。

低->确定,偏向保守。

原理

大模型核心任务是预测下一个最可能出现的词,该过程分为生成分数、转换概率、加权采样三个关键步骤。

生成分数

大模型会为其词汇表中所有词(数量通常为几万到几十万)打分,该分数在 AI 领域称为 logit。以用户问题 “可以给我推荐一个讲 ai 的技术频道吗?” 为例,模型会对相关词进行打分,实际应用中通常展示分数最高的前几个词。

转换概率

通过 softmax 函数将分数转换为概率,公式为

$$ \sigma(z_i) = \frac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}} $$

其中$z_i$为第 i 个词的分数,K 为词的总量。转换后得到每个词的输出概率,使模型能按概率预测下一个词。

加权采样

根据概率生成预测值的过程称为加权采样。将每个词的概率对应分配到 0-100 的数轴区间,生成随机数,随机数落到哪个区间就选择对应词,以实现按概率输出。

temperature 的作用

temperature(温度)与 softmax 函数相关,完整公式为

$$ \sigma(z_i) = \frac{e^{z_i / t}}{\sum_{j=1}^{K} e^{z_j / t}} $$

T为 temperature 值。T 值改变会影响不同词的概率差距,T越小,高分词与低分词概率差距越大,模型回答越保守稳定;T越大,概率差距越小,输出越随机多样。

如下图所示,T值越小,会将每个词之间概率差距拉大,更容易选到原先概率最高的那个词。所以低温稳定。

  • 低温度(0 ⩽ Temperature << 0.3)时输出更 “精准、确定”。适用场景: 事实性任务:如问答、数据计算、代码生成; 严谨性场景:法律条文解读、技术文档撰写、学术概念解释等场景。
  • 中温度(0.3 ⩽ Temperature << 0.7):输出 “平衡、自然”。适用场景: 日常对话:如客服交互、聊天机器人; 常规创作:如邮件撰写、产品文案、简单故事创作。
  • 高温度(0.7 ⩽ Temperature << 2):输出 “创新、发散”。适用场景: 创意性任务:如诗歌创作、科幻故事构思、广告 slogan brainstorm、艺术灵感启发; 发散性思考。

topp 的作用

topp 全称 top cumulative probability(最高累加概率),是概率阈值。从概率最高的词开始累加,当累加概率达到设定阈值 p 时,保留这些词,丢弃剩余长尾词,再将保留词的概率按比例放大至总和为 1 后进行采样,用于切断低概率长尾词,保证回答不跑题。

如图,当top_p=0.9时,“自行车”和“hello”这两个词就被丢弃掉了。接着需要将剩下的三个词按比例重新放大成100,再进行采样。如此一来,top_p越大,保留的词就越多,输出越多样。

最后对核集合进行归一化

Top_k

就是选择概率最高的k个token,然后在这里面选