Chitu:面向大型语言模型的高性能推理框架
1. 项目介绍
Chitu 是一个为大型语言模型设计的高性能推理框架,它专注于效率、灵活性和可用性。Chitu 支持多种主流的大型语言模型,包括 DeepSeek、LLaMA 系列、Mixtral 等。项目旨在不断发展和整合最新的优化技术,包括 GPU 内核、并行策略、量化等,以适应各种硬件环境,包括老旧的 GPU、非 NVIDIA GPU 和 CPU,满足多样化的部署需求。
2. 项目快速启动
安装
首先,从源代码安装 Chitu:
git clone --recursive https://github.com/thu-pacman/chitu
cd chitu
pip install -r requirements-build.txt
pip install -U torch --index-url https://download.pytorch.org/whl/cu124
# 根据你的 CUDA 版本修改
TORCH_CUDA_ARCH_LIST=8.6 CHITU_SETUP_JOBS=4 MAX_JOBS=4 pip install --no-build-isolation .
单 GPU 推理
使用以下命令进行单 GPU 推理:
torchrun --nproc_per_node 8 test/single_req_test.py request.max_new_tokens=64 models=DeepSeek-R1 models.ckpt_dir=/data/DeepSeek-R1 infer.pp_size=1 infer.tp_size=8
混合并行(TP+PP)
使用以下命令启动混合并行推理:
torchrun --nnodes 2 --nproc_per_node 8 test/single_req_test.py request.max_new_tokens=64 infer.pp_size=2 infer.tp_size=8 models=DeepSeek-R1 models.ckpt_dir=/data/DeepSeek-R1
启动服务
以下命令用于在本地启动服务:
export WORLD_SIZE=8
torchrun --nnodes 1 \
--nproc_per_node 8 \
--master_port=22525 \
-m chitu \
serve.port=21002 \
infer.stop_with_eos=False \
infer.cache_type=paged \
infer.pp_size=1 \
infer.tp_size=8 \
models=DeepSeek-R1 \
models.ckpt_dir=/data/DeepSeek-R1 \
infer.attn_type=flash_infer \
keep_dtype_in_checkpoint=True \
infer.mla_absorb=absorb-without-precomp \
infer.soft_fp8=True \
infer.do_load=True \
infer.max_reqs=1 \
scheduler.prefill_first.num_tasks=100 \
infer.max_seq_len=4096 \
request.max_new_tokens=100 \
infer.use_cuda_graph=True
测试服务
使用以下 curl
命令测试服务:
curl localhost:21002/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"messages": [
{
"role": "system",
"content": "你是一个有用的助手。"
},
{
"role": "user",
"content": "机器学习是什么?"
}
]
}'
3. 应用案例和最佳实践
在部署 DeepSeek-R1-671B 模型时,以下是一些性能数据和应用案例:
- 在 A800(40GB) 集群上部署,使用 6 节点 BF16 精度配置的 Chitu 框架,可以达到 29.8 output token/s 的输出吞吐量。
- 使用 3 节点 FP8 精度配置,可以达到 22.7 output token/s 的输出吞吐量,且性能接近 6 节点 BF16 配置。
- 使用 cuda graph 可以显著提升性能。
根据不同的批处理大小,FP8 模型在 3 节点上的输出速度约为 6 节点 BF16 模型的 75%~90%,即单位计算功率的输出提高了 1.5x~1.8x。
4. 典型生态项目
Chitu 框架在构建时借鉴了以下项目的一些功能和策略:vLLM、SGLang、DeepSeek 等。同时,特别感谢合作伙伴:中国电信、华为、沐曦、燧原 等,在项目开发过程中提供的支持和帮助。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考