随着大语言模型的参数量升级到万亿级,部署这些巨型模型变得愈发复杂。尽管大模型具备更强的能力,但它们的存储、内存需求以及数据读取带来了新挑战。尤其是采用混合专家(MoE)架构的模型,虽然每次推理只激活一部分专家,但整体模型却包含了海量参数。这使得在资源受限的设备上运行大规模模型成为了一个亟需解决的问题。
最近,开发者Fareed Khan开源了一个名为kimi-k3-in-c的项目,用C语言重写了超大规模模型的推理引擎。该项目仅有176KB的C99代码,无需依赖GPU或复杂的框架,在单CPU和8.24GB内存的条件下,即可实现对包含2.78万亿参数的Kimi K3模型的推理运行。更为重要的是,该项目通过对底层推理的优化,成功地使得在8GB环境下的运行结果与224GB环境下的结果达到字节级一致。
相对于传统的推理框架,kimi-k3-in-c采取了直接使用C语言的方式,降低了系统开销,提供了更高效的数据流管理,特别是在处理大规模MoE模型时,减少了不必要的内存占用。该项目推翻了传统的模型加载方式,采用了专家流式加载机制,能够在需要时动态读取相应专家,而不是一次性加载所有参数。此外,项目还引入KDA机制,以限制缓存状态的增长,使得在上下文推理中不会导致内存瓶颈。 龙8头号玩家
在计算过程中,项目使用MXFP4直接计算,避免了传统量化推理中反量化过程的额外开销。同时,O_DIRECT流式读取的运用,进一步提升了大规模权重的加载效率。这些设计能够有效地平衡内存占用与计算资源。
最终,项目展示的结果表明,在有限的8.24GB内存环境下,Kimi K3的运行结果与高达224GB内存的环境一致,证明了其推理路径和数据访问方式的重新设计并没有牺牲模型的输出能力。随着模型规模持续扩大,硬件提升的方式也面临新的替代方案。
发表评论