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

大模型解码基础知识笔记

基础解码方式

1. 朴素贪心 Greedy Decode

最简单直接的策略,每一步都选择当前概率最高的词。

贪心解码是所有解码策略中最基础的一种。它遵循一个简单的原则:在生成序列的每一步,都毫不犹豫地选择模型预测出的概率最大的那个词(Token)。

优点:

  • 速度快:计算开销最小,生成速度最快。
  • 确定性:对于相同的输入,输出永远是相同的,便于复现和调试。

缺点:

  • 缺乏远见(局部最优):每一步的最优选择不等于全局最优。可能会因为眼前的一个高概率词,而错过后面更优的整个句子组合。
  • 内容重复:很容易陷入“高频词陷阱”,导致生成重复、单调的文本。
  • 缺乏创造性:输出死板,毫无新意。

适用场景:

  • 需要快速、确定性结果的场景。
  • 事实性问答或代码生成等任务,当答案路径相对单一时。

2. 更加远视的贪心 Beam Search

一种更有“远见”的策略,通过同时保留多个候选序列(束),来寻找全局最优解。

束搜索是贪心解码的升级版。它不再只考虑一个路径,而是像下棋一样,同时思考几种可能性,以期找到最优的完整序列。

工作原理
num_beams 是其核心参数,代表“束”的数量(即同时保留的候选序列数)。

  • 第一步:模型生成 num_beams 个最可能的起始词,形成 num_beams 个初始候选序列(“束”)。
  • 后续步骤:
    • 对于每一个“束”,模型都会预测其所有可能的下一个词。 计算所有新生成的、长度增加1的候选序列的累积概率(或对数概率)。
    • 从所有这些新序列中,只保留总分最高的 num_beams 个,作为新的“束”。
  • 结束:重复此过程,直到所有“束”都生成了结束符或达到最大长度。最终返回总分最高的那一条完整序列。

优点:

  • 质量更高:生成的文本通常更连贯、流畅、语法正确。
  • 全局性:有效避免了贪心解码的短视问题。

缺点:

  • 计算昂贵:计算和内存开销是贪心解码的 num_beams 倍,速度较慢。
  • 牺牲多样性:和贪心解码一样,它也是确定性的,最终只返回一个“最优解”。
  • 可能产生平庸的回答:有时最优解是一个非常“安全”但无趣的句子。

适用场景:

  • 对文本质量要求极高的任务,如机器翻译、文本摘要和报告生成。

3. 多样化解码 Temperature, Top_p and Top_k

引入随机性,让模型更有创造力,通过 Temperature, Top-k, Top-p 等参数来控制随机的程度。

与贪心解码的“独裁”不同,采样方法更“民主”,它根据概率分布进行随机抽样,让低概率的词也有机会被选中。

(1) Temperature (温度)

核心思想: 控制概率分布的“尖锐”程度,从而影响随机性。

工作原理: 通过一个 temperature 值来调整原始的 Softmax 概率分布。

  1. T < 1.0:概率分布变得更尖锐,高概率词的优势被放大,输出更接近贪心解码,但仍有随机性。
  2. T =1.0:使用模型原始的概率,是“中性”的随机。
  3. T > 1.0:概率分布变得更平滑,不同词之间的概率差异减小,模型输出更随机、更多样,但也更容易犯错。

类比: 一个“创意旋钮”。低温(~0.2)生成事实,高温(>1.0)激发灵感。

实现原理:

