一句话结论:Kimi K3 这套 2.78 万亿参数的开放权重模型,用一个 176 KB 的纯 C 引擎就能在单台 CPU 机器上跑起来,最低 8.24 GB 内存即可出字,但每个 token 要等 26 到 33 秒,速度不是它的卖点,可运行这件事本身才是。
把 2.78 万亿参数塞进一台没有独立显卡的机器,过去听起来像句玩笑话。Kimi K3 开放权重之后,社区把这件事做到了:纯 C99 写成、没有任何 BLAS 和 PyTorch 依赖、编译产物 176 KB,峰值内存 8.24 GB,在一台 124 核的 AMD EPYC 工作站上把 1.56 TB 的权重从磁盘流式读出来,一个 token 一个 token 地生成,结果与顶层配置逐字节相同。
这件事值得单独写一篇,原因不在于它快。恰恰相反,它慢得离谱,笔记本配置下每 token 26.5 秒,8 个 token 花了 261.5 秒。它的价值在于把一个此前被算力门槛挡在门外的模型,变成了一件普通开发者可以在自己机器上动手验证的事情。
2.78 万亿参数到底有多大
先看数字本身。Kimi K3 是月之暗面 2026 年 7 月 27 日开放权重的模型,官方仓库在 GitHub 拿到 9087 个 star,Hugging Face 上累计下载 78 万次。它是首个达到 3 万亿参数级别的开放模型,权重以 MXFP4 格式分发,激活走 MXFP8,属于量化感知训练而不是训练后量化。
模型结构的骨架是这样的:
| 参数项 | 数值 | 说明 |
|---|---|---|
| 总参数量 | 2.78 万亿 | 官方口径 2.8T,仓库统计 2780.0 B |
| 单 token 激活参数 | 1040 亿 | 占总量 3.7%,其余 96.3% 处于休眠 |
| 层数 | 93 | 第 0 层为稠密层,其余 92 层走 MoE 路由 |
| 注意力结构 | 69 层 KDA + 24 层 Gated MLA | 96 个注意力头,隐藏维度 7168 |
| 路由专家数 | 896 选 16 | 另有 2 个每 token 都跑的共享专家 |
| 潜在 MoE 维度 | 3584 | 专家在 3584 维空间运算,不是 7168 维残差 |
| 上下文长度 | 1048576 | 官方标称 100 万 token |
| 权重体积 | 1.56 TB | 96 个 safetensors 分片 |
| 视觉编码器 | 401M | MoonViT-V2,从零用 next-token prediction 训练 |
参数分布解释了这套部署玩法。MoE 路由专家一共 82432 个,占 2722.7 B,也就是 97.94%。KDA 注意力 30.6 B,共享专家 12.2 B,MLA 注意力 5.6 B,潜在 MoE 的上下投影 4.7 B,嵌入层加输出头 2.4 B,其余零碎 1.8 B。
换算成字节更直观。1.56 TB 的权重里有 1.447 TB 是路由专家,占 93%。每个路由专家的体积恰好是 17547264 字节,来自 33030144 个参数按每 nibble 半个字节再加 32 分之一字节的缩放因子计算。剩下 7% 是注意力投影、路由器、归一化和嵌入表,总共 56743648000 个参数,bf16 下 113.49 GB,其中 108.81 GB 是逐层稠密主干,4.70 GB 是嵌入表与输出头。
93% 的权重在任何一个 token 上都不会被用到。这是整套部署策略的起点。
从 5560 GB 压到 8.24 GB 的四次收缩
社区项目 kimi-k3-in-c 把整个过程拆成四级,每一级都靠前一级的前提成立。
| 层级 | 内存 | 靠什么做到 |
|---|---|---|
| 全部参数 bf16 | 5560 GB | 起点,等于把 2.78 万亿参数按 2 字节装 |
| 官方发布的检查点 | 1560 GB | 路由专家原生 MXFP4,每权重半字节 |
| 路由后必须常驻的部分 | 113.49 GB | 每 token 只激活 16 个专家,其余永不上载 |
| 主干也流式之后 | 8.24 GB | 稠密主干按层流式读取,只保留少量常驻层 |
端到端这是 675 倍的缩减,相对官方发布的检查点是 189 倍。没有任何近似,没有丢弃任何权重,输出的字节完全一致。
关键在第三级到第四级之间的那句话:常驻部分仍有 113.49 GB,而普通家用主板装不下。解决办法是把主干也拆开。引擎把 93 层里的部分层固定在内存里当前缀,其余层用一个环形缓冲区从磁盘读入。环形槽位默认 1 个,也就是同一时刻有一层在计算、另一层在预读,多加一个槽位就多占一份内存,但预算不够时它会退让。
实现上,96 个 safetensors 分片被当成目录而非数据集。497220 个张量在 0.27 秒内完成索引,之后引擎永远不读它不需要的分片。索引是手写 JSON 扫描,没有引入 JSON 库,因为分片头部可能有几十 MB,而真正需要的字段每个张量只有四个。
内存档位与速度的对应关系
这是全篇最实用的一张表。同一台机器(124 核双路 EPYC 7763,228 GB 内存,3.2 TB NVMe),只改内存配置,每 token 耗时差别巨大。
| 机器档位 | 可用内存 | 每 token 耗时 | 机制 |
|---|---|---|---|
| 普通笔记本 | 8 GB | 26.5 秒 | 模型每一步都从磁盘流过 |
| 高性能笔记本 | 32 GB | 24.2 秒 | 部分权重已驻留内存 |
| 台式机 | 64 GB | 19.8 秒 | 更多权重进入内存 |
| 重型工作站 | 128 GB 以上 | 5.6 秒 | 模型整体装进内存,磁盘等待消失 |
引擎内置了 6 个预设,每个预设同时设定主干预算和路由专家 LRU 缓存预算:
| 预设 | 主干 / 专家缓存 | 峰值 RSS | 说明 |
|---|---|---|---|
| ultra | 2.50 / 0.31 GB | 约 3 GB | 8 GB 机器的生存路径,不追求速度 |
| laptop | 3.00 / 1.00 GB | 8.2 GB | 普通路径的下限 |
| desktop | 16.00 / 10.00 GB | 31.9 GB | 常驻层开始起作用 |
| workstation | 60.00 / 30.00 GB | 95.5 GB | 专家缓存开始有收益 |
| server | 110.00 / 13.00 GB | 约 128 GB | 钉住 93 层里的 90 层,最快 |
| max | 110.00 / 109.00 GB | 约 224 GB | 比 server 不更快 |
有两处反直觉的地方。一是 max 预设并不比 server 快,多花的 96 GB 落在噪声底线之内。二是分配顺序比总容量更值钱,固定 128 GB 预算下先把预算给主干、而不是给专家缓存,效果差 1.69 倍。另外预设需要比峰值 RSS 再多一点的空闲内存,引擎拒绝任何占用超过可用内存 95% 的计划。
磁盘那一侧的读数更反常识。这台机器上用 O_DIRECT 直读能跑到 3.2 GB/s,走页缓存反而只有 2.3 GB/s,引擎实际跑出的主干带宽是 5373 到 6064 MB/s。整个 I/O 设计就是围绕这个结论定下来的,网络盘和机械盘在这个模型面前都不成立,trunk 必须放本地 NVMe。
三条路线怎么选
Kimi K3 的本地部署目前有四种取向,各有明确的适用边界。
| 路线 | 代表项目 | 最低门槛 | 现状 |
|---|---|---|---|
| 纯 CPU 流式 | kimi-k3-in-c | 8 GB 内存 + 1.56 TB 磁盘 | 12146 star,Apache-2.0,输出逐字节一致 |
| llama.cpp 量化 | kimi-k3-gguf-prune 等社区分支 | 数百 GB 内存 | 1bit 量化下 0.85 token/s,3bit 约 0.75 token/s |
| Apple Silicon | kimi-k3-mlx | 约 870 GB 内存 | 现存最大 Apple Silicon 机器 512 GB 装不下 |
| 官方权重 + 推理框架 | HF moonshotai/Kimi-K3 | GPU 集群 | MoonshotAI 仓库 9087 star,权重 1.56 TB |
那条 llama.cpp 路线走的是另一条思路。有人用第三代至强可扩展处理器加已经停产的傲腾持久内存 200 系列,单条 512 GB,让 llama.cpp 把傲腾设成 App Direct 模式直接当内存读写,1bit 量化下实测 0.85 token/s,关掉直接访问模式最高 1.5 token/s。傲腾单条功耗上限 18 瓦,介质温度到 83 摄氏度开始降频,85 摄氏度触发保护性关机,而英伟达早在 2022 年第二季度就启动过这条产品线的收缩,当季计入 5.59 亿美元库存减值。拿停产的内存当主存,这条路能跑通但几乎没有可复制性。
对大多数读者来说,纯 CPU 流式这条路最值得动手,因为它的前提条件只是一块够大的硬盘。
上手时的几个硬门槛
先说磁盘。生成阶段确实需要完整的 1.56 TB,但开发阶段不需要。download-model.sh 支持只拉取前 N 层需要的分片,N 等于 1 时约 7 GB,N 等于 8 时约 125 GB。要注意的是层前缀不是模型本身,它不会产出模型的输出,只是用来打通流程。
再说速度杠杆。长文本生成必须加 –incremental,不加的话每一步都会重跑整个前缀,复杂度是平方级;加上之后第一步付提示词的代价,后续每步成本固定。思考开关是另一个大杠杆,chat 模式默认 thinking_effort 等于 max,实测一次五词的回答里 150 个 token 有 119 个是思考块,关掉思考几乎能砍掉一半输出量。
上下文成本要提前算。每个位置约 2.37 MB 的 KV cache,引擎在启动前就把这笔账算出来,不会在跑了一小时之后才失败。提示词上限 32768 token,生成上限 4096 token,这是引擎本身的限制。
最后是退出码,脚本可以直接依赖:0 成功,1 张量绑定或前向失败,2 参数错误,3 运行完成但结果文件没写成,4 运行完成但至少一个路由专家加载失败所以输出的 token 不可信,5 被 Ctrl-C 中断。退出码 4 是特意和 1 分开的,进程本身成功退出,但那一轮生成的数字已经不可信,这正是它存在的意义。
关于内存开销的换算,可以参考站内那篇本地大模型显存怎么算的实测,按 8B 每 1K 上下文 144 MB 推算,K3 这个量级需要的不是显存管理技巧而是不同的架构假设。K3 官方权重与开源的三项 Infra 技术 MoonEP、FlashKDA、AgentEnv 已经开放,其中 FlashKDA 在 H20 上比 flash-linear-attention 基线 prefill 快 1.72 到 2.22 倍,可以直接作为替换后端。Kimi 在自家产品化方面的进展,本文提到的另一个侧面是站内那篇 Kimi 游戏开发方案,20 小时无人干预跑完 330 万三角面场景。
常见问题
8 GB 内存真的能跑 2.78 万亿参数吗
能,但不是因为参数变小了,而是因为绝大多数参数永远不会被读进内存。K3 每个 token 只激活 896 个路由专家中的 16 个,占总量 3.7%,剩下 96.3% 留在磁盘上按需读取。8.24 GB 装的是主干里钉住的那部分加上路由专家的缓存,不是完整模型。代价是每个 token 要 26.5 秒。
普通玩家应该从哪条路线开始
先别碰 1.56 TB。用 download-model.sh 只拉前几层跑通流程,几 GB 到 125 GB 就够验证链路。真正要产出可用输出再考虑完整权重,前提是有一块能持续跑到 5 GB/s 的 NVMe,网络盘在这个量级上会慢到没有实用价值。
官方权重和这些社区实现,选哪个
看你要验证什么。要复现官方基准分数,用官方权重加官方评测框架;要证明它能跑在自己机器上,用社区的纯 CPU 引擎;要长期做生产部署,走推理框架路线并配 GPU。官方仓库的评测表覆盖 GPQA Diamond 93.5、Terminal-Bench 2.1 88.3、BrowseComp 91.2,与 Claude Fable 5、GPT-5.6 Sol 的对比数据在仓库 README 里完整列出,但那些数字是在 max 思考强度下取得的,跟本地 26 秒一个 token 的运行体验是两回事。
小结
Kimi K3 的本地部署给出的是一个清晰的反差。模型本身是 2.78 万亿参数、1.56 TB 权重、前沿级智能水平,看上去与消费级硬件毫无关系;而实际的工程路径是把它拆成 93% 永不加载的路由专家和 7% 需要流式读取的主干,再用 176 KB 的 C 代码把这两部分调度起来。675 倍的内存缩减没有牺牲任何精度,代价全部落在时间上。
对想了解 MoE 部署结构的人,这套实现是难得的可读样本,每一步优化都写明了代价。对只想用模型的人,它同时提醒了一件事:把大模型塞进小机器从来不是靠量化单一手段完成的,而是靠对「哪些参数在什么时候会被用到」的持续追问。
相关阅读
- 本地大模型显存怎么算:8B 每 1K 上下文 144MB
- Edge0-145B 怎么跑:29GB 内存装下 1450 亿参数的部署实测
- LongCat-2.5 开源:1.6T 参数 MIT 协议,W4A4 量化怎么跑
- Kimi 游戏开发方案:20 小时无人干预与 330 万三角面场景
- llama.cpp 投机解码实测:一个参数让代码快 2.2 倍
延伸阅读
- 小米MiMo-V2.6开源,75万条轨迹练出72分超越GPT-61 月前
- NVIDIA Dory 1.0 4B 怎么跑:3.7GB GGUF 四档算力实测1 周前
- 月之暗面IPO前夜起纠纷:被指转移技术遭老股东索赔,涉案金额或超7亿美元1 月前
- Kimi Agent Swarm是什么:100个子AI并行工作解析1 月前
继续读
往下这几篇值得接着看:
- Memorilla 记忆压缩怎么用:16 个 token 装下整本文档2026-11-16
- llama.cpp 投机解码实测:一个参数让代码快 2.2 倍2026-11-16
- Edge0-145B 怎么跑:29GB 内存装下 1450 亿参数的部署实测2026-11-16
