白话EAGLE2:解锁大模型的“打草稿”技术

实时了解业内动态,论文是最好的桥梁,专栏精选论文重点解读热点论文,围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型重新阅读。而最新科技(Mamba,xLSTM,KAN)则提供了大模型领域最新技术跟踪。若对于具身智能感兴趣的请移步具身智能专栏。技术宅麻烦死磕AI架构设计。

总览EAGLE-2

EAGLE-2是一种加速大型语言模型(LLM)推理过程的技术。具体来说,它采用了基于推测性采样(speculative sampling)的技术,它通过引入动态草稿树和草稿模型的置信度分数来提高LLM的推理效率。EAGLE-2能确保模型生成的文本概率分布不变,也使得其成为一种无损加速算法。

  • 推测性采样(Speculative Sampling)是一种通过生成和验证多个候选词来加速LLM推理的方法。具体来说,它首先使用一个小模型快速生成一些候选词(Draft),然后用更大的模型来验证这些候选词正确性。

  • 草稿树(Draft Tree)是一种数据组织结构,用来组织和存储草稿模型(Draft Model)生成的候选词。

  • 动态草稿树(Dynamic Draft Trees)是在EAGLE-2过引入的,它改进了传统静态草稿树的局限性。动态草稿树会根据草稿模型的置信度分数和生成上下文,动态调整草稿树的结构。

  • 置信度分数是指草稿模型对某个候选词的信心程度,它近似表示该候选词被最终模型接受的概率。

先来感受一下EAGLE-2技术令人震撼的效果,在各种的模型的推理上遥遥领先,基本面能够达到3-4倍数的加速。

上面的统计结果在temperature=0时候的加速比。

temperature是LLM推理的超参数。大模型在预测下一个字符的时候,会针对词汇表的所有候选者都生产预测的概率,0代表选择永远选择概率最高的。随着temperature设置数据的增加,下一个预测字符的随意性就会增加

上图中,对于推测采样,Vicuna系列使用Vicuna-68M作为草稿模型。LLaMA2-Chat 7B、13B 和 LLaMA3-Instruct 8B缺乏合适的草稿模型,标记为 N/A。LLaMA2-Chat 70B和 LLaMA3-Instruct 70B分别使用LLaMA2-Chat 7B和LLaMA3-Instruct 8B作为草稿模型。在表 1 中展示了与其他方法的比较,但该图仅展示了一个子集,包括这些方法中最快的EAGLE。

Speculative Sampling

推测采样技术

推测采样技术是鼻祖,其核心思想是先起草(Draft)然后验证(Verification):快速生成一个可能正确的草案,然后检查草案中哪些Token可以被接受。

2023年5月份提出的一种推测技术如上图所示,每行代表算法一次迭代。

此处的近似模型,或者称为草稿模型的是一个6M的类GPT的解码器。这个模型是利用8k个Token训练出来的,目标模型是具有97M个参数的类GPT解码器!

绿色标记是近似(草稿)模型提出的建议,而被目标模型接受,而红色和蓝色标记分别是被拒绝的建议及其更正。例如,在第一行中,目标模型仅运行了一次,生成了5个Token。

2024年2月份的Ouroboros针对打草稿的技术进行加速。它从前瞻解码中得到启发,使用草稿短语直接加速目标模型T。因为每轮草稿短语都需要目标模型T的前向传递来验证,因此限制了前瞻解码的整体加速效果。

它先通过使用现有的较小模型(橙色部分)进行草稿,然后以低成本生成草稿短语(粉色部分),紧接这并行 的方式使用目标LLM来验证草稿。在这种草稿-验证框架下,打草稿的效率已成为这种推测采样技术的加速瓶颈。但是它以较低的成本生成更长的草稿可以带来更好的解码加速,而且它无需对草稿和目标模型进行微调。

一句话,作为幕后代笔的草稿模型而言,打草稿的效率十分重要!!

与前瞻解码不同,它使用草稿短语通过草稿模型S间接加速目标模型T,让目标模型的每次Forward(大白话,吐新的Token)可以同时验证多轮短语,从而实现更好的加速。如图2所示,在Ouroboros中,草稿模型的起草过程是逐个草稿短语而不是逐个Token进行,在草稿模型的每次Forward传递过程中,都会并行生成多个新短语。<如何生成另外讲解!>

EAGLE

2024年1月份的EAGLE是对抽样技术的改进。在提交这项工作时,EAGLE在Spec-Bench中排名第一,这是一个很全面的评估基准,旨在评估不同场景中的推测采样的技术。

EAGLE 的流水线。上半部分说明了计算过程,下半部分显示了每个步骤对应的生成结果。在上半部分中,绿色块表示token嵌入,橙色块表示特征f,红色框表示草稿模型的预测,带有雪花图标的蓝色模块表示目标大模型LLM的参数,这些参数是冻结的。

上图为起草阶段。与自回归预测 token序列的标准推测性抽样不同,EAGLE 在更结构化的特征级别运行,即使用LLM原始的LM Head获取草稿token。为了消除不确定性,EAGLE还带上每个阶段的特征(可以大致理解为上下文)f。

