开源项目
开源项目

4GB显存装下2.8万亿参数:别人压缩,它搬家

AirLLM(lyogavin/airllm)的思路是反着来:不量化、不蒸馏、不剪枝,而是把权重逐层流式搬运进显存,用速度换显存。GitHub API 2026-10-12 实证:36,747 星、3,829 fork、Apache-2.0、created 2023-06-12、pushed 2026-10-12、open issues 160、主语言 Jupyter Notebook(据此更适合当研究工具而非生产组件)。仓库地址:github.com/lyogavin/airllm。README 实测口径(官方自报、本文未复现):Qwen3.8-27B 稠密 VL 跑进 3.33GB(RTX 3090 端到端,需 transformers 5.8+);Qwen3.8-Flash-Next 125B 5.95GB(RTX 4090,n-gram 表文件映射到主机、需 64GB 级内存、检查点约 360GB);Kimi K3 2.8T 3.72GB(RTX 6000 Ada,按 token 路由逐专家流式,需 compressed-tensors + flash-attn + CUDA 12 构建的 torch + transformers 4.56.x);DeepSeek-V3 671B 约 12GB;2026/09 起支持训练,125B 训练 <6GB(RTX 3060 Ti)。诚实边界:官方首页 70B ≤4GB 是未标硬件的宣传口径;README 未给 tokens/s,故本文不编速度数字;分层搬运意味着逐 token 交互场景体验有限;磁盘与主机内存才是真门槛;Kimi K3 权重是修改版 MIT(非标准 MIT),商用须读原始 LICENSE。生态定位:站内已有五款部署工具横评,本篇换的是内存策略维度。

发布于 2026年10月12日10 分钟阅读
<!-- airllm-4gb-llm-inference-resource | open-source | 4GB显存装下2.8万亿参数:别人压缩,它搬家 -->

看了一圈大模型本地部署方案,你会发现绝大多数项目在做同一件事:让模型变小。量化、剪枝、蒸馏、稀疏化,本质都是"把权重塞进显存"。有一个项目反着来。lyogavin/airllm 的路线是:不量化、不蒸馏、不剪枝,而是把模型一层一层从磁盘搬进显存,算完一层换下一层。仓库地址:github.com/lyogavin/airllm。

按 README 的说法,这套逐层流式加载(layer-wise streaming)能让 70B 模型塞进单张 4GB 显卡,连 2.8 万亿参数的 Kimi K3 也能在 4GB 以下跑起来。项目目前 36,747 星、3,829 个 fork,Apache-2.0 许可,2023 年 6 月 12 日建仓,最近一次代码推送是 2026 年 10 月 12 日(以上均为 GitHub API 于 2026-10-12 的实测值)。

这条路线有意思的地方不在于数字有多大,而在于它换了一个维度解决问题:当装不下成为唯一的硬约束时,你可以选择牺牲时间,而不是牺牲模型本身。

它到底做了什么

常规推理的默认假设是所有权重常驻显存,模型有多大显存就得买多大。量化路线要先削权重,削到装得下为止,代价落在精度上。

airllm 的假设完全不同:显存可以很小,时间可以很长。它把检查点按层切开,推理时逐层从磁盘或内存读进显存,参与完计算立刻释放,只保留当前层和必要的中间状态。显存占用因此从"模型总量"变成了"单层权重加上激活值"。层切得越细,峰值越低,搬运次数越多。

这个设计的直接推论是显存占用与模型总参数量基本脱钩。2.8 万亿参数和 270 亿参数在显存曲线上的差距,被搬运次数吃掉了。

理解这个机制时有个容易搞错的点:airllm 省下的不是"权重本身要占的地方",而是"所有权重同时占的地方"。任何时刻只有少数几层在显存里,其余躺在磁盘或主机内存上。这意味着模型的容量上限不再由显存决定,而是由磁盘和主机内存决定。买一张便宜的小显卡换来的不是便宜,而是模型规模的自由,账单转移到了别处。

同一套逻辑在 MoE 模型上收益更大。稠密模型每个 token 都要经过全部层,逐层流式的搬运量已经很大;稀疏专家模型每个 token 只激活少数专家,没被激活的专家完全不必进显存,于是"逐专家流式"能把 2.8T 的峰值压到几 GB。这解释了为什么 Kimi K3 这个月发布的模型会成为这个项目 README 上最抢眼的一行。

