采样与解码

从 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、参数和随机种子必须重放同一选择,多种子结果应符合声明分布。任何“成功”结论都要保存以下证据:模型版本、logits、温度、top-p/top-k、随机种子、候选集合、采样结果与统计区间,不能把模型口头确认当作环境事实。

关键机制与可推翻实验

softmax 把相对分数变成概率

logits 只表达候选的相对偏好;softmax 归一化后才形成总和为一的分布。为数值稳定应先减去最大 logit。

动手试:手算三个 logits 的概率,再与稳定实现比较到约定误差。

温度改变分布而非知识

低温度放大高分候选差异,高温度让分布更平。它不能补充缺失事实,也不能把错误工具结果变正确。

动手试:固定 logits,绘制三个温度下的熵和最高候选概率。

top-p 与 top-k 先截断候选

top-k 固定候选数量,top-p 保留累计概率达到阈值的最小集合。二者与温度的应用顺序必须由接口文档明确。

动手试:构造长尾分布,比较固定 k 与固定 p 的候选集合大小。

随机输出需要分布级验收

单次输出不能证明解码回归;固定种子用于重放,多种子重复用于估计成功率和尾部失败。确定性任务仍应优先结构校验与工具事实。

动手试:运行一百个种子,报告通过率、置信区间和最常见失败类型。

先预测,再操作三类证据

分步1 / 3

1. 模型与结构边界

在“采样与解码”中先画出责任、数据或候选空间,再预测“把解码参数与任务风险、可重复性和输出分布绑定”会在哪个节点改变结果。

采样与解码、logits、softmax、温度、top-p、top-k、随机种子、分布评测
可交互
一次采样:从原始分数到挑出一个 tokenlogits → softmax → 按温度重塑 → top-p 截断 → 掷骰子抽一个 原始 logits模型吐出的原始分数有正有负 softmax 成概率归一成一摞和为 1和 = 100% 按温度重塑高温 → 分布变平更平 = 更随机 top-p 截断砍掉尾巴,只留头部尾巴被砍 掷骰子抽中存活里按概率挑一个🎲 抽中第 2 个

第 1 / 5 步 · ① 模型先吐出一排原始分数(logits)——有高有低,还没法当概率

一次采样五步:logits → softmax → 按温度重塑 → top-p 截断 → 掷骰子抽一个。可暂停、单步、拖进度。

从模型吐出的原始分数,到最后挑出一个 token——温度在第③步把分布捏陡或捏平,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、随机种子、候选集合、采样结果与统计区间。

阅读导航

← 提示工程基础 · 结构化输出 →

资料与写作方式声明

本章以Building effective agents(站内九单元课程改编)权威目录界定学习范围,并结合正文列出的技术资料独立重写;不宣称复现原书正文,也不沿用原作表述。

原作版权归作者与出版社所有;本站原创教学结构与表述仅供学习交流。

讨论

评论区加载中…