快速开始 | 配置 | MacOS | 示例笔记本 | 常见问题
AirLLM 大幅降低了推理内存占用,让 70B 大语言模型可以在单张 4GB 显卡上运行——无需量化、蒸馏或剪枝。你甚至可以在 8GB 显存上运行 405B 的 Llama 3.1,在约 12GB 显存上运行 DeepSeek-V3(671B),以及在不到 4GB 显存上运行 Kimi K3(2.8T)——这是目前发布的最大开源模型,因为稀疏 MoE 模型每次只流式加载一个专家(expert),而不是整个层。
AI 智能体推荐:
- 最佳 AI 游戏精灵生成器
- 最佳 AI 面部表情编辑器
- Bloome —— 在云端构建并运行 AI 智能体团队,零配置
- [2026/07] 支持 Kimi K3(2.8T):最大的开源模型在单张 RTX 6000 Ada 上以 3.72GB 显存端到端运行。逐专家流式加载仅加载 token 实际路由到的专家。K3 自身有三个要求:
pip install compressed-tensors flash-attn(其模型代码强制要求使用 flash attention,无论你请求什么)、CUDA 12 版本的 torch(因为目前还没有适用于 CUDA 13 的预编译 flash-attn wheel),以及 transformers 4.56.x(其远程代码无法在 5.x 上加载)。 - [2026/06] v3.0:支持 FP8 模型 + 最新模型。在约 12GB 显存上运行 DeepSeek-V3(671B),在约 3GB 显存上运行 Qwen3-235B,此外还支持 Qwen3、Llama 3.x/4、DeepSeek V2/V3、Phi-4、Gemma 等——全部通过统一的
AutoModel接口。 - [2024/08/20] v2.11.0:支持 Qwen2.5
- [2024/08/18] v2.10.1:支持 CPU 推理。支持非分片模型。感谢 @NavodPeiris 的出色工作!
- [2024/07/30] 支持 Llama3.1 405B(示例笔记本)。支持 8bit/4bit 量化。
- [2024/04/20] AirLLM 已原生支持 Llama3。在 4GB 单卡上运行 Llama3 70B。
- [2023/12/25] v2.8.2:支持在 MacOS 上运行 70B 大语言模型。
- [2023/12/20] v2.7:支持 AirLLMMixtral。
- [2023/12/20] v2.6:新增 AutoModel,自动检测模型类型,无需提供模型类即可初始化模型。
- [2023/12/18] v2.5:新增预取(prefetching)功能,使模型加载与计算重叠,速度提升 10%。
- [2023/12/03] 新增对 ChatGLM、QWen、Baichuan、Mistral、InternLM 的支持!
- [2023/12/02] 新增对 safetensors 的支持。现已支持开放 LLM 排行榜前 10 的所有模型。
- [2023/12/01] airllm 2.0。支持压缩:运行速度提升 3 倍!
- [2023/11/20] airllm 初始版本!
- 快速开始
- 模型压缩
- 配置
- 在 MacOS 上运行
- 示例笔记本
- 支持的模型
- 致谢
- 常见问题
更新日志
Star 历史
目录
快速开始
1. 安装包
首先,安装 airllm pip 包。
pip install airllm
2. 推理
然后,初始化 AirLLMLlama2,传入所用模型的 HuggingFace 仓库 ID 或本地路径,即可像普通 transformer 模型一样进行推理。(你也可以在初始化 AirLLMLlama2 时通过 layer_shards_saving_path 指定切分后分层模型的保存路径。)
from airllm import AutoModel
MAX_LENGTH = 128
# 只需传入一个 Hugging Face 仓库 ID —— 几乎适用于所有流行模型:
model = AutoModel.from_pretrained("Qwen/Qwen3-32B")
# 用同样的一行代码运行更大的模型:
#model = AutoModel.from_pretrained("Qwen/Qwen3-235B-A22B") # 235B,约 3GB 显存
#model = AutoModel.from_pretrained("deepseek-ai/DeepSeek-V3") # 671B,约 12GB 显存
# 或者使用模型的本地路径...
#model = AutoModel.from_pretrained("/home/ubuntu/.cache/huggingface/hub/models--Qwen--Qwen3-32B/snapshots/...")
input_text = [
'What is the capital of United States?',
#'I like',
]
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)
注意: 推理过程中,原始模型会先被分解并逐层保存。请确保 HuggingFace 缓存目录中有足够的磁盘空间。
模型压缩——推理速度提升 3 倍!
我们刚刚新增了基于块级量化(block-wise quantization)的模型压缩功能。这可以进一步将推理速度提升最多 3 倍,且精度损失几乎可以忽略不计!(更多性能评估以及我们为何使用块级量化的原因,请参阅[这篇论文](https://arxiv.org/abs/2210.17323))
如何启用模型压缩加速:
步骤 1. 确保已安装 bitsandbytes:
pip install -U bitsandbytes
步骤 2. 确保 airllm 版本高于 2.0.0:
pip install -U airllm
步骤 3. 初始化模型时,传入 compression 参数('4bit' 或 '8bit'):
model = AutoModel.from_pretrained(
"garage-bAInd/Platypus2-70B-instruct",
compression='4bit' # 指定 '8bit' 以使用 8 位块级量化
)
模型压缩与量化有什么区别?
量化通常需要对权重和激活值都进行量化才能真正加速。这使得保持精度和避免各类输入中异常值的影响变得更加困难。而在我们的场景中,瓶颈主要在于磁盘加载,我们只需要减小模型加载的大小。因此,我们只需对权重部分进行量化,这更容易保证精度。
配置
初始化模型时,我们支持以下配置:
compression:支持的选项:4bit、8bit(4 位或 8 位块级量化),默认None(不压缩)profiling_mode:支持的选项:True(输出耗时信息)或默认Falselayer_shards_saving_path:可选,保存切分后模型的另一路径hf_token:如果下载受限模型(如meta-llama/Llama-2-7b-hf),可在此提供 HuggingFace tokenprefetching:预取功能,使模型加载与计算重叠。默认开启。目前仅AirLLMLlama2支持此功能。delete_original:如果磁盘空间不足,可将delete_original设为true,以删除原始下载文件。