SepLLM:开源大模型加速神器!400万Token长文本推理提速50%,告别OOM噩梦

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

🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦


🎧 “告别卡顿!SepLLM 让大模型推理速度提升 50%,长文本处理不再是难题!”

大家好,我是蚝油菜花。你是否也遇到过——

  • 👉 大模型推理速度慢,长文本处理卡顿严重
  • 👉 内存占用高,资源消耗大,部署成本居高不下
  • 👉 多轮对话和文档摘要任务中,上下文连贯性难以维持

今天揭秘的 SepLLM,用分隔符压缩技术彻底颠覆了大语言模型的推理效率!这个由香港大学和华为诺亚方舟实验室联合开发的高效框架,通过压缩段落信息并消除冗余标记,显著提升了模型的推理速度和计算效率。无论是处理 400 万标记的长序列,还是优化 KV 缓存使用量,SepLLM 都表现出色。接下来,我们将深入解析它的核心功能和技术原理,手把手教你如何部署和使用!

🚀 快速阅读

SepLLM 是一个用于加速大语言模型的高效框架,通过压缩段落信息并消除冗余标记,显著提高了模型的推理速度和计算效率。

  1. 核心功能:支持长文本处理、推理与内存效率提升、多场景部署灵活性。
  2. 技术原理:基于稀疏注意力机制和动态 KV 缓存管理,优化计算负担和内存使用。

SepLLM 是什么

SepLLM

SepLLM 是香港大学、华为诺亚方舟实验室等机构联合提出的用于加速大语言模型(LLM)的高效框架。它通过压缩段落信息并消除冗余标记,显著提高了模型的推理速度和计算效率。SepLLM 的核心是利用分隔符(如标点符号)对注意力机制的贡献,将段落信息压缩到这些标记中,减少计算负担。

SepLLM 在处理长序列(如 400 万标记)时表现出色,保持了低困惑度和高效率。它支持多节点分布式训练,集成了多种加速操作(如 fused rope 和 fused layer norm),适用于文档摘要、长对话等需要维持上下文连贯性的任务。

SepLLM 的主要功能

  • 长文本处理能力:SepLLM 能高效处理超过 400 万个标记的长序列,适用于文档摘要、长对话等需要维持上下文连贯性的任务。
  • 推理与内存效率提升:在 GSM8K-CoT 基准测试中,SepLLM 将 KV 缓存使用量减少了 50% 以上,同时计算成本降低 28%,训练时间缩短 26%,推理速度显著提升。
  • 多场景部署灵活性:SepLLM 支持从零训练、微调和流式应用等多种部署场景,能与预训练模型无缝集成。
  • 支持多节点分布式训练:SepLLM 的代码库支持高效的多节点分布式训练,集成了多种加速训练的操作(如 fused rope、fused layer norm 等)。

SepLLM 的技术原理

  • 稀疏注意力机制:SepLLM 主要关注三类标记:初始标记、邻近标记和分隔符标记。通过 mask 矩阵限制注意力计算范围,仅计算这些标记之间的注意力,实现稀疏化。
  • 动态 KV 缓存管理:SepLLM 设计了专门的缓存块,包括初始缓存、分隔符缓存、历史窗口缓存和局部窗口缓存。通过周期性压缩和更新策略,SepLLM 能高效处理长序列,同时减少 KV 缓存的使用。

如何运行 SepLLM

1. 环境准备

首先,创建一个 Conda 环境并安装所需的依赖:

conda create -yn streaming-sepllm python=3.8
conda activate streaming-sepllm 

pip install torch torchvision torchaudio # 我们使用 torch==2.1.0+cu121 进行流式测试。
pip install transformers==4.33.0 accelerate datasets evaluate wandb scikit-learn scipy sentencepiece

python setup.py develop

2. 评估 Streaming-SepLLM

运行以下命令来评估 Streaming-SepLLM:

CUDA_VISIBLE_DEVICES=0  python ./main/evaluate_streaming_inputs_perplexity.py \
    --model_name_or_path  meta-llama/Meta-Llama-3-8B\
    --init_cache_size 4 \
    --sep_cache_size 64 \
    --local_size 256 \
    --cache_size 800 \
    --enable_kv_cache_manager True \
    --enable_SepLLM True \
    --enable_StreamingLLM False \
    --enable_pos_shift True \
    --num_samples 5000000 \
    --num_eval_tokens 20480 \
    --dataset_name pg19 \
    --task default \
    --split test\
    --output_dir ./outputs/xxx   2>&1 | tee ./logs/demo/xxx.log

3. 训练 SepLLM

安装训练所需的依赖:

cd Training-SepLLM
pip install -r requirements/requirements.txt
python ./megatron/fused_kernels/setup.py install # 可选,如果不使用 fused kernels

启动训练:

python ./deepy.py train.py [path/to/config.yml]

资源


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

🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值