Inf-MLLM:单个 4090D 实现 4M Token 长序列问答

一、背景

本文中我们简单介绍一个新的解决长序列推理效率的新方案 Inf-MLLM,也是基于 Token 稀疏化。有关 Token 稀疏化的方案通常可以从如下几个方面了解:

  • 怎么识别关键 Token,包括静态识别或动态识别,比如 Streaming LLM 里 Attention Sink 和 Local Token。

  • Token 的稀疏度为多少,Token 太多会影响推理效率、占用过多内存,Token 太少又可能影响质量。

  • 在哪个阶段执行 KV Cache 驱逐和更新,比如很多方案只在 Prefill 阶段执行稀疏化计算,这种方式比较适合超长输入,输出很短的场景。

  • 计算时怎么使用这些 Token,这通常会涉及更高效的推理。

二、摘要

多模态大语言模型(MLLM)以其综合的多模态能力著称,并且有非常广泛的应用场景。然而,多模态往往意味着会产生较长的上下文,这给推理带来极大的挑战。长上下文推理需要缓存之前 Token 的 Key、Value Cache(KV Cache),这会导致过多的内存消耗以及延迟的增加。这也在很大程度上限制了 MLLM 在实际应用中的发展。

本文中,作者提出 Inf-MLLM,这是一种适用于 MLLM 的高效推理框架,可在单个 GPU 上实现无限上下文长度的 MLLM 流式推理。Inf-MLLM 主要基于作者对 LLM 和 MLLM 中 “Attention Saddle” 的观察,基于这种观察,Inf-MLLM 通过动态缓存最近的 Token 和相关 Token 来维护有限的 KV Cache。此外,Inf-MLLM 提出了注意力偏差,这是一种使 MLLM 能够捕获长期依赖的新方法。

作者实验表明,基于 Inf-MLLM,多个 LLM 和 MLLM 都能够在单个 GPU 上执行 4M Token 或 1 小时长视频的多轮对话。此外,Inf-MLLM 表现出比 StreamingLLM、H2O 等现有方法更好的 Stream 推理质量,并且可以加速 2x。

PS:相关文章我们已经介绍很多,对应的背景信息也多次提到,比如长序列时 :Attention 计算和序列的二次方关系;存储 KV Cache 的巨大挑战;长程记忆能力;Memory Bound 问题。以及各种常见的 Token 稀疏化手段等。这里不再展开。

三、方法

3.1 洞察

作者通过可视化观察 MLLM 不同层的 Attention Map,发现了一些有利于 KV Cache 选择和驱逐的特性。如下图 Figure 2 所示,可以发现:

  • 模式 1:最近的 Token 有更高的 Attention Score。对角线部分,这个应该也是共识。

  • 模式 2:Video 对应的 Token 通常有比较高的 Attention Score,Video 中的初始 Token 甚至占据了 Attention Score 的 40%。(PS:但是下文的方案中似乎也没有特殊处理)

  • 模式 3:有些垂直线对应的 Token 拥有很大的 Attention Score,这中现象也与 StreamingLLM 的起始几个 Token 类似。不过本文中作者发现 MLLM 中这些 Token 可能是动态的,不一定在起始位置。

  • 模式 4:随着多轮对话的进行,高 Attention Score 会向前偏移。

作者将上述与当前 Decoding Token 最相关的这些 Token 称作 Attention Saddle,借鉴了数学中的 Saddle Point。为了识别和存储这些关键 Token,作者提出两种技术手段:

  • 设计了一种 KV Cache 驱逐机制,来驱逐不相关的 Token,用于维护上述 Pattern 1/2/3 中提到的 Token。

  • 提出了 Attention 偏置来动态的更新和捕获偏移特性,以增强长程记忆能力,对应 Pattern 4。

3.2 KV Cache 驱逐和更新

如下图 Figure 3 所示,在 Streaming 推理场景,当一个新的 Prompt 到来时(PS:也就是只在多轮对话的每个 Prefill 阶段执行,不在单个 Token 的 Decoding Step 执行):

  • 计算 Prompt 对应的 Q、K 和 V 并存储在一个长度为 L 的检索窗口内。

  • 使用窗口内的 Q 计算与历史(之前轮,假设共 t 个 Token)K Cache 的 Attention Score,对应中间灰色部分。

  • 计算窗口内部 Q 与之前 K 的 Attention Score,对应中间蓝色部分。

  • 最终得到一个 L * n 的分数矩阵。

  • 按照 L 维度对 Attention Score 进行平均,相当于 L 中每个 Token 与窗口中每个 Token 的 Attention Score 的平均,得到一个 L 维的 Attention Score 向量。这样主要是为了提升计算效率。

  • 从 L 个 Attention Score 中挑选出 Top t 个,并从 KV Cache 中驱逐其他不重要的 Token。

需要说明的是:上述过程中的 t 个 KV Cache 已经是稀疏化之后的,因此相比原始完整 Token 序列要短的多,因此相应的代价也就不是特别高。

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈

3.3 Attention 偏置

