APB:清华核弹级突破!长文本推理提速10倍,128K上下文碾压FlashAttention

114 阅读6分钟

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 丰富的 AI 工具库 -> 每日更新 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦


🌟 "百万字文档秒级响应!清华用分布式Attention改写LLM游戏规则"
大家好,我是蚝油菜花。当ChatGPT还在为8K上下文挣扎时,中国团队已经让AI轻松驾驭百万字长文本!你是否正在经历:

  • 👉 处理论文/法律合同时,模型推理慢如蜗牛
  • 👉 尝试长上下文应用,显存瞬间爆炸报OOM
  • 👉 用分布式方案却遭遇通信延迟拖后腿...

清华大学最新开源的 APB框架 ,正在颠覆长文本处理范式!这项黑科技:

  • 碾压FlashAttention 10倍速度:128K文本推理快到飞起
  • 智能上下文压缩:精准保留关键语义,性能反超全注意力
  • 分布式无缝扩展:多GPU并行效率高达92%,百万字轻松拿捏
  • 即插即用兼容性:适配主流大模型,无需重训即刻加速

某金融团队实测——200页财报分析从3小时缩至18分钟,关键信息提取准确率提升15%!想用开源代码复现这波操作?手把手教程现在开始!

🚀 快速阅读

APB 是清华大学等机构联合推出的分布式长上下文推理框架。

  1. 核心功能:通过多主机近似注意力机制显著提升推理速度,支持高效的分布式计算和上下文分割。
  2. 技术原理:采用稀疏注意力机制和序列并行推理方式,结合查询感知的上下文压缩技术,减少计算开销的同时,精准传递关键信息。

APB 是什么

APB

APB(Accelerating Distributed Long-Context Inference by Passing Compressed Context Blocks across GPUs)是清华大学等机构联合提出的分布式长上下文推理框架。通过稀疏注意力机制和序列并行推理方式,有效解决了大模型处理长文本时的效率瓶颈。

APB采用更小的Anchor block和Passing block,结合查询感知的上下文压缩技术,减少计算开销的同时,精准传递关键信息,实现长距离语义依赖的高效处理。在128K文本上,APB推理速度比Flash Attention快约10倍,比英伟达的Star Attention快1.6倍,且性能优异。具备卓越的兼容性,能适应不同分布式设定和模型大小。

APB 的主要功能

  • 加速长上下文推理:APB通过多主机近似注意力机制显著提升推理速度,相比Flash Attention、Ring Attention和Star Attention分别实现了高达9.2倍、4.2倍和1.6倍的速度提升。
  • 高效的分布式计算:输入序列被均匀分配到多个主机上,在每个主机的本地上下文块前附加一个锚点块(Anchor Block),保留对输入序列初始部分的可见性。
  • 上下文分割:在每个主机上,使用Locret的保留头(Retaining Heads)对KV缓存进行压缩,减少通信和计算开销。
  • 通信机制:通过AllGather通信机制,将压缩后的上下文块发送到所有主机,并构建传递块(Passing Block),以传递前序主机的重要KV缓存单元。
  • 计算:在每个主机上,结合锚点块、传递块和本地上下文块进行注意力计算。传递块在注意力计算后被丢弃,不参与后续计算。
  • 适应性强:APB支持多种模型和并行配置,能适应不同的分布式设置和模型大小,具有良好的可扩展性,通过调整锚点块和传递块的大小,APB可以在不同长度的输入序列上实现最佳性能。
  • 保持任务性能:在长上下文推理任务中,APB速度更快,在性能上与全注意力计算(Full Attention)相当,在某些任务上表现更好。通过查询感知的上下文压缩技术,APB能更精准地识别和传递与查询相关的上下文信息,保持或提升任务性能。

APB 的技术原理

  • 稀疏注意力机制:APB框架整合了稀疏注意力机制,通过减少计算量来提升推理速度。通过以下方式实现稀疏注意力:
    • 更小的Anchor block:与Star Attention相比,APB将Anchor block的大小缩小到上下文块的1/4或1/8,从而减少了额外的计算开销。
    • Passing block:为了解决长距离语义依赖问题,APB通过构建Passing block来传递重要信息。Passing block由前面设备上的重要KV对组成,每个上下文块被压缩后通信到后续GPU上构建Passing block。
    • 查询感知的上下文压缩:APB在Anchor block的开头嵌入查询,使上下文压缩器能够看到查询的内容,更精准地识别出查询相关的KV对,通过通信机制传给后续设备。
  • 序列并行推理:APB框架采用序列并行的方式,将长文本均匀分配到多个GPU上进行并行处理,同时通过局部KV缓存压缩和精简的跨GPU通信机制,解决了长上下文中的远距离语义依赖问题。

如何运行 APB

环境设置

conda create -n apb python=3.9
conda activate apb
pip install -r requirements.txt 
pip install experiments/flash-attention-apb
pip install experiments/ring-flash-attention-main

下载 Retaining Heads

BackBone ModelHF Repo
Llama-3.1-8B-instructhuggingface.co/thunlp/APB-…
Qwen-2.5-14B-instructhuggingface.co/thunlp/APB-…
Yi-34B-200Khuggingface.co/thunlp/APB-…
Llama-3-8B-1M-instructhuggingface.co/thunlp/APB-…

示例

我们提供了一个使用 APB 处理 NIAH-Simple-1 类查询的示例,使用 8 个 GPU。

首先,修改 example/llama.sh 中的模型路径、locret 路径和数字(NIAH 任务中的 needle)。

然后,运行以下命令。

bash example/llama.sh

输出预期如下(如果数字设置为 688435772345):

Ground Truth: 688435772345
Prediction: 688435772345.

复现说明

请先设置环境,然后参考 experiments/README.md 获取详细信息。

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 丰富的 AI 工具库 -> 每日更新 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