AirLLM 是一款开源大语言模型推理优化工具,可让 70B 参数模型在单张 4GB 显存 GPU 上运行,无需量化、蒸馏或剪枝。通过层级模型分片和重叠预取技术,Llama3.1 405B 现在也只需 8GB 显存,支持 MacOS (Apple Silicon)。
🎤 引言
搞大模型推理的朋友们,有没有被显存这个坎卡住过?70B 的模型动辄需要几百 G 显存,穷玩家只能眼巴巴看着。
今天安利一个开源项目 AirLLM,GitHub 18.9k Stars,可以让 70B 大模型在单张 4GB 显存 GPU 上跑起来!不需要量化、不需要蒸馏、不需要剪枝,原生模型直接跑。
⭐ 核心功能
分层模型分片是 AirLLM 的核心招数。它把模型按层拆分,每次只把下一层加载进显存,其他层占用内存而非显存。这样一来,显存压力骤降。
重叠预取是另一个狠招——在当前层计算的同时,后台异步加载下一层。官方说这一招能带来 10% 的速度提升。
模型压缩支持 4bit / 8bit 分块量化,压缩后推理速度提升 3 倍!而且对精度的影响微乎其微。
自动模型检测用 AutoModel 类,不用再手动指定模型类型了。
多模型支持包括:
- Llama2 / Llama3 / Llama3.1 (包括 405B)
- Qwen / Qwen2.5
- ChatGLM3
- Baichuan2
- Mistral / InternLM
MacOS 支持也能跑!Apple Silicon M 系列芯片实测可以跑 70B 模型。
📥 安装使用
安装就一行命令:
pip install airllm使用方式跟普通 transformers 几乎一模一样:
from airllm import AutoModel
MAX_LENGTH = 128
model = AutoModel.from_pretrained("garage-bAInd/Platypus2-70B-instruct")
input_text = ['What is the capital of United States?']
input_tokens = model.tokenizer(
input_text,
return_tensors="pt",
return_attention_mask=False,
truncation=True,
max_length=MAX_LENGTH,
padding=False
)
generation_output = model.generate(
input_tokens['input_ids'].cuda(),
max_new_tokens=20,
use_cache=True,
return_dict_in_generate=True
)
output = model.tokenizer.decode(generation_output.sequences[0])
print(output)开启压缩加速(3 倍速度):
model = AutoModel.from_pretrained(
"garage-bAInd/Platypus2-70B-instruct",
compression='4bit' # 或 '8bit'
)MacOS 加速:
pip install mlx torch🎯 适用场景
- 💻 个人开发者的福音:没有高端显卡,照样跑 70B 模型做 Demo
- 📚 科研实验:快速验证想法,不需要排队等 GPU 集群
- 🎓 学生学习:理解大模型推理过程,低成本上手
- 🚀 边缘部署:在资源受限的环境中部署大模型服务
🔍 对比/替代方案
| 方案 | 显存需求 | 量化支持 | 速度 | 适用场景 |
|---|---|---|---|---|
| AirLLM | 4GB (70B) | 4/8bit | 基准 | 低成本推理 |
| llama.cpp | 4GB (70B) | 2-8bit | 较慢 | CPU 推理 |
| GPTQ | 6GB (70B) | 4bit | 较快 | 量化推理 |
| AWQ | 6GB (70B) | 4bit | 快 | 高效推理 |
AirLLM 的优势在于不需要预先量化,直接处理原版模型,部署流程更简单。
⚠️ 注意事项
- 磁盘空间要够:模型分层过程会占用大量磁盘空间,确保有足够空间并清理 HuggingFace 缓存目录
- 低端 GPU 速度慢:T4 这类低端卡推理速度较慢,不适合交互式聊天场景
- MacOS 仅支持 Apple Silicon:不支持 Intel Mac
- 部分模型需要 Token:Gated 模型(如 Llama-2)需要提供 HuggingFace API Token
✅ 总结
AirLLM 最大的价值在于降低了玩大模型的门槛。4GB 显存这个数字,很多人的游戏显卡都能满足。
优点:
- 显存需求极低,4GB 即可跑 70B
- 无需量化蒸馏,原生模型直接跑
- 压缩模式 3 倍加速,效果不错
- 支持 MacOS Apple Silicon
- 使用简单,API 与 transformers 兼容
缺点:
- 首次加载慢(需要分层模型)
- 低端 GPU 推理速度仍然较慢
- 只支持推理,不支持训练
总的来说,如果你只有一张入门级显卡又想玩大模型,AirLLM 值得一试!
GitHub: lyogavin/airllm
PyPI: airllm