赤兔 Chitu:面向国产芯片与 MoE 模型的推理框架,离生产还有几步
High-performance inference framework for large language models, focusing on efficiency, flexibility, and availability.
秒懂
- 它是什么?
- 赤兔 Chitu 是一个主打多元算力适配的大模型推理框架,从昇腾、摩尔线程到英伟达均有覆盖。本文基于公开资料分析其架构、部署方式与局限,帮助工程师判断是否值得引入。
- 适合谁用?
- 赤兔 Chitu 适合那些需要在一体机或集群中部署 DeepSeek、Qwen、GLM 等 MoE 模型,并且算力环境包含昇腾、摩尔线程、海光等国产芯片的团队。它提供的 FP8/FP4 在线转换算子和 CPU+GPU 异构推理,在显存受限场景有明显价值。
- 能商用吗?
- 可以。Apache-2.0 是宽松许可证:你可以使用、修改并销售基于它的软件,只需保留版权和许可证声明。
- 还在维护吗?
- 在维护。仓库最近一次提交在 5 天前。
- 用什么语言写的?
- 主要是 Python(依据 GitHub 的语言统计)。
以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。
开源项目深度解析
赤兔解决的是哪一类部署难题
赤兔 Chitu 定位为生产级大模型推理引擎,但它的切入点不是通用 GPU 市场,而是多元算力适配。从 README 的里程碑看,v0.5.1 适配摩尔线程,v0.4.0 适配昇腾、英伟达、沐曦、海光,v0.3.9 首发支持昇腾 910B 推理智谱 GLM-4.5 MoE。这串时间线说明项目的主线是让同一套推理代码跑在不同厂商的芯片上,尤其是国产加速卡。对于企业来说,这意味着采购昇腾或海光服务器后,不必为每种芯片重写推理服务。另一个典型场景是显存受限的 MoE 模型部署,v0.2.2 引入 CPU+GPU 异构混合推理,实现单卡运行 DeepSeek-R1 671B,v0.3.0 又加入 FP4 在线转 FP8、BF16 的算子。这套能力瞄准的是那些想用消费级或单张专业卡跑超大模型,但又不愿接受离线量化精度损失的团队。
从 v0.1.0 到 v0.6.0:版本演进透露的架构重点
看版本记录能大致摸清赤兔的技术优先级。v0.1.0 支持 DeepSeek-R1 671B,提供 FP8 在线转 BF16 的算子,说明早期核心是 MoE 大模型的高效推理。v0.2.2 的 CPU+GPU 异构推理,是把注意力或部分专家网络卸载到 CPU 内存,以换取单卡可运行。v0.3.0 的 FP4 在线转 FP8、BF16,针对的是 NVIDIA 官方发布的 DeepSeek-R1-FP4 量化权重,运行时再转回更高精度,避免直接做 FP4 计算带来的精度损失。v0.4.0 开始强调一体机部署场景的性能和稳定性,v0.5.0 转向集群部署,v0.6.0 则推出 chitu.run 单文件可执行程序,用于启动多结点、多实例、PD 分离等复杂任务。这一演进路径显示,赤兔最初是围绕特定模型和芯片做深度优化,后来逐步抽象成通用框架,但每个新硬件或新模型的支持都需要专门开发算子。对于使用者,这意味着你不能指望一个通用引擎自动适配所有芯片,实际性能取决于项目团队是否已为你的硬件组合做过优化。
chitu.run 与开发手册:实际部署路径
安装方式在 README 中非常简洁:建议使用 chitu.run 进行部署,从 Releases 页面的 Assets 下载。chitu.run 是一个可执行文件,v0.6.0 起支持单文件启动多结点、多实例、PD 分离任务。这降低了部署门槛,尤其适合没有专职运维的团队。更完整的安装步骤在 docs/zh/DEVELOPMENT.md,支持的模型列表在 docs/zh/SUPPORTED_MODELS.md。README 没有给出具体启动命令,也没有列出配置文件示例,这意味着实际使用前你必须翻阅开发手册。从仓库结构看,Python 是主要语言,但推理框架通常包含 CUDA 或昇腾的 C++ 算子,所以编译环境大概率不仅限于 Python 包管理工具。一个值得注意的点是,chitu.run 是编译好的二进制,它可能捆绑了特定芯片的运行时库,下载时需确认版本对应你的硬件。如果你是开发者想二次修改,则需要走 DEVELOPMENT.md 的源码构建流程,这部分文档在 README 中只是提了一句,没有细节。
性能数据的可信度与验证方法
README 指向 docs/zh/PERFORMANCE.md,说那里有开发团队测试的性能数据,并欢迎用户在 discussions/104 分享自测结果。文档也明确声明:性能数据与硬件配置、软件版本、测试负载相关,多次测试结果可能存在波动。这句话是必要的诚实,但也意味着官方数字只能作为参考。赤兔的定位是生产级引擎,但生产环境的负载特征千差万别,比如并发请求数、输入输出长度比例、是否使用 PD 分离,都会显著影响吞吐和延迟。项目没有在 README 中给出任何可复现的基准测试脚本或标准负载定义,所以你想验证性能,只能自己构造测试。一个合理做法是:先用官方性能数据中提到的同一模型和芯片组合跑一遍,确认基线一致,再调整负载参数看扩展性。如果你没有目标硬件,那么任何性能宣称都无从验证。
多芯片支持的代价:算子开发与维护负担
赤兔的多元算力适配是一把双刃剑。每支持一种新芯片,比如昇腾 910B 或摩尔线程,都需要编写对应的算子实现。从致谢名单看,华为、沐曦、海光、燧原等公司参与了合作,这解释了为什么它能较快适配这些芯片,但也暗示社区驱动的适配速度可能有限。对于用户,风险在于:如果你的芯片不在官方支持列表内,或者模型版本较新,你可能需要等待项目团队发布更新。另一个代价是代码复杂度。一个推理框架要同时处理 NVIDIA 的 CUDA、昇腾的 CANN、摩尔线程的自家运行时,内部抽象层必然庞大。README 提到复用了 FlashAttention、FlashInfer、TensorRT-LLM 等项目的函数,这说明赤兔并非从零实现所有算子,而是站在巨人肩膀上。但这种混合代码库的调试难度高于单一平台框架,出现问题时不一定是模型代码的锅,可能是某个芯片特定算子的边界情况。
FP4/FP8 在线转换与异构推理:技术上的取舍
赤兔的一个技术亮点是 FP4 在线转 FP8、BF16 的算子。v0.3.0 支持 DeepSeek-R1 671B 的 FP4 量化版,v0.1.0 则提供 FP8 在线转 BF16。这种做法的动机很直接:FP4 权重能大幅减少显存占用,但许多 GPU 的 FP4 计算效率并不高,或者精度损失不可接受。在线转换让模型以低精度存储,在计算前转回较高精度,兼顾容量与精度。代价是转换本身消耗算力,可能增加延迟。v0.2.2 的 CPU+GPU 异构混合推理也是类似思路,把部分计算卸载到 CPU,以单卡运行 671B 模型,但 CPU 推理速度远低于 GPU,这适合离线批处理或低并发场景,不适合高吞吐在线服务。这些特性说明赤兔更关注让模型跑起来,而不是在所有场景下都追求极致性能。如果你需要低延迟的实时交互,可能还是需要多卡集群或更专业的量化方案。
与 vLLM、SGLang 的差异:选择赤兔的理由
README 的致谢中列出了 vLLM 和 SGLang,说明赤兔从它们身上学到了不少。但赤兔的差异化在于硬件覆盖范围。vLLM 主要针对 NVIDIA GPU,对昇腾等国产芯片的支持要么没有,要么需要额外插件。SGLang 同样以 NVIDIA 为重心。赤兔从设计之初就把昇腾、摩尔线程、海光、沐曦列为目标,这是它最直接的竞争力。如果你所在的企业已经采购了国产加速卡,又不想用厂商自带的闭源推理栈,赤兔就是少数开源选择之一。另一个差异是模型支持策略。赤兔优先支持 DeepSeek、Qwen、GLM、Kimi 等主流开源 MoE,这和国产芯片的典型使用场景匹配。相比之下,vLLM 的模型覆盖更广,社区更新更快,但多芯片支持需要自行编译或依赖第三方分支。赤兔的局限也很明显:它的社区规模远小于 vLLM,问题排查时能搜到的资料有限,而且版本迭代节奏受项目团队精力影响,README 也承认无法保证及时解决所有问题。
许可证与第三方代码的合规风险
赤兔采用 Apache-2.0 许可证,这对商业使用相对宽松。但 README 特别说明,代码仓库引用了其他开源项目的代码片段,版权信息以 SPDX 格式标注在 LICENSES/ 目录下,同时 third_party/ 目录包含遵循其他许可证的第三方子模块。这意味着你拿到的不只是一个 Apache-2.0 的纯代码库,而是混合了多种许可证的集合。比如 FlashAttention 和 FlashInfer 可能有自己的许可证,llama.cpp 是 MIT,TensorRT-LLM 有 NVIDIA 的特定条款。如果你要基于赤兔做二次开发或闭源分发,必须逐一检查 LICENSES/ 和 third_party/ 下每个组件的许可证,确认是否存在传染性条款或专利限制。Apache-2.0 本身不要求开源衍生作品,但如果某个第三方子模块是 GPL 或类似许可证,那部分代码可能会影响整个项目的分发方式。这不是赤兔独有的问题,而是所有大量复用第三方算子的推理框架的通病,但 README 的明确提示说明项目团队意识到了这一点,并提供了追溯路径。
编辑结论
赤兔 Chitu 适合那些需要在一体机或集群中部署 DeepSeek、Qwen、GLM 等 MoE 模型,并且算力环境包含昇腾、摩尔线程、海光等国产芯片的团队。它提供的 FP8/FP4 在线转换算子和 CPU+GPU 异构推理,在显存受限场景有明显价值。如果你的环境只有 NVIDIA GPU,且团队已经熟悉 vLLM 或 SGLang,那么迁移成本可能高于收益。若决定试用,建议先核对 SUPPORTED_MODELS.md 中列出的模型版本与你的权重格式是否一致,再在目标芯片上用官方性能数据中的同款负载做一次基准测试,确认吞吐与延迟符合预期。项目的 Apache-2.0 许可证和 SPDX 标注的第三方代码引用,对商业使用相对友好,但 third_party 子模块各自许可证仍需单独审查。
社区笔记