大模型常用推理参数工作原理
大模型常用推理参数工作原理
为天地立心,为生民立命,为往圣继绝学,为万世开太平。
do_sample
do_sample
参数控制是否使用采样方法生成输出。当do_sample=True
时,模型会根据下一个 token 的概率分布进行采样;当do_sample=False
时,模型会选择概率最大的 token 作为输出。
temperature
temperature
参数通过影响softmax
控制生成输出时每个 token 的概率分布的平滑程度。
不考虑temperature
参数,softmax
概率分布的计算公式为:
prob ( x i ) = e x i ∑ j = 1 n e x j \text{prob}(x_i) = \frac{e^{x_i}}{\sum_{j=1}^{n} e^{x_j}}prob(xi )=∑j=1n exj exi
加入temperature
参数后,softmax
概率分布的计算公式为:
prob ( x i , t ) = e x i t ∑ j = 1 n e x j t \text{prob}(x_i,t) = \frac{e^{\frac{x_i}{t}}}{\sum_{j=1}^{n} e^{\frac{x_j}{t}}}prob(xi ,t)=∑j=1n etxj etxi
下图展示了temperature
参数的影响:
top_k
top_k
参数控制生成输出时,只考虑概率最高的top_k
个 token。
下图展示了top_k
参数的影响:
top_p
top_p
参数与top_k
参数类似,区别在于top_p
参数控制生成输出时,只考虑累计概率分布在前top_p
的 token。
下图展示了top_p
参数的影响:
协同工作
同时使用temperature
、top_k
、top_p
参数时,它们的影响会以一定顺序叠加。
下图展示了同时使用temperature
、top_k
、top_p
参数的影响:
temperature
、top_k
、top_p
参数不会改变各 token 概率的相对大小,因此当do_sample=False
时,token 的选择不会受到上述三个参数的影响。