TensorRT-LLM 如何在 Blackwell 硬件上部署 GPT-OSS-120B 并验证推理输出

发布时间:2026/9/15 10:57:20

TensorRT-LLM 如何在 Blackwell 硬件上部署 GPT-OSS-120B 并验证推理输出 TensorRT-LLM 如何在 Blackwell 硬件上部署 GPT-OSS-120B 并验证推理输出【免费下载链接】TensorRT-LLMTensorRT LLM provides users with an easy-to-use Python API to define Large Language Models (LLMs) and supports state-of-the-art optimizations to perform inference efficiently on NVIDIA GPUs. TensorRT LLM also contains components to create Python and C runtimes that orchestrate the inference execution in a performant way.项目地址: https://gitcode.com/GitHub_Trending/te/TensorRT-LLM这篇文章针对一个明确的任务在 NVIDIA Blackwell GPU 上用 TensorRT-LLM 部署 OpenAI 的 GPT-OSS-120B 模型启动trtllm-serve推理服务并通过健康检查和真实请求验证输出。完成后你会得到一个运行在http://localhost:8000的 OpenAI 兼容 API 服务。以下内容依据项目自带的部署文档 deployment-guide-for-gpt-oss-on-trtllm.md 整理操作步骤与其中的命令保持一致。准备条件文档给出的硬性前提GPUNVIDIA Blackwell 架构如 B200/GB200/B300/GB300操作系统Linux驱动CUDA Driver 575 或更高版本已安装 Docker 与 NVIDIA Container ToolkitPython3 和 python3-pip 仅在需要跑精度评估时才用到模型是 MXFP4 权重的GPT-OSS-120BHugging Face 仓库openai/gpt-oss-120b。文档中的 MoE 后端支持矩阵说明Blackwell 设备上默认 MoE 后端为TRTLLMMXFP8 激活 MXFP4 权重用于低延迟和最大吞吐场景用户无需显式设置moe_config.backend。启动 Docker 容器使用 NGC 上的 TensorRT-LLM 容器。注意源文档中的镜像 tag 写作x.y.z这是占位符需要替换为 NGC 目录中实际发布的 tag主分支每周构建的 tag 带rcN后缀模型和功能支持最新月度经 QA 测试的版本不带该后缀。docker run --rm -it \ --ipchost \ --gpus all \ -p 8000:8000 \ -v ~/.cache:/root/.cache:rw \ --name tensorrt_llm \ nvcr.io/nvidia/tensorrt-llm/release:x.y.z \ /bin/bash命令中几个影响后续步骤的选项-v ~/.cache:/root/.cache:rw把宿主机的~/.cache挂进容器模型 checkpoint 默认下载到~/.cache/huggingface/hub/重跑容器时不用重新下载。如果宿主机没有~/.cache目录先执行mkdir ~/.cache。-p 8000:8000把容器 8000 端口映射到宿主机后续在宿主机上用 curl 访问 LLM API。如需挂载权重目录等额外路径可用-v host_path:container_path追加。选择推荐性能配置TensorRT-LLM 在 examples/configs 目录维护了推荐配置容器内路径为/app/tensorrt_llm/examples/configs可以直接使用也可以按自己的流量模式调整。GPT-OSS-120B 有两个现成 YAML低延迟gpt-oss-120b-latency.yamlTRTLLM_DIR/app/tensorrt_llm # change as needed to match your environment EXTRA_LLM_API_FILE${TRTLLM_DIR}/examples/configs/curated/gpt-oss-120b-latency.yaml对应的配置内容源文档直接内嵌该文件max_batch_size: 64 max_num_tokens: 16384 tensor_parallel_size: 8 moe_expert_parallel_size: 1 trust_remote_code: true cuda_graph_config: enable_padding: true max_batch_size: 64 moe_config: backend: TRTLLM stream_interval: 20 num_postprocess_workers: 4最大吞吐gpt-oss-120b-throughput.yamlTRTLLM_DIR/app/tensorrt_llm # change as needed to match your environment EXTRA_LLM_API_FILE${TRTLLM_DIR}/examples/configs/curated/gpt-oss-120b-throughput.yamlmax_batch_size: 720 # Depends on max_sequence_length max_num_tokens: 16384 tensor_parallel_size: 2 moe_expert_parallel_size: 2 trust_remote_code: true enable_attention_dp: true cuda_graph_config: enable_padding: true max_batch_size: 720 moe_config: backend: TRTLLM stream_interval: 20 num_postprocess_workers: 4 attention_dp_config: enable_balance: true batching_wait_iters: 50 timeout_iters: 1两个文件的tensor_parallel_size/moe_expert_parallel_size不同文档说明这两个值“一般应与你使用的 GPU 数量一致”所以低延迟配置面向 8 卡实例吞吐配置的并行度组合是 2x2。如果你的机器卡数与所选 YAML 不匹配需要在 YAML 中调整并行参数不能假设原样可用。这些配置针对 1024/1024 的输入/输出序列长度ISL/OSL调优如果请求输入更长可以在配置中加enable_chunked_prefill: true但文档明确说明这不保证最优性能。如果本地没有源码可以按源文档的方法手动创建 YAML 文件用cat EOF ${EXTRA_LLM_API_FILE}写入上面的内容再将其作为--config参数传入。启动推理服务在容器内执行启动命令trtllm-serve openai/gpt-oss-120b --host 0.0.0.0 --port 8000 --config ${EXTRA_LLM_API_FILE}其中${EXTRA_LLM_API_FILE}是上一步设置的 YAML 路径。--config是传入 YAML 配置文件的推荐参数旧的--extra_llm_api_options是等效别名仍可使用。服务启动完成后客户端就可以向服务器发送 prompt 请求。YAML 中与本次部署直接相关的几个选项均来自源文档的说明max_batch_size单个 batch 最多可包含的用户请求数实际能达到的值还受总序列长度和 KV cache 可用显存限制。max_num_tokens单个调度 batch 内允许的 token 总数上限每个请求的全部输入 token 加上每个 decode 请求的 1 个输出 token 都计入该阈值。kv_cache_free_gpu_memory_fraction模型加载后为 KV cache 预留的空闲显存比例0.0–1.0。如果遇到 OOM文档建议把它降到0.7或更低。cuda_graph_config.enable_padding默认false与cuda_graph_config.max_batch_size默认0文档建议把后者设为与--max_batch_size相同的值两个推荐 YAML 都已按此设置。trust_remote_code允许从 Hugging Face 下载模型和 tokenizer两个 YAML 均设为true。验证服务与推理输出在宿主机新开一个终端先查健康检查curl -s -o /dev/null -w Status: %{http_code}\n http://localhost:8000/health返回Status: 200表示服务就绪。注意源文档的提示首个查询可能因为初始化和编译耗时更久。服务日志出现Application startup complete后即可发请求。再发送一条 chat completion 请求验证实际推理输出curl http://localhost:8000/v1/chat/completions -H Content-Type: application/json -d { model: openai/gpt-oss-120b, messages: [ { role: user, content: Where is New York? } ], max_tokens: 1024, top_p: 1.0 } -w \n下面是源文档给出的响应示例文档示例不是每次请求的固定输出可以看到返回内容包含模型的推理分析与最终回答{id:chatcmpl-c5bf51b5cab94e10ba5da5266d12ee59,object:chat.completion,created:1755815898,model:openai/gpt-oss-120b,choices:[{index:0,message:{role:assistant,content:analysisThe user asks: \Where is New York?\ ... assistantfinal**New York** can refer to two related places in the United States: ...,reasoning_content:null,tool_calls:[]},finish_reason:stop,stop_reason:null}],usage:{prompt_tokens:72,total_tokens:705,completion_tokens:633},prompt_token_ids:null}判断标准请求返回finish_reason: stop且content中有针对问题的回答即说明部署与推理链路都已打通。常见问题的处理文档给出的排查项按现象对应CUDA out-of-memory 错误降低max_batch_size或max_seq_len或把kv_cache_free_gpu_memory_fraction调到0.7以下。容器无法启动确认 NVIDIA Container Toolkit 安装正确。连接问题确认 8000 端口没有被其他应用占用本文档的端口映射就是 8000。模型 checkpoint 格式不匹配确认权重与期望格式兼容。性能不达预期服务运行期间用nvidia-smi观察 GPU 利用率。可选跑一遍性能基准如果需要量化吞吐和延迟文档提供了内置的benchmark_serving.py脚本示例是针对 1024/1024 ISL/OSL 的单并发点调用python -m tensorrt_llm.serve.scripts.benchmark_serving \ --model openai/gpt-oss-120b \ --backend openai \ --dataset-name random \ --random-input-len 1024 \ --random-output-len 1024 \ --random-prefix-len 0 \ --random-ids \ --num-prompts 160 \ --max-concurrency 32 \ --ignore-eos \ --tokenize-on-client \ --percentile-metrics ttft,tpot,itl,e2el参数取自源文档中bench.sh脚本的一次循环num_prompts concurrency * multi_round即 32 x 5。若要扫并发区间或把结果落盘可加--save-result --result-dir dir --result-filename concurrency_n.json文档提示开启 attention DP 时要扫到concurrency max_batch_size * num_gpus才能逼近最大吞吐。输出包含 TTFT、TPOT、ITL、E2E 延迟和各吞吐指标具体含义见源文档的 Key Metrics 一节。如果还需要验证模型精度可选文档说明在 gpt-oss 仓库中用其官方gpt_oss.evals工具可直接对接trtllm-serve的 Chat Completions / Responses API且启动服务端时需要设置enable_attention_dp、tp_size、ep_size、max_batch_size、max_num_tokens评测时指定--reasoning-effort文档附了 B200 上不同reasoning-effort的参考配置表。边界与限制本路径绑定 Blackwell NGC TensorRT-LLM 容器文档的 MoE 后端矩阵中 HopperH200默认后端是TRITON而非TRTLLMHopper 用户不能照抄本文配置。推荐 YAML 只针对 1024/1024 ISL/OSL 调优更长输入要靠enable_chunked_prefill且文档明确它不保证最优性能。--config之外的完整 YAML 可选项源文档指向TorchLlmArgs类参考本文不展开。【免费下载链接】TensorRT-LLMTensorRT LLM provides users with an easy-to-use Python API to define Large Language Models (LLMs) and supports state-of-the-art optimizations to perform inference efficiently on NVIDIA GPUs. TensorRT LLM also contains components to create Python and C runtimes that orchestrate the inference execution in a performant way.项目地址: https://gitcode.com/GitHub_Trending/te/TensorRT-LLM创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/15 10:52:19