为了进一步增强 KV Cache 驱逐能力,尤其是在长上下文和多轮对话中,需要解决一些问题。首先,由于 Softmax 的存在,随着序列长度增加,Attention Score(权重) 的总和始终为 1,也就是每个 Token 的权重会逐渐降低,高分 Token 的识别难度变大。其次,经过几轮 KV Cache 驱逐之后,剩余 Token 之间的 Attention Score 分布变得不均匀,一些 Token 的 Attention Score 会因为多轮积累而得到提升。如下图 Figure 4 所示,这种现象会阻碍识别与当前对话轮次更相关的 Attention Saddle,导致不恰当的 KV Cache 驱逐,甚至在长上下文中经过几轮推理后 KV Cache 不再更新而导致性能大幅下降的情况。

为了在 Streaming 推理中持续更新 KV Cache,作者提出 Attention Bias,将注意力焦点转移到最新的上下文中。如下图 Figure 4 所示,Attention Bias 可以调整 Attention Score 的分布,并使得多轮视频对话可以持续进行。具体来说,在计算检索窗口中的平均 Attention Score 后,向其中添加 Attention Bias 以促使 KV Cache 丢弃更久以前的 Token。当 Attention Bias 较高时,KV Cache 倾向于保留更多新 Token;当 Attention Bias 较低时,KV Cache 倾向于保留更早之前的 Token,以捕获更长期的依赖关系。因此,适当调整 Attention Bias 可以在确保长上下文 Streaming 推理的同时保留长期依赖关系。

PS:论文中作者似乎没有介绍怎么更好的调整 Attention Bias,同样的 Attention Bias 是否可以泛化到不同的场景?

3.4 Inf-MLLM 算法

如下图 Algorithm 1 所示为上述的 Inf-MLLM 算法,其主要就是上述两种方法的融合:

四、结果

4.1 超长序列长度的困惑度

如下图 Figure 5 所示,作者与 StreamingLLM、H2O 和 Window Attention 等方案进行了对比,在长文本下困惑度优于 StreamingLLM 和 H2O。(PS:这两种方案都比较早了,如果能对比一些更新的方案应该更加有说服力)

4.2 长程记忆能力

如下图 Table 2 所示,作者同样在 LongEval-LineRetrieval 数据集上评估了与 StreamingLLM 的性能,可以看出本文方案优于 StreamingLLM。(PS:同上)

4.3 多轮视频问答能力

如下图 Table 1 所示,作者同样对比了本文方案应用于多轮视频问答的优势,可以看出,其可以支持更长的轮数,精度也更高:

4.4 效率评估

如下图 Figure 7 所示,作者同样与 H2O、StreamingLLM 对比了不同 KV Cache 大小下的效率问题,本文方案可以获得 2x 加速:

如何学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

那么针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈

学习路线

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

从观《中国数据库前世今生》纪录片谈起:云数据库的未来发展与挑战

从观《中国数据库前世今生》纪录片谈起:云数据库的未来发展与挑战 前言 作为一名资深程序员,我在职业生涯中始终密切关注数据库技术的发展动态。近日,我观看了《中国数据库前世今生》这部纪录片,深受触动。这部纪录片不仅记录了…

Ubuntu 安装和使用 Fcitx 中文输入法;截图软件flameshot

一、Ubuntu 安装和使用 Fcitx 中文输入法 在 Ubuntu 上安装和使用 Fcitx 输入法框架是一个常见的选择,特别是对于需要中文输入的用户。以下是详细的步骤来安装和配置 Fcitx 输入法: 1. 安装 Fcitx 和相关输入法 首先,更新你的包列表并安装…

经济下行,这个AI美女短视频带货副业赛道,为什么不来试一试?

经济下行,普通人应该尽早认清一个事实,没有一技之长,没有核心竞争力,即便是打工皇帝,年入百万也只是浮云。 一定要保证主业的稳定,再探索新的机会,要多从”1-10",而不是反复”…

昇思量子计算系列教程-Grover搜索算法

基于MindSpore Quantum的Grover搜索算法 概述 如果你听过量子计算,那么你一定听说过Grover搜索算法。1996年,Lov Grover [1] 提出了Grover搜索算法,它是一种利用量子状态的叠加性进行并行计算并实现加速的算法。Grover搜索算法被公认为是继…

《让手机秒变超级电脑!ToDesk云电脑、易腾云、青椒云移动端评测》

前言 科技发展到如今2024年,可以说每一年都在发生翻天覆地的变化。而云上这个词时常都被大家提起,从个人设备连接到云端在如今在也不是梦了。而云电脑这个市场近年来迅速发展,无需购买和维护额外的硬件就可以体验到电脑端顶配的性能和体验&am…

ESP32本地大模型对话机器人制作教程

整体架构 在本地电脑部署好Ollama服务,安装qwen大模型和llama3.1大模型。 ESP32接入局域网,用户通过串口给esp32发送问题,esp32打包json后向ollama服务发送请求,ollama返回响应,esp32解析结果并通过串口打印出来。 …

详解ChatBI Agent架构:打造高效数据统计系统

