生成式AI与大语言模型

top-k 与 top-p 采样(top-k and top-p sampling)

/ TOP-KAY and TOP-PEE SAM-pling /

top-k 与 top-p,是两种办法,用来决定「在每一步,语言模型究竟被允许从哪些候选词里挑」——一份候选短名单,随后才由概率做出最终选择。模型每一步都会产出一份完整、带概率的候选词排行榜,但榜尾大多是废话。这两种方法把榜尾剪掉,好让模型既能有创意,又不至于偶尔脱口说出真正的胡话。

top-k 是简单粗暴的那种:只留下最可能的 k 个词(比如前40个),其余一概不理,再在这些里采样。top-p(又叫核采样)更聪明些:留下「概率累加恰好够到阈值 p(比如0.9)」的那一小撮排在前头的词,再在其中采样。top-p 的妙处在于,这份短名单会自动伸缩——当模型很笃定(某一个词独占鳌头)时,名单极短;当它确实拿不准时,名单便扩宽,纳入更多选项。实际中,这两者常与温度搭配:温度重塑赔率,top-k/top-p 修剪选项。

要保持诚实:这些都是关于「文风与风险」的旋钮,而非关于「真理」的旋钮。它们降低了某个离奇词把文字带偏的概率,可模型挑的,仍是它认为「说得通」的词——而说得通,并不等于正确。剪掉榜尾,让输出更干净、听起来更稳妥;它并不能给模型更好的事实或判断。

在写「我最爱的水果是___」时,模型排出:苹果30%、芒果20%、香蕉15%……再往下很远,「电话」0.001%。top-p 取0.9,只留下那些概率累加到90%的水果,把又长又荒唐的尾巴丢掉——于是它能在苹果、芒果、香蕉之间变换,却永远不会挑「电话」。

top-p 保留一份自动伸缩的短名单;荒唐的尾巴被剪掉。

top-k 用一个固定的截断(永远取 k 个词);top-p 用一份「概率预算」,于是当模型拿不准时短名单自动扩大、笃定时则收窄。它们通常与温度组合使用,而其中没有任何一个能提升答案的事实准确度。

又称
nucleus samplingtop-k samplingtop-p sampling核采样核取樣