lyogavin/airllm

AirLLM 2.8T LLM inference with single 4GB GPU

AirLLM – 在小型 GPU 上运行和训练巨型 LLM

功能简介
AirLLM 是一个 Python 库,允许您在仅有几 GB 显存的单块消费级 GPU 上推理和微调超大型语言模型(最高 6710 亿参数)。它通过从磁盘流式加载模型层,并每次仅在 GPU 上保留一层(加上可选的适配器)来实现这一点。该库还提供轻量级的块级仅权重量化压缩(4 位/8 位),可在最小精度损失的情况下将推理速度提升三倍。

重要性
通常,一个 700 亿参数的模型需要 30-40 GB 的 GPU 内存。AirLLM 的逐层流式加载将内存需求降低到单层的大小,因此 700 亿参数的模型可在约 4 GB 显存上运行,1250 亿参数的 MoE 模型约需 6 GB,甚至 6710 亿参数的 DeepSeek-V3 也仅需约 12 GB。它还支持通过流式加载冻结权重并仅在 GPU 内存中保留适配器来训练大型模型,从而在 6 GB 显卡上微调 1250 亿参数的模型。

主要特性(根据 README 描述)

  • 逐层流式加载 – 一次加载一个 transformer 层,其余层保留在磁盘上。
  • 块级仅权重量化压缩 – 仅对权重进行 4 位或 8 位量化(不量化激活),最高可提速 3 倍。
  • 广泛的模型支持 – 兼容几乎所有 Hugging Face LLM:Llama 2/3/3.1/3.3/4、Qwen(1-3.8、MoE、Flash-Next、FP8、VL)、DeepSeek-V2/V3、Mixtral、Phi-4、Gemma、ChatGLM、Baichuan、InternLM、Yi、Kimi K3 等。
  • 在极小显存上训练 – 流式加载冻结权重 + LoRA 适配器;提供 Qwen 3.8-Flash-Next(1250 亿)和 Qwen 3.8-27B 的示例。
  • 简单 API – AutoModel.from_pretrained(<repo_id>, compression='4bit') 与标准 Hugging Face AutoModel 用法一致。
  • 跨平台 – 支持 Linux、Windows 和 Apple 芯片 macOS(MLX + torch)。
  • 可配置 – 压缩、性能分析、自定义分片保存路径、Hugging Face 令牌、预取,以及可选删除原始模型以节省磁盘空间。

典型用法

from airllm import AutoModel
model = AutoModel.from_pretrained(
    "Qwen/Qwen3-32B",   # 任何 HF 模型 ID 均可
    compression='4bit'   # 可选的 4 位/8 位加速
)
# 分词、生成等 – 与常规 HF 模型相同

首次加载时,库会将模型拆分为磁盘上的逐层分片;后续运行只需流式加载这些分片。

训练示例(LoRA)

python air_llm/examples/train_qwen38_flash_next_lora.py \
  --data my_data.jsonl \
  --seq-len 512 \
  --epochs 1 \
  --save-adapter qwen38-flash-next-lora.pt

该脚本流式加载每个解码器层,将适配器保留在 GPU 内存中,并写入 LoRA 检查点。

性能亮点(来自 README)

模型 参数 所需显存(约)
Qwen3-32B 320 亿 ~4 GB
Qwen3.8-Flash-Next(1250 亿 MoE) 1250 亿 ~5.95 GB
DeepSeek-V3 6710 亿 ~12 GB
Llama 3.1-405B 4050 亿 ~8 GB
Kimi K3(2.8 万亿) 2.8 万亿 ~3.7 GB

适用人群

  • 拥有单块中端 GPU、希望尝试最新 LLM 的研究人员或爱好者。
  • 需要在低成本环境(如边缘服务器、个人工作站)中运行大型模型推理的开发者。
  • 任何希望用 transformers.AutoModel 的即插即用替代方案来大幅降低显存需求的人。

获取方式


以上所有信息均直接取自仓库的 README;未添加任何外部声明。

関連

  • Dispatch
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • Dispatch