README 的实测数字,附带硬件前提

README 给了几个可核对的数字,全部为 README 口径,且每个都绑定了具体硬件与版本前提。数字很抓人,但脱离前提引用就没有意义:

  • 70B 模型不超过 4GB 单卡,这是首页宣传口径(headline),未标注具体硬件。
  • Qwen3.8-Flash-Next(125B,Qwen4ExpForConditionalGeneration 架构,含约 51B 的 n-gram 嵌入)5.95GB 显存,RTX 4090 端到端实测。
  • Qwen3.8-27B(稠密多模态模型,Gated DeltaNet 加 Gated Attention 混合,原生视觉)3.33GB 显存,RTX 3090 端到端实测,需要 transformers 5.8 以上。
  • Kimi K3(2.8T)3.72GB 显存,RTX 6000 Ada 端到端实测。
  • DeepSeek-V3(671B)约 12GB 显存。

训练侧 README 也有数字(2026 年 9 月更新):Qwen3.8-Flash-Next(125B)训练低于 6GB 显存,跑在 RTX 3060 Ti 上;Qwen3.8-27B 训练约 2GB 显存,序列长度 512。

请注意这些数字全部是显存,不是速度。官方没有给出每秒 token 数,本文也不编。

为什么 3.33GB 这个数能成立

Qwen3.8-27B 那一栏最值得琢磨:271 亿参数的稠密模型只占 3.33GB,显存里几乎只放得下当前层。能成立的前提有三条。

第一,权重以流式方式逐层送入,峰值只压到单层。第二,模型检查点需要预先切分落盘,这是安装环节的成本而非推理环节的开销。第三,3.33GB 是端到端实测的峰值而不是平均值,显存曲线会有锯齿。

与之配套的还有一段容易被忽略的工程要求。Qwen3.8-Flash-Next 的 n-gram 表文件被映射到主机内存,需要 64GB 级内存的机器才够用;它的检查点在磁盘上约 360GB,切分之后可以用 delete_original=True 回收原件。也就是说,显存省下来了,磁盘与主机内存的账单转手付了出去。

版本也是一道锁。Qwen3.8-27B 要求 transformers 5.8 以上;Qwen3.8-Flash-Next 依赖 transformers 的 in-tree qwen4_exp 支持,需要从源码装 transformers;Kimi K3 要求 transformers 4.56.x。三个模型三套版本要求,装错就是装不上。

Kimi K3 那一栏:2.8 万亿挤进 3.72GB

Kimi K3 是这套方案里最极端的案例。总参数 2.8 万亿,每个 token 激活约 1040 亿(896 个专家里激活 16 个),上下文 1M token。airllm 对它的处理不是逐层而是逐专家流式(per-expert streaming),因为 MoE 结构每个 token 只经过少数专家,其余上千个专家整块待在磁盘上。3.72GB 显存装下 2.8T,代价就是每个 token 都要做大量磁盘读取。

Kimi K3 自身的许可要说清楚:它采用的是修改版 MIT(modified MIT),不是标准 MIT 文本,二次分发或商用前请自行核对原始 LICENSE。环境上还有硬性要求——K3 的模型代码强制依赖 flash attention,必须装 compressed-tensors 与 flash-attn,并且需要 CUDA 12 的 torch 构建(flash-attn 没有 CUDA 13 的预编译轮子)。

跑 K3 的现实前提也要摊开讲。Kimi K3 于 2026 年 7 月发布、7 月底开放完整权重,单节点装下 2.8T 参数意味着 TB 级的磁盘代价。airllm 确实把显存门槛压到了 3.72GB,但它没有把存储门槛压到零——那句"4GB 以下跑 2.8T"描述的是显存,不是整台机器的规格。把这句话当成"一块小显卡就能摸 2.8T"的购买依据,大概率会在下载那一步就明白代价。

诚实的代价:速度是这笔交易的付款方式

上面所有数字都指向显存,没有一个指向速度,那话就必须说明白。

第一,这是用速度换显存。逐层搬运意味着每次前向都要把权重从磁盘或内存读进显存,PCIe 带宽与内存带宽直接决定 token 生成速度。在消费级硬件上,这个速度的体感通常在分钟到小时量级,而不是交互式对话的体感。

