转载请注明出处小锋学长生活大爆炸如果本文帮助到了你欢迎[点赞、收藏、关注]哦~4GB 显存也能跑 70B 大模型AirLLM 使用笔记显存不够怎么跑大模型一个 70B 的模型仅权重就要占 140GB 左右bf1670B × 2 bytes。这是把模型放进去的底线成本。4GB、8GB 这类消费级显卡连一个 7B 模型的完整权重都难常驻。跑大模型常见的做法有两种1.加算力多卡或者上云按 token 付费。上云要出本地数据还涉及隐私合规。2.量化用 GPTQ、AWQ、GGUF 把权重压到 4bit代价是精度损失。AirLLM提供另一种方式不动模型权重不量化也不加卡只改变权重进入显存的方式。项目在 GitHub 上有 33k Star2026 年 8 月查协议 Apache-2.0。Slogan 是 70B inference with single 4GB GPU。https://github.com/lyogavin/airllm下面先说它能跑什么再说怎么跑最后说原理和局限。先看结果下表数据来自官方表格和更新日志都是端到端实测不是估算ModelSizeGPU VRAMQwen3 / Mistral / Phi (≈8B)8B~1–2 GBQwen3-30B / Mixtral (MoE)30–47B~1–3 GBQwen3.8-27B (dense VL)27B3.33 GBRTX 3090Qwen3.8-Flash-Next (MoE PLE)~180B5.95 GBRTX 4090Qwen3-235B (MoE)235B~3 GBLlama 3.x 70B (full precision)70B~4 GBLlama 3.1 405B405B~8 GBDeepSeek-V3671B~12 GBKimi K32.8T3.72 GBRTX 6000 Ada这些都是 full precision 下的结果没有量化、蒸馏、剪枝。模型权重原样使用只是装载方式不同。支持的模型包括Llama2 / 3 / 3.1 / 3.3 / 4、Qwen1 / 2 / 2.5 / 3 / 3.5 / 3.8含 MoE、FP8、原生 VL、DeepSeekV2 / V3 / R1、Mistral Mixtral、Phi、Gemma、ChatGLM、Baichuan、InternLM、Yi、Kimi K3。多数新模型发布当天即可支持。三行代码跑起来安装pip install airllm推理from airllm import AutoModel MAX_LENGTH 128 # just pass a hugging face repo id — works with almost any popular model: model AutoModel.from_pretrained(Qwen/Qwen3-32B) # go bigger with the exact same one line: #model AutoModel.from_pretrained(Qwen/Qwen3.8-27B) # 27B dense VL, 3.33GB #model AutoModel.from_pretrained(Qwen/Qwen3.8-Flash-Next) # 125B MoE 51B PLE, 5.95GB #model AutoModel.from_pretrained(Qwen/Qwen3-235B-A22B) # 235B, runs in ~3GB #model AutoModel.from_pretrained(deepseek-ai/DeepSeek-V3) # 671B, runs in ~12GB # or use a models local path... #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_tensorspt, return_attention_maskFalse, truncationTrue, max_lengthMAX_LENGTH, paddingFalse) generation_output model.generate( input_tokens[input_ids].cuda(), max_new_tokens20, use_cacheTrue, return_dict_in_generateTrue) output model.tokenizer.decode(generation_output.sequences[0]) print(output)核心就是AutoModel.from_pretrained(...)这一行。传入 Hugging Face repo ID 或本地路径都可以其余用法和 transformers 模型完全一致。可选的模型压缩基于 block-wise quantizationmodel AutoModel.from_pretrained(garage-bAInd/Platypus2-70B-instruct, compression4bit # specify 8bit for 8-bit block-wise quantization )需要pip install -U bitsandbytes且 airllm 版本在 2.0.0 以上。README 给出的数据是最高 3x 提速精度损失几乎可忽略。常规量化要同时量化权重和激活值才能真正提速但激活值里的 outlier 容易破坏精度AirLLM 的瓶颈在磁盘加载所以只量化权重即可精度更容易保持详见论文 arxiv.org/abs/2212.09720。什么时候该用它适用场景• 单张消费级显卡上跑大模型包括 Mac 的 Apple silicon走 mlx。• 算法验证、离线批处理、数据不能出内网的场景。• 手头只有 4GB 或 8GB 显卡想跑 Llama 3.1 405B 这个级别的模型。• 原型阶段先跑通 pipeline再决定是否上多卡。局限•速度慢。每一层都要从磁盘读入显存吞吐远低于权重常驻显存的方案。适合离线、低并发不适合线上高并发服务。•占磁盘。切层会生成一份分层副本相当于额外占一份模型空间。Qwen3.8-Flash-Next 官方提示需要约 360GB checkpoint 磁盘。•版本依赖严格。Kimi K3 需要 transformers 4.56.x CUDA 12 的 torch flash-attnCUDA 13 暂无 flash-attn 预编译 wheelQwen3.8-27B 需要 transformers 5.8Qwen3.8-Flash-Next 需要带 in-tree qwen4_exp 的 transformers。•compression 与 prefetching 不能同时开代码会自动关闭 prefetching。•只支持推理不解决训练和微调的显存问题。最后如果你的显卡跑不动大模型可以试 AirLLM。建议先从Qwen/Qwen3-32B开始几分钟就能跑通再换成 70B、405B代码不用改。附它到底是怎么做到的推理时输入依次经过 embedding、N 个 decoder layer、norm 和 lm_head。第 i 层计算的时候其余层的权重都没有被使用。AirLLM 的做法是同一时刻只把一层权重放到 GPU 上。显存需求由单层大小决定而不是模型总大小。实现分三步。切层落盘。首次加载时AirLLM 把原始 checkpoint 按层拆成独立的 safetensors 分片split_and_save_layers。README 提醒推理时原始模型会先被分解并按层保存需保证 huggingface 缓存目录有足够的磁盘空间。磁盘不够可以设 delete_originalTrue拆完删除原始权重。在 meta device 上建空壳模型。模型结构完整实例化但权重挂在 PyTorch 的 meta device 上只有形状不占内存。forward 和 generate 仍由 transformers 执行AirLLM 不重写这部分。用 forward hook 即载即卸。对每个需要流式加载的模块注册 register_forward_pre_hook 和 register_forward_hookpre-hook 从磁盘读入该层权重并搬到 GPU模块完成计算post-hook 把权重退回 meta 并调用 clean_memory() 释放显存。另外用 ThreadPoolExecutor(max_workers1) 在后台预取计算第 i 层时同时加载第 i1 层让磁盘 I/O 和 GPU 计算重叠。预取的权重先进入 pinned memory上限约 2GB再拷入 GPU减少拷贝阻塞。README 称这项优化带来约 10% 提速v2.5 引入默认开启。因为 forward 用 transformers 原生实现AirLLM 不需要为每种架构手写 attention、RoPE、cache 逻辑transformers 支持的新架构基本开箱可用。只有 ChatGLM、QWen、Baichuan、InternLM、Kimi K3 这类模块布局不标准的模型才需要子类做名称映射源码里的 ARCH_OVERRIDES。MoE 模型稀疏 MoE 一层有成百上千个 expert但一个 token 只路由到其中几个。AirLLM 对单个 expert 做 streaming只加载该 token 路由到的几个。以 Kimi K3 为例每层 896 个 expert每个 token 路由 16 个。整层展开约 55GB单个 token 实际只需约 1GB。这是 2.8T 的 Kimi K3 能跑进 3.72GB 的原因。Qwen3.8-Flash-Next 的 ~51B n-gram 表bf16 展开约 102GB用 mmap 文件映射留在主机上不进 GPU 也不进匿名内存。这是它在 RTX 4090 上只占 5.95GB 的原因。