实战 SOP
实战 SOP

4GB 显存跑 27B:先卡住你的不是显存,是磁盘

airllm 分层推理实操 SOP 五步(口径 2026-10-12,README 自报数字):①环境三重锁——torch 须 CUDA 12 构建(flash-attn 无 CUDA 13 预编译轮子)、flash-attn、transformers 分支随模型而变(Kimi K3 要 4.56.x、Qwen3.8-27B 要 5.8+、Flash-Next 要 in-tree qwen4_exp),验证用 nvidia-smi 与 torch.cuda.is_available() 双查;②按 README 实测表选档,最现实的入门档是 Qwen3.8-27B 的 3.33GB(RTX 3090 实测);③首次推理权重下载最久(Flash-Next 检查点约 360GB、K3 为 TB 级),下完保住缓存目录,切分后可用 delete_original=True 回收原件;④nvidia-smi 看显存峰值并管理速度预期——逐层搬运意味着字节量远超计算量,官方未给 tokens/s 本文不编数字,慢是设计使然不是坏了;⑤接 agent/API 用:适合一次性任务型工作流,不适合逐 token 交互;训练路径不同(冻结权重逐层流式、adapter 留显存)。坑点专段五条:版本矩阵三重锁、首次下载百 GB/TB 级易中断、磁盘与主机内存是隐形门槛(64GB 内存起)、速度慢属结构性、K3 的 flash-attn 与 CUDA 12 强约束。仓库地址:github.com/lyogavin/airllm(Apache-2.0)。

发布于 2026年10月12日10 分钟阅读
<!-- airllm-layered-inference-sop | sop | 4GB 显存跑 27B:先卡住你的不是显存,是磁盘 -->

这条路线到底解决了什么问题

先把一件事说清楚:AirLLM 不是量化工具,也不是蒸馏工具,更不是剪枝工具。它什么都不做,只做一件事——把模型的每一层当成一个可以单独搬运的文件,需要哪一层就从磁盘或内存把哪一层搬上显卡,算完这一层就把它换下去。README 原文口径是 layer-wise streaming,靠这套机制把 70B 级模型塞进单张 4GB 卡,甚至让 Kimi K3(2.8T)这类超大开源模型在 4GB 以下跑起来。

这件事为什么值得写成 SOP?因为它是「显存不够」这条路上唯一一个不损失模型质量的选项。GGUF 量化会掉质量,蒸馏换的是能力,CPU offload 混合仍然受内存带宽牵制,而 AirLLM 的代价被集中到了一个点上:速度。你可以接受慢,但你没法接受慢之后答案还变差了。

仓库地址是 github.com/lyogavin/airllm,Apache-2.0 许可。截至 2026-10-12 的 GitHub API 实证数据:36,747 stars、3,829 forks、160 个 open issues,2023-06-12 建仓,最近一次推送就在 2026-10-12。一年多过去它还在活跃更新,训练支持是 2026-09 才补上的。

也要跟站内已有的几篇分清分工:本地部署工具横评比的是 Ollama / LM Studio / vLLM / llama.cpp / GPT4All 这五款部署工具;Ollama 本地部署 SOP讲的是量化档位与显存避坑;Qwen3.8-Flash-Next 三层部署 SOP讲的是同一个模型从托管 API 到端侧的路线图。本篇是第五条完全不同的分支:不量化、不蒸馏,只靠分层流式硬扛显存。

边界声明

AirLLM 的官方数字全是显存占用,不是速度。写这篇之前没有实机压测,因此本文不会给出任何 tokens/s 数字,也不会给出首 token 延迟。速度部分只讲结构性的慢——这是设计使然,不是 bug。160 个 open issues 也说明生态坑不少,别把「官方实测能跑」当成「你这台机器一定能跑」。

第一步:装环境,先锁版本(三重锁是头号坑)

AirLLM 的环境要求比多数人预期的复杂,因为它同时依赖三个互相牵制的组件。这一步装错,后面每一步都会失败,且报错信息通常不会告诉你真正的原因。

