DistServe 使用指南
1. 项目介绍
DistServe 是一个针对大型语言模型(LLMs)服务的解耦计算系统。传统的 LLM 服务系统将预填充(prefill)和解码(decoding)阶段放在同一个计算流程中,这会导致强烈的预填充-解码干扰,并且将资源分配和并行化计划耦合在一起。DistServe 通过解耦这两个阶段,允许用户分别为它们设置并行化配置和调度策略,从而提高了模型的性能。
DistServe 使用 SwiftTransformer 作为执行后端,这是一个高性能的 C++ 变压器推理库,支持模型/管道并行化、FlashAttention、连续批处理和页面注意力等特性。DistServe 支持多种模型,包括 GPT-2、OPT 和 LLaMA2 等。
2. 项目快速启动
以下是快速启动 DistServe 的步骤:
# 克隆项目
git clone https://github.com/LLMServe/DistServe.git
cd DistServe
# 设置 distserve 的 conda 环境
conda env create -f environment.yml
conda activate distserve
# 克隆并构建 SwiftTransformer 库
git clone https://github.com/LLMServe/SwiftTransformer.git
cd SwiftTransformer
git submodule update --init --recursive
cmake -B build
cmake --build build -j $(nproc)
cd ..
# 安装 distserve
pip install -e .
3. 应用案例和最佳实践
离线推理示例
DistServe 至少需要两个 GPU 来运行。在 examples/offline.py
文件中,我们提供了一个离线推理的示例。
在线推理示例
要运行在线推理,需要启动 DistServe API 服务器。请查看 distserve/api_server/distserve_api_server.py
文件中的注释。
然后,在 examples/online.py
文件中启动客户端示例。
4. 典型生态项目
DistServe 是由 LLMServe 开发和维护的,它依赖于以下典型生态项目:
- Ray:用于实现分布式工作者的框架。
- SwiftTransformer:高性能的 C++ 变压器推理库。
请确保在使用 DistServe 之前,您的环境中已经安装了上述依赖。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考