首页
/ PPL.LLM Serving 使用教程

PPL.LLM Serving 使用教程

2025-04-18 09:52:24作者:范靓好Udolf

1. 项目介绍

PPL.LLM Serving 是 PPL.LLM 系统的一部分,它基于 PPL.nn 开发,用于支持各种大型语言模型(LLMs)的服务。本项目提供了一套基于 gRPC 的服务器,并支持 LLaMA 模型的推理。

2. 项目快速启动

安装依赖

在基于 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" -DPPL_LLM_ENABLE_GRPC_SERVING=ON

如果需要启用同步解码功能(主要用于离线推理),编译时加入 -DPPL_LLM_SERVING_SYNC_DECODE=ON

运行服务器

配置好模型和分词器路径后,使用以下命令运行服务器:

./ppl_llm_server \
--model-dir /data/model \
--model-param-path /data/model/params.json \
--tokenizer-path /data/tokenizer.model \
--tensor-parallel-size 1 \
--top-p 0.0 \
--top-k 1 \
--max-tokens-scale 0.94 \
--max-input-tokens-per-request 4096 \
--max-output-tokens-per-request 4096 \
--max-total-tokens-per-request 8192 \
--max-running-batch 1024 \
--max-tokens-per-step 8192 \
--host 127.0.0.1 \
--port 23333

运行客户端

客户端可以通过 gRPC 发送请求查询模型:

./ppl-build/client_sample 127.0.0.1:23333

离线推理

还可以使用以下命令进行离线推理:

./offline_inference \
--model-dir /data/model \
--model-param-path /data/model/params.json \
--tokenizer-path /data/tokenizer.model \
--tensor-parallel-size 1 \
--top-p 0.0 \
--top-k 1 \
--max-tokens-scale 0.94 \
--max-input-tokens-per-request 4096 \
--max-output-tokens-per-request 4096 \
--max-total-tokens-per-request 8192 \
--max-running-batch 1024 \
--max-tokens-per-step 8192 \
--host 127.0.0.1 \
--port 23333

3. 应用案例和最佳实践

  • 案例一: 使用 PPL.LLM Serving 在生产环境中为用户提供实时的自然语言处理服务。
  • 案例二: 结合 PPL.LLM Serving 和其他开源项目,例如前端界面框架,开发完整的自然语言处理应用程序。

4. 典型生态项目

  • PPL.nn: PPL.nn 是一个基于 CUDA 的神经网络推理引擎,它能够高效地执行深度学习模型。
  • LLaMA: LLaMA 是一个开源的大型语言模型,它支持多种自然语言处理任务。
  • Huggingface Tokenizer: Huggingface 提供的分词器工具,用于处理自然语言文本数据。
热门项目推荐
相关项目推荐