第一重是 torch 必须是 CUDA 12 构建。这不是风格偏好,是硬约束:flash-attn 目前没有 CUDA 13 的预编译轮子,torch 版本跟着 CUDA 走,torch 一旦装成 CUDA 13 构建,flash-attn 就编不出来。

第二重是 flash-attn,Kimi K3 的模型代码强制要求 flash attention,安装命令是 README 给的原文:

bash
pip install compressed-tensors flash-attn

第三重是 transformers 的分支随模型而变,这一重最容易踩:

  • Qwen3.8-27B 需要 transformers 5.8+。
  • Kimi K3 需要 transformers 4.56.x。
  • Qwen3.8-Flash-Next(Qwen4ExpForConditionalGeneration)需要 transformers 主线的 in-tree qwen4_exp,安装方式是直接装 GitHub 源码版:pip install git+https://github.com/huggingface/transformers.git。

这三者不是「装最新的就行」,而是一个模型对应一个矩阵。同一个虚拟环境里跑 27B 再跑 K3,需要切 transformers 版本。别指望一个环境通吃。

验证要双验证,缺一不可。 第一层是驱动与硬件层:

bash
nvidia-smi

它确认三件事:卡在不在、驱动版本是什么、当前显存占用多少。第二层是 torch 能否真正看到卡:

bash
python -c "import torch; print(torch.version.cuda, torch.cuda.is_available())"

这一行打印的 torch.version.cuda 应该是 12.x;如果打出来是 13.x,说明第一重锁已经没锁住,现在回头重装还来得及。torch.cuda.is_available() 打成 False 则是驱动或环境问题,跟 AirLLM 本身无关。

预期结果:nvidia-smi 正常列出显卡,第二条命令输出 12.4 True 这类内容(具体小版本随构建而异)。 失败信号:torch.cuda.is_available() 为 False 而 nvidia-smi 正常——这是 PyTorch 与驱动版本不匹配,不要去改 AirLLM 的代码。

第二步:选目标模型,按实测表对号入座

README 给了一张实测表,把「哪个模型需要多少显存」写得很清楚。选档逻辑很简单:先看你手上是几 GB 的卡,再看这张表。

目标显存占用(README 口径)端到端实测硬件额外硬性依赖
Qwen3.8-27B(稠密 VL,Gated DeltaNet + Gated Attention)3.33GBRTX 3090transformers 5.8+
Qwen3.8-Flash-Next(125B,含约 51B n-gram 嵌入)5.95GBRTX 4090in-tree qwen4_exp;检查点约 360GB
Kimi K3(2.8T 总参,激活 1040 亿)3.72GBRTX 6000 Adacompressed-tensors、flash-attn、transformers 4.56.x
DeepSeek-V3(671B)约 12GBREADME 口径—
70B 级模型(宣传口径 headline)≤4GBREADME 口径—

Qwen3.8-27B 的 3.33GB 是最现实的入门档。理由有三条:显存占用在 4GB 卡的可承受范围内、检查点体量是几十 GB 而不是几百 GB、只需要 transformers 5.8+ 这一重依赖而不是三重。如果你是第一次跑 AirLLM,从它开始能把「版本问题」和「磁盘问题」的变量降到最少。

Kimi K3 的 3.72GB 数字很诱人,但要算另一笔账:2.8T 参数、896 个专家每 token 激活 16 个、1M token 上下文,单节点跑它的磁盘代价是 TB 级的。另外它的权重是修改版 MIT 许可(不是标准 MIT),开源日期 2026-07-27,正式发布 2026-07-17——用之前务必自己读一遍 LICENSE 原文,别按印象套。

Qwen3.8-Flash-Next 那条路线有它自己的特殊之处:n-gram 嵌入表映射到主机内存,README 说 64GB 内存的主机够用,decoder 层做流式。所以它对主内存的要求比对小显存的要求更苛刻。