PHP引擎一共有哪些?

PHP引擎PHP引擎主要是指解析和执行PHP代码的软件。最常见的PHP引擎就是官方的PHP解释器,但随着技术的发展,也出现了一些其他的PHP引擎或加速器,比如:Zend引擎:这是PHP的官方引擎,从PHP 4开始就是默认的引擎…

2026/9/15 11:07:21

1. 抓娃娃-二分

题目理解 题目:n 条线段,m 个查询区间[L,R]。 如果某条线段至少一半长度落在查询区间[L,R]里面,就代表这条线段被框住。求每个查询能框住多少条线段。 证明: 线段中点落在查询区间[L,R],说明中点被包住,那么…

2026/9/15 11:02:21

Semantica evals模块详解:如何科学评估知识图谱构建质量

Semantica evals模块详解:如何科学评估知识图谱构建质量 【免费下载链接】semantica Graph-Native Infrastructure for Context and Accountable AI Systems 项目地址: https://gitcode.com/GitHub_Trending/sema/semantica 构建知识图谱最头疼的不是"建…

2026/9/15 4:54:30

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/15 0:01:16

AI英语单词APP开发:自适应学习算法与移动端优化实践

1. 项目概述 作为一名在移动应用开发领域摸爬滚打多年的老手,我最近完成了一个AI英语单词APP的开发项目。这个项目将传统单词记忆方法与现代AI技术相结合,打造了一款能够智能适应不同用户学习习惯的英语学习工具。 市面上大多数单词APP都存在一个通病&a…

2026/9/15 0:01:16

Flutter与OpenHarmony结合开发手语学习APP实战

1. 项目背景与核心价值作为一名同时接触过Flutter和OpenHarmony的开发者,最近我完成了一个基于Flutter for OpenHarmony的手语学习APP实战项目。这个项目最大的特点在于实现了跨平台框架与国产操作系统深度结合的创新实践——用Flutter开发的应用能完美运行在OpenHa…

2026/9/15 0:01:16

六个月成为机器人工程师:从ROS2到SLAM的实战路径

1. 六个月的紧迫感从哪来:先搞清楚你要成为哪种机器人工程师说实话,六个月的期限并不是一个宽松的时间线。市面上任何一本正经的机器人学教材都超过五百页,ROS2的官方文档可以翻到你怀疑人生,再加上ABB、KUKA这些工业机器人厂家动…

2026/9/14 11:59:31

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/14 13:53:59

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/14 11:22:57

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码