老码农和你一起学AI系列:语言模型采样方法
语言模型在生成文本时每一步都会计算出下一个词的概率分布比如“吃”0.4“喝”0.3“玩”0.2……。那么具体选哪个词作为输出呢这就涉及采样方法。根据是否追求“概率最大化”这些方法可以分为两大类确定性方法总是选最可能的词和随机采样方法按概率随机抽取。下面我们分别详解。一、概率最大化方法这类方法的核心思想是每一步都选择概率最高的词或者在整个序列层面寻找概率最高的组合。它们生成的结果是确定的即同样的输入永远得到同样的输出。1. 贪心搜索Greedy Search做法每一步直接挑出概率最大的那个词。例子预测下一个词时“吃”概率0.4最大那就输出“吃”。优点简单、速度快适合对准确性和确定性要求高的任务如机器翻译、拼写检查。缺点容易陷入重复循环如“好的好的好的……”。缺乏多样性生成的文本死板。局部最优不一定全局最优——当前选最可能的词但连成句子后可能不如另一个稍低概率的词开头整体通顺。2. 束搜索Beam Search做法为了缓解贪心搜索的短视束搜索每一步保留概率最高的k 个候选序列k 称为束宽。最后从这 k 个完整序列中选择总概率最高的一个。例子束宽2第一步保留“吃”0.4和“喝”0.3两个开头第二步对每个开头分别计算下一个词的概率再保留总概率最高的两个序列……直到句子结束。优点比贪心搜索更可能找到全局最优序列在机器翻译、摘要生成等任务中表现优秀。缺点依然倾向于生成保守、常见的句子缺乏惊喜。随着束宽增大计算量增加且可能生成过于通用的结果比如“我不知道”之类的安全回答。总结概率最大化方法追求精准和稳定适合需要明确答案的场景但不适合需要创造力的开放式生成。二、随机采样方法这类方法的核心是按照模型给出的概率分布进行随机抽样概率高的词被抽中的几率大但概率低的也有可能被选中。这样生成的文本具有多样性每次输出都可能不同。1. 原始随机采样Random Sampling做法直接以模型输出的概率分布为权重随机抽取一个词。例子“吃”占40%面积“喝”占30%“玩”占20%……做一个不均匀的骰子掷出哪个就选哪个。优点完全尊重模型学到的分布引入自然多样性。缺点有可能抽到概率极低的词比如“吃石头的”导致生成不连贯或无意义的句子。2. 温度采样Temperature Sampling做法在应用softmax之前将模型的输出 logits 除以一个温度参数T改变分布的陡峭程度。T 1分布变得更尖锐高概率词更突出模型更“保守”。T 1保持原始分布。T 1分布变平滑低概率词被选中的机会增加模型更“有创意”。优点通过调节 T 可以灵活控制随机性和确定性之间的平衡。缺点仍然无法完全避免抽取到离谱的低概率词即使平滑后那些原本极低的词依然可能被选中。3. Top-k 采样做法每一步只保留概率最高的k个词然后重新归一化这 k 个词的概率再从中随机采样。例子k3那么只考虑“吃”“喝”“玩”这三个词忽略所有其他词然后在这三个词中按归一化概率采样。优点截断了长尾的低概率词保证候选词都是模型比较“确信”的生成更稳定。缺点k 是固定值不能适应不同上下文。有时有效词可能少于 k 个会强行拉进一些不太相关的词有时有效词可能多于 k 个会遗漏好词。4. Top-p 采样核采样Nucleus Sampling做法设定一个概率阈值p如0.9然后从累计概率超过 p 的最小词集合中采样。这个集合的大小会根据当前分布动态变化。例子如果“吃”(0.4)“喝”(0.3)“玩”(0.2)累计概率正好0.9那么这三个词就是候选集。如果下一个词分布非常集中可能两个词就达到0.9如果分布分散候选集会更大。优点动态调整候选集大小既能截断不合理低概率词又能保留多样性和适应性是目前开放式文本生成如对话、故事生成中最常用的方法。缺点相比 top-k 稍复杂但现代库都高效支持。三、两大类的对比与选择方面概率最大化方法随机采样方法输出确定性确定同输入同输出随机同输入可不同输出多样性低容易重复高每次可能不同风险死板、保守可能不连贯、跑题适用场景机器翻译、摘要、问答答案唯一对话、故事生成、创意写作需要多样性常用技巧束搜索、贪心温度、top-k、top-p最后小结实际应用中两者也可以结合。例如在束搜索中加入随机采样如多样束搜索或者在随机采样中通过调节温度和 top-p 来达到最佳平衡。理解这些采样方法能帮助你更精准地控制语言模型的输出风格让 AI 既可靠又有创意。如果你对某个方法的实现细节或调参技巧感兴趣欢迎继续探讨
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2423467.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!