← 返回概念辨析

Concept Contrast Fable

固定选几个和按累积概率选

Top-k 采样从概率最高的前 k 个词中随机选择,候选集大小固定。Top-p 采样按累积概率阈值动态确定候选集大小——概率分布越集中候选集越小,越平坦候选集越大。两者都在控制生成多样性,但一个用固定数量、一个用自适应阈值。

寓言

两个挑豆子的农妇,一个每次抓一把,一个看豆子大小

镇上豆子铺有两个农妇负责挑豆子下锅煮豆浆。张婶的规矩很简单:每次只留最大的十颗,不管这十颗在整堆里占多大分量。李婶不数固定颗数,她先看今天豆堆的整体个头,再留下一组足够代表主味的豆子。

第一批货是上好的东北豆,颗颗饱满均匀。张婶留十颗,李婶只留四五颗,两锅豆浆味道差不多。豆堆本身很集中时,固定数和看主味,差别并不明显。

第二批货是杂豆,大小从绿豆到蚕豆都有。张婶照样留十颗最大的,锅里几乎只剩东北大豆。李婶把能合起来代表大半风味的豆子留下,数量多了许多,味道也更像原来那堆杂豆。

掌柜起初夸张婶稳定:每天都是十颗,账最好记。可客人很快抱怨,杂豆日的豆浆像换了方子。固定数让规则简单,却会在豆堆分散时过早丢掉中间味道。

第三天,豆堆里混进几颗大石子。张婶的十颗里差点进了石子,因为它们也排在前面。李婶先看主味是否已经够,再把明显不该入锅的东西剔出。两人都要防杂物,但防法不同。

掌柜又想统一规定:以后都留二十颗。李婶摇头。豆堆集中时,二十颗太宽,会带进多余杂味;豆堆分散时,二十颗又可能不够。问题不在数大数小,而在规则是否随当天分布伸缩。

后来豆铺把两套办法都保留。需要稳定、便于控制时,用固定颗数;需要随原料浓淡调整时,看累计主味。掌柜也明白了,选择范围不是越大越好,关键是别让固定门槛把该保留的可能性过早关在门外。

后来遇到宴席,掌柜会先问客人想要稳妥还是保留风味变化。若要每碗味道接近,就少留一些边缘豆;若要体现当天豆堆的层次,就让留豆范围随主味展开。两位农妇争的从来不是谁更会挑豆,而是哪种门槛更适合当天的锅。豆铺也不再把“留多少”当成孤立数字,而是把它和豆堆当天的集中程度放在一起看。门槛若不会随形势变化,就会在某些日子显得固执。

Top-k 采样

从概率最高的前 k 个词中随机选择。k 是固定整数,候选集大小不受概率分布影响。简单直观,但在分布平坦时可能漏掉合理选项,在分布尖锐时可能纳入低概率噪声。

Top-p 采样(核采样)

按累积概率阈值 p 动态确定候选集大小。分布集中时候选集小,分布平坦时候选集大。自适应能力强,但在极端分布下候选集大小波动大。

故事对应

  • 张婶固定抓十颗:Top-k 采样,候选集固定,不随分布变化
  • 李婶看豆堆定留多少:Top-p 采样,按累积概率动态确定候选集大小
  • 好豆堆两锅差不多:分布集中时 Top-k 和 Top-p 效果接近
  • 杂豆堆差异明显:分布平坦时 Top-k 可能丢弃大量合理候选
  • 石子混入:固定 k 对噪声敏感,Top-p 可以通过自适应调整屏蔽噪声
  • 两个方法一起用:先 Top-p 定范围再 Top-k 取固定数量是常见组合

落到生成参数组合设计

Top-k 和 Top-p 可以独立使用也可以组合使用。组合时先做 Top-p 裁剪再做 Top-k 截断是常见顺序——先让概率分布决定范围,再用固定数量做最后一次约束。单独使用 Top-k 适合要求输出稳定、可预测的场景,但 k 值需要根据你的具体分布调整。单独使用 Top-p 适合输入多样性大的场景,p 值在 0.9 左右是多数任务的合理起点。测试时应该用实际业务数据看候选集大小的分布,而不是只用默认值。