发力层 · 第 21 / 25 课 · 把模型跑起来

采样实验室完全体

真权重交互 复用已加载权重(未加载则首次点击确认下载 28.1MB) 建议 15–30 分钟

学完这课你能

  1. 说清四大旋钮各自拧什么:温度改分布陡峭度、top-k 砍长尾、top-p 按累计质量砍尾巴、重复惩罚压旧词。
  2. 用四配置并行对照读出策略差异:同一句 prompt,四种口味一眼分晓。
  3. 建立边界感:解码策略不改模型,只改「怎么用模型给出的分布」。

同一壶基酒,四个调酒师各拧各的旋钮:一杯纹丝不动,一杯温润标准,一杯烈得呛喉,一滴酒都不重复。模型的采样台长得一模一样——基酒是同一份概率分布,风味全看旋钮。

调酒师工作台上,一壶基酒分出四根管子,每根管子中途装着不同的旋钮与滤网,末端接四只形状各异的杯子
类比 同一壶基酒=同一份 logits,四根管子的旋钮滤网=四套采样配置,接出四杯不同的酒。

01回收第 4 课的伏笔

第 4 课说过:每生成一个 token,模型先给出全词表 50304 个分数(logits),再从里面「选一个」。当时你手里只有温度一个旋钮,top-k 露了一脸,剩下的全部许诺到了这节课。现在承诺兑现:完整的采样流水线一共四道工序,一个不少。

先立一块界碑:这一整课,模型的权重一个数都不动。四个旋钮拧的都不是模型,而是「怎么用模型给出的分布」——同样的 prompt、同样的权重,采样配置一换,文风就换。这就是「解码策略」四个字的全部含义。

02四个旋钮各管什么

按流水线顺序过一遍。先上重复惩罚:生成过程中已经出现过的 token,把它们的分数往下压一压(正分除以 α、非正分乘以 α),专治复读机。第二道温度:分数整体除以一个 0.1–2.0 的数——低温把分布削尖,模型保守;高温把分布摊平,模型放飞。第三道top-k:只留分数最大的 k 个候选,长尾一刀砍掉。第四道top-p:按概率从大到小累加,累加到刚好 ≥ p 就收手,剩下的尾巴整段砍掉——候选数量随分布形状自动伸缩,所以也叫「核采样(nucleus)」。

logits 50304 个分数 重复惩罚 已出现 ×1/α 压分 ÷ 温度 低尖 · 高平 top-k 截断 只留最大 k 个 top-p 截断 累计和 ≥ p 收手 softmax 剩余候选归一化 采样 按概率抽 1 个 拼回输入 上下文 +1 自回归:再轮一遍 四道工序依次过,一道都不少——实验台的实现顺序与本图一致
结构 采样流水线:惩罚 → 温度 → top-k → top-p → softmax → 采样 → 拼回输入,闭环自回归。
一只糖罐旁三只手:第一只闭眼随便抓,第二只只抓最上层的几颗,第三只先把抓过的糖果拨到一边再抓
类比 糖罐=候选分布:闭眼乱抓=高温,只抓最上层=top-k/top-p,先拨开抓过的=重复惩罚。

03四联屏对照

下面这台实验台给你四列互不干扰的采样器,默认分别是四种经典配置:贪婪(t≈0,永远选最大)、均衡(日常手感)、狂野(高温宽口)、禁重复(惩罚拉满)。同一句 prompt,一键四列同跑——都是 pythia 真权重、真采样,差异全部来自旋钮。

看的时候盯两处:一是第一句分岔点——四列从第几个 token 开始走向不同;二是崩溃方式——贪婪列容易车轱辘话,狂野列容易飞出句子,各有各的死法。

04抽卡手感

重复惩罚值得单独玩一把:让模型重复一个短语(比如把 prompt 写成 Banana banana banana),普通的均衡配置多半接着 banana 到底;把 α 拉到 1.5 以上再看——被抽烂的那张卡被硬生生挤出候选,模型只能换词。这就是「压旧词」的手感。

05什么场合拧什么钮

收尾一张速查表,都是社区经验不是铁律:代码生成要温度贴近 0——一个字符都不能赌;文案创意温度 0.9 上下,放飞一点才有人味;摘要翻译把 top-p 收小(0.8 以内),少让长尾搅局;一旦看见复读,先加重复惩罚再调别的。下一次你拧任何一个 API 的采样参数,背后过的都是这条流水线。

交互实验:四联屏采样实验室

引擎加载中…

同一句 prompt 四列并行:每列温度 / top-k / top-p / 重复惩罚四滑杆 + 预设 chip(贪婪 / 均衡 / 狂野 / 禁重复),可四列同跑或单列跑,每步保留 top-5 概率快照。真权重、真采样,全部在你的浏览器里算。

组件加载中…(四联屏采样实验室需要 JavaScript)