LLM Inference Unveiled

题目:LLM Inference Unveiled: Survey and Roofline Model Insights

链接:https://arxiv.org/abs/2402.16363

这也是一篇推理加速的综述,重点关注一下它的组织结构吧,也就是它对推理加速方法的分类

论文给的全文结构图,有点丑:

它把推理加速分成4个level:参数级别、算法级别、系统级别和硬件级别,与我之前分类有很多相同之处。我之前对推理加速的分类是:

将推理加速的方式按照自底向上归为:

  • 优化底层运算(优化算子、优化计算图)

  • 优化内存(虚拟内存、调度器、压缩KV cache,这方面借鉴了很多OS知识)

  • 优化Transformer(优化attention、优化MoE、投机解码、改换架构)

  • 优化输入输出模式(压缩输入、组织输出)

简要看一下这4个level都具体对应什么方法:

  • 参数级别-模型压缩:也就是量化、蒸馏、剪枝这类减小参数占用内存的方法

  • 算法级别-加快decoding的算法:它将相关算法分成两种,即生成单个token尽可能少地使用参数和每次前向传播解码更多数量的token,其中包含比较关注的speculative decoding

  • 系统级别-系统优化:包括内存管理、算子融合等,很多推理框架做的就是这些

  • 硬件级别-硬件优化

关注一下算法级别-加快decoding的算法,第一部分减少生成单个token使用的参数量。

early-exit:在decode过程中,有时候不一定非要经过每一个transformer层,对于某些令牌,隐藏状态在中间的一些层会饱和。也就是,对于某些令牌,在中间层早期退出会输出正确的top-1预测,就像完整模型运行一样。这样减少推理的层数,从而减少推理时间。这种方法在嵌入式设备上(模型参数小,batch size=1)的情况下应该会效果更明显

利用稀疏性:训练一个稀疏性的预测器,如果某些列是稀疏的,就直接在计算中舍弃他们。这种思路有点类似于直接把FFN改成Moe(MoEfication论文),但是实测下来效果应该不太好

MoE:将专家网络插入到transformer架构中以替代FFN层。此外,在多头注意力和专家网络之间引入了一个门控函数,旨在为给定的输入令牌选择最合适的专家或专家组合。个人觉得如果想做出效果,需要较大规模的训练,而且难训。

第二部分,每次前向传播解码更多数量的token。

投机解码,里面有一篇文章是适用于边缘设备的,并且用了tree attention:Llmcad: Fast and scalable on-device large language model inference

并行解码,其实大部分分类方式中,并行解码属于投机解码。

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

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

相关文章

Cesium的ClearCommand的流程

ClearCommand是在每帧渲染前可以将显存的一些状态置为初始值,就如同把擦黑板。当然也包括在绘制过程中擦掉部分的数据,就如同画家在开始绘制的时候会画导览线(如透视线),轮廓出来后这些导览线就会被擦除。 我画了一个…

【系统架构设计师】真题论文: 论企业应用系统的分层架构风格 (包括解题思路和素材)

更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 真题题目(2013年 试题1)解题思路论文素材参考常见分层架构模式分层架构风格的优势分层架构风格在企业应用系统中的应用案例真题题目(2013年 试题1) 软件架构风格是描述一类特定应用领域中系统组织方式的惯用模…

【Linux】重定向,dup

目录 文件描述符分配规则 重定向 dup ​编辑 输出重定向 追加重定向 输入重定向。 重定向会影响后面的程序替换吗? 1号文件和2号文件 2号文件输出重定向 下标之间的重定向 文件描述符分配规则 重定向 把显示器文件关闭后,本来应该写给显示器…

大语言模型---梯度的简单介绍;梯度的定义;梯度计算的方法

1. 梯度介绍 如果我们在一座山上(一个山的坡度有很多,陡峭的,平缓的),想要从山顶下山。而梯度就像告诉我们如何沿着最陡的下坡路线走,以尽快到达山脚(最低点)。 2. 梯度的定义 梯度…

【JAVA】一次操蛋的nginx镜像之旅

一、前言 由于我们的项目中使用到了nginx,同时我们的nginx是通过docker镜像进行安装的,由于nginx出现了问题,需要重新安装。于是。。。 二、通过docker进行安装 docker pull nginx:latest 1.5.2 脚本文件 在/home/docker/script路径下创…

ubuntu24挂载硬盘记录

1、显示硬盘及所属分区情况。在终端窗口中输入如下命令: sudo fdisk -l 找到自己硬盘的分区 我的地址/dev/sda 2、显示硬盘及所属分区情况。在终端窗口中输入如下命令,格式化自己硬盘: sudo mkfs -t ext4 /dev/sda 3、在终端窗口中输入如下…

力扣第 60 题 “第 k 个排列”