第二,官方数字是显存,不是速度。README 里没有一个每秒 token 数,第三方也没有同口径公开跑分,所以任何具体的吞吐说法都是自行推算,不是实测。

第三,生态坑不少。GitHub API 显示该项目当前有 160 个 open issues。对一个 36,747 星、仍在持续推送的项目来说这个数量偏高,说明版本矩阵、模型适配与硬件组合的分叉远比一页文档复杂,装之前要有心理准备。

值得单独说一句主语言字段:这个仓库的主语言被 GitHub 标为 Jupyter Notebook,而不是 Python 或 C++。对一个承担重计算任务的推理框架来说,这通常意味着核心实现收在 notebook 形态的示例与文档里,而不是一个打磨过的安装包。它与 Ollama、llama.cpp 那种工程化程度不在一个量级,把它当研究工具而非生产组件更合适。

第四,磁盘是隐形门槛。Qwen3.8-Flash-Next 检查点约 360GB,Kimi K3 是 2.8T 级别权重,TB 级磁盘是现实前提。"4GB 显存"这个数字听着轻巧,背后的存储代价并不轻。

训练支持:冻结权重也流式

2026 年 9 月的更新把同一套思路搬到了训练侧:冻结权重照旧流式送入,只把可训练的 adapter 留在显存里。README 给出的数字是 125B 模型训练低于 6GB 显存(RTX 3060 Ti),27B 模型约 2GB 显存(序列长度 512)。

这意味着全参微调的硬件门槛被压到了很低的水平,但边界要说清楚:这条路只适用于 adapter 或类似小可训练部分的场景,不是把 2.8T 全参数塞进 6GB 显存做全量更新。冻结权重仍然要从磁盘流式读进来,I/O 压力依旧存在。

它在生态里的位置

需要和站内已有内容划清界限。我们此前写过一篇本地大模型部署工具横评(本地大模型部署工具横评),比的是 Ollama、LM Studio、vLLM、llama.cpp、GPT4All 五款部署工具之间的取舍;airllm 换的是另一层维度——它讨论的是显存装不下时该用哪种内存策略,而不是该选哪个工具。两篇可以连着读。

放回整个策略图谱里,airllm 处在"显存最小、速度最慢"的那一端。另一端是把模型压到装得下为止,GGUF 量化路线生态最成熟,Ollama 的安装与避坑见 Ollama 本地部署大模型 SOP。中间还有几条路:CPU offload 混合、部分层留显存部分落内存,速度取决于 PCIe 与内存带宽;蒸馏换小模型,放弃旗舰能力;或者干脆走远程 API,显存问题根本不存在——这条路在 Qwen3.8-Flash-Next 三层部署 SOP 里有托管 API 一层的展开。

如果你的目标不是"跑起来看看",而是一个每天都在用的编码助手,那还得看模型本身水平,选型参考 本地编程模型横评;想从特定体量起步,Mellum 2.1 本地部署 SOP 与 灵播世界小模型本地部署 SOP 覆盖了两种体量的落地路径。

谁适合用它

三类人适合。第一,想在 4GB 卡上摸一摸平时根本装不下的模型,只需跑一次看看输出,比如评估超大模型的推理质量,或者做一次性长文处理。第二,做模型可跑性验证,需要在受限硬件上确认某个 checkpoint 能不能加载、能不能出字。第三,研究逐层流式本身,这套实现是很好的参考代码。

两类人不适合:需要逐 token 交互的场景,比如实时对话、交互式编码补全;以及磁盘和主机内存都不宽裕的机器——airllm 把压力从显存挪到了存储,没有凭空省下资源,只是换了个地方付账。

还有一个时间维度的门槛值得提前算:首次部署要下载并切分检查点,Qwen3.8-27B 这一档还算温和,Qwen3.8-Flash-Next 的约 360GB 和 Kimi K3 的 TB 级就是以小时计的下载量,中途断流的概率不低。动手前先把缓存目录和断点续传准备好,比装完库再等一晚上更实际。

FAQ

Q1: airllm 是量化方案吗?

不是。README 明确的定位是不量化、不蒸馏、不剪枝,权重以原始精度从磁盘逐层流式加载进显存。显存数字比量化方案好看的原因是模型本身没被压缩,代价全部转移到了时间上。

