在CPU上本地运行Kimi K3:K3Flight的55GB运行时与929GB模型
K3Flight通过cPilot Runtime从存储流式传输权重,仅需约55GB内存即可在CPU上运行2.8T参数的Kimi K3模型。这是一个单文件Linux推理服务器。
Kimi K3是一个庞大的2.8万亿参数的专家混合模型。其完整的Q2_K检查点大小达929GB。在本地运行似乎不可能——直到你意识到模型不需要完全驻留在内存中。K3Flight,一个全新的开源项目,证明了这一点:一个单文件Linux推理服务器,在CPU上运行Kimi K3,实测运行时内存占用仅约55GB。
秘诀不在于压缩或蒸馏,而是一种系统工程方法,将存储、内存和CPU视为一个协调的执行路径。以下是它的工作原理以及如何自行尝试。
问题:929GB的权重与64GB的内存
大多数本地LLM推理假设整个模型必须驻留在RAM中。对于929GB的检查点,这意味着需要至少1TB内存的机器——远超大多数开发者的配置。但Kimi K3是一个专家混合(MoE)模型。根据其公开规格,每个token仅激活896个专家中的16个。总参数数量描述的是模型的容量,而非任何单次推理步骤所需的工作集。
K3Flight利用这种稀疏性。它不会加载所有内容,而是通过cPilot Runtime仅暂存当前执行路径所需的权重和状态。完整的检查点保留在存储中,数据按需流式传输到CPU。
数据:参考运行显示的结果
维护者在Linux x86-64机器上运行了完整的Kimi-K3-GGUF Q2_K检查点,结果如下:
- 总参数:2.8T
- 运行时内存:约55GB
- 后端:仅CPU
- 预填充:约1 token/s
- 解码:约0.8 token/s
这些是单次参考运行的初步数据,并非保证。确切的CPU和SSD型号未公开。存储带宽、CPU能力、上下文长度和运行时版本会显著影响性能。但重点不在于速度——而在于一个完整的2.8T模型可以在本地执行,而无需929GB常驻内存。
K3Flight的工作原理
K3Flight不会缩小模型。929GB的检查点保留在磁盘上。相反,cPilot Runtime在推理期间管理一个更小的实时工作集。它通过以下方式实现:
- 将存储、主机内存和CPU视为一个协调的执行路径
- 按需暂存权重和运行时状态
- 编排数据移动和计算,保持活动路径持续运行
- 保持完整的Q2_K检查点可用,而无需完全驻留
这将模型大小问题转化为系统问题。结果是,一台配备64GB RAM和快速NVMe SSD的机器即可运行该服务器。
快速开始:预览版快速入门
K3Flight目前处于v0.1.0-preview版本。第一个Linux二进制文件正在打包中,维护者承诺很快会发布可复现的版本。以下是如何准备。
1. 下载二进制文件
一旦发布上线,从GitHub Releases下载Linux x86-64压缩包:
curl -L -O https://github.com/onetoken-oss/K3Flight/releases/download/v0.1.0-preview/cpilot-server-v0.1.0-preview-linux-x86_64.tar.gz
tar -xzf cpilot-server-v0.1.0-preview-linux-x86_64.tar.gz
sha256sum -c cpilot-server-v0.1.0-preview-linux-x86_64.sha256
chmod +x cpilot-server-v0.1.0-preview-linux-x86_64
确保下载.tar.gz发布资产,而不是源代码归档。
2. 下载模型
你需要从Hugging Face获取Kimi-K3-GGUF Q2_K检查点。它的大小为929GB,请相应规划存储空间。按照MODEL.md中的说明获取确切的仓库和修订版本。
3. 启动服务器
设置模型目录并启动服务器:
export MODEL_DIR="$HOME/models/Kimi-K3-Q2_K"
./cpilot-server-v0.1.0-preview-linux-x86_64 \
--model "$MODEL_DIR/Kimi-K3-Q2_K-00001-of-00094.gguf" \
--host 127.0.0.1 \
--port 8080
除非你了解将推理服务器暴露到网络的安全影响,否则请保持回环绑定。
4. 发送请求
在浏览器中打开http://127.0.0.1:8080以使用Web UI,或使用OpenAI兼容API:
curl http://127.0.0.1:8080/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{
"model": "kimi-k3-q2_k",
"stream": true,
"messages": [
{"role": "user", "content": "Hello!"}
]
}'
服务器日志将报告预填充和解码吞吐量。
运行时选项
运行./cpilot-server-v0.1.0-preview-linux-x86_64 --help查看所有选项。关键选项包括:
-m, --model:GGUF分片路径(必需)--host:默认127.0.0.1--port:默认8080-t:CPU线程数(默认12)-c:上下文大小(默认512)-b:逻辑批大小(默认64)-ub:物理批大小(默认64)--cpilot-memory:内存调优级别(0-?)
要求
预览版针对一个狭窄、可验证的配置:
- Linux x86-64
- 建议64GB以上系统内存
- 至少1TB可用本地存储
- 强烈建议使用本地NVMe SSD
- 无需GPU
macOS支持计划下一步进行。
常见问题解答
你们是否将929GB压缩到55GB? 不。模型文件在存储中仍约929GB。约55GB是观察到的运行时内存占用。
这是一个更小或蒸馏的模型吗? 不。这是完整的Kimi-K3-GGUF Q2_K检查点。Q2_K是一种量化表示,因此与原始模型在数值上不完全相同,但它是完整的模型。
为什么2.8T模型可以这样运行? Kimi K3每个token仅激活896个专家中的16个。cPilot管理实时工作集,而不是要求完全驻留。
约55GB是最低内存吗? 不。这是一个初步的测量结果。预览版建议使用64GB。
为什么生成速度慢? CPU路径以数据移动换取驻留。它旨在证明本地执行,而非与数据中心延迟竞争。
已知限制
- 仅支持Linux x86-64;macOS尚未发布
- 仅CPU,针对可行性而非云延迟优化
- 性能因存储和CPU而异
- 无生产SLA;不要暴露到不受信任的网络
帮助构建硬件地图
维护者正在寻找真实结果,包括慢速运行和失败案例。如果你尝试了,请分享你的运行详情,如CPU、内存、SSD型号和吞吐量。欢迎受控的负面结果——它们有助于定义真实的硬件边界。
最后思考
K3Flight是一个了不起的概念验证。它挑战了大型模型需要大内存的假设。通过利用MoE稀疏性和智能系统工程,它使2.8T模型可以在单台机器上运行。它不快,但它是本地的,这为边缘AI、隐私和实验开辟了可能性。
如果你对本地LLM推理感兴趣,这值得关注。给仓库加星,在预览版发布时尝试,并贡献你的测量结果。本地AI的未来可能不需要数据中心。
来源
onetoken-oss/K3Flight: 在CPU上本地运行Kimi K3,实测运行时内存约55GB。由cPilot Runtime驱动的单文件Linux推理服务器。