验证阶段。在标准推测性抽样中,草稿是链式结构的,如果草稿token被拒绝,则需要丢弃所有后续 token。EAGLE 使用树形结构草稿,允许在草稿 token被拒绝时尝试替代分支。图b说明了两者之间的差异。

EAGLE Vs EAGLE-2

EAGLE和EAGLE-2之间的差异。EAGLE始终使用固定的草稿形状。当查询为“10+2=”时,下一个标记很可能被正确预测为“1”。但是,使用静态草稿树,即便另一个候选“3”正确的概率非常低,EAGLE仍会添加两个候选。而EAGLE-2根据上下文调整草稿树的形状。当查询为“10+2”时,下一个标记很难预测,因此 EAGLE-2 添加了两个候选。对于更简单的查询“10+2=”,EAGLE-2仅添加一个候选“1”。

由此可以看到EAGLE-2根据上下文动态调整草稿树,增强推测性抽样。其方法包括两个主要阶段:扩展和重新排名。该过程从扩展阶段开始,在该阶段,草稿模型从草稿树的最新层输入最有希望的节点以形成下一层。来自草案模型的置信度分数可以用于接受率,从而可以有效地预测和验证Token。在重新排名阶段,会选择接受概率较高的Token作为目标LLM的输入。

这种两阶段方法确保草稿树适应上下文,显著提高Token被目标大模型接受的概率。同时消除了多次Forward的推理,在不影响生成文本质量的情况下加快了推理过程。

下图为EAGLE-2这种技术在多个模型推理上面的提升倍数。

这一期帮助读者解锁了大模型的打草稿技术,其实就是通过利用小模型快速并行的吐出草稿以便加速完整的推理过程。其实也好理解,比如在现实生活中的文学创作,也是先陆续生成草稿,然后再最后精校,包括这篇文章,当然中间还有很多细节值得深究。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/35893.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通义灵码上线 Visual Studio 插件市场啦!

通义灵码&#xff0c;是阿里云出品的一款基于通义大模型的智能编码辅助工具&#xff0c;提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码优化、注释生成、代码解释、研发智能问答、异常报错排查等能力&#xff0c;提供代码智能生成、研发智能问答能力。 通义灵…

flutter开发实战-ListWheelScrollView与自定义TimePicker时间选择器

flutter开发实战-ListWheelScrollView与自定义TimePicker 最近在使用时间选择器的时候&#xff0c;需要自定义一个TimePicker效果&#xff0c;当然这里就使用了ListWheelScrollView。ListWheelScrollView与ListView类似&#xff0c;但ListWheelScrollView渲染效果类似滚筒效果…

Frobenius 范数

Frobenius范数是一种用于衡量矩阵大小的标准方法。具体来说&#xff0c;Frobenius范数 ∥ M ∥ F \|\mathbf{M}\|_F ∥M∥F​是通过矩阵 M \mathbf{M} M中所有元素的平方和再开方得到的。它的计算公式为&#xff1a; ∥ M ∥ F ∑ i , j ∣ M i j ∣ 2 \|\mathbf{M}\|_F \sqr…

【vue3】【vant】 移动端中国传统文化和民间传说案例

更多项目点击&#x1f446;&#x1f446;&#x1f446;完整项目成品专栏 【vue3】【vant】 移动端中国传统文化和民间传说案例 获取源码方式项目说明&#xff1a;其中功能包括项目包含&#xff1a;项目运行环境运行截图和视频 获取源码方式 加Q群&#xff1a;632562109项目说…

origin合集汇总

文章目录 安装折线图相关教程学习笔记 安装 https://blog.csdn.net/qq_41517071/article/details/127600352 我b站也有安装教程&#xff0c;搜origin 即可 折线图 参考B站 相关教程 参考 公众号 学习笔记

Vip-智能预估+大数据标签+人群全选=用户分群!

Mobpush用户分群功能升级&#xff0c;创建推送入口vip用户可进入自有选择标签创建“用户分群”&#xff0c;相比于免费标签&#xff0c;“用户标签”维度更丰富。在应用基础属性上&#xff0c;增加“品牌”、“网络状态”、“运营商”&#xff0c;众所周知&#xff0c;不同厂商…

MJ可以SD就不行么?Stable Diffusion 轻松复刻12生肖水果拼盘,我被AI水果拼盘惊艳到了!

有人用MJ可以轻松生成AI水果拼盘&#xff0c;今天老徐就带大家试试用Stable Diffusion**如何轻松复刻实现。 提示词模版&#xff1a; fruit shapes for chinese new year a wonderful example of edible art, in the style of hyperrealistic wildlife portraits, 1 piece ma…

为什么ISO 45001职业健康安全管理体系是企业发展的基石

ISO 45001源自OHSAS 18001职业健康和安全管理体系&#xff0c;是全球第一个国际职业健康和安全管理标准。ISO&#xff08;国际标准化组织&#xff09;于2018年发布了这一标准&#xff0c;旨在帮助各类组织为员工提供一个更安全、更健康的工作环境。与OHSAS 18001相比&#xff0…

