
如何用TensorRT-LLM让ChatGLM3推理速度翻数倍NVIDIA显卡加速部署全流程【免费下载链接】ChatGLM3ChatGLM3 series: Open Bilingual Chat LLMs | 开源双语对话语言模型项目地址: https://gitcode.com/zai-org/ChatGLM3 想要让ChatGLM3 推理速度成倍提升吗使用 NVIDIA 的TensorRT-LLM 加速框架配合一张支持 FP16 的NVIDIA GPU如 A100、H100就可以把开源双语对话模型 ChatGLM3-6B 的推理速度提升到原来的数倍同时还能通过量化大幅压低显存占用。本文将带你完整走一遍「安装框架 → 构建推理引擎 → 运行加速对话 → 部署线上服务」的全流程新手也能照着跑通一、为什么 ChatGLM3 需要 TensorRT-LLM 加速 ⚡️直接用 HuggingFace Transformers 加载 ChatGLM3虽然开箱即用但逐层调用原生算子GPU 利用率并不高。而 TensorRT-LLM 的思路是把整个模型离线编译成一个高度优化的推理引擎再在运行时加载主要收益包括算子融合Attention、GEMM、RMSNorm 等热点算子被融合为定制 kernel减少显存读写开销FMHA融合多头注意力开启后推理更快、显存更省Weight-Only 量化支持 Int8 / Int4 权重量化加速的同时显著降低显存多卡张量并行--world_size 2即可把模型切到两张 GPU 上并行推理In-flight Batching配合 NVIDIA Triton 提供高吞吐在线服务完整的官方步骤文档在 tensorrt_llm_demo/README.md本文在此基础上做了新手向的解读。二、一键安装 TensorRT-LLMDocker 方式环境要求NVIDIA GPU 对应版本的 CUDA Docker。官方推荐使用 Docker 镜像来隔离环境避免依赖冲突步骤非常固定# 1. 安装 git 和 git-lfsTensorRT-LLM 仓库必须用 lfs 拉取 apt-get update apt-get -y install git git-lfs # 2. 克隆 TensorRT-LLM 并切换到 v0.7.0 发布版 git clone TensorRT-LLM cd TensorRT-LLM git checkout tags/v0.7.0 -b release/0.7.0 git submodule update --init --recursive git lfs install git lfs pull # 3. 构建并启动 docker 镜像一条命令搞定安装 make -C docker release_build make -C docker release_run 执行release_run后你就进入了预装好 TensorRT-LLM 的容器环境接下来都在这里面操作即可。三、构建 ChatGLM3 推理引擎核心步骤1️⃣ 下载 ChatGLM3 模型从 HuggingFace 下载你想部署的模型版本三选一模型特点chatglm3-6b通用对话版推荐新手chatglm3-6b-base基础版chatglm3-6b-32k支持 32K 长上下文2️⃣ 用 build.py 编译推理引擎进入容器内的examples/chatglm目录安装依赖后一条build.py命令即可完成编译不同优化目标对应不同参数# 默认 FP16 精度单卡构建 python3 build.py -m chatglm3_6b --output_dir trt_engines/chatglm3_6b/fp16/1-gpu # 开启 FMHA 融合注意力速度更快、显存更低 python3 build.py -m chatglm3_6b --enable_context_fmha --output_dir trt_engines/chatglm3_6b/fp16/1-gpu # 开启 Weight-Only Int8 量化省显存 加速 python3 build.py -m chatglm3_6b --use_weight_only --output_dir trt_engines/chatglm3_6b/weight_only/1-gpu # 双卡张量并行模型切分到 2 张 GPU python3 build.py -m chatglm3_6b --world_size 2 --output_dir trt_engines/chatglm3_6b/fp16/2-gpu常用加速开关速查表 ️参数作用--enable_context_fmha开启 FMHA kernelFP16 累加器速度收益最大精度略有折损--enable_context_fmha_fp32_accFMHA FP32 累加器精度更稳--use_weight_only开启 Weight-Only 量化--weight_only_precision int8 / int4选择量化位宽int4 显存最省--world_size N使用 N 张 GPU 做张量并行--use_inflight_batching开启 In-flight Batching需配 Triton 使用自动启用 Paged KV Cache⚠️ 注意--use_gpt_attention_plugin若被设为关闭则 FMHA 无法启用。四、跑通第一次加速对话 单机单卡推理# 快速验证引擎能否正常生成 python3 ../run.py --input_text Whats new between ChatGLM3-6B and ChatGLM2-6B? \ --max_output_len 50 \ --tokenizer_dir chatglm3_6b \ --engine_dir trt_engines/chatglm3_6b/fp16/1-gpu运行多轮对话 Demo ️项目提供了开箱即用的命令行对话脚本 tensorrt_llm_cli_demo.py它实现了 ChatGLM3 的多轮对话模板与流式输出见 tensorrt_llm_cli_demo.pypython3 tensorrt_llm_cli_demo.py --tokenizer_dir chatglm3_6b \ --engine_dir trt_engines/chatglm3_6b/fp16/1-gpu运行后即可在终端与加速后的 ChatGLM3 实时对话输入stop退出、clear清空历史双卡并行推理如果引擎是用--world_size 2构建的运行时需要用 MPI 拉起两个进程mpirun -n 2 python ../run.py --input_text 你好 \ --max_output_len 50 --tokenizer_dir chatglm3_6b \ --engine_dir trt_engines/chatglm3_6b/fp16/2-gpu 若以 root 身份运行mpirun记得加上--allow-run-as-root参数。五、进阶用 NVIDIA Triton 部署在线推理服务 个人试玩结束想做成正式服务怎么办推荐NVIDIA Triton Inference Server构建引擎时加--use_inflight_batching自动启用 Paged KV Cache--tokens_per_block可配置 block 数量用 Triton 的 TensorRT-LLM Backend 加载引擎并对外提供高并发 APIIn-flight Batching 会把多个请求动态拼批执行实际服务吞吐量可再上一个台阶最终呈现给用户的就是一个响应飞快的高性能对话服务六、常见坑位与加速避坑指南 问题解决方法运行时找不到 engine 文件引擎文件名由模型名_精度_并行数_rank组成加载时的model_name、dtype、tp_size必须与构建时一致构建阶段显存不足改用--use_weight_onlyint4量化或换更大显存的 GPUmpirun拒绝运行加参数--allow-run-as-rootroot 场景想用 32K 长文本引擎构建时指定-m chatglm3_6b_32k模型目录精度要求高FMHA 选用--enable_context_fmha_fp32_acc另外构建 32K 版本时请注意chatglm3-6b-32k模型目录命名避免与 6b 混用导致 tokenizer 不匹配。总结一张图看懂加速收益 优化手段主要收益TensorRT-LLM 引擎编译推理速度数倍提升相比 Transformers 原生推理FMHA更快 更省显存Int8/Int4 量化显存占用大幅下降推理进一步提速多卡张量并行支撑更大 batch、更长上下文Triton In-flight Batching在线服务高吞吐、高并发按本文流程操作你只需要「装框架 → 编译引擎 → 跑 Demo」三步就能在 NVIDIA 显卡上体验ChatGLM3 推理速度翻数倍的流畅对话。完整命令细节可对照官方文档 tensorrt_llm_demo/README.md动手试试吧【免费下载链接】ChatGLM3ChatGLM3 series: Open Bilingual Chat LLMs | 开源双语对话语言模型项目地址: https://gitcode.com/zai-org/ChatGLM3创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考