
7 月 16 日,月之暗面(Moonshot AI)放出了 Kimi K3。在 Artificial Analysis 智能指数榜上,它拿了 57 分;身前是 Claude Fable 5 的 60 分、GPT-5.6 Sol 的 59 分;同属开源权重的 GLM-5.2 则停在 51 分。
再把这差距读一遍:就差 3 分。而且在好些榜单上,K3 非但没落后,反而压了上去。
前沿模型,早就不只藏在某个 API 钥匙后面了。
可它终究还是被另一样东西挡着:硬件。Kimi K3 有 2.8 万亿个参数,放出来的权重文件足有 1.56 TB。按常规路子加载,怎么也得将近四十张 H200。那是一整个机房,哪是个人玩得转的。
所以真正值得关心的,是你到底能不能亲手把它跑起来。
这事儿,真有人在一块显卡上做成了。显存只吃了 3.72GB。
没走蒸馏,也没砍参数。就是那个完整的 2.8 万亿参数权重,实打实地往外蹦真 token。
下面说怎么做到的。
两年前,就有人用分层推理(layer-wise inference)这套思路,在 4GB 显卡上跑通了 700 亿参数的模型。道理很简单,就是分而治之:transformer 一层一层地算,每层接着上一层的输出。所以你永远不需要把所有层同时塞进显存。从硬盘读一层、算完、释放、再读下一层。放到 700 亿模型上,原本 130GB 的难题,就这么压成了 1.6GB。
这套技术正是 AirLLM 的根基,两年下来一路好使:4050 亿参数的 Llama、6710 亿参数的 DeepSeek-V3,都不在话下。
可到了 Kimi K3 这儿,它失灵了。
根子出在 K3 的构造上。它是个专家混合(Mixture-of-Experts,MoE)模型,而且极端到了极点,93 层,每层塞着 896 个独立专家网络。你要是按整层流式读取,等于把 896 个专家一次性全搬进显存。
算笔账就明白了。K3 单层存盘约 17GB,展开到能算了差不多得 56GB。手里的卡只有 48GB。书里最老的那一招,一次一层,连一层都装不下了。
专家混合模型有个特点:每层 896 个专家,可一个 token 用不上这么多。
K3 给每个 token 只路由其中的 16 个。这正是这套架构的精髓:2.8 万亿参数摆在那儿,可对任意一个 token 真正激活的,只有约 1040 亿个。剩下那 98%,对这个 token 来说纯属累赘。
所以,别再按层加载了。改按专家加载。
AirLLM 不在一层上挂一个钩子了,改为给每一个专家单独挂钩,整模型一共 82432 个。路由器点名某个专家,它的权重才被读进显存;算完,立刻踢出去。那个 token 没点到的 880 个专家,从头到尾都不会从硬盘上读一下。
差距远不止一星半点:
这招就藏在这儿。分而治之,比从前多钻了一层。上一代 AirLLM 问的是「我现在在第几层」,这一代问的是「路由器到底挑了哪个专家」。
K3 的专家权重用的是 MXFP4,一种 4-bit 格式。而处理这种格式的开源库,习惯在跑模型之前先把权重解压成全精度。
放到 K3 上,这干脆要命。每个专家都提前解压,单层就从 17GB 一路膨胀到 56GB,直接顶破显卡显存的天花板。
于是 AirLLM 把权重能压多久就压多久。那串 4-bit 字节从硬盘跨过 PCIe 总线时,始终是压缩状态,直到上了 GPU、而且是一次一个专家,才就地展开。
一招换来两样好处:峰值显存再也碰不到「展开后的整层」,过总线的数据量直接砍掉四分之三。当整条管线的瓶颈就在硬盘吞吐时,这一省,可是一笔大账。
还有个事先没料到的问题。
AirLLM 预处理权重时会做一次重分片(re-sharding):每层一个文件,这样加载某层时只读这一层,别的什么都不碰。整条管线里,硬盘读取是最慢的一环,所以这步格外关键。
可重分片要写一份副本。原本 1.56TB,再加上切分出来的副本 1.56TB,合起来 3.12TB,可硬盘只有 3TB。差那么 50GB,就到绝路了。
转机藏在月之暗面打包权重的细节里。K3 的分片出奇地「干净」:每个文件只装一个模块,什么杂料都不混。也就是说,重分片这一步其实没什么好重新摆布的。
于是 AirLLM 一旦识别出这种情况,就不再复制了,改走硬链接(hardlink)。切分出来的层文件,直接指向原始的那些字节。磁盘占用稳稳停在 1.56TB,原本要拷上几个小时的准备步骤,几秒钟就完事。
实测是在单张 RTX 6000 Ada(48GB)上做的,对着那个完整的 1.56TB 权重,端到端跑起来,实打实地往外吐 token。
把实测结果摊开讲,最后那项速度我得跟你说实话,因为它就是这套路子的真实代价。
它不快。每个 token 差不多要五分钟。瓶颈不在算力,在硬盘。每个 token 都得在 1.56TB 的权重里走上一遭,再巧妙的显存管理,也改变不了 SSD 读取的速度。
所以它干不了聊天机器人那种实时活儿。它擅长的,恰恰是当年 700 亿模型擅长的那种场合:延迟无所谓、质量才要紧的离线活儿。批处理分析、文档处理、掂量 K3 值不值得真去租硬件、研究一个你本来够不着的尖端模型、在如今看得见摸得着的架构上做微调实验。
还有一层更大的意思。3.72GB 算不上「一张大显卡」,顶多是一台笔记本的体量。「尖端开源模型」和「一个学生手里的硬件」之间的鸿沟,从此只关乎耐心,不再关乎钞票。
pip install airllm compressed-tensors flash-attn
from airllm import AutoModel
model = AutoModel.from_pretrained("moonshotai/Kimi-K3")
input_text = ['What is the capital of United States?']
input_tokens = model.tokenizer(input_text,
return_tensors="pt",
return_attention_mask=False,
truncation=True,
max_length=128,
padding=False)
generation_output = model.generate(
input_tokens['input_ids'].cuda(),
max_new_tokens=20,
use_cache=True,
return_dict_in_generate=True)
print(model.tokenizer.decode(generation_output.sequences[0]))就这么几行,齐活。AirLLM 会自己认出架构,首次运行就做好重分片,专家流式加载也自动配好,不用你多嘴。
跑 K3 有三个硬性前提,一个都绕不开:
另外,你还得备一块够快的硬盘,外加大约 1.6TB 空闲空间。硬盘速度,直接决定了一个 token 要等多久。
两年来,本地大模型的剧本一直是同一个模样:开源模型越来越强,能跑它们的硬件却始终遥不可及,于是大多数人只好去租 API,还得祈祷人家的条款别变。
Kimi K3 让这出戏有了看头:它货真价实地站到了前沿,离最强的闭源系统只差 3 分,在智能体写代码上甚至反超,而且权重是公开的。
谁握着权重,谁就定规矩。离线跑、自己微调、亲手拆解、琢磨它为什么好使。
这事儿,从前得机房才办得到。今天,一块显卡加上一点耐心就够了。
AirLLM 采用 MIT 许可开源。
旧时王谢堂前燕,飞入寻常百姓家。尖端模型蹲在笔记本里的那天,算是真来了。
更新时间:2026-09-01
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight All Rights Reserved.
Powered By 61893.com 闽ICP备11008920号
闽公网安备35020302035593号