前几天有同学在微博上 @我说有个好玩的:
介绍我的新玩具 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时手机还是需要强力散热的。
这个事情有趣的是,既然手机可以跑,那肯定其它设备也可以跑啊