p r o b ′ = s o f t m a x ( p r o b t e m p e r a t u r e ) prob^{'} = softmax(\frac{prob}{temperature}) prob=softmax(temperatureprob)

  • 如果 T > 1 T>1 T>1,那么prob的分布会被磨平,高概率的词概率会变低,低概率的词概率会变高
  • 如果 T < 1 T<1 T<1,那么prob的分布会被锐化,概率高的词概率变得更高。

(2) Top-k 采样

核心思想: 限制选择范围,只在概率最高的 k 个词中进行采样。

工作原理:

  • 找出模型预测的概率最高的 k 个词。
  • 将这 k 个词的概率进行重新归一化(使它们的总和为1)。
  • 在这个缩小的词汇表中,根据新的概率进行采样。

缺点:

  • k 值是固定的,不够智能。有时概率高度集中,可能 k=5 都太多;有时概率分散,k=5 又太少。

(3) Top-p (Nucleus Sampling / 核心采样)

核心思想: 一种更智能的限制方式,选择一个累积概率超过 p 的最小词汇集进行采样。

工作原理:

  • 将所有词按概率从高到低排序。
  • 依次将它们的概率相加,直到累积总和刚好超过设定的阈值 p(例如 0.9)。
  • 这个由少数高概率词组成的“核心”(Nucleus)集合就是新的候选词汇表。
  • 在这个动态大小的集合中进行采样。

优点:

  • 比 Top-k 更灵活。当模型非常确定时,核心集可能很小;当模型不确定时,核心集会变大,容纳更多可能性。p 值设为 0.9 或 0.95 是非常常见的做法。
  • 所以建议使用Top_p而不设置top_k

更多 Test Time Scaling 技巧

1. 对比搜索 (Contrastive Search)

核心思想: 这是一种试图结合“高质量”(像 Beam Search)和“多样性”(像 Sampling)两者优点的策略。它在生成下一个词时,不仅会考虑模型的预测概率(model’s confidence),还会引入一个“退化惩罚”(degeneration penalty),主动抑制那些与前文过于相似、可能导致重复和无趣的词。

效果: 生成的文本通常比 Beam Search 更多样、更生动,同时又比传统的随机采样更连贯、更不容易“跑偏”。它在很多开放式生成任务中表现出色。

2. 投机采样/推测采样 (Speculative Decoding)

是一种推理解码时加速的方法。

核心思想: 这主要是为了加速推理,但也是一个重要的测试时技巧。它使用一个“小模型”(草稿模型)快速生成一段文本草稿,然后让“大模型”(您正在使用的模型)一次性地验证和修正整个草稿。

效果: 如果小模型猜得比较准,大模型就可以一次性接受多个词元(tokens),从而大幅减少推理步骤,实现数倍的速度提升,且最终结果与大模型自己逐词生成完全一致。

http://www.lqws.cn/news/537085.html

相关文章:

  • [自动驾驶-深度学习] PPliteSeg—基础部署(TensorRT)
  • GraphGen:训练数据合成实践
  • 营业额统计-02.代码开发及功能测试
  • CAD图纸转换为PDF
  • Vue-15-前端框架Vue之应用基础编程式路由导航
  • Vue.js 过滤器详解
  • Spring Boot 文件上传大小配置错误解决方案
  • 在Visual Studio使用Qt的插件机制进行开发
  • Python文件操作完全指南:从入门到精通
  • 基于SpringBoot的智慧旅游系统
  • 从零到一训练一个 0.6B 的 MoE 大语言模型
  • Java——Spring 非注解开发:IoC/DI 与 Bean 管理实战(含第三方组件整合)
  • python的银行柜台管理系统
  • easyExcel导入多sheet的Excel,存在合并单元格、列不固定的情况
  • # RK3588 Linux SDK 完整问题解决记录-编译内核头文件
  • 【Pandas】pandas DataFrame first_valid_index
  • 跨越十年的C++演进:C++14新特性全解析
  • 手机控车远程启动一键启动
  • C++智能指针概念及std::unique_ptr使用介绍
  • 使用docker搭建redis主从架构,一主2从
  • day48-硬件学习之GPT定时器、UART及I2C
  • 日语学习-日语知识点小记-进阶-JLPT-真题训练-N2阶段(4):2022年12月2023年12月
  • 机器学习18-强化学习RLHF
  • python基于协同过滤的动漫推荐系统
  • 华为云Flexus+DeepSeek征文|一键部署知识库搜索增强版搭建AI Agent
  • 《仿盒马》app开发技术分享-- 逻辑优化第三弹(83)
  • 新手向:Neo4j的安装与使用
  • 供应链数据可视化大屏
  • OneCode框架 Tree 相关注解使用说明
  • 服务器的安装与安全设置 域环境的搭建和管理 Windows基本配置 网络服务常用网络命令的应用 安全管理Windows Server 2019