首页
/ 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 提供的分词器工具,用于处理自然语言文本数据。
登录后查看全文

项目优选

收起
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
51
14
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
439
338
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
52
118
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
97
173
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
88
245
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
343
224
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
273
453
MateChatMateChat
前端智能化场景解决方案UI库,轻松构建你的AI应用,我们将持续完善更新,欢迎你的使用与建议。 官网地址:https://matechat.gitcode.com
635
75
arkanalyzerarkanalyzer
方舟分析器:面向ArkTS语言的静态程序分析框架
TypeScript
29
36
MusicFreeMusicFree
插件化、定制化、无广告的免费音乐播放器
TSX
21
2