L1.01.1output stochasticity设计研究

同一输入可能得到不同输出

别名: 非确定性输出 · 随机采样 · sampling variability

概念解释

同一段提示、同一个模型、同一次会话设置,点两次「生成」,得到的可以是两首不同的诗、两段不同的摘要。这不是缓存没命中,也不是网络抖了一下——生成过程本身在抽样。这个性质叫输出随机性(output stochasticity):条件分布里有许多合法的下一词,每一次运行只取出其中一条路径。

它要和「模型更新了所以结果变了」分开。版本没变、参数没变,路径仍可以不同。用户面对的不是一个函数,是一次采样。

机制

自回归解码在每一步对词表做一次条件概率计算,再用温度、top-k、nucleus 一类规则从分布里抽出下一个 token。温度大于零时,低概率词仍有机会被抽到;即使温度设为零,批处理、浮点非结合、推测解码仍可能让两条「贪心」路径分叉。于是「同一输入」在工程上并不对应「同一计算图上的同一条轨迹」。

人把输入—输出关系默认读成函数:相同自变量应给出相同因变量。抽样破坏的是这个默认,而不是「模型不会工作」。一次漂亮的结果只是分布里被抽到的一个点,下一次完全可以抽到邻近但不同的点。

怎么研究

把提示、模型版本、解码参数冻结,对同一输入重复采样 n 次,度量输出集合的离散程度:n-gram 重叠、嵌入余弦、任务指标的方差、人类评分的组内相关。自变量:温度、nucleus 阈值、是否开启推测解码。因变量:表面差异、语义差异、任务成功是否仍稳定。

关键是把「字面不同」和「对用户来说是不同答案」分开。两封邮件一个用「您好」一个用「你好」,语义可能等价;一个承诺退款一个只致歉,则是决策级差异。只报 BLEU 会把前者算成不稳定,把后者的危害低估。

边界

检索、分类、计算器这类被约束到封闭答案集的调用,随机性被下游校验压掉,用户几乎看不到。图像或音乐生成里,差异本身常被当成探索资源,不构成错配。温度被产品锁死且种子固定的内部工具链,在同一版本内可以接近可复现,但跨机器、跨批大小仍会裂开。这条讲的是「同一输入对应一个分布」这件事本身,不回答界面如何向用户交代,也不回答偶发正确会被怎样解读。

怎么落地

  • 在生成入口附近用一句人话标明:同样的请求可以给出不同的结果。不要把按钮画成「查询」或「计算」。
  • 需要稳定时提供确定性路径:关闭采样、固定种子、或改走规则/检索,而不是口头保证「我们会尽量一致」。
  • 把「再生成一次」做成显式的另一次采样,保留上一次结果,而不是覆盖。
  • 验证:用同一账号、同一提示连续生成三次,三次应允许不同;若产品承诺稳定,三次必须逐字相同。把这个检查写进发布清单,模型或解码库一升级就重跑。

延伸

  • 同组L1.01.2 界面惯例默认操作可重复且结果稳定 · L1.01.3 用户会把偶发正确误判为稳定能力 · L1.01.4 界面控件默认承诺同一操作得到同一结果,生成式功能违背这一承诺 · L1.01.5 用户无法通过重试区分是自己表述不当还是系统本身在波动 · L1.01.6 撤销与重做在输出不可复现时语义失效,撤销后回不到原来那次结果 · L1.01.7 把重新生成呈现为「刷新」会暗示上一个结果只是加载失败 · L1.01.8 把可变性显式呈现为多个并列方案,比藏在单一结果背后更诚实
  • 相邻L1.11 非确定性输出的可复现问题 · L3.01 多方案生成 · L1.12 延迟与流式输出的体验
  • 站内检索output stochasticity · sampling variability · non-deterministic generation

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/L1.01.1