采样与解码
从 logits、softmax、温度与候选截断解释逐 token 选择,并用固定输入和重复采样区分随机性与回归。
学习目标
- 能解释“采样与解码”如何把解码参数与任务风险、可重复性和输出分布绑定
- 能区分logits、softmax、温度、top-p、随机种子,并指出它们在请求、状态或执行边界中的位置
- 能固定输入,沿以下证据定位首个分叉:模型版本、logits、温度、top-p/top-k、随机种子、候选集合、采样结果与统计区间
- 能注入“只比较一次随机输出并把差异归因于提示回归”,在同一预算和权限下完成故障、恢复与重放
来源、课程编排与适用边界
“采样与解码”以Anthropic 公开全文《Building effective agents》为总纲,并用Anthropic《Effective context engineering for AI agents》核对本单元机制;工具与外部能力的角色再由MCP 官方规范交叉检查。
这不是一本具有“官方九章目录”的纸质书。平台把公开文章中的 augmented LLM、工作流、智能体、上下文和工具工程重组为 9 个教学单元;下列 72 个节点是站内课程地图,不冒充 Anthropic 原文目录。正文、代码、图表和练习均为独立教学重写,产品或模型版本变化时应重新验证。
本单元的八个课程坐标
- 采样与解码:作为“把解码参数与任务风险、可重复性和输出分布绑定”的第 1 个课程坐标,必须进入正文解释、交互观察或练习证据。
- logits:作为“把解码参数与任务风险、可重复性和输出分布绑定”的第 2 个课程坐标,必须进入正文解释、交互观察或练习证据。
- softmax:作为“把解码参数与任务风险、可重复性和输出分布绑定”的第 3 个课程坐标,必须进入正文解释、交互观察或练习证据。
- 温度:作为“把解码参数与任务风险、可重复性和输出分布绑定”的第 4 个课程坐标,必须进入正文解释、交互观察或练习证据。
- top-p:作为“把解码参数与任务风险、可重复性和输出分布绑定”的第 5 个课程坐标,必须进入正文解释、交互观察或练习证据。
- top-k:作为“把解码参数与任务风险、可重复性和输出分布绑定”的第 6 个课程坐标,必须进入正文解释、交互观察或练习证据。
- 随机种子:作为“把解码参数与任务风险、可重复性和输出分布绑定”的第 7 个课程坐标,必须进入正文解释、交互观察或练习证据。
- 分布评测:作为“把解码参数与任务风险、可重复性和输出分布绑定”的第 8 个课程坐标,必须进入正文解释、交互观察或练习证据。
术语与状态合同
↡logits:模型对下一 token 候选给出的未归一化分数;在“采样与解码”中按以下证据核对:模型版本、logits、温度、top-p/top-k、随机种子、候选集合、采样结果与统计区间。、↡softmax:把 logits 转换为概率分布的归一化函数;在“采样与解码”中按以下证据核对:模型版本、logits、温度、top-p/top-k、随机种子、候选集合、采样结果与统计区间。、↡温度:控制候选概率分布尖锐程度的缩放参数;在“采样与解码”中按以下证据核对:模型版本、logits、温度、top-p/top-k、随机种子、候选集合、采样结果与统计区间。、↡top-p:保留累计概率达到阈值的最小候选集合;在“采样与解码”中按以下证据核对:模型版本、logits、温度、top-p/top-k、随机种子、候选集合、采样结果与统计区间。、↡随机种子:用于重放伪随机选择序列的初始状态;在“采样与解码”中按以下证据核对:模型版本、logits、温度、top-p/top-k、随机种子、候选集合、采样结果与统计区间。。
本页不变量是:同一 logits、参数和随机种子必须重放同一选择,多种子结果应符合声明分布。任何“成功”结论都要保存以下证据:模型版本、logits、温度、top-p/top-k、随机种子、候选集合、采样结果与统计区间,不能把模型口头确认当作环境事实。
关键机制与可推翻实验
softmax 把相对分数变成概率
logits 只表达候选的相对偏好;softmax 归一化后才形成总和为一的分布。为数值稳定应先减去最大 logit。
动手试:手算三个 logits 的概率,再与稳定实现比较到约定误差。
温度改变分布而非知识
低温度放大高分候选差异,高温度让分布更平。它不能补充缺失事实,也不能把错误工具结果变正确。
动手试:固定 logits,绘制三个温度下的熵和最高候选概率。
top-p 与 top-k 先截断候选
top-k 固定候选数量,top-p 保留累计概率达到阈值的最小集合。二者与温度的应用顺序必须由接口文档明确。
动手试:构造长尾分布,比较固定 k 与固定 p 的候选集合大小。
随机输出需要分布级验收
单次输出不能证明解码回归;固定种子用于重放,多种子重复用于估计成功率和尾部失败。确定性任务仍应优先结构校验与工具事实。
动手试:运行一百个种子,报告通过率、置信区间和最常见失败类型。
先预测,再操作三类证据
1. 模型与结构边界
在“采样与解码”中先画出责任、数据或候选空间,再预测“把解码参数与任务风险、可重复性和输出分布绑定”会在哪个节点改变结果。
第 1 / 5 步 · ① 模型先吐出一排原始分数(logits)——有高有低,还没法当概率
一次采样五步:logits → softmax → 按温度重塑 → top-p 截断 → 掷骰子抽一个。可暂停、单步、拖进度。
最小可运行实现
def probabilities(logits, temperature):
scaled = [x / temperature for x in logits]
peak = max(scaled)
weights = [math.exp(x - peak) for x in scaled]
total = sum(weights)
return [x / total for x in weights]
def sample_many(logits, config, seeds):
return [sample(logits, config, seed) for seed in seeds]这段实现只负责暴露“把解码参数与任务风险、可重复性和输出分布绑定”的最小合同。交付版本还要补齐超时、日志、权限、密钥隔离和可重复评测;缺少以下证据时,代码能运行也不代表本章结论成立:模型版本、logits、温度、top-p/top-k、随机种子、候选集合、采样结果与统计区间。
练习与答案
练习
问题 1:系统边界。 怎样用最小输入证明“同一 logits、参数和随机种子必须重放同一选择,多种子结果应符合声明分布”?
问题 2:课程坐标。 采样与解码、logits、softmax、温度、top-p、top-k、随机种子、分布评测如何进入可操作验证?
问题 3:故障恢复。 怎样证明“只比较一次随机输出并把差异归因于提示回归”已经修复?
本章回顾
- “采样与解码”的主问题是把解码参数与任务风险、可重复性和输出分布绑定。
- 核心不变量是同一 logits、参数和随机种子必须重放同一选择,多种子结果应符合声明分布。
- 首要反例是只比较一次随机输出并把差异归因于提示回归。
- 最小证据包包含模型版本、logits、温度、top-p/top-k、随机种子、候选集合、采样结果与统计区间。
名词解释
本章出现的专业名词,用大白话再讲一遍。
- logits
模型对下一 token 候选给出的未归一化分数。在“采样与解码”中必须能按以下证据重新定位:模型版本、logits、温度、top-p/top-k、随机种子、候选集合、采样结果与统计区间。
- softmax
把 logits 转换为概率分布的归一化函数。在“采样与解码”中必须能按以下证据重新定位:模型版本、logits、温度、top-p/top-k、随机种子、候选集合、采样结果与统计区间。
- 温度
控制候选概率分布尖锐程度的缩放参数。在“采样与解码”中必须能按以下证据重新定位:模型版本、logits、温度、top-p/top-k、随机种子、候选集合、采样结果与统计区间。
- top-p
保留累计概率达到阈值的最小候选集合。在“采样与解码”中必须能按以下证据重新定位:模型版本、logits、温度、top-p/top-k、随机种子、候选集合、采样结果与统计区间。
- 随机种子
用于重放伪随机选择序列的初始状态。在“采样与解码”中必须能按以下证据重新定位:模型版本、logits、温度、top-p/top-k、随机种子、候选集合、采样结果与统计区间。