GemFilter:基于早期层压缩加速长文本LLM推理

GemFilter 是一种用于加速长文本输入的 LLM 推理并降低内存消耗的新型 AI 方法,其利用 LLM 早期层识别关键信息的能力,从而显著压缩输入序列,并在保持性能的同时,实现高达 2.4 倍的加速和 30% 的内存使用减少。

论文介绍

大型语言模型 (LLMs) 已成为众多 AI 系统中不可或缺的一部分,在各种应用中展现出卓越的功能。然而,随着对长上下文输入处理需求的增长,研究人员在优化 LLM 性能方面面临着重大挑战。处理扩展输入序列的能力对于增强 AI agent 的功能和改进检索增强生成技术至关重要。虽然最近的进展已将 LLM 处理输入的能力扩展到高达 1M 个 token,但这需要付出巨大的计算资源和时间成本。主要挑战在于加速 LLM 生成速度并减少长上下文输入的 GPU 内存消耗,这对于最小化响应延迟和提高 LLM API 调用的吞吐量至关重要。尽管 KV 缓存优化等技术改进了迭代生成阶段,但 prompt 计算阶段仍然是一个显著的瓶颈,尤其是随着输入上下文长度的增加。这引发了一个关键问题:研究人员如何在 prompt 计算阶段加速速度并减少内存使用?

之前加速具有长上下文输入的 LLM 生成速度的尝试主要集中在 KV 缓存压缩和驱逐技术上。已经开发了诸如选择性驱逐远程上下文、使用注意力接收器进行流式 LLM 以及动态稀疏索引等方法来优化迭代生成阶段。这些方法旨在减少与 KV 缓存相关的内存消耗和运行时间,特别是对于较长的输入。

一些技术,例如 QuickLLaMA 和 ThinK,对 KV 缓存进行分类和修剪,以仅保留必要的 token 或维度。其他技术,例如 H2O 和 SnapKV,则侧重于保留对累积注意力有显著贡献或根据观察窗口必不可少的 token。虽然这些方法在优化迭代生成阶段已显示出希望,但它们没有解决 prompt 计算阶段的瓶颈。

另一种方法涉及通过修剪上下文中冗余信息来压缩输入序列。但是,此方法需要保留大部分输入 token 以维持 LLM 性能,从而限制了其进行有效压缩的有效性。尽管取得了这些进展,但在 prompt 计算和迭代生成阶段同时减少运行时间和 GPU 内存使用的挑战在很大程度上仍未得到解决。

来自威斯康星大学麦迪逊分校、Salesforce AI Research 和香港大学的研究人员提出了 GemFilter,这是一种对 LLM 如何处理信息的独特见解。这种方法基于以下观察结果:即使在生成答案之前,LLM 也经常在早期层中识别相关 token。GemFilter 利用这些早期层(称为“过滤器层”)来显着压缩长输入序列。

该方法的工作原理是分析来自这些早期层的注意力矩阵,以提取回答查询所需的信息。例如,在 LLaMA 3.1 8B 模型中,第 13 层到第 19 层可以有效地总结所需信息。这使得 GemFilter 可以在仅针对这些过滤器层对长上下文输入执行 prompt 计算,从而将输入 token 从多达 128K 个压缩到仅 100 个。

通过根据这些早期层中的注意力模式选择 token 子集,GemFilter 在处理时间和 GPU 内存使用方面都实现了大幅减少。然后将选定的 token 输入到完整模型中进行推理,然后是标准生成函数。这种方法解决了 prompt 计算阶段的瓶颈,同时保持了与迭代生成阶段中现有方法相当的性能。

图片

GemFilter 的架构旨在通过利用早期层处理来优化 LLM 性能,以实现高效的 token 选择。该方法利用来自早期层(特别是“过滤器层”)的注意力矩阵来识别和压缩相关的输入 token。此过程涉及分析注意力模式,以选择包含任务所需基本信息的一小部分 token。

