PPL LLM 服务
概述
ppl.llm.serving
是 PPL.LLM
系统的一部分。
我们建议不熟悉此项目的用户阅读系统概览。
ppl.llm.serving
是一个基于 ppl.nn 的服务,用于各种大型语言模型(LLMs)。该存储库包含一个基于 gRPC 的服务器和对 LLaMA 的推理支持。
先决条件
- 运行在 x86_64 或 arm64 CPU 上的 Linux 系统
- GCC >= 9.4.0
- CMake >= 3.18
- Git >= 2.7.0
- CUDA Toolkit >= 11.4,推荐 11.6(用于 CUDA)
快速开始
这是一个简短的教程,更多详情请参阅 LLaMA 指南。
-
安装先决条件(以 Debian 或 Ubuntu 为例)
apt-get install build-essential cmake git
-
克隆源代码
git clone https://github.com/openppl-public/ppl.llm.serving.git
-
从源代码构建
./build.sh -DPPLNN_USE_LLM_CUDA=ON -DPPLNN_CUDA_ENABLE_NCCL=ON -DPPLNN_ENABLE_CUDA_JIT=OFF -DPPLNN_CUDA_ARCHITECTURES="'80;86;87'" -DPPLCOMMON_CUDA_ARCHITECTURES="'80;86;87'"
如果使用多个 GPU 设备,则需要 NCCL。
-
导出模型
详情请参阅 ppl.pmx。
-
运行服务器
./ppl-build/ppl_llama_server /path/to/server/config.json
服务器配置示例可以在
src/models/llama/conf
中找到。在运行服务器之前,您需要提供正确的值。model_dir
:由 ppl.pmx 导出的模型路径。model_param_path
:模型参数。$model_dir/params.json
。tokenizer_path
:sentencepiece
的分词器文件。
-
运行客户端:通过 gRPC 发送请求以查询模型
./ppl-build/client_sample 127.0.0.1:23333
更多详情请参阅 tools/client_sample.cc。
-
基准测试
./ppl-build/client_qps_measure --target=127.0.0.1:23333 --tokenizer=/path/to/tokenizer/path --dataset=tools/samples_1024.json --request_rate=inf
更多详情请参阅 tools/client_qps_measure.cc。
--request_rate
是每秒请求数,值inf
表示无间隔发送所有客户端请求。 -
离线运行推理:
./ppl-build/offline_inference /path/to/server/config.json
更多详情请参阅 tools/offline_inference.cc。
许可证
本项目在 Apache License, Version 2.0 下分发。