采样策略(转载)

0 阅读2分钟

原文链接:大语言模型中的采样参数 - wenzhaoabc

采样策略

LLM通过自回归的方式,一步步预测出可能的下一个token。每次预测时,模型会输出一个概率分布,表示每个token作为下一个token的可能性。为了从这个分布中采样出一个具体的token,通常会使用一些采样参数来控制采样的方式和结果。这个过程的设计称为解码策略,分为候选集筛选和采样两步。

  • 候选集筛选:通过temperature、top_k和top_p等参数来调整原始的概率分布,筛选出一部分可能性较高的token作为候选集。
  • 采样:从候选集中随机选择一个token作为下一个输出。

1. Temperature

temperature是对模型输出的概率分布(logits)进行缩放的参数,高温度会使分布更加平坦,即差距变小,低温度会使分布更加尖锐,即差距变大。

图示表示为:

不同温度对原始概率分布的影响示意

image.png

2. Top-k

高温可以使模型输出更有创意,但是由于候选集是词表全部token,可能导致模型采样出完全不相关的token。top_k设置只在概率最高的k个token中进行采样,避免了低概率token的干扰。

top_k采样示例

3. Top-p

top_k采样中,k是固定的,对于两种极端情况,当概率分布非常平坦时,k值需要设置很大才能涵盖所有合理的token,而当概率分布非常尖锐时,k值又需要设置很小才能避免采样到低概率token。top_p采样通过设置一个累积概率阈值p,动态选择候选集大小。

从最高概率token开始累加,直到这些token的累积概率超过p为止。这样可以自适应地选择候选集大小。

Top-P (P=60%) 采样示例