在 iPhone 16 Pro 上运行 Kimi K3

前几天有同学在微博上 @我说有个好玩的:

介绍我的新玩具 minirun, 使得一个 1.56 TB 的模型在 iPhone 上跑起来了。

Kimi K3,2.8 万亿参数的 MoE,权重 1.56 TB。

现在能在 iPhone 16 Pro 上运行,内存预算 5.8 GB,权重从插在手机上的 NVMe 硬盘里按层流式读进来。

不是蒸馏版,没有重新量化,就是重打包发布的原始权重。

做法不神秘:

把硬盘当成运行时会去规划的一层内存,而不是加载来源。每个 token 要用哪些层、哪些专家是确定的,就只读这些字节,读进一小池固定的缓冲区,算完释放。占多少内存是你开始前定的一个数,超不了。

实测:

DeepSeek V4 Flash(167 GB)在 MacBook Pro M1 Pro 32 GB 上大约 5 秒一个 token,预算 10.6 GB,给它 2 GB 也能跑;在 iPhone 上大约 17 秒一个 token,内存不到 2 GB,这个是真能聊的。

K3 每个 token 要读约 189 GB,手机 USB 3 口大约 3.7 分钟一个 token,是证明天花板没了,不是拿来聊天的。

注意:

硬盘盒和线比硬盘本身更重要。

同一块盘,USB4 直连比走 10 Gb/s 的 hub 快 3 倍。手机上还得配供电底座,手机口带不动 NVMe。硬盘盒尽量选择40Gbps带内置风扇和散热鳍片的。10Gbps的盒子容易挂。

并且按照我的尝试,你自己部署最好搞一个强力手机散热器贴手机上,在跑kimi k3时手机还是需要强力散热的。

官网 minirun.dev
源码 GitHub - nanguoyu/minirun-app: Run Kimi K3 (2.8 T parameters,1.56 TB) on iPhone 16 Pro? Weights stream from your SSD through a memory budget you set. Free, local, on Mac and iPhone. · GitHub


这个事情有趣的是,既然手机可以跑,那肯定其它设备也可以跑啊

不知道我家留着挡子弹的诺基亚可不可以 :grinning_face_with_smiling_eyes:

所以NAND Flash又要涨价了……

1 个赞

还是挡子弹吧