一个程序员,把国产 AI 的旗舰模型 Kimi K3,塞进了 29GB 内存——差不多是一台普通电脑的全部家当。跑是跑起来了,只是问它「意大利的首都是哪里」,它想了 31 秒,才给出 16 个字的回答。
图:Kimi K3,月之暗面 7 月底开源的最新旗舰模型。来源:github.com/MoonshotAI
这件事这两天在程序员社区传得很开。Hacker News 上 130 多个赞、50 多条评论,一半人惊叹,一半人质疑。笔者把双方的话都看了一遍,整理给不写代码的朋友们。
模型为什么这么吃内存
先弄清楚一个问题:Kimi K3 到底有多大。这个问题看似基础,却是一切争论的起点。
Kimi 智能助手大家应该不陌生,2024 到 2025 年广告铺得到处都是。K3 就是它背后的公司月之暗面的最新旗舰,7 月底刚把全部参数公开。K3 的参数是 2.78 万亿个。
参数可以理解成模型脑子里装的数字。AI 的聪明,本质是海量数字在运算——数字越多,通常越聪明,占的地方也越大。2.78 万亿个数字,官方发布版是 1.42TB,一块 1TB 的硬盘装不下。
这个体积意味着什么?电脑的内存(电脑的「肚子」)一般是 16 到 32GB,而模型每次回答问题,都要把整套数字请进内存运算。1.42TB 的东西要塞进 29GB 的肚子,差了将近 50 倍。
所以这么大的模型,正常只能活在云端:数据中心里动辄几十万、上百万的服务器,几十块显卡插满,内存按 TB 算。你打开 Kimi App 问一句,答案就是那边算完传回来的。这一节看起来离题,其实是整件事的起点——云端能装下,是因为人家有装得下的机器。
为什么有人偏要把它搬回自己电脑
那问题来了:云端又快又省心,为什么有人非要啃这块硬骨头?理由其实很现实。
第一个理由是隐私。你问 AI 的每句话,都要发到别人的服务器上。聊天记录还好说,公司合同、病历、财务报表这类东西,很多机构压根不允许外发。数据不出门,是本地运行最硬的理由。
第二个理由是钱。云端按字计费,日常聊天感觉不到,批量处理时账单很可观。本地跑是一次性投入——买硬盘、付电费,之后随便用。第三个理由是离线:没网也能用,服务商改政策、停服务,都影响不到你。
还有一群人纯粹是爱好。程序员圈子里有个「本地推理」小圈子,专啃这种硬骨头:把不可能跑起来的模型,在普通机器上跑起来。这次的项目叫 WASTE,作者把整套思路开源在 GitHub 上,连跑失败的实验记录都留着。
当然,云端派的话也得听:快、稳、不用自己折腾。本地与云端之争没有标准答案,看场景说话。这个争论放到后面细说。
29GB 是怎么塞进去的
先认识一个词:量化。通俗讲,就是把模型里的数字「压扁」。
模型里的数字原本用很高的精度存储,好比每个数都记十几位小数。量化就是砍掉小数位,用 4 位、8 位来记——像把书印成小字:书变薄了,字还是那些字,只是笔画细节少了。K3 官方发布版本身就是 4 位压缩的(1.42TB),WASTE 又把「专家」部分压到 3 位,变成 982GB。
但光压缩还不够。WASTE 真正巧的地方,是不把模型全部装进内存。
K3 用的是「混合专家」架构:模型里有 896 个专家,回答每个字时只唤醒其中 16 个,其余 880 个闲着。像一家巨型医院,每次会诊只请十几个科室的医生,其他科室待命。于是项目方把常用的「主干」常驻内存(27GB),剩下的专家们躺在硬盘里,用到谁,现读现取。
图:K3 的架构总览——混合专家加新式注意力,参数 2.8 万亿。来源:sebastianraschka.com
代价是速度。每回答一个字,要从硬盘读 17GB 的专家数据。内置高速硬盘每秒 12.78GB,勉强顶得住;换外接硬盘,每秒只有 0.94GB,一个字要等 13 秒。
凑齐这套家当也不容易。982GB 的模型文件,要先从 1.42TB 的官方发布版转换出来,单是转换就要近 5 个小时;硬盘还得是内置的高速型号。普通人家里,光是满足这些条件就得先花一笔钱。
所以 29GB 这个数字,说的是内存门槛,不是模型大小。**29GB 并没有装下整个模型,只让最常用的部分住在内存里。**32GB 的机器能打开但会卡成幻灯片,跑得舒服要 64GB——内存给得太多还有反效果:机器开始拿硬盘当内存用的时候,速度反而慢了八倍。
压缩是要付代价的
量化不是白送的。数字砍了精度,回答就会「走样」。Unsloth 团队测过:压到 2 位,回答和原版的一致性约九成;压到 1 位,掉到约八成。省一半空间,换大约一成的走样——值不值,看用途。
图:同样一个模型,压得越小,回答与原版对不上的概率越高。来源:unsloth.ai
更麻烦的是,同样的位数,压得好不好差别很大。同一个模型,不同团队压出来的 1 位版本,质量能差出二十多倍。量化是一门手艺活,不是简单把数字抹掉几位。
一秒半个字,能跑和能用之间
0.5 个 token 每秒。token 是 AI 的计数单位,中文里大约一个字算一个。换句话说:一秒蹦半个字。
16 个字的回答,31 秒。128 个字,六分钟——这是项目方文档里自己写的数字。这速度别说聊天,连抄写都嫌慢。K3 还是「先想后答」的模型,每句话前都有一段思考过程,在本地跑更是雪上加霜。
但项目方的态度很诚实:他们不吹速度,只强调「真的跑起来了」。模型输出和官方参考实现逐层比对,误差在百万分之几;据他们自己查证,公开记录里还没有万亿级模型在普通电脑上从硬盘流式跑通的先例——他们也明说这不算权威结论,欢迎别人来反驳。
同一条路子,跑小一号的模型是另一个世界:480 亿参数的 Kimi-Linear,19GB 装下,1.87GB 内存就能启动,每秒 10.7 个字。小模型在普通电脑上,已经很好用了。同一个 K3 放到数据中心的服务器上,每秒能出一百多个字——家用电脑和机房机器的差距,就在这里。
**「能跑」和「能用」之间,隔着一条大河。**河这岸是工程奇迹,河那岸是日常工具。这次跨出的这一步,让河面窄了一点。
本地派和云端派,吵什么
本地派和云端派的争论,其实已经吵了好几年,这次只是又被顶到台前。本地派的账:数据不出门、不按次付费、断网可用、自己完全掌控。云端派的账:一秒几十上百个字、永远有最新模型、坏了有人修。对机构来说,数据合规常常是硬约束——不允许外发的数据,本地是为数不多的选择之一;对个人来说,图省事用云端,在意隐私再考虑本地。
HN 讨论里还有工程师直接质疑:按 K3 的规模,原生精度下光稠密参数就要约 115GB,29GB 跑 2.78T 模型的说法站得住吗?项目方的回应是:3 位量化加流式读取,数字就是这么来的。质疑与回应都在原帖里,读者可以自己判断。
这种较真对社区是好事。本地推理这些年被「跑不动」打脸无数次,每次都是靠这样的质疑和回击往前挪。
结尾
29GB 内存、一秒半个字,这个组合离「好用」还远。但放到时间线里看:两年前,几百亿参数的模型能在普通电脑上跑就是新闻;今天,万亿级模型已经「够得着」了。硬盘更快、量化更精细、模型架构更省,这条线只会往前移。
对普通用户来说,今天想用 Kimi,还是打开 App 最快。只是下次 App 提示「回答由云端生成」时,可以想一想:这些蹦出来的字,是从哪台机器上出来的。
参考链接:
- GitHub:sqliteai/waste 仓库
- HN 讨论 (item?id=49123386)
- Hugging Face:moonshotai/Kimi-K3 讨论帖 #148
- Sebastian Raschka:Kimi K3 架构笔记
- Unsloth:Kimi K3 本地运行文档
- Apidog 博客:如何本地运行 Kimi K3