DistServe 使用指南

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),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值