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

Llmcad: Fast and scalable on-device large language model inference

题目:Llmcad: Fast and scalable on-device large language model inference 发表于2023.09

链接:https://arxiv.org/pdf/2309.04255

声称是第一篇speculative decoding+边缘设备的论文(不一定是绝对的第一篇),不开源,没有github地址

动机

生成性任务,在移动应用领域占据重要的地位。由于对隐私问题的敏感性,越来越多的需求是直接在移动设备上执行这些任务。目前,这些生成性任务的执行严重依赖于LLM。然而,这些设备内存容量十分有限。
在本研究中,引入了LLMCad,这是一个专为高效生成性NLP任务设计的设备端推理引擎

注意,它的目标模型也是在移动设备上的,只不过不放在内存中,只在验证时期从存储中加载到内存;小LLM是常驻内存的。

核心思想

LLMCad的核心思想围绕模型协作:一个紧凑的LLM驻留在内存中,负责生成最简单的令牌,而一个高精度的LLM则介入以验证这些令牌并纠正识别出的错误。LLMCad融合了三种新技术:

  • LLMCad不是以顺序方式生成候选令牌,而是使用较小的LLM构建一个token树。随后,较大的LLM可以同时验证所有这些路径。

  • 它采用自适应回退策略,每当较小的LLM生成错误令牌时,迅速启动验证过程。

  • 为了确保token生成的连续流动,LLMCad在验证过程中通过实施计算-IO管道来推测性地生成令牌。

论文基于以下观察:虽然较小的LLM不足以生成令人满意的端到端句子,但它们通常能够正确生成大多数简单的标记(例如,限定词、代词和标点符号)。目标LLM验证N个令牌可以在目标模型的一次推断中完成,因此比顺序生成N个令牌要快得多。

 策略

论文指出遇到的挑战以及解决策略:

  • 小LLM可能产生的一些次优token,实际上它认为的次优token是目标LLM的最优输出。这就需要在验证的过程中,也考虑到那些次优token,即使用tree attention

  • 需要确定何时启动验证过程,设备上的验证是耗时的,例如Jetson TX2上需要7.1秒。过早验证会导致检测不到错误,过晚验证会生成无用token,浪费了移动设备计算资源。先前的工作通常依赖于单个标记或标记序列长度,这可能无法准确地定位最佳验证时机。本文中token tree中比较累积不确定性、基于历史数据评估是否需要进行验证。

  • 目标LLM的验证会阻塞小LLM的推理。所以在验证过程中,继续让小LLM执行推理。同时为了保证小模型推理不影响验证,继续推理只在不影响大LLM内存占用的情况下运行。

下图是整个流程图:

设计

论文的一些设计细节:

  • 在小LLM生成token树的过程中,任何置信度高于阈值的token都会被生成一个分支(例如0.3)

  • 树累计置信度(tree cumulative-confidence),列的公式和字符看起来挺吓唬人,实际上就是同一个序列的每个token的置信度累乘

  • 关于如何并行地验证树,论文也是给了较长的介绍,但实际上应该是用了其他论文中出现的tree attention机制。详情可以看第一个提出tree attention机制的specInfer论文,在我的博客里也有这篇文章的解读。

相关文章:

Llmcad: Fast and scalable on-device large language model inference

题目:Llmcad: Fast and scalable on-device large language model inference 发表于2023.09 链接:https://arxiv.org/pdf/2309.04255 声称是第一篇speculative decoding边缘设备的论文(不一定是绝对的第一篇),不开源…...

Hbase2.2.7集群部署

环境说明 准备三台服务器,分别为:bigdata141(作为Hbase主节点)、bigdata142、bigdata143确保hadoop和zookeeper集群都先启动好我这边的hadoop版本为3.2.0,zookeeper版本为3.5.8 下载安装包 下载链接:In…...

【青牛科技】D1671 75Ω 带4级低通滤波的单通道视频放大电 路芯片介绍

概 述 : D1671是 一 块 带 4级 低 通 滤 波 的 单 通 道 视 频 放 大 电 路 , 可 在3V或5V的 低 电 压 下 工 作 。 该 电 路 用 在 有 TV影 象 输 出 功 能 的 产 品 上 面,比如 机 顶 盒 ,监 控 摄 象 头 ,DVD&#…...

[NeurIPS 2022] Leveraging Inter-Layer Dependency for Post-Training Quantization

Contents IntroductionMethodExperimentsReferences Introduction 作者提出一种端到端的 PTQ 训练策略 Network-Wise Quantization (NWQ),并通过 Annealing Softmax (ASoftmax) 和 Annealing Mixup (AMixup) 改进了 AdaRound,降低了训练收敛难度 Metho…...

ubuntu+ROS推视频流至网络

目录 概述 工具 ros_rtsp 接受流 web_video_server 源码安装 二进制安装 ros接收rtsp视频流 总结 概述 ros_rtsp功能包可以将ros视频流以rtsp形式推送 web_video_server功能包可以将ros视频话题推HTTP流 rocon_rtsp_camera_relay可以接受同一网段下的rtsp视频流输出为…...

PHP 去掉特殊不可见字符 “\u200e“

描述 最近在排查网站业务时,发现有数据匹配失败的情况 肉眼上完全看不出问题所在 当把字符串 【M24308/23-14F‎】复制出来发现 末尾有个不可见的字符 使用删除键或左右移动时才会发现 最后测试通过 var_dump 打印 发现这个"空字符"占了三个长度 &#xf…...

深度学习—BP算法梯度下降及优化方法Day37

