当前位置: 首页 > news >正文

老码农和你一起学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 个词的概率,再从中随机采样。

  • 例子:k=3,那么只考虑“吃”“喝”“玩”这三个词,忽略所有其他词,然后在这三个词中按归一化概率采样。

  • 优点:截断了长尾的低概率词,保证候选词都是模型比较“确信”的,生成更稳定。

  • 缺点: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.jsqmd.com/news/496749/

相关文章:

  • 成都劳动合同纠纷优质律所推荐指南:成都施工合同纠纷律师事务所/成都物业合同纠纷律师事务所/选择指南 - 优质品牌商家
  • 计院操作系统实验10
  • AI一键图片转3D模型工具TrOSR|离线运行·6G显存即可·附详细图文教程
  • 【靶点筛选样本前处理①】细胞膜蛋白的全流程提取实操:标准化制备及验证
  • 使用NPOI包的时候,报错NPOI.OpenXmlFormats.dll不存在
  • 【程序员转行】大厂狂加码AI,零基础程序员/小白必看,这个风口岗位年薪可达36W
  • 从0实现OnCall基于Python语言框架
  • 2026年全国精密传动设备选型:卓创精锐如何以行星、伺服减速机、换向器破解自动化厂家精度困局 - 深度智识库
  • HCIP-AI-EI Developer V2.5 第四章笔记
  • 2026年盱眙C2驾校怎么选?这份父母放心的择校指南请收好 - 2026年企业推荐榜
  • 无迹卡尔曼滤波器(Unscented Kalman Filter,简称 UKF)
  • 乐迪信息:AI防爆摄像机识别船舶违规明火作业
  • Ubuntu服务器上部署Harbor私有镜像仓库:从零到生产的完整指南
  • 分析牌谱1
  • 【PCIe 验证每日学习・Day13】DLLP 与 ACK/NAK 重传机制基础验证
  • 赋予纸片人生命力:高阶通透肌肤物理折射工作流
  • Android jetpack LiveData (二) 原理篇
  • 嵌入式Linux学习-默认规则
  • 无迹卡尔曼滤波器(UKF)在电池 SOC 估算中的应用
  • [拆解LangChain执行引擎]Agent状态是如何被写入通道的?
  • Java+YOLO在PCB质检中的应用:从图像预处理到缺陷分类的全链路优化
  • 2026 年全国优质焦磷酸二氢二钠产品测评指南 靠谱厂商实力盘点 - 深度智识库
  • 【Fidder抓包】+【开发者工具】
  • 8K 超高清时代标杆@ACP#GSV6703 三进一出 HDMI2.1 切换器深度解析
  • 【Rust 语言编程知识与应用:表达式详解】
  • 20260318 模拟赛
  • 【入门篇】第六章 OpenClaw 深度解析:Agent 任务执行流程
  • 详细自适应无迹卡尔曼滤波 (AUKF) 实现
  • 西门子博途1200 PLC的V N积分法卷径计算功能块:SCL源代码解析及收放卷设备应用研究
  • 28个RAG面试高频问题解析:从原理到优化,助你面试稳稳拿捏!