Q2: 官方给出的速度是多少?

官方没有给。README 里的数字全是显存占用(3.33GB、5.95GB、3.72GB、约 12GB),训练侧给的也是显存而非吞吐。第三方同样没有同口径的公开每秒 token 跑分,所以任何具体吞吐都是自行推算,不是实测。

Q3: Kimi K3 可以用 airllm 跑吗?

可以,README 记录了 RTX 6000 Ada 上 3.72GB 显存的端到端实测,方式是按 token 路由逐专家流式。但要注意 Kimi K3 自身采用修改版 MIT 许可(非标准 MIT),且强制要求 flash attention,环境需要 CUDA 12 的 torch 构建与 transformers 4.56.x。

Q4: 为什么我按 README 装完还是跑不起来?

最高频的原因是版本矩阵不匹配:Qwen3.8-27B 需要 transformers 5.8 以上,Qwen3.8-Flash-Next 需要 transformers 的 in-tree qwen4_exp(要装源码版),Kimi K3 需要 4.56.x 且必须装 compressed-tensors 与 flash-attn。其次是磁盘与主机内存:检查点以百 GB 到 TB 计,n-gram 表映射要求 64GB 级主机内存。

Q5: 有了 airllm 还需要 Ollama 这类工具吗?

两条路线解决的是不同问题。airllm 保证模型完整、不损失精度,代价是速度;GGUF 量化路线(Ollama、llama.cpp)压权重换显存,速度可用但质量有损,生态也最成熟。按场景选:偶发跑一次超大模型用 airllm,日常交互用量化方案。

结语airllm 证明了一件事:显存不够时,第三条路是"慢"。它把大模型从"必须常驻显存"变成"逐层轮流常驻",让参数总量与显存需求基本脱钩。项目仍在活跃维护,但 160 个 open issues 和随模型而变的版本要求也说明这条路的工程代价是真实的。真要试,从 3.33GB 的 Qwen3.8-27B 入门比从 2.8T 入门现实得多。

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

常见问题

airllm 是量化方案吗?
不是。README 明确的定位是不量化、不蒸馏、不剪枝,权重以原始精度从磁盘逐层流式加载进显存。显存数字比量化方案好看的原因是模型本身没被压缩,代价全部转移到了时间上。
官方给出的速度是多少?
官方没有给。README 里的数字全是显存占用(3.33GB、5.95GB、3.72GB、约 12GB),训练侧给的也是显存而非吞吐。第三方同样没有同口径的公开每秒 token 跑分,所以任何具体吞吐都是自行推算,不是实测。
Kimi K3 可以用 airllm 跑吗?
可以,README 记录了 RTX 6000 Ada 上 3.72GB 显存的端到端实测,方式是按 token 路由逐专家流式。但要注意 Kimi K3 自身采用修改版 MIT 许可(非标准 MIT),且强制要求 flash attention,环境需要 CUDA 12 的 torch 构建与 transformers 4.56.x。
为什么我按 README 装完还是跑不起来?
最高频的原因是版本矩阵不匹配:Qwen3.8-27B 需要 transformers 5.8 以上,Qwen3.8-Flash-Next 需要 transformers 的 in-tree qwen4_exp(要装源码版),Kimi K3 需要 4.56.x 且必须装 compressed-tensors 与 flash-attn。其次是磁盘与主机内存:检查点以百 GB 到 TB 计,n-gram 表映射要求 64GB 级主机内存。
有了 airllm 还需要 Ollama 这类工具吗?
两条路线解决的是不同问题。airllm 保证模型完整、不损失精度,代价是速度;GGUF 量化路线(Ollama、llama.cpp)压权重换显存,速度可用但质量有损,生态也最成熟。按场景选:偶发跑一次超大模型用 airllm,日常交互用量化方案。

相关文章

开源项目

2%到47%:JetBrains用RL把补丁模型练成agent

