跳到主要内容
返回时间线
lyogavin/airllm来源发表:

AirLLM 让 2.8T 的 Kimi K3 跑在单卡 3.72GB 显存上,靠逐层流式加载而非量化

核心概要

AirLLM 把大模型推理的显存占用压到单卡几 GB 量级:Kimi K3(2.8T)在单张 RTX 6000 Ada 上实测端到端占用 3.72GB 显存,Qwen3.8-Flash-Next(125B)在单张 RTX 4090 上为 5.95GB,DeepSeek-V3(671B)约 12GB。它不依赖量化、蒸馏或剪枝,而是把权重按层流式加载,MoE 模型只加载每个 token 实际路由到的专家。项目还扩展到训练:冻结权重逐层流入,适配器留在 GPU 上,125B 模型可在 6GB 显存下训练。

AI-generated editorial illustration: lyogavin / airllm

深度剖析

大模型推理的显存门槛被压到单卡几 GB:2.8T 参数的 Kimi K3 在单张 RTX 6000 Ada 上端到端实测占用 3.72GB 显存,125B 的 Qwen3.8-Flash-Next 在单张 RTX 4090 上为 5.95GB。 AirLLM 明确不走量化、蒸馏或剪枝这三条缩小权重的路,而是把权重留在卡外、按需搬入,从而让 70B 级模型在单张 4GB 显卡上运行。 这些数字是各模型在指定单卡上端到端测得的显存占用,分别对应 K3、Qwen3.8-Flash-Next 与 Qwen3.8-27B(后者在 RTX 3090 上为 3.33GB)三个独立配置。

做法是把模型按层切开,推理时一次只把当前层权重流式送进显存,算完即换下一层。 对混合专家模型,逐专家流式加载只搬运每个 token 实际路由到的专家,而不是整层全部专家。 Kimi K3 的 3.72GB 就是在这一逐专家流式机制下于单张 RTX 6000 Ada 上测得的;Qwen3.8-Flash-Next 的约 51B n-gram 嵌入表则以文件映射方式留在主机内存,64GB 内存的机器即可,解码层照常流式加载。

同一套流式思路也用于训练:冻结的权重逐层流过,可训练的适配器常驻 GPU。 训练支持是新增能力,125B 的 Qwen3.8-Flash-Next 因此可以在小显存卡上训练,而不只是推理。 125B 的 Qwen3.8-Flash-Next 在 RTX 3060 Ti 上以低于 6GB 显存训练,Qwen3.8-27B 在序列长度 512 时约 2GB。

启示与展望

已展示的范围是若干具体模型在指定单卡上的端到端显存占用,包括 K3 在 RTX 6000 Ada 上的 3.72GB、Qwen3.8-Flash-Next 在 RTX 4090 上的 5.95GB 和 Qwen3.8-27B 在 RTX 3090 上的 3.33GB;训练侧则是 125B 模型在 RTX 3060 Ti 上低于 6GB。

Kimi K3 有额外环境要求:模型代码强制使用 flash attention,需要 CUDA 12 版 torch(CUDA 13 尚无预编译 flash-attn 轮子),且 transformers 须为 4.56.x,因为其远程代码在 5.x 上无法加载;Qwen3.8-Flash-Next 需要带 qwen4_exp 的 transformers 构建和约 360GB 检查点磁盘。