GemFilter 架构的核心是其两步法:

  • Token 选择:GemFilter 使用来自早期层(例如,LLaMA 3.1 8B 中的第 13 层)的注意力矩阵来压缩输入 token。它从注意力矩阵的最后一行中选择前 k 个索引,有效地将输入大小从潜在的 128K 个 token 减少到大约 100 个 token。
  • 完整模型推理:然后,通过整个 LLM 处理选定的 token 以进行完整推理,然后是标准生成函数。

这种架构使 GemFilter 能够在 prompt 计算阶段实现显着的加速和内存减少,同时保持迭代生成阶段的性能。该方法在算法 1 中进行了阐述,该算法概述了 token 选择和处理的具体步骤。GemFilter 的设计因其简单性、缺乏训练要求以及跨各种 LLM 架构的广泛适用性而引人注目,使其成为提高 LLM 效率的通用解决方案。

GemFilter 的架构围绕两遍方法构建,以优化 LLM 性能。核心算法(在算法 1 中详细介绍)包括以下关键步骤:

  • 初始前向传递:该算法仅在输入序列 T 上运行 m 层 transformer 网络的前 r 层。此步骤生成第 r 层(用作过滤器层)的查询和键矩阵(Q® 和 K®)。
  • Token 选择:GemFilter 使用来自第 r 层的注意力矩阵选择 k 个最相关的 token。这是通过从注意力矩阵的最后一行(表示最后一个查询 token 和所有键 token 之间的交互)中识别 k 个最大值来完成的。
  • 多头注意力处理:对于多头注意力,选择过程会考虑所有注意力头的矩阵的最后一行之和。
  • Token 重新排序:然后对选定的 token 进行排序以保持其原始输入顺序,确保正确的序列结构(例如,将token 保留在开头)。
  • 最终生成:该算法仅使用选定的 k 个 token 运行完整的前向传递和生成函数,从而显着减少了输入上下文长度(例如,从 128K 个 token 减少到 1024 个 token)。

这种方法使 GemFilter 能够通过利用早期层信息进行 token 选择来有效地处理长输入,从而减少 prompt 计算和迭代生成阶段的计算时间和内存使用。

图片

GemFilter 在多个基准测试中均表现出色,展示了其在处理 LLM 长上下文输入方面的有效性。

在 Needle in a Haystack 基准测试中(该测试测试 LLM 从大量文档中检索特定信息的能力),GemFilter 的表现明显优于标准注意力(所有 KV)和 SnapKV 方法。对于输入长度分别为 60K 和 120K 个 token 的 Mistral Nemo 12B Instruct 和 LLaMA 3.1 8B Instruct 模型,均观察到了这种优越的性能。

在 LongBench 多任务基准测试(评估跨各种任务的长上下文理解)中,即使仅使用 1024 个选定的 token,GemFilter 的表现也与标准注意力相当或更好。例如,GemFilter-2048 的性能优于 Mistral Nemo 12B Instruct 模型的标准注意力。GemFilter 还表现出比 H2O 好得多的性能,以及与 SnapKV 相当的性能。

值得注意的是,GemFilter 在有效压缩输入上下文的同时实现了这些结果。当使用 1024 个 token 时,它会将输入 token 减少到平均 8%,而当使用 4096 个 token 时,它会将输入 token 减少到 32%,而精度下降可以忽略不计。这种压缩能力,加上其过滤关键信息和提供可解释摘要的能力,使 GemFilter 成为优化 LLM 在长上下文任务上的性能的强大工具。

图片

图片

GemFilter 在计算效率和资源利用率方面均有显着提高。与 SnapKV 和标准注意力等现有方法相比,GemFilter 实现了 2.4 倍的加速,同时将 GPU 内存使用量分别减少了 30% 和 70%。这种效率提升源于 GemFilter 独特的三阶段处理方法,其中仅在初始阶段处理长输入上下文。后续阶段对压缩输入进行操作,从而节省了大量资源。使用 Mistral Nemo 12B Instruct 和 Phi 3.5 Mini 3.8B Instruct 模型进行的实验进一步证实,与最先进的方法相比,GemFilter 在运行时间和 GPU 内存消耗方面具有优越的性能。

图片