2024年跨境电商关键数据统计:市场规模将达到1.976万亿美元

预计2024年跨境电商消费市场规模将达到1.976万亿美元&#xff0c;占全球网上销售总额的31.2%。这一数据无疑展示了跨境电商市场的巨大潜力和迅猛增长趋势。 全球跨境电商的现状与未来 现状 2023年&#xff0c;全球跨境电商市场规模预计达到1.56万亿美元&#xff0c;占全球电子…

spring之HelloWord版

目录 基础结构说明 涉及到的功能 执行流程 spring包 引导类 bean定义 注解 回调接口拓展 测试入口 service包 回调接口拓展实现 实体类 自定义注解 基础结构说明 spring子包内&#xff0c;放置spring源码相关类&#xff0c;如注解定义&#xff0c;引导类执行逻辑等…

【网络安全学习】漏洞利用:BurpSuite的使用-02-常用的标签

下面介绍一下BurpSuite各个标签的用法&#x1f447; 1️⃣ Dashboard标签 Dashboard&#xff0c;顾名思义就是BurpSuite的仪表盘&#xff0c;可以通过Dashboard进行漏洞扫描&#xff0c;不过该功能需要升级到pro版本&#xff0c;也就是得交钱&#x1f62d;。 2️⃣ Target标签…

借助AI写代码,使用通义灵码智能编写Java和Vue3项目,在Idea和vscode里用AI写代码

在人工智能技术越来越成熟的当下&#xff0c;好多人说AI会取代程序员&#xff0c;这句话石头哥不知可否。但是有一点可以肯定&#xff0c;会熟练使用Ai&#xff0c;驾驭Ai的程序员肯定不会被时代所淘汰。所以今天石头哥就来教大家如何借助Ai来提升自己的代码编写效率。 一&…

用ChatMoney写歌,一分钟一首,音乐人将被AI取代?

本文由 ChatMoney团队出品 随着科技的不断进步&#xff0c;音乐是人类文明的一部分&#xff0c;它在社会、文化、艺术和娱乐领域发挥着重要作用。随着AI技术的发展&#xff0c;AI技术的应用正在以惊人的速度改变音乐创作、演奏、传播和消费的方式&#xff0c;有人欢呼&#xff…

根文件系统

根文件系统 1 介绍1.1 根文件系统介绍1.2 根文件系统目录1.3 常见的根文件系统 2 Buildroot 根文件系统的构建2.1 介绍2.2 依赖文件2.3 交叉编译工具2.4 构建2.4.1 配置 Target options2.4.2 配置 Toolchain2.4.3 配置 System configuration2.4.4 配置 Filesystem images2.4.5 …

代码随想录算法训练营DAY51|115.不同的子序列、583. 两个字符串的删除操作、72. 编辑距离

115.不同的子序列 题目链接&#xff1a;115.不同的子序列 class Solution(object):def numDistinct(self, s, t):""":type s: str:type t: str:rtype: int"""dp [[0]*(len(t)1) for _ in range(len(s)1)]for i in range(len(s)):dp[i][0]1for…

超详细的Stable Diffusion WebUI 安装!

前言 安装方式&#xff1a; 使用发行包在带有 NVidia-GPU 的 Windows 10/11 上安装 sd.webui.zip从v1.0.0-pre下载并解压其内容。 跑步update.bat。 跑步run.bat。 Windows 上自动安装 安装Python 3.10.6&#xff08;较新版本的Python不支持torch&#xff09;&#xff0…

2024-06-23力扣每日一题

链接&#xff1a; 520. 检测大写字母 题意 这也用看&#xff1f; 解&#xff1a; 这也用看&#xff1f; 实际代码&#xff1a; #include<bits/stdc.h> using namespace std; bool detectCapitalUse(string word) {int xx0,dx0,lgword.length();for(int i0;i<lg…

go 学习 之 HTTP微服务示例

1. 背景 学习ing 2. 创建文件&#xff1a;server.go go package mainimport ("github.com/gogf/gf/contrib/registry/file/v2""github.com/gogf/gf/v2/frame/g""github.com/gogf/gf/v2/net/ghttp""github.com/gogf/gf/v2/net/gsvc"&…

day54--面试专题(基础篇)

基础篇 基础篇要点:算法、数据结构、基础设计模式 1. 二分查找 要求 能够用自己语言描述二分查找算法能够手写二分查找代码能够解答一些变化后的考法算法描述 前提:有已排序数组 A(假设已经做好) 定义左边界 L、右边界 R,确定搜索范围,循环执行二分查找(3、4两步) 获取…

微信小程序监听手机系统自带的左右滑动返回事件

微信小程序返回的时候想直接返回首页&#xff0c;但是左滑是上一页&#xff0c;和navigateBack一样&#xff0c;所以就监听了一下&#xff0c;后来一想在页面卸载的时候也可以&#xff0c;还可以使用getCurrentPages&#xff08;&#xff09;方法&#xff0c;拿到是一个数组&am…