梯度下降 1.公式 w i j n e w w i j o l d − α ∂ E ∂ w i j w_{ij}^{new} w_{ij}^{old} - \alpha \frac{\partial E}{\partial w_{ij}} wijnew​wijold​−α∂wij​∂E​ α为学习率 当α过小时,训练时间过久增加算力成本,α过大则容易造成越过最…...

elasticsearch8.16 docker-compose 多机器集群安装

在网上找了一圈, 发现要么就是单机版的部署了多个节点, 很少有多台机器部署集群的, 有些就拿官网的例子写一写, 没有实战经验, 下面分享一个教程, 实实在在的多台机器, 每台机器部署2个节点的例子 先上.env , docker-compose.yml文件, 这个文件是核心, 里面掺杂太多坑, 已经帮你…...

Flink--API 之 Source 使用解析

目录 一、Flink Data Sources 分类概览 (一)预定义 Source (二)自定义 Source 二、代码实战演示 (一)预定义 Source 示例 基于本地集合 基于本地文件 基于网络套接字(socketTextStream&…...

uniapp在小程序连接webScoket实现余额支付

webScoket文档:uni.connectSocket(OBJECT) | uni-app官网 /plugins/event.js const Dep function() {this.Evens Object.create(null); } class Event {constructor({dep new Dep()} {}) {if (dep.constructor Object && Object.keys(dep).length 0…...

Spring Boot【三】

自动注入 xml中可以在bean元素中通过autowire属性来设置自动注入的方式&#xff1a; <bean id"" class"" autowire"byType|byName|constructor|default" /> byName&#xff1a;按照名称进行注入 byType&#xff1a;按类型进行注入 constr…...

R 因子

R 因子 引言 在金融领域&#xff0c;风险管理和投资策略的优化一直是核心议题。传统的风险度量工具&#xff0c;如波动率、Beta系数等&#xff0c;虽然在一定程度上能够帮助投资者理解市场的波动和资产的相对风险&#xff0c;但它们往往无法全面捕捉到市场动态的复杂性。因此…...

【博主推荐】C# Winform 拼图小游戏源码详解(附源码)

文章目录 前言摘要1.设计来源拼图小游戏讲解1.1 拼图主界面设计1.2 一般难度拼图效果1.3 普通难度拼图效果1.4 困难难度拼图效果1.5 地域难度拼图效果1.6 内置五种拼图效果 2.效果和源码2.1 动态效果2.2 源代码 源码下载结束语 前言 在数字浪潮汹涌澎湃的时代&#xff0c;程序开…...

深入解析 MySQL 启动方式:`systemctl` 与 `mysqld` 的对比与应用

目录 前言1. 使用 systemctl 启动 MySQL1.1 什么是 systemctl1.2 systemctl 启动 MySQL 的方法1.3 应用场景1.4 优缺点优点缺点 2. 使用 mysqld 命令直接启动 MySQL2.1 什么是 mysqld2.2 mysqld 启动 MySQL 的方法2.3 应用场景2.4 优缺点优点缺点 3. 对比分析结语 前言 MySQL …...

【python】windows pip 安装 module 提示 Microsoft Visual C++ 14.0 is required 处理方法

参考链接&#xff1a;https://blog.csdn.net/qzzzxiaosheng/article/details/12511900 1.问题引入 在使用pip 安装一些module经常会出现报错&#xff1a; Microsoft Visual C 14.0 is required. Get it with “Microsoft Visual C Build Tools很明显这是缺少C的编译的相关依…...

python爬虫案例——猫眼电影数据抓取之字体解密,多套字体文件解密方法(20)

文章目录 1、任务目标2、网站分析3、代码编写1、任务目标 目标网站:猫眼电影(https://www.maoyan.com/films?showType=2) 要求:抓取该网站下,所有即将上映电影的预约人数,保证能够获取到实时更新的内容;如下: 2、网站分析 进入目标网站,打开开发者模式,经过分析,我…...

go sync.WaitGroup

1、数据结构 type WaitGroup struct {noCopy noCopystate atomic.Uint64 // high 32 bits are counter, low 32 bits are waiter count.sema uint32 } 计数器&#xff1a;原子变量&#xff0c;高32位用于为协程计数&#xff0c;低32位为等待计数&#xff08;被Wait阻塞等待&a…...

Libevent库-http通信不同请求方式的处理

做项目的时候用到了http通信&#xff0c;同事用libevent库写的&#xff0c;特此记录后端从前端拿到消息后的处理方式 void CHTTPTest::request(const std::any & data) {// data 是从前端拿到的数据void *obj std::any_cast<void *>(data); // std::any是C17新标准…...

关于node全栈项目打包发布linux项目问题总集

1.用pm2部署nest 说明&#xff1a;如果一开始将nest直接打包放到linux服务器上用pm2执行则会报错&#xff0c;这是因为tsconfig.build.tsbuildinfo文件的路径以及相关依赖问题。 报错会为&#xff1a;什么东西找不到.... 所以建议以下为步骤一步一步配置 将整个nest添加压缩包直…...

常见的上、下采样方法

常见的‌上采样方法‌ ‌‌反卷积&#xff08;Deconvolution&#xff09;或‌转置卷积&#xff08;Transpose Convolution&#xff09;‌&#xff1a;通过学习可逆卷积核来进行上采样&#xff0c;增加特征图的尺寸。‌‌插值&#xff08;Interpolation&#xff09;‌&#xff…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

GitHub 趋势日报 (2025年06月06日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...