第三步:首次推理,最耗时的是下载

装完环境、选完档,真正的第一道关卡不是显存,是磁盘和时间。

分层推理的前提是每一层都得在本地以文件形式存在。首次运行要先把完整权重拉到本地,量级自己看:Qwen3.8-Flash-Next 的检查点约 360GB,Kimi K3 是 TB 级。这个下载过程中断几乎是必然事件,所以有两条纪律:

  • 下载完先别动缓存目录。HF 缓存被清一次就是重新下几百 GB。把缓存目录当固定资产对待,别拿它当临时目录清理。
  • 切分阶段用 delete_original=True 回收原件。这个参数让 AirLLM 在把原始 checkpoint 切分成逐层文件之后把原件删掉。对 360GB 级别的模型,这是把磁盘占用砍掉一大半的关键动作。但它不可逆——确认切分完成、验证能加载之后再让它删,否则原件没了、切分又不全,就只能重下。

预期结果:首次推理前是一段以小时计的下载时间(TB 级模型是以天计),随后才是真正的推理。 失败信号:下载反复断在同一位置,先别怀疑网络,先看磁盘剩余空间够不够装完整 checkpoint 再加临时文件。

第四步:量显存,并且管理速度预期

跑起来之后要盯两件事:显存够不够,快不快。

显存用 nvidia-smi 盯。另开一个终端持续观察,峰值是判断「这张卡到底行不行」的唯一依据。README 那些 3.33GB / 5.95GB / 3.72GB 是官方实测口径,你的机器上跑出来的峰值不一定等于它——主板、驱动版本、同时跑的其他进程都会影响。

速度这一栏,本文不给你数字,因为官方也没给。 编一个 tokens/s 出来是最容易骗到自己的事。真正要理解的是结构性慢:AirLLM 每个 token 都要走一遍「搬层上卡、计算、搬层下卡」的循环,搬运的字节量远超计算本身。这意味着:

  • 首 token 延迟会明显高于常规模型,因为要预取和搬运;
  • 它不适合逐 token 交互式场景——人在对面等它一个字一个字吐出来,体感是「卡死了」;
  • 一次要完整输出的批量任务才是它的正确形态。

判断标准很简单:如果你能接受「按下回车,去泡杯茶,回来读结果」,AirLLM 适合;如果你需要实时对话,它就是错的选择。

第五步:接 agent 与 API,以及训练这条岔路

推理侧接起来之后有两种典型用法。一是一次性任务型工作流:把一批材料丢进去,产出一份报告或一次分析,中间不需要人来回对话。AirLLM 在这类场景的价值最明显——它让你在一张 4GB 卡上摸到的是原本够不着的模型档位。

二是包成接口给 agent 用,但要清楚这类 agent 的交互模型必须能容忍长延迟。如果 agent 的设计假设是「模型每次回复都在几百毫秒内」,接上 AirLLM 之后 agent 的行为会明显退化——不是答错,是等不起。

训练是另一条完全不同的路径,别混着理解。README 在 2026-09 更新里说明:训练走逐层流式传冻结权重、adapter 留在显存的机制。也就是说训练时显存里常驻的只是 adapter(LoRA 之类的小参数),大权重依然在磁盘上流转。README 给的两个数字是 Qwen3.8-Flash-Next(125B) 训练小于 6GB(RTX 3060 Ti)、Qwen3.8-27B 训练约 2GB @ seq 512。这条路径的逻辑与推理完全不同,工程上要单独评估。

顺带一提,如果你最后发现自己在纠结「到底该量化还是该分层流式」,可以先看 AirLLM 资源页里的显存与部署路线梳理;本地编码模型横评按任务类型挑模型、Mellum 2.1 本地部署 SOP则是一条参数规模小得多的轻量路线,都值得在动手下载 TB 级权重之前先看一眼。

五个坑点专段

