一句话定义
min-p 采样(Min-p Sampling)是在大模型生成文本时,先看当前概率最高的那个词有多大概率,再按它的一个比例设门槛,把没到门槛的长尾候选全部砍掉,只在剩下的词里重新归一化并随机抽取。
原理:门槛不是分数,是"第一名的百分之几"
不少采样方法都在做同一件事:别让模型从成千上万个几乎没意义的候选词里乱抽。区别在于"砍到哪儿"。
假设 min_p = 0.1,看的是一句话里下一个词该选谁:
- 模型很笃定时,第一名概率 60%,门槛 = 60% × 0.1 = 6%,只有少数几个词过关,输出很干净;
- 模型心里没底时,第一名概率只有 12%,门槛自动降到 1.2%,候选词多起来,模型还能有点发挥空间。
换成生活场景:投票选代表。top-p 像是"一路往下收,直到凑够 90% 的票";min-p 像是"只留得票达到第一名十分之一的人"。第一名优势明显时,队伍很短;谁都不服谁时,队伍自动变长。
和近亲的区别
| 方法 | 保留什么 | 候选集大小 | 典型毛病 |
|---|---|---|---|
| top-k | 概率最高的固定 k 个 | 恒定 | 分布尖锐时仍留下废话词,平坦时又砍太狠 |
| top-p | 累积概率达到 p 的最小集合 | 随分布浮动 | 模型很笃定时,长尾单个极小但数量众多,仍可能被凑够而留下 |
| min-p | 概率 ≥ min_p × 最高概率的词 | 随"最高概率"浮动 | 需要调 min_p,太大则答案僵化 |
关键差别在于门槛参照物:top-p 参照的是概率总和,min-p 参照的是第一名本身。所以前者在自信场景下容易"尾大不掉",后者会跟着置信度自动收紧或放宽。
对从业者的意义
min_p 通常在 0 到 0.1 这个量级里调,越大越保守,越小越放飞,常和温度(temperature)配合使用。它的好处是省心:换模型、换提示词风格时,不用因为分布形状变了就反复重调。它只是采样策略,不负责事实正确性。具体实现与默认值以各家官方文档为准。
对普通人的意义
你偶尔看到模型蹦出怪 token、格式崩掉、或者一句话里反复绕,很多是长尾采样惹的祸。min-p 的思路是:该稳的时候稳,该活的时候活——把"砍多狠"这件事,交给模型当下的把握程度去决定。
