AirLLM 完整指南:70B 大模型推理只占 4GB 显存,原理与快速上手
【免费下载链接】airllmAirLLM 70B inference with single 4GB GPU项目地址: https://gitcode.com/GitHub_Trending/ai/airllm
跑一个 70B 的大语言模型,显存要多少?按常规算法是 140GB 起步——一块消费级显卡连第一个 batch 都装不下,程序直接抛出一行刺眼的 CUDA out of memory。这就是绝大多数人在本地跑大模型时的真实困境:不是代码写错了,而是硬件从根上就不够。
AirLLM 是一个开源的大模型推理框架,它把 70B 模型的显存占用压到单张 4GB 显卡可以承受的范围,并且不改模型本身——不量化、不蒸馏、不剪枝。往大了说:Llama 3.1 405B 在 8GB 上跑,DeepSeek-V3(671B)约 12GB,连 2.8T 的 Kimi K3 都能用不到 4GB 的显存完成推理。
凭什么能做到:显存取决于单层大小,而不是模型总大小
AirLLM 的核心思路只有一句话:推理时 GPU 上同一时间只驻留模型的一层。
常规推理把整个模型一次性搬进显存,所以模型多大,显存就得多大。AirLLM 则把权重按层拆分成一个个"层分片"存在磁盘上,前向传播时哪一层要用,就把哪一层从磁盘加载进显存,算完释放,再加载下一层。这样显存占用只跟单层权重的大小有关,跟模型总参数量基本脱钩——671B 的模型塞进一张入门显卡,靠的就是这个机制。
对稀疏 MoE 模型(如 Qwen3-235B、DeepSeek-V3、Kimi K3)它还多走一步:专家不整层加载,而是按 token 实际路由到的专家逐个流式加载,这也是 235B 模型约 3GB 显存就能跑起来的原因。
各规模模型在单卡上的实测显存大致如下(来自仓库 README):
| 模型 | 规模 | 所需显存 |
|---|---|---|
| Llama 3.x 70B(全精度) | 70B | 约 4 GB |
| Llama 3.1 405B | 405B | 约 8 GB |
| DeepSeek-V3 | 671B | 约 12 GB |
| Qwen3-235B(MoE) | 235B | 约 3 GB |
| Qwen3.8-27B(稠密 VL) | 27B | 3.33 GB |
因为磁盘加载才是瓶颈,AirLLM 另外提供 4bit / 8bit 块量化压缩(compression 参数),只量化权重不量化激活,在精度损失可忽略的前提下,磁盘读量缩小、推理速度最高可提升 3 倍。这个优化与显存问题无关,纯粹是加速手段。
最快上手步骤:装一个包,写一行加载代码
安装很简单:
pip install airllm推理入口是AutoModel,传入 Hugging Face 仓库 ID 或本地路径即可,接口和普通 transformers 模型几乎一样:
from airllm import AutoModel model = AutoModel.from_pretrained("Qwen/Qwen3-32B") # 换成任何受支持的模型 ID input_tokens = model.tokenizer(['What is the capital of United States?'], return_tensors="pt", truncation=True, max_length=128, padding=False) output = model.generate(input_tokens['input_ids'].cuda(), max_new_tokens=20, use_cache=True, return_dict_in_generate=True) print(model.tokenizer.decode(output.sequences[0]))两个实践提示:首次推理时会先把原模型按层拆分并保存到磁盘缓存目录,需要预留充足的磁盘空间;如果磁盘紧张,初始化时设置delete_original=True可以删掉拆分前的原始权重,节省一半空间。想要压缩加速的话,在from_pretrained里加compression='4bit'即可(需先安装 bitsandbytes)。
模型覆盖面基本跟着开源社区走:Llama 2/3/4 全系、Qwen 1 到 3.8(含 MoE 和原生 VL)、DeepSeek V2/V3、Mistral 与 Mixtral、Phi、Gemma、ChatGLM、Baichuan、InternLM、Yi、Kimi K3 等,新模型发布当天大多可用。不同架构的适配代码分散在 air_llm/airllm/ 目录下,模型的分层拆分与持久化逻辑在 air_llm/airllm/persist/ 目录中,想看懂实现可以直接翻。Apple Silicon 的 Mac 也支持,装好 mlx 后用法与 Linux 相同,示例见 air_llm/examples/ 目录。
适合谁用
- 只有小显存显卡的个人开发者:4–12GB 的卡以前只能碰 7B 级别的小模型,现在可以完整精度地跑 70B 甚至更大,适合本地做原型验证和私有数据实验。
- 教学与研究场景:不用排队等 A100,普通 PC 就能完整演示大模型的推理流程,还能用 profiling_mode 参数输出各阶段耗时,方便分析。
- 想理解"层流式推理"机制的人:代码量不大,单层加载、钩子触发、专家流式这几条主线读一遍就能吃透,比啃完整训练框架门槛低得多。
一句话权衡:AirLLM 用磁盘 I/O 换显存,首次运行慢在拆模型,之后每轮生成都要读盘,速度不适合追求高吞吐的在线服务,但"能不能跑起来"这件事,它把门槛从数据中心拉回到了一张入门显卡。项目以 Apache 2.0 协议开源,装包即用,从 pip 到第一行输出不超过五分钟。
【免费下载链接】airllmAirLLM 70B inference with single 4GB GPU项目地址: https://gitcode.com/GitHub_Trending/ai/airllm
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考