坑一:版本矩阵三重锁被当成一道锁。 CUDA 12 构建、flash-attn、对应 transformers 分支是三个独立的约束,对应三个不同的失败点。torch 装成 CUDA 13 构建,flash-attn 编译失败;transformers 装成 5.8+ 去跑 K3,模型代码找不到;transformers 装成稳定版去跑 Flash-Next,qwen4_exp 这个 in-tree 模块根本不存在。这三个报错长得都不一样,但根因都在这张矩阵表上——先对表,再动手。

坑二:把首次下载当成普通模型下载。 360GB 是 Qwen3.8-Flash-Next 的量级,Kimi K3 是 TB 级。按「下载一个 7B 模型」的耐心去等,中途清理缓存或换个目录重下,都是以百 GB 计的损失。下载这一段的唯一正确姿势是:给足磁盘、给足时间、别动缓存。

坑三:以为跑得慢是装坏了。 这是最常见的误判。看到一条 token 都要等几秒,第一反应是「装错了」「版本不对」「要不要重装」——其实分层流式本来就是这个速度,官方从未承诺交互级延迟。如果你开始怀疑环境,先回头读第四步,那一步讲的就是这个。

坑四:把训练当推理的附属品。 训练路径是冻结权重流式 + adapter 留显存,推理路径是逐层流式加载权重,两者工程上不是一回事。混着理解会导致你在显存预算、加载时机、优化器状态上做出一堆错误假设。

坑五:把 K3 当成「4GB 也能跑 2.8T」的免费午餐。 显存数字是真的,代价在别处:TB 级磁盘、强制 flash-attn 的硬依赖、以及修改版 MIT 许可。许可证这一条是最容易被忽略的——标准 MIT 和修改版 MIT 在分发条款上可能不同,用之前读原文。

上手 checklist

  1. nvidia-smi 能列出目标显卡
  2. torch.version.cuda 打印 12.x,torch.cuda.is_available() 为 True
  3. flash-attn 装成功(K3 路线还需 compressed-tensors)
  4. transformers 版本已对表:27B 用 5.8+ / K3 用 4.56.x / Flash-Next 用 in-tree qwen4_exp 源码版
  5. 目标模型已按 README 实测表选定,且磁盘预留够完整 checkpoint + 临时空间
  6. 缓存目录被当作固定资产保护
  7. delete_original=True 只在切分验证通过后才启用
  8. nvidia-smi 已开着盯显存峰值
  9. 速度预期已按「结构性慢」校准,用一次性任务而非实时对话去验收
  10. 若走 K3,已读过修改版 MIT 许可原文
  11. 训练需求已单独评估,没有沿用推理路径的假设

一句话收尾:AirLLM 把「显存不够」从一道死题变成了一个取舍题——不量化、不蒸馏,逐层搬着跑,质量一点不掉,代价全在速度上。所以第一件该确认的不是显卡够不够 3.33GB,而是你的磁盘能不能先撑住那 360GB,以及你的工作流能不能接受按下回车后去泡杯茶。

常见问题

Q1: AirLLM 到底快不快?有没有 tokens/s 的官方数据? A1:没有。官方 README 给的全是显存占用数字,没有给 tokens/s,也没有给首 token 延迟。本文因此不提供任何速度数字。结构性慢的原因是确定的:每个 token 都要走「搬层上卡、计算、搬层下卡」的循环,搬运字节量远超计算量。它适合一次性任务型工作流,不适合逐 token 的低延迟交互。

Q2: 为什么 torch 必须 CUDA 12?换个版本不行吗? A2:因为 flash-attn 目前没有 CUDA 13 的预编译轮子,torch 的 CUDA 构建版本与之绑定。装成 CUDA 13 构建,flash-attn 就编不出来。验证方法是在环境里打印 torch.version.cuda,应该是 12.x;这一步要在装 flash-attn 之前做,而不是等编译失败了回头查。