这项研究提出了 GemFilter,这是一种增强 LLM 推理以处理长上下文输入的稳健方法,解决了速度和内存效率方面的关键挑战。通过利用早期 LLM 层识别相关信息的能力,GemFilter 在现有技术的基础上实现了显着改进。该方法的 2.4 倍加速和 30% 的 GPU 内存使用量减少,以及其在 Needle in a Haystack 基准测试中的卓越性能,都突出了其有效性。GemFilter 的简单性、免训练性质以及对各种 LLM 的广泛适用性使其成为一种通用的解决方案。此外,它通过直接 token 检查增强的可解释性为 LLM 内部机制提供了宝贵的见解,有助于 LLM 部署的实际进步和对这些复杂模型的更深入理解。

论文下载

  • 论文地址:https://arxiv.org/abs/2409.17422

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

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

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

相关文章

从代码到语言:CoreGen 助力自动化提交信息生成

1.概述 源代码与自然语言之间的语义鸿沟是生成高质量代码提交信息的一个重大挑战。代码提交信息对于开发者来说非常重要,因为它们简明扼要地描述了代码更改的高层次意图,帮助开发人员无需深入了解具体实现即可掌握软件的演变过程。手动编写高质量的提交信…

融资、投流、造血,大模型「新星」开启变现竞速

被称为“AI大模型应用元年”的2024年已过半,行业变化太快,充斥着各种声音。 原本漫长的技术发展周期,在大模型身上被装上了加速键。从卷参数、到卷应用,短短两年时间,玩家“百模大战”、资本烈火烹油,都在…

模型 SECI(知识的创造)

系列文章 分享 模型,了解更多👉 模型_思维模型目录。知识创造的螺旋转化模型。 1 SECI的应用 1.1 Tech Innovations移动应用创新 Tech Innovations是一家软件开发公司,致力于开发创新的移动应用程序。为了提升团队的知识共享和创新能力&…

论文选题没思路?用这7个GPT提示词10分钟确定论文选题

选题是论文写作的第一步,也是至关重要的一步。毕业论文选题都是让大学生头疼的大事。没有灵感、方向不清、信息太多,常常让人无从下手。现在有了ChatGPT这样的AI写作辅助工具,它可以帮你快速生成丰富的选题思路,轻松解决选题难题。…

fiddler抓包18-2_导出jmeter、postman脚本(带请求头)

课程大纲 1. Fiddler导出请求为curl脚本 选中请求,“文件” - “导出会话” - “选中的会话” - “cURL Script”。 2. 导入jmeter ① 复制curl脚本。 ② 打开jmeter,“工具” - “import from cURL”,粘贴脚本,勾选“Add cooki…

【百度文心智能体】想开发爆款智能体?来看看 万圣节之夜探秘者 智能体开发流程大揭秘

目录 前言 一. 创作灵感 二. 智能体中Prompt如何设计 2.1 头像 && 聊天背景 2.2 智能体简介 && 角色定位与目标 2.3 思考路径 && 个性化 2.4 开场白 && 自动追问 2.5 插件选择 三. 总结 前言 从2022年11月底ChatGPT …

Github优质项目推荐-第四期

文章目录 Github优质项目推荐 - 第四期一、【Umi-OCR】,26.1k stars - 文字识别工具二、【AFFiNE】,41k stars - 知识库平台三、【NocoBase】,12k stars - 无代码/低代码平台四、【neovim】,82.3k stars - 改良版VIM五、【generat…

构建llama.cpp并在linux上使用gpu

使用gpu构建llama.cpp 更多详情参见https://github.com/abetlen/llama-cpp-python,官网网站会随着版本迭代更新。 下载并进入llama.cpp 地址:https://github.com/ggerganov/llama.cpp 可以下载到本地再传到服务器上 git clone https://github.com/gg…

linux安装mysql显示公钥尚未安装 :mysql-community-libs-8.0.39-1.el7.x86_64.rpm 的公钥尚未安装

linux安装mysql显示公钥尚未安装 mysql-community-libs-8.0.39-1.el7.x86_64.rpm 的公钥尚未安装 如题,当执行 yum install -y mysql-community-server 报错 解决办法 命令行执行 yum install -y mysql-community-server --nogpgcheck 也就是在原来的命令后面…

