生成配置:温度、top-k、top-p 与测试时计算
本文深入探讨了 AI 模型生成文本的概率机制,重点介绍了温度、top-k、top-p 等采样策略,以及测试时计算和结构化输出的方法,帮助读者理解和优化模型输出。
AI 模型的输出本质上是概率性的,这使得它们在创造性任务中表现出色,但也带来了不一致性和幻觉问题。理解模型的采样过程——即如何根据概率分布生成下一个 token——对于有效利用 AI 至关重要。本文由知名 AI 学者 Chip Huyen 撰写,系统介绍了温度、top-k、top-p、测试时计算和结构化输出等关键概念。
采样是模型生成文本的基础。给定输入,神经网络首先计算所有可能值的概率分布。对于分类任务,可直接选择最高概率值;但对于语言模型,贪婪采样(总是选最可能 token)会导致输出枯燥。相反,应按概率分布随机采样,以增加多样性。温度参数通过调整 logits 来重新分配概率:高温降低常见 token 的概率,提升稀有 token,从而鼓励创造性;低温则使输出更确定。实际应用中,温度常设为 0.7 以平衡创造性与一致性,但需根据具体场景调整。
Top-k 采样仅考虑概率最高的前 k 个 token,以减少 softmax 计算开销。k 值越小,输出越可预测但缺乏新意。Top-p(核采样)则动态选择累积概率达到 p 的最小 token 集合,使输出更贴合上下文。尽管理论上 top-p 优势不明显,实践中效果良好。此外,停止条件(如最大 token 数或终止 token)可控制输出长度,降低成本。
测试时计算通过多次采样并选择最佳输出来提升模型性能。选择方法包括平均对数概率最高、使用奖励模型评分或简单启发式(如最短输出)。OpenAI 的 best_of 参数即基于此。然而,多次采样成本高昂,且存在收益递减点(如 OpenAI 实验发现 400 次后性能下降)。对于不可靠的模型,多次采样可缓解问题,但更换模型才是根本。
结构化输出对于生产环境至关重要,例如确保输出为有效 JSON 或 SQL。方法包括提示工程(最易但不可靠)、微调(更可靠且可降低推理成本)和约束采样(在 token 生成过程中过滤 logits)。约束采样需构建语法规则,实现复杂,但能确保格式正确。随着模型能力提升,未来可能只需少量提示即可获得理想输出。
总之,掌握这些采样配置是高效利用 AI 的关键。本文强调,概率机制既是魔力也是挑战,深入理解有助于构建更可靠的 AI 应用。