Q3: K3 的许可到底是什么?能不能商用? A3:Kimi K3 的权重是修改版 MIT 许可,不是标准 MIT,具体条款以仓库与模型页的 LICENSE 原文为准,不要按标准 MIT 的印象套用。商用前请人工读一遍原文并存档。另外要算清成本:2.8T 总参、激活 1040 亿、896 专家每 token 激活 16 个、1M 上下文,单节点跑的磁盘代价是 TB 级的。

Q4: 同一台机器能同时跑 27B 和 K3 吗? A4:不能共用一个虚拟环境。两者的 transformers 分支不同——27B 需要 5.8+,K3 需要 4.56.x。跑完一个切版本再跑另一个,或者干脆建两个环境。Qwen3.8-Flash-Next 更特殊,它要的是 transformers 主线的 in-tree qwen4_exp,得装 GitHub 源码版。

Q5: 4GB 卡真的能跑 70B 或者 2.8T 吗? A5:README 的实测表给了具体口径:Qwen3.8-27B 是 3.33GB(RTX 3090 端到端实测)、Qwen3.8-Flash-Next 125B 是 5.95GB(RTX 4090)、Kimi K3 2.8T 是 3.72GB(RTX 6000 Ada)、DeepSeek-V3 671B 约 12GB。70B ≤4GB 是 README 的宣传口径 headline。这些数字都是显存占用,成立的前提是磁盘够大、时间够长、速度够慢——也就是说你必须先接受第四步那套速度预期。


参考来源

本文所有命令与数字均为 2026-10-12 官方 README 快照,未经实机压测;速度数据官方未公布,本文不提供估算值。许可证与仓库状态请以你核验当日的官方页面为准。非官方合作推广,非投资建议。

本文由 AI 辅助生成,经人工审核编辑。最后更新:2026-10-12

常见问题

AirLLM 到底快不快?有没有 tokens/s 的官方数据?
没有。官方 README 给的全是显存占用数字,没有给 tokens/s,也没有给首 token 延迟。本文因此不提供任何速度数字。结构性慢的原因是确定的:每个 token 都要走「搬层上卡、计算、搬层下卡」的循环,搬运字节量远超计算量。它适合一次性任务型工作流,不适合逐 token 的低延迟交互。
为什么 torch 必须 CUDA 12?换个版本不行吗?
因为 flash-attn 目前没有 CUDA 13 的预编译轮子,torch 的 CUDA 构建版本与之绑定。装成 CUDA 13 构建,flash-attn 就编不出来。验证方法是在环境里打印 `torch.version.cuda`,应该是 12.x;这一步要在装 flash-attn 之前做,而不是等编译失败了回头查。
K3 的许可到底是什么?能不能商用?
Kimi K3 的权重是**修改版 MIT 许可**,不是标准 MIT,具体条款以仓库与模型页的 LICENSE 原文为准,不要按标准 MIT 的印象套用。商用前请人工读一遍原文并存档。另外要算清成本:2.8T 总参、激活 1040 亿、896 专家每 token 激活 16 个、1M 上下文,单节点跑的磁盘代价是 TB 级的。
同一台机器能同时跑 27B 和 K3 吗?
不能共用一个虚拟环境。两者的 transformers 分支不同——27B 需要 5.8+,K3 需要 4.56.x。跑完一个切版本再跑另一个,或者干脆建两个环境。Qwen3.8-Flash-Next 更特殊,它要的是 transformers 主线的 in-tree qwen4_exp,得装 GitHub 源码版。
4GB 卡真的能跑 70B 或者 2.8T 吗?
README 的实测表给了具体口径:Qwen3.8-27B 是 3.33GB(RTX 3090 端到端实测)、Qwen3.8-Flash-Next 125B 是 5.95GB(RTX 4090)、Kimi K3 2.8T 是 3.72GB(RTX 6000 Ada)、DeepSeek-V3 671B 约 12GB。70B ≤4GB 是 README 的宣传口径 headline。这些数字都是显存占用,成立的前提是磁盘够大、时间够长、速度够慢——也就是说你必须先接受第四步那套速度预期。

