DistServe项目安装与配置指南
1. 项目基础介绍
DistServe是一个针对大型语言模型(LLM)服务的去聚合化系统。该系统通过分离预填充(prefill)和解码(decoding)计算阶段,优化了LLM服务的性能。传统的LLM服务系统将这两个阶段放在同一个位置执行,这会导致预填充和解码之间的强烈干扰,并且资源分配和并行化计划相互耦合。DistServe允许用户单独为这两个阶段设置并行化配置和调度策略,自动处理KV-Cache通信和内存管理,就像单个实例一样工作。
主要编程语言:Python、C++
2. 项目使用的关键技术和框架
- SwiftTransformer:一个高性能的C++ Transformer推理库,支持模型/管道并行化、FlashAttention、连续批处理和分页注意力等多种特性。
- Ray:用于实现分布式工作者的框架,DistServe依赖Ray进行分布式计算。
3. 项目安装和配置的准备工作
在开始安装之前,请确保您的系统中已安装以下依赖:
- Python 3.8及以上版本
- Git
- Conda(推荐使用Anaconda)
- CUDA(如果使用GPU加速)
安装步骤
-
克隆项目
在命令行中执行以下命令,克隆DistServe项目:
git clone https://github.com/LLMServe/DistServe.git cd DistServe
-
设置Conda环境
使用conda创建并激活distserve环境:
conda env create -f environment.yml conda activate distserve
-
安装SwiftTransformer库
克隆并构建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安装distserve:
pip install -e .
-
(可选)启动Ray集群
DistServe依赖Ray来实施分布式工作者。如果您没有提前启动Ray运行时环境,DistServe将自动在当前节点的所有GPU上启动一个集群。如果您希望在多个节点上进行推理,可能需要手动提前启动Ray运行时。
-
运行示例
-
离线推理示例:DistServe至少需要两个GPU来进行离线推理。项目中提供了一个离线推理示例,位于
examples/offline.py
。 -
在线推理示例:要运行在线推理,需要启动DistServe API服务器,具体请查看
distserve/api_server/distserve_api_server.py
中的注释。然后,运行位于examples/online.py
的客户端示例。
-
以上就是DistServe项目的详细安装和配置指南。请按照以上步骤操作,如果遇到任何问题,请参考项目文档或社区讨论以获得帮助。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考