Chitu开发者指南:从源码编译到贡献代码
Chitu是一个高性能的大语言模型推理框架,专注于效率、灵活性和可用性。本指南将帮助开发者从源码编译Chitu并参与代码贡献,快速掌握这一强大工具的使用与开发技巧。## 一、环境准备与源码获取 🚀### 1.1 系统要求Chitu支持多种硬件平台,包括英伟达、昇腾、沐曦、海光和摩尔线程等。在开始前,请确保你的系统满足以下基本要求:- Python 3.8+- 合适的深度学习框架(如
Chitu开发者指南:从源码编译到贡献代码
Chitu是一个高性能的大语言模型推理框架,专注于效率、灵活性和可用性。本指南将帮助开发者从源码编译Chitu并参与代码贡献,快速掌握这一强大工具的使用与开发技巧。
一、环境准备与源码获取 🚀
1.1 系统要求
Chitu支持多种硬件平台,包括英伟达、昇腾、沐曦、海光和摩尔线程等。在开始前,请确保你的系统满足以下基本要求:
- Python 3.8+
- 合适的深度学习框架(如PyTorch)
- 对应的硬件驱动和依赖库
1.2 获取源码
通过以下命令克隆Chitu仓库,获取最新源码:
git clone --recursive https://gitcode.com/gh_mirrors/chit/chitu && cd chitu
注意使用
--recursive选项以获取第三方依赖
二、从源码编译安装 Chitu 🔧
2.1 安装构建依赖
首先安装基本的构建依赖:
pip install -r requirements-build.txt
如果需要使用deep_ep功能,还需运行:
pip install -r requirements-build-deep_ep-cu12.txt
2.2 安装 PyTorch
根据你的硬件平台选择合适的PyTorch版本:
英伟达平台:
# 选项 A:安装默认 PyTorch 版本
pip install -U torch
# 选项 B:安装特定 CUDA 版本的 PyTorch
pip install -U torch --index-url https://download.pytorch.org/whl/cu124
其他平台(昇腾、海光等)请从相应平台提供商处获取适配的PyTorch版本。
2.3 编译安装 Chitu
根据你的硬件平台选择对应的编译命令:
英伟达平台:
# 先查看CUDA架构版本
python -c "import torch; print(torch.cuda.get_device_capability())"
# 编译安装,将9.0替换为你的CUDA架构版本
TORCH_CUDA_ARCH_LIST=9.0 pip install --no-build-isolation . -c <(pip list --format freeze | grep -v "flash-mla" | grep -v "flash_mla")
昇腾平台:
CHITU_ASCEND_BUILD=1 pip install --no-build-isolation . -c <(pip list --format freeze)
开发模式安装: 如果需要进行开发并实时生效修改,可以使用 editable install:
TORCH_CUDA_ARCH_LIST=9.0 pip install --no-build-isolation -e .
2.4 可选依赖安装
Chitu提供多种可选功能,可通过追加依赖名称来安装:
# 例如安装flash_mla支持
TORCH_CUDA_ARCH_LIST=9.0 pip install --no-build-isolation ".[flash_mla]"
支持的可选依赖包括:flash_attn、flashinfer、deep_gemm、cpu等,详细列表可查看源码目录中的相关模块。
三、并行推理配置与测试 🚀
Chitu支持多种并行策略,以充分利用硬件资源,提升推理性能。
3.1 并行策略概览
对于一般模型,Chitu支持TP(张量并行)、PP(流水线并行)以及多实例部署:
对于MoE模型,并行策略更加灵活,Attention块和MoE块可采用不同的并行方式:
3.2 运行示例
以DeepSeek-R1模型为例,使用8卡GPU进行张量并行推理:
torchrun --nproc_per_node 8 test/single_req_test.py \
models=deepseek-r1 \
models.ckpt_dir=/data/DeepSeek-R1 \
infer.tp_size=8 \
infer.pp_size=1 \
infer.cache_type=paged \
infer.attn_type=flash_mla \
request.max_new_tokens=100
3.3 多节点运行
在多节点环境下,可使用slurm进行任务调度:
./script/srun_multi_node.sh 2 8 test/single_req_test.py models=Qwen3-235B-A22B models.ckpt_dir=/path/to/Qwen3-235B-A22B infer.dp_size=4 infer.tp_size=4 infer.ep_size=16
四、代码贡献指南 🤝
4.1 代码规范
在提交代码前,请确保遵循以下规范:
- 使用
black格式化Python代码 - 使用
clang-format格式化C++/CUDA代码 - 为所有公开函数和类添加文档字符串
- 保持函数功能单一且专注
- 尽可能添加类型提示
4.2 Pull Request流程
- Fork代码仓库
- 创建特性分支
- 进行修改
- 为新功能添加测试
- 更新文档
- 提交Pull Request
4.3 测试要求
- 单元测试:所有单元测试位于test/pytest目录,使用
pytest test/pytest命令运行 - 集成测试:可通过test/single_req_test.py进行完整模型推理测试
- 性能测试:提交优化时需包含benchmarks/目录下标准基准测试的性能对比
4.4 性能测试
提交性能优化时,需包含以下内容:
- 运行标准基准测试套件
- 提供优化前后的性能指标对比
- 注明任何硬件/软件环境要求
五、常用开发工具与资源 📚
5.1 构建分发产物
可使用以下脚本构建wheel包:
./script/build_for_dist.sh true
构建产物将保存在dist/目录下。
5.2 查看支持的模型
python3 script/generate_supported_models_docs.py --print
更多模型支持信息请参见支持的模型文档。
5.3 部署推理服务
启动推理服务示例:
export WORLD_SIZE=8
torchrun --nnodes 1 \
--nproc_per_node 8 \
--master_port=22525 \
-m chitu \
serve.port=21002 \
infer.cache_type=paged \
models=DeepSeek-R1 \
models.ckpt_dir=/data/DeepSeek-R1
通过以上步骤,你可以顺利从源码编译Chitu并参与到开源项目贡献中。如有任何问题,欢迎查阅项目文档或参与社区讨论。
更多推荐





所有评论(0)