相关文章

实战 SOP

Mellum2.1本地部署SOP:24GB卡跑通12B编程agent

Mellum2.1 本地部署 SOP(口径 2026-10-10,与开源篇/横评篇联动)。主路线 vLLM 五步:serve JetBrains/Mellum2.1-12B-A2.5B-Thinking、配 reasoning-parser qwen3(官方模型卡口径,跳过它思考串会污染答案)、基础推理验证、工具调用(可选 Hermes 模板)+131K 上下文验证、agent 冒烟测试,每步带预期结果。三大坑点先立:MTP head 未随权重发布——网上 1.6x 提速教程现在复现不了;GGUF 未放出——Ollama/LM Studio「宣布支持」不等于今天能拉,别信整合包;thinking 模型必须配 reasoning parser。硬件账:BF16 约 24GB 级(估算口径,官方未给数字),16GB 卡跑不动,24GB 卡(4090/3090)起步可行、131K 全上下文还要加 KV 余量。两种高频翻车专段:OOM 死在权重加载而非生成中(--gpu-memory-utilization 只管 KV 缓存救不了装不下的权重);首跑下载大检查点超时像进程挂死(下完保住 HF 缓存目录以后全本地)。双跑对账法联动横评篇:与 Qwen3.5-9B 同 harness 比 tokens/s 与工单解决数,性能结论以你自己仓库实测为准,不引官方图表。仓库地址:huggingface.co/JetBrains/Mellum2.1-12B-A2.5B-Thinking。

2026年10月10日9 分钟阅读
实战 SOP

ComfyUI视频生成SOP:12GB显卡跑通LTX-2.5

ComfyUI 本地视频生成 SOP,以 LTX-2.5 为实例跑通 12GB 显卡。模型文件与目录(int8_convrot 构建,非 BF16):transformer 进 models/diffusion_models/、gemma4-12b-with-proj 进 models/text_encoders/、视频与音频两个 VAE bf16 进 models/vae/、2x latent 上采样器进 models/latent_upscale_models/。坑点先列:音频 VAE 是独立文件,跳过它=无声视频;提示词增强器约 5GB 额外模型且每代多 1-2 分钟,默认关;HF gated=auto 需登录同意条款才能下载(连模型卡都要登录)。硬件底线:distilled/int8 12GB 显存起步,CUDA 12.7+、PyTorch 约 2.7、Python 3.12+(innfactory 整理口径);8GB 卡建议改走 Wan 2.2 TI2V-5B+offload。工作流三型:T2V/I2V 两阶段(生成+2x latent 上采样精修)、单阶段(快、预览用)、A2V(音频驱动)。显存策略:量化/distilled 优先、ComfyUI 原生 offload、短低分辨率生成再上采样。仓库地址:github.com/Lightricks/ComfyUI-LTXVideo、huggingface.co/Lightricks/LTX-2.5。

2026年10月10日9 分钟阅读
实战 SOP

MiMo-V2.6接入实操:三条路线从桌面端到RL训练

把 MiMo-V2.6 接进工作流的三条路线实操 SOP,按门槛递进:①MiMo Desktop 客户端(下载安装、登录订阅或自配 API Key、模型列表切 MiMo-V2.6-Pro/Flash、UltraSpeed 超高速场景、截图反馈迭代);②MiMo 开放平台 API(建应用取 Key、传模型名/消息/工具与多模态输入、Agent 任务接环境日志/测试通过率/截图/验证器反馈形成执行-检查-修正闭环、先小流量灰度验证价格延迟成功率);③本地权重(HF 集合 collections/XiaomiMiMo/mimo-v26 下载,参数量未公布、硬件门槛以模型卡为准;进阶复现 RL 训练走 XiaomiMiMo/verl 的五套环境脚本)。附常见坑速查表与上线前自查清单;API 定价以开放平台文档为准。

2026年9月27日10 分钟阅读