4GB 显存怎么跑大模型AirLLM 十分钟推理实操教程【免费下载链接】airllmAirLLM 70B inference with single 4GB GPU项目地址: https://gitcode.com/GitHub_Trending/ai/airllm显存占用只有 4GB 的 GPU 进程跑着的却是一个 700 亿参数的大语言模型——不是量化版不是蒸馏小模型而是原版权重。AirLLM 做到的方式是同一时间只把模型的一层权重放到 GPU 上。它目前还能让 405B 的 Llama 3.1 跑在 8GB 显存上671B 的 DeepSeek-V3 跑在 12GB 上。这篇文章带你 10 分钟完成安装、第一次推理以及出问题时的排查。 先看数字AirLLM 能做什么AirLLM 是一个面向低显存 GPU 的大模型流式推理库API 和 transformers 基本一致。它不改模型、不损失精度代价是速度——权重需要一层层从硬盘流上来。维度信息定位低显存大模型推理库接口对齐 transformers解决的问题显卡显存不够加载不下完整模型关键数字70B 约 4GB405B 约 8GB671B 约 12GB你能得到几行代码完成本地大模型推理适合谁只有低端显卡、苹果电脑或想用原始权重做实验演示的人⚡ 装好并跑通第一次推理环境要求Python 3.8带 CUDA 的 PyTorch用 GPU 时。安装pip install airllm后面如果想开压缩加速再补装bitsandbytes。最小可运行示例官方 示例脚本 就是这份代码的结构from airllm import AutoModel model AutoModel.from_pretrained(Qwen/Qwen3-32B) input_tokens model.tokenizer( [What is the capital of United States?], return_tensorspt, return_attention_maskFalse, truncationTrue, max_length128, paddingFalse, ) out model.generate(input_tokens[input_ids].cuda(), max_new_tokens20) print(model.tokenizer.decode(out.sequences[0]))注意第一次运行会先把完整模型下载下来再拆成按层保存的分片存到磁盘缓存目录要有足够空间。之后每次都直接用分片启动会快很多。 它是怎么做到的GPU 上永远只有一层大白话版本模型装不进显存那就一次只装一层。首次加载时AirLLM 把 checkpoint 拆成若干个小文件嵌入层、每一层 transformer模型里一个个独立的计算单元、末尾归一化、词表输出头。推理时它在每个模块上挂了钩子某层要计算前权重从磁盘流到 GPU计算完立刻释放。与此同时后台线程提前把下一层读好让磁盘 IO 和计算重叠这个预取默认是开着的。于是显存占用只取决于单层权重的大小和总参数量几乎无关。对 DeepSeek-V3 这类 MoE 模型Mixture of Experts专家混合架构每个 token 只激活其中一部分专家它更狠一层只加载 token 实际路由到的那些专家连整层都不用读。2.8T 参数的 Kimi K3 因此能在 3.72GB 显存里跑起来。️ 打开这几个常用开关以下参数都在初始化模型时传入compression4bit或8bit作用是对磁盘分片做分块量化读得更少官方实测提速可达 3 倍精度损失很小。什么时候开在意生成速度、被磁盘带宽卡住的时候。需要先装 bitsandbytes且开启后预取会自动关闭。layer_shards_saving_path/data/big/shards作用是指定分片存放位置。什么时候开huggingface 缓存所在磁盘太小。delete_originalTrue拆分完成后删掉原始模型只留分片磁盘省一半。什么时候开确认跑得稳定、想回收空间时。hf_token你的token下载需要授权的 gated 模型时用。profiling_modeTrue打印加载、计算各阶段耗时用来判断时间花在哪里。 先选模型兼容性速查想跑的模型典型显存需求备注Qwen3 / Mistral / Phi约 8B1–2 GB入门最轻Qwen3-235BMoE约 3 GB按专家逐个加载Qwen3.8-27B稠密 VL3.33 GB需要较新 transformersLlama 3.x 70B约 4 GB全精度未量化Llama 3.1 405B约 8 GBDeepSeek-V3671B约 12 GBKimi K32.8T3.72 GB另需 compressed-tensors、flash-attn运行环境Linux NVIDIA GPUCUDAmacOS 仅 Apple Silicon需先装mlx代码不变纯 CPU 也能跑速度较慢。️ 两个贴近日常的用法本地批量问答model对象暴露的 tokenizer 和 generate 与 transformers 一致外面套一层循环即可questions [机器学习的基本思想是什么, Python 常用的数据科学库有哪些] for q in questions: tokens model.tokenizer([q], return_tensorspt, return_attention_maskFalse, truncationTrue, max_length128, paddingFalse) out model.generate(tokens[input_ids].cuda(), max_new_tokens60) print(q, -, model.tokenizer.decode(out.sequences[0]))接入自己的应用把AutoModel.from_pretrained(...)放到服务初始化里把model实例传给路由处理函数每个请求走同样的 tokenize → generate → decode 流程。多模型的可运行 notebook 在 air_llm/examples/ 目录里。 出问题时先查这几条1.SafetensorError: MetadataIncompleteBuffer现象第一次拆分模型时报错。原因磁盘空间不够拆分过程需要的空间接近原始模型体积。解法清理 huggingface 缓存或用layer_shards_saving_path把分片挪到大磁盘跑稳后再用delete_originalTrue回收一半空间。2.401 Client Error ... is gated现象下载模型时返回 401。原因该模型是 gated 模型需要授权。解法初始化时传入hf_token。3.ValueError: max() arg is an empty sequence现象加载 Qwen、ChatGLM 等模型时炸掉。原因手动用了 Llama 专用的AirLLMLlama2类。解法统一改用AutoModel.from_pretrained它会自动识别架构并选择对应后端。4.Asking to pad but the tokenizer does not have a padding token现象分词这一步就报错。原因这个模型的分词器没有 padding token。解法设paddingFalse单句推理本来也不需要填充。 适合谁下一步看哪里如果你的 GPU 在 8GB 以下又想用原始权重跑大模型做实验、演示或教学AirLLM 是十分钟内就能试出结果的选择。想深入原理读 README想看分层流式加载的具体实现源码在 air_llm/airllm/。【免费下载链接】airllmAirLLM 70B inference with single 4GB GPU项目地址: https://gitcode.com/GitHub_Trending/ai/airllm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
