内容提要
开发者用C99编写推理引擎,在无GPU、仅8.24GB内存的CPU上成功运行Kimi K3模型,速度33秒/Token;内存增至128GB时提速至20秒/Token,但已达上限。该引擎按需从NVMe读取专家权重,采用4-bit格式,验证了超大规模模型在低内存设备上的可行性,并已开源。
延伸解读
低内存运行的代价
该推理引擎在8.24GB内存下运行Kimi K3,速度仅为33秒/Token,即使提升到128GB内存,速度也只提升到20秒/Token。这表明,虽然低内存部署可行,但性能极低,不适合实际应用,更多是技术验证。开发者明确表示项目不追求实用性能,而是为了理解模型架构和验证可行性。
按需加载与4-bit量化
Kimi K3模型检查点约1.56TB,其中93%是专家权重,但每次推理仅激活16个专家。引擎将专家权重存储在NVMe SSD上,按需读取,并采用4-bit格式直接计算,避免完整反量化。这种设计大幅降低内存占用,但存储读取和CPU计算成为瓶颈,导致速度受限。
性能瓶颈与一致性
测试显示,内存从8.24GB增至128GB,速度仅从33秒/Token提升至20秒/Token,继续增加内存无法再提升性能,说明瓶颈在于存储读取和CPU计算。此外,不同内存预设下输出结果字节级一致,表明调整缓存和权重读取策略不会影响推理结果,但这也意味着性能优化空间有限。
Q&A
如何在只有8GB内存的电脑上运行Kimi K3模型?
开发者FareedKhan使用C99编写了一个推理引擎,通过按需从NVMe固态硬盘读取专家权重,并采用4-bit格式存储,使得Kimi K3模型可以在单颗CPU和8.24GB内存的环境中运行,但速度较慢,约为33秒/Token。
Kimi K3模型在8GB内存下的运行速度是多少?
在最小预设下,进程峰值内存占用为8.24GB,运行速度约为33秒/Token。
为什么Kimi K3模型能在低内存设备上运行?
因为Kimi K3模型每次生成Token时,896个专家中仅激活16个,所以推理引擎没有将所有专家权重加载到内存,而是保留在NVMe SSD中按需读取,从而大幅降低内存占用。
Kimi K3模型在128GB内存下的性能如何?
将内存预算提升到128GB且不使用GPU时,模型速度可以达到20秒/Token,这已接近该实现的性能上限,继续增加内存无法显著提升吞吐效率。
这个推理引擎是否使用了GPU或深度学习框架?
没有。该推理引擎尝试在不使用显卡、深度学习框架或BLAS库的情况下,在单颗CPU和8GB内存的环境中完成推理。测试中四张GPU全程未被使用。
这个推理引擎是否开源?
是的,开发者已将基于C99开发的推理引擎开源,项目地址为:https://github.com/FareedKhan-dev/kimi-k3-in-c/。
调整内存预算会影响Kimi K3模型的推理结果吗?
不会。开发者称,不同内存预设下的输出结果保持字节级一致,说明调整缓存和权重读取策略不会改变模型推理结果。