Chitu开发者指南:从源码编译到贡献代码

【免费下载链接】chitu High-performance inference framework for large language models, focusing on efficiency, flexibility, and availability. 【免费下载链接】chitu 项目地址: https://gitcode.com/gh_mirrors/chit/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_attnflashinferdeep_gemmcpu等,详细列表可查看源码目录中的相关模块。

三、并行推理配置与测试 🚀

Chitu支持多种并行策略,以充分利用硬件资源,提升推理性能。

3.1 并行策略概览

对于一般模型,Chitu支持TP(张量并行)、PP(流水线并行)以及多实例部署:

非MoE模型并行策略

对于MoE模型,并行策略更加灵活,Attention块和MoE块可采用不同的并行方式:

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流程

  1. Fork代码仓库
  2. 创建特性分支
  3. 进行修改
  4. 为新功能添加测试
  5. 更新文档
  6. 提交Pull Request

4.3 测试要求

  • 单元测试:所有单元测试位于test/pytest目录,使用pytest test/pytest命令运行
  • 集成测试:可通过test/single_req_test.py进行完整模型推理测试
  • 性能测试:提交优化时需包含benchmarks/目录下标准基准测试的性能对比

4.4 性能测试

提交性能优化时,需包含以下内容:

  1. 运行标准基准测试套件
  2. 提供优化前后的性能指标对比
  3. 注明任何硬件/软件环境要求

五、常用开发工具与资源 📚

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并参与到开源项目贡献中。如有任何问题,欢迎查阅项目文档或参与社区讨论。

【免费下载链接】chitu High-performance inference framework for large language models, focusing on efficiency, flexibility, and availability. 【免费下载链接】chitu 项目地址: https://gitcode.com/gh_mirrors/chit/chitu

Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