题目描述 给定整数 n 和 k,返回由 1 到 n 组成的排列中第 k 个排列。 所有排列按字典序排列。1 ≤ n ≤ 9,1 ≤ k ≤ n!。 解题思路 要快速找到第 k 个排列,可以利用数学方法而不是生成所有排列: 1. 知识点:阶乘与…

springcloud读取nacos配置中心的json文件

由于业务需要,将一些json数据存放到了nacos配置中心上 ①服务启动读取nacos进行数据初始化 Slf4j Component Data public class NacosJsonInitializeRunner implements ApplicationRunner{//以下属性都是nacos相关的Value("${nacos.config.server-addr}&quo…

大模型呼入机器人系统如何建设?

大模型呼入机器人系统如何建设? 作者:开源呼叫中心系统 FreeIPCC, Github地址:https://github.com/lihaiya/freeipcc 大模型呼叫中心呼入机器人系统的建设是一个涉及多个环节和领域的综合性工程。以下是一个详细的步骤指南,涵盖了…

理解设计模式与 UML 类图:构建稳健软件架构的基石

在软件开发的广阔天地里,设计模式与 UML(统一建模语言)类图犹如两座灯塔,为开发者照亮前行的道路,指引着我们构建出高质量、可维护且易于扩展的软件系统。今天,就让我们一同深入探索单一职责、开闭原则、简…

深度学习中的正则化技术

在深度学习中,正则化是一种防止模型过拟合的重要手段。过拟合是指模型在训练数据上表现良好,但在未见数据上表现不佳的现象。正则化通过引入额外的约束或信息来限制模型的复杂性,从而提高模型的泛化能力。本文将介绍几种常见的正则化技术&…

业务架构、数据架构、应用架构和技术架构

TOGAF(The Open Group Architecture Framework)是一个广泛应用的企业架构框架,旨在帮助组织高效地进行架构设计和管理。 TOGAF 的核心就是由我们熟知的四大架构领域组成:业务架构、数据架构、应用架构和技术架构。 企业数字化架构设计中的最常见要素是4A 架构。 4…

实际项目Java1.8流处理, Optional常见用法

流处理 相信大家肯定遇到过列表需要按某个字符进行排序, 这时我们用流处理就可以很优雅的实现该功能了 convert.setItems(convert.getItems().stream().sorted(Comparator.comparing(item -> StringUtils.defaultIfBlank(item.getWarehouseName(), ""…

苹果Siri将搭载大型语言模型,近屿智能抢占AIGC大模型人才培养高地

据媒体报道,苹果公司正在研发一款全新升级、更加智能且对话能力显著提升的Siri,意在超越OpenAI的ChatGPT及其他语音服务。 报道指出,新一代Siri将搭载更为先进的大型语言模型(LLM),苹果期望其能够进行连续…

【1.4 Getting Started--->Support Matrix】

主页:支持矩阵 这些支持矩阵概述了 TensorRT API、解析器和层支持的平台、特性和硬件功能。 Support Matrix Abstract 这些支持矩阵概述了 TensorRT API、解析器和层所支持的平台、功能和硬件功能。 有关之前发布的 TensorRT 文档,请参阅 TensorRT 档…

WPF中如何让Textbox显示为一条直线

由于Textbox直接使用是一条直线 设置如下代码 可以让Textbox变为直线输入 <Style TargetType"TextBox"x:Key"UsernameTextBoxStyle"><Setter Property"Template"><Setter.Value><ControlTemplate TargetType"{x:Typ…

Mac 修改默认jdk版本

当前会话生效 这里演示将 Java 17 版本降低到 Java 8 查看已安装的 Java 版本&#xff1a; 在终端&#xff08;Terminal&#xff09;中运行以下命令&#xff0c;查看已安装的 Java 版本列表 /usr/libexec/java_home -V设置默认 Java 版本&#xff1a; 找到 Java 8 的安装路…

n、nvm、nrm、pnpm、yarn各种指令大全

n mac的版本管理工具&#xff08;可能与nvm冲突&#xff09; 安装 # 使用 npm / yarn npm i -g n yarn global add n # 使用 brew brew install n环境变量 export PATH"/usr/local/n/versions/node:$PATH"命令详解 版本查看 # 查看 n 版本 n --version/-V # 查…

K8S + Jenkins 做CICD

前言 这里会做整体CICD的思路和流程的介绍&#xff0c;会给出核心的Jenkins pipeline脚本&#xff0c;最后会演示一下 实验/实操 结果 由于整体内容较多&#xff0c;所以不打算在这里做每一步的详细演示 - 本文仅作自己的实操记录和日后回顾用 要看保姆式教学的可以划走了&…

使用 前端技术 创建 QR 码生成器 API1

前言 QR码&#xff08;Quick Response Code&#xff09;是一种二维码&#xff0c;于1994年开发。它能快速存储和识别数据&#xff0c;包含黑白方块图案&#xff0c;常用于扫描获取信息。QR码具有高容错性和快速读取的优点&#xff0c;广泛应用于广告、支付、物流等领域。通过扫…