【星汇极客】手把手教学STM32 HAL库+FreeRTOS之创建工程(0)

前言 本人是一名嵌入式学习者,在大学期间也参加了不少的竞赛并获奖,包括但不限于:江苏省电子设计竞赛省一、睿抗机器人国二、中国高校智能机器人国二、嵌入式设计竞赛国三、光电设计竞赛国三、节能减排竞赛国三。 后面会经常写一下博客&…

程序设计语言基础错题解析【软考】

目录 前言1.编译与解释2.编译器工作过程2.1编译过程概述2.2对语句的处理2.3源程序数据类型目的 3.中间代码4.正规式5.错误管理6.后缀表达式7.传值与传址7.1基础7.2实际计算 8.多种程序语言特点 前言 本文专门用来记录本人在做软考中有关程序设计语言基础的错题,我始…

【C/C++】错题记录(四)

题目一 一个函数可以有很多个返回值(有很多个return语句),但是最终只能有一个return语句执行。 题目二 题目三 题目四 题目五 程序数据结构算法 题目六 题目七 题目八 题目九 D选项是语句……

【进程间通信(二)】【命名管道】

目录 1. 命名管道1.1 现象1.2 理解1.3 编码通信 2. 了解日志2.1 了解可变参数2.2 在通信中加入日志信息 【进程间通信(一)】【管道通信(上)】 【进程间通信(一)】【管道通信(下)】 这…

深入解析DPU:AI时代的芯片分工与超级网卡

引言 在当今AI时代,计算需求的爆炸性增长使得传统数据中心的架构面临着巨大的挑战。数据处理任务越来越复杂,尤其是在大型AI模型如GPT和BERT的应用中,如何提高数据中心的计算和传输效率成为关键问题。传统的CPU(中央处理器&#…

希捷8T硬盘exfat变0字节的恢复方法

最近流行的3.5寸大容量台式硬盘移动盒子是一种性价比较高的组合,为了方便如涉及到跨平台(win和mac),大多数此类组合选择了exfat文件系统。下边这个案例就是我们经常遇到的exfat变0字节。 故障存储: ST8000HKVS002 8T/exfat 文件…

第十三章 Redis短信登录实战(基于Redis)

目录 一、概述 1.1. Session复制 1.2. 使用Redis 二、基于Redis实现共享Session登录 2.1. 实现思路 2.2. 功能实现的主要代码 2.2.1. 用户业务接口 2.2.2. 用户业务接口实现类 2.2.3. 用户控制层 2.2.4. 登录拦截器 2.2.5. 拦截器配置类 2.3. 优化登录拦截器 完…

Git基本操作与分支

一、操作入门 先看大屏幕:先背过 再来操作 初始化 刚入门的小朋友可能出现这种问题: 原因是:需要自己创建一个记事本文件 add的作用是添加指定文件到暂存区。 commit是提交暂存区到仓库区,此处的仓库是本地仓库,本…

选择最佳HR系统_6款产品评测与推荐

本文盘点了ZohoPeople、SAPSuccessFactors等六款主流HRMS,各系统各具特色,如ZohoPeople的全球化云管理、SAP的高定制化、Workday的实时数据分析等,适合不同规模企业需求,建议企业试用后决策。 一、Zoho People Zoho People 是一个…

如何使用ssm实现基于bootstrap的课程辅助教学网站的设计与实现+vue

TOC ssm782基于bootstrap的课程辅助教学网站的设计与实现vue 第1章 绪论 1.1研究背景与意义 在科学技术水平还比较低下的时期,学校通常采用人工登记的方式对相关的课程信息进行记录,而后对这些信息记录进行管理和控制。这种采用纸质存储信息的管理模…

第十五周周报

目录 摘要Abstract1 LSTM模型实战1.1 数据处理1.2 LSTM模型的搭建1.3 数据的预测和可视化 2 transformer(上)2.1 Transformer 结构2.2 Transformer 编码器 总结 摘要 本周的工作内容主要分为两个部分,第一部分是使用LSTM模型预测股票市场数据…