随着人工智能技术的迅猛发展,智能对话系统在各行各业中的应用越来越广泛。本文将介绍一种名为ChatBI Agent的架构设计,并以电信运营商系统的经分数据统计Agent为案例,结合具体的代码实现,帮助读者了解这一系统的设计理念和实现方式…

2024年开放式蓝牙耳机十大排名震撼揭晓!哪款开放式耳机是音质王者?

​耳机市场上,有线入耳式、无线蓝牙入耳式和开放式耳机三足鼎立,各展风采。有线入耳式耳机虽然连接稳定,但线缆易缠绕,佩戴不够稳固;无线入耳式耳机虽然剪断了线的束缚,但长时间使用可能会引起耳朵不适。相…

FFmpeg开发笔记(五十六)使用Media3的Exoplayer播放网络视频

Android早期的MediaPlayer控件对于网络视频的兼容性很差,所以后来单独推出了Exoplayer库增强支持网络视频,在《Android Studio开发实战:从零基础到App上线(第3版)》一书第14章的“14.3.3 新型播放器ExoPlayer”就详细介绍了Exoplayer库的详细…

信息安全工程师(10)网络信息安全法律与政策文件

前言 网络信息安全法律与政策文件是保障网络安全、维护网络空间秩序、保护公民和组织合法权益的重要基石。 一、主要法律文件 《中华人民共和国网络安全法》 发布时间:2016年11月7日,由第十二届全国人民代表大会常务委员会第二十四次会议通过。主要内容&…

打工人必看!AI 编程助手让你轻松应对任务!

在当今科技飞速发展的时代,我们作为开发者面临着前所未有的挑战。技术栈频繁迭代,项目周期逐渐缩短,但对代码质量和的要求却不断提升这样的环境下,如何有效提升编程效率成为了一个永恒的议题。 最近,我找到了一位强大…

华为地图服务 - 如何在地图上绘制圆? -- HarmonyOS自学17

场景介绍 本章节将向您介绍如何在地图上绘制圆形。 接口说明 添加圆形功能主要由MapCircleOptions、addCircle和MapCircle提供,更多接口及使用方法请参见接口文档。 接口名 描述 MapCircleOptions 用于描述MapCircle属性。 addCircle(options: mapCommon.MapC…

Linux文件IO(三)-Linux系统如何管理文件

1.静态文件与 inode 文件在没有被打开的情况下一般都是存放在磁盘中的,譬如电脑硬盘、移动硬盘、U 盘等外部存储设备,文件存放在磁盘文件系统中,并且以一种固定的形式进行存放,我们把他们称为静态文件。 文件储存在硬盘上&#…

《DevOps实践指南》笔记-Part 1

前言 Infrastructure as Code:基础设施即代码,IaC。 Kanban:看板管理,丰田生产模式中的重要概念,指为了达到及时生产方式控制现场生产流程的工具。及时生产方式中的拉式生产系统可以使信息的流程缩短,并配…

unix中的进程标识以及使用场景

一、前言 本文将介绍unix系统中的进程标识以及使用场景。进程标识和用户标识类似,只不过其指代的对象是一个进程。我们常把进程标识称为进程ID,本文将讨论如下内容: 1.什么是进程标识? 2.特殊的进程标识 3.如果获取以及使用进程标…

神经网络推理加速入门——一个例子看懂流水

之前的两篇文章介绍了流水这一技术,它用来进行程序的性能加速,本篇通过一个生活中的小例子,让大家更直观的了解什么是流水。 举个例子 早晨从起床到上班出门,我们一般会做以下几件事:刷牙、烧水、喝水、出门。 如果…

全球爆发勒索病毒“永恒之蓝” 解决方案在此

英国、意大利、俄罗斯等全球多个国家爆发勒索病毒攻击,中国大批高校也出现感染情况,众多师生的电脑文件被病毒加密,只有支付赎金才能恢复。据360安全卫士紧急公告,不法分子使用NSA泄漏的黑客武器攻击Windows漏洞,把ONI…

新品亮相|美格智能SLM530/SLM530P智能模组,助力金融新零售智慧升级

随着金融支付产业数字化与智能化不断推进,泛支付场景一体化解决方案成为行业发展的新趋势,从手持POS机到智能收款机,金融支付领域需要更快速、更精准、更安全的解决方案,加快推进数字化升级进程。 近期,美格智能正式发…

JavaWeb - 5 - 前端工程化

一.前后端分离开发 前后端混合开发 缺点:沟通成本高,分工不明确,不便管理,不便维护拓展 前后端分离开发 当前最为主流的开发模式:前后端分离 前后端分离开发中很重要的是API接口文档(如:YApi&…

1--SpringBoot外卖项目介绍及环境搭建 详解

目录 软件开发整体流程 软件开发流程 角色分工 软件环境 苍穹外卖项目介绍 项目介绍 产品原型 技术选型 开发环境搭建 前端环境搭建 后端环境搭建 完善登录功能 导入接口文档 Swagger 介绍 使用方式 常用注解 软件开发整体流程 软件开发流程 需求分析&#x…