JetBrains 2026-10-08 上架 Mellum2.1(HF 实核经 hf-mirror:ungated、Apache 2.0、发布初期 198 下载/77 likes)。仓库地址:huggingface.co/JetBrains/Mellum2.1-12B-A2.5B-Thinking。架构与 6 月的 Mellum2 完全同构(12B MoE/2.5B 激活/131K 上下文),卖的是训练配方:RL 从收尾环节变训练主体,数千环境数百万沙盒 run,新增数学/竞赛/科学/工具/软工任务并过滤源数据。JetBrains 自测(Pi harness v0.73.1、thinking mode、第三方未复跑):SWE-bench Verified 2.0 升至 47.0,但 Qwen3.5-9B 为 50.0——真实仓库长任务 Qwen 胜,LiveCodeBench v6 82.0 与 BFCL v4 62.3 是 Mellum 胜(各引各表,分数多以图表呈现无可核对原始数字)。速度:H200 重负载吞吐「接近 Qwen3.5-9B 两倍」为官方口径;单请求 1.6x 依赖 MTP 投机解码——MTP head 未随权重发布(coming soon),现在买不到;GGUF(llama.cpp/Ollama/LM Studio)同为 coming soon。部署:vLLM 即日支持(reasoning-parser qwen3),BF16 权重约 24GB 级(估算口径),无官方托管 API。定位:固定 GPU 预算跑 agent 密度+数据不出域,不是全面超越 Qwen。

2026年10月10日10 分钟阅读
开源项目

嵌入模型开源:谷歌EmbeddingGemma 2把191MB塞进手机

谷歌 2026-10-06 发布开源嵌入模型 EmbeddingGemma 2(HF 仓 google/embeddinggemma-2,API 实核:ungated、license 标 apache-2.0、21,148 下载)。Gemma 4 架构:270M 文本/代码骨干 + 170M 视觉 + 300M 音频编码器 = 全量 740M,同一 checkpoint 四档加载(270M/440M/570M/740M),文本、代码、图像、音频、视频统一进 768 维向量空间,上下文 8192(一代 4 倍)。端侧账本(官方口径):Pixel 11 Pro 量化后纯文本约 191MB、全模态约 567MB;权重 1.49GB bfloat16。基准全是谷歌自报(无独立评测、无论文、MTEB 提交未获接受):MTEB Code 68.76 升至 78.68 是唯一显著提升,多语言文本较一代仅 +0.21,英文略降——卖点不是「处处更强」而是「同等文本质量+新模态+更小部署」。MRL 套娃 768 维可裁至 128,向量存储最多省 6 倍。许可核真如实写:Apache 2.0 声明在 metadata 且 ungated(一代 gated+Gemma 许可,实质放开),但仓库根目录无 LICENSE 文件、模型卡仍保留 Gemma Prohibited Use Policy 一行。生态:sentence-transformers 6.1.0+、transformers 5.19.0、Ollama、llama.cpp、MLX、Qdrant;一代累计超 2000 万下载。

2026年10月9日10 分钟阅读
开源项目

B站下场做翻译模型:150种语言,35B只激活3B

B站 Index LLM 团队 2026-09-30 开源 Index-Translate 翻译模型家族(HF/ModelScope 权重,Apache-2.0):2B/9B/35B-A3B-preview 三档文本模型,基于 Qwen3.5,覆盖 150 种语言(官方自报口径),35B 总参仅激活约 3B,262,144 token 上下文。三分支各管一摊:Index-Echo 配音保留说话人音色(中↔英/西/日);Index-Homura 音节数控制(9B 在 SandGlass 测试 81.92% 落在目标 ±10% 内,配音对轨用);Index-NativeLong(又称 Index-Nailong)长文档跨段一致(3.2 万 token 幻想文本中人名/王衔双关全程一致,逐块翻译会漂移)。受控翻译 instTrans:硬约束=术语表强制(如 碳纤维:carbon fiber)+ JSON/CSV/代码/占位符结构保留;软约束=语气/领域消歧(plant→工厂)/跨句一致/LaTeX 保留。本地部署一行命令:官方 GGUF(Q4_K_M 21.71GB)+ llama.cpp serve,另附浏览器扩展与视频配音 pipeline。诚实点:全部分数官方自报、暂无第三方独立复现(FLORES COMET-22 0.8794、WMT26 Judge 76.76、低资源 off-target 2.4%),且同一官方表里 DeepSeek-V4.1-Flash 的 WMT26 Judge 83.55 更高——不是全表第一。

2026年10月7日10 分钟阅读