grps_trtllm
纯C++高性能LLM推理服务,比vLLM快10-20%,OpenAI协议兼容,GRPS+Tensor
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
纯C++高性能LLM推理服务,比vLLM快10-20%,OpenAI协议兼容,GRPS+Tensor
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
在企业级 AI 应用场景中,LLM 推理服务的高性能与低延迟是核心诉求。grps_trtllm 是网易传媒团队开源的纯 C++ 高性能 LLM 推理服务框架,通过将 GRPS(网易自研高性能 RPC 框架)与 NVIDIA TensorRT-LLM 深度融合,打造了一款比 vLLM 更快、更轻量的 OpenAI 兼容推理服务。相比 NVIDIA 官方的 Triton TensorRT-LLM Backend 存在 triton_server <--> tokenizer_backend <--> trtllm_backend 三进程间通信开销,grps_trtllm 纯 C++ 单进程实现,避免了跨进程数据拷贝,推理性能稳定领先。
大多数开源 LLM 推理框架(如 vLLM、Triton Backend)在 tokenization、模型推理、HTTP 服务之间存在多进程或 Python/C++ 混合通信开销。grps_trtllm 全部核心逻辑在 C++ 层完成,包括 tokenizer(HuggingFace sentencepiece + 自研)、LLM 推理(TensorRT-LLM)、VIT 视觉编码(部分多模态模型)等。整个推理链路零进程间通信,数据直接在内存中流转。
代码结构清晰分层:src/tokenizer.cc/h 处理分词,src/trtllm_model_instance.cc/h 管理推理实例,src/llm_styler.cc/h 负责不同模型的 prompt 构建和生成结果解析,src/grps_server_customized.cc/h 实现 OpenAI 协议 HTTP 服务,src/vit/ 目录处理多模态视觉编码。CMakeLists.txt 管理整体构建。
项目通过 GRPS 自定义 HTTP 功能完整实现了 OpenAI Chat Completions API 协议,支持 /v1/chat/completions 端点,并支持 function call(函数调用)模式。这意味着现有的 AI Agent 框架如 LlamaIndex、LangChain 等无需任何修改即可直接接入 grps_trtllm 作为后端推理服务。
支持的模型涵盖主流开源 LLM:Qwen3、Qwen2.5(1M 上下文)、Qwen2-VL 多模态、DeepSeek-R1-Distill、QwQ-32B、ChatGLM3、GLM4、InternLM2.5、LLaMA3、Phi-4、Gemma3 等 20+ 文本模型,以及 InternVL3、MiniCPM-V-2.6、Janus-Pro、InternVideo2.5、olmOCR 等 10+ 多模态模型。
grps_trtllm 集成了 TensorRT-LLM 的全部主流加速特性:
相比纯文本模型,多模态 LLM 的部署复杂度更高——需要同时处理视觉编码器(VIT)和语言模型(LLM)。grps_trtllm 通过集成 OpenCV 库和自定义 VIT 模块,部分多模态模型的视觉编码部分也实现了纯 C++ 实现(internvl2、janus-pro、qwen2vl 等),避免了对 Python 环境的依赖。
对于暂不支持纯 C++ VIT 的模型(如 MiniCPM-V、InternVideo2.5),也提供了 Python fallback 方案。文档中详细记录了各模型的 VIT 实现方式。
根据项目文档中基于 Qwen2.5-7B-Instruct 和 InternVL2.5-4B 的实测数据,grps_trtllm 在吞吐量上稳定领先 vLLM:
短输入输出(120 tokens,固定 prompt"华盛顿是谁?")
| 并发 | vLLM (tokens/s) | grps-trtllm (tokens/s) | 提升 |
|---|---|---|---|
| 1 | 34.28 | 41.36 | +20.7% |
| 4 | 132.96 | 161.45 | +21.4% |
| 8 | 259.02 | 287.35 | +10.9% |
| 16 | 494.42 | 557.89 | +12.8% |
长输入输出(1.2k tokens 输入 + 190 tokens 输出)
| 并发 | vLLM (tokens/s) | grps-trtllm (tokens/s) | 提升 |
|---|---|---|---|
| 1 | 217.51 | 250.77 | +15.3% |
| 4 | 835.96 | 1016.36 | +21.6% |
| 16 | 3009.80 | 3297.62 | +9.6% |
多模态(InternVL2.5-4B + 图片输入)
| 并发 | vLLM (tokens/s) | grps-trtllm (tokens/s) | 提升 |
|---|---|---|---|
| 1 | 2221.40 | 2681.85 | +20.7% |
| 4 | 4256.31 | 4945.15 | +16.2% |


grps_trtllm 提供完整的 Docker 镜像预置了 CUDA 12.6、cuDNN 9.6、TensorRT-LLM 0.16.0 和 Python 3.12 环境。部署流程简洁:
# 构建镜像(基于预置镜像,只需 ADD 配置文件)
docker build -t grps_trtllm_server:1.0.0 -f docker/Dockerfile .
# 启动服务(挂载 /tmp 用于存放 TensorRT 引擎文件)
docker run -itd --runtime=nvidia --shm-size=2g -v /tmp:/tmp -p 9997:9997 grps_trtllm_server:1.0.0 grpst start server.mar
# 调用测试
curl http://127.0.0.1:9997/v1/chat/completions -H "Content-Type: application/json" -d '{"model": "qwen2.5-instruct", "messages": [{"role": "user", "content": "你好"}]}'

如果需要 Web UI 交互,只需额外安装 Gradio(pip install -r tools/gradio/requirements.txt),即可启动纯文本或多模态聊天界面,支持 internvl2、internvl3、qwenvl、qwen2vl、janus-pro、minicpmv 等多模态模型的可视化对话。

适用场景:
局限与注意事项:
grps_trtllm 代表了 LLM 推理服务从 Python 生态向 C++ 高性能方向演进的一个缩影。随着开源模型能力的持续提升,推理成本和延迟成为制约 AI 应用落地的关键因素。TensorRT-LLM 相比 vLLM 在特定场景下的性能优势已经得到广泛认可,而 grps_trtllm 在此基础上进一步消除了进程间通信开销,并通过纯 C++ 架构降低了部署复杂度。
从项目更新频率来看(2025 年 12 月至 2026 年 6 月持续更新),网易传媒团队正在积极维护,并持续跟进最新模型(Qwen3、InternVL3、Gemma3 等)。对于追求极致推理性能的团队,grps_trtllm 是 vLLM 之外一个值得关注的高性能替代方案。