lyogavin/airllm
AirLLM 70B inference with single 4GB GPU
這是什麼
AirLLM 是一個把大型語言模型推論「拆小」來跑的工具,目標很明確:讓原本需要大量 VRAM 的模型,也能在低階單卡上執行。README 的核心說法是,它可以讓 70B 模型在單張 4GB GPU 上推論,而且不靠量化、蒸餾或剪枝來達成;做法是把模型拆成 layer-wise shards,推論時只把需要的部分載入 GPU。對 MoE 模型,README 進一步強調可以利用稀疏路由特性,一次串流一個 expert,因此總參數量不是唯一瓶頸,真正影響 VRAM 的是當下需要載入的層或 expert。
為什麼上榜
這次爆紅的原因很直觀:在 AI 模型越做越大的趨勢下,AirLLM 把「能不能跑」這件事從高階 GPU 伺服器拉回到一般玩家與研究者也可能觸及的硬體。專案目前約 27,045 stars,本期新增 1,085 stars,README 又在近期更新中放上 Kimi K3、DeepSeek-V3、Qwen3-235B 等案例,形成很強的話題性。它和一般量化工具的差異在於,README 主軸不是先犧牲精度壓小權重,而是以 分層載入與串流推論 降低峰值 VRAM;同時也提供可選的 4bit/8bit compression,讓使用者在速度與資源之間再做取捨。
適合誰,可以拿來做什麼
AirLLM 適合想在有限硬體上測試大型開源模型的人:例如研究者想快速驗證 prompt、工程師想在本機或雲端小卡上跑 demo、玩家想嘗試 Qwen、Llama、DeepSeek、Mistral、Gemma、ChatGLM 等模型家族。它不是把大型模型變成高速本地服務的萬靈丹;README 也提醒,首次推論會把原始模型拆分並存成分層檔案,因此 磁碟空間 仍然很重要。若你的瓶頸是 VRAM 而不是磁碟或延遲,這類方法特別有價值;若你追求高吞吐量線上服務,仍要評估分層載入帶來的速度成本。
上手
README 提供的 quick start 很簡潔,先安裝套件,再用 AutoModel.from_pretrained(...) 指向 Hugging Face repo id 或本機模型路徑。若使用 gated model,可在設定中提供 hf_token;若磁碟吃緊,也可考慮 delete_original 只保留轉換後的模型檔。
pip install airllm
from airllm import AutoModel
MAX_LENGTH = 128
model = AutoModel.from_pretrained("Qwen/Qwen3-32B")
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,
)
print(model.tokenizer.decode(generation_output.sequences[0]))
README 重點摘要
- README 宣稱可在低 VRAM 環境跑大型模型,例如 Llama 3.x 70B 約 4GB、Llama 3.1 405B 約 8GB、DeepSeek-V3 約 12GB。
- 支援多個主流模型家族,包含 Llama、Qwen、DeepSeek、Mistral/Mixtral、Phi、Gemma、ChatGLM、Baichuan、InternLM、Yi。
- 可選 compression 參數,支援 4bit/8bit block-wise quantization-based compression;README 表示最高可帶來 3x 推論速度提升。
- macOS 也可使用,但 README 指明需要 Apple silicon,並需安裝 mlx 與 torch。
- FAQ 特別提醒,模型拆分很耗磁碟;若遇到 safetensors
MetadataIncompleteBuffer,最可能原因是 磁碟空間不足。