发行说明#

发行说明中发布的所有功能都经过了全面测试和验证,并记录了已知的限制。要分享有关此版本的反馈,请访问我们的NVIDIA 开发者论坛

TensorRT-LLM 发布 0.18.1#

主要特性和增强功能#

  • 0.18.x 系列版本基于 0.17.0 版本构建,仅关注依赖项更新,而不包含先前 0.18.0.dev 预发布版本中的功能。这些功能将包含在未来的稳定版本中.

基础设施变更#

  • 依赖的 transformers 包版本已更新至 4.48.3。

TensorRT-LLM 发布 0.18.0#

主要特性和增强功能#

  • 先前在 0.18.0.dev 预发布版本中提供的功能不包含在此版本中.

  • [重大更改] 从 v0.18.0 开始,Windows 平台支持已弃用。与 Windows 相关的所有代码和功能将在未来的版本中完全删除。

已知问题#

  • SBSA 上的 PyTorch 工作流程与 Ubuntu 24.04 等裸机环境不兼容。请使用PyTorch NGC 容器,以获得对 SBSA 平台的最佳支持。

基础设施变更#

  • TensorRT-LLM 的基础 Docker 镜像已更新为 nvcr.io/nvidia/pytorch:25.03-py3

  • TensorRT-LLM 后端的基础 Docker 镜像已更新为 nvcr.io/nvidia/tritonserver:25.03-py3

  • 依赖的 TensorRT 版本已更新至 10.9。

  • 依赖的 CUDA 版本已更新至 12.8.1。

  • 依赖的 NVIDIA ModelOpt 版本已更新至 Linux 平台的 0.25。

TensorRT-LLM 发布 0.17.0#

主要特性和增强功能#

  • Blackwell 支持

    • 注意:仅在 Blackwell 平台上,TRT-LLM 0.17 不支持 pip 安装。相反,建议用户使用 NVIDIA NGC 25.01 PyTorch 容器从源代码构建。

    • 添加了对 B200 的支持。

    • 添加了使用 Windows Subsystem for Linux (WSL) 对有限模型支持 GeForce RTX 50 系列。

    • 为 Llama 和 Mixtral 模型添加了 NVFP4 Gemm 支持。

    • LLM API 和 trtllm-bench 命令添加了 NVFP4 支持。

    • GB200 NVL 未完全支持。

    • 添加了基准测试脚本,用于测量 KV 缓存主机卸载的性能优势,并期望从 GH200 获得运行时改进。

  • PyTorch 工作流程

    • PyTorch 工作流程是 tensorrt_llm._torch 中的一项实验性功能。以下是与 PyTorch 工作流程一起使用的受支持基础设施、模型和功能的列表。

    • 添加了对 H100/H200/B200 的支持。

    • 添加了对 Llama 模型、Mixtral、QWen、Vila 的支持。

    • 添加了对 FP16/BF16/FP8/NVFP4 Gemm 和融合的 Mixture-Of-Experts (MOE)、FP16/BF16/FP8 KVCache 的支持。

    • 添加了通过 PyTorch 自定义操作的自定义上下文和解码注意力内核支持。

    • 添加了分块上下文支持(默认关闭)。

    • 添加了仅用于解码的 CudaGraph 支持。

    • 添加了重叠调度程序支持,以通过解码 1 个额外的令牌来重叠准备输入和模型前向传递。

  • 为 W4A8 量化工作流程添加了 FP8 上下文 FMHA 支持。

  • LLM API 添加了 ModelOpt 量化检查点支持。

  • 为 Llama-3.2 VLM 模型添加了 FP8 支持。请参阅 examples/multimodal/README.md 中的“MLLaMA”部分。

  • 为基于 userbuffer 的 AllReduce-Norm 融合内核添加了 PDL 支持。

  • 为无缝 lookahead 解码添加了运行时支持。

  • 为 C++ executor API 添加了令牌对齐的任意输出张量支持。

API 更改#

  • [重大更改] 启用 paged_context_fmha 时,KV 缓存重用将自动启用。

  • trtllm-benchthroughput 子命令添加了 --concurrency 支持。

已知问题#

  • 由于新的第三方依赖项,运行 pip install tensorrt-llm 时需要 --extra-index-url https://pypi.nvidia.com

  • 由于 PyTorch ABI/API 中的中断,PYPI SBSA wheel 与 PyTorch 2.5.1 不兼容,如相关的 GitHub 问题 中详述。

  • SBSA 上的 PyTorch 工作流程与 Ubuntu 24.04 等裸机环境不兼容。请使用 [PyTorch NGC Container (https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch),以获得对 SBSA 平台的最佳支持。

已修复的问题#

  • 修复了不正确的 LoRA 输出维度。感谢 @akhoroshev 在 #2484 中的贡献。

  • 将 NVIDIA H200 GPU 添加到自动并行功能的 cluster_key 中。 (#2552)

  • 修复了 LLmArgs 类的 __post_init__ 函数中的拼写错误。感谢 @topenkoff 在 #2691 中的贡献。

  • 修复了 GPT 注意力插件中的工作空间大小问题。感谢 @AIDC-AI 的贡献。

  • 修复了 Deepseek-V2 模型的准确性。

基础设施变更#

  • TensorRT-LLM 的基础 Docker 镜像已更新为 nvcr.io/nvidia/pytorch:25.01-py3

  • TensorRT-LLM 后端的基础 Docker 镜像已更新为 nvcr.io/nvidia/tritonserver:25.01-py3

  • 依赖的 TensorRT 版本已更新至 10.8.0。

  • 依赖的 CUDA 版本已更新至 12.8.0。

  • 依赖的 ModelOpt 版本已更新为 Linux 平台的 0.23,而 Windows 平台仍使用 0.17。

TensorRT-LLM 发布 0.16.0#

主要特性和增强功能#

  • 添加了带有 XGrammar 后端的引导式解码支持。

  • 添加了对 RecurrentGemma 的量化支持。请参阅 examples/recurrentgemma/README.md

  • 添加了 ulysses 上下文并行支持。 请参阅 examples/llama/README.md 中有关使用 2 路张量并行和 2 路上下文并行构建 LLaMA 7B 的示例。

  • 在 Ada (SM89) 上为 BF16 模型添加了 W4A8 量化支持。

  • 为 FP8 GEMM 插件添加了 PDL 支持。

  • 添加了运行时 max_num_tokens 动态调整功能,可以通过将 --enable_max_num_tokens_tuning 设置为 gptManagerBenchmark 来启用。

  • 为 EAGLE 添加了典型接受支持。

  • 支持同时启用分块上下文和滑动窗口注意力机制。

  • 为 XQA 内核增加了 64 头大小的支持。

  • 为 LLM API 添加了以下特性:

    • 预见性解码。

    • DeepSeek V1 支持。

    • Medusa 支持。

    • max_num_tokensmax_batch_size 参数用于控制运行时参数。

    • extended_runtime_perf_knob_config 用于启用各种性能配置。

  • 为 Qwen 模型添加了 LogN 缩放支持。

  • 为 Qwen 添加了 AutoAWQ 检查点支持。请参考 examples/qwen/README.md 中的 “INT4-AWQ” 部分。

  • 为 LLaMA 添加了 AutoAWQAutoGPTQ Hugging Face 检查点支持。 (#2458)

  • 向 C++ Request 类添加了 allottedTimeMs,以支持每个请求的超时。

  • [重大变更] 移除 NVIDIA V100 GPU 支持。

API 变更#

  • [重大变更] 从 trtllm-build 中移除 enable_xqa 参数。

  • [重大变更] 在非 RNN 模型上启用 KV 缓存和分页上下文 FMHA 时,默认启用分块上下文。

  • [重大变更] 尽可能自动启用嵌入共享,并从转换检查点脚本中移除标志 --use_embedding_sharing

  • [重大变更] 当使用 LLM API 时,单 GPU 和多 GPU 情况都需要 if __name__ == "__main__" 入口点。

  • [重大变更] 取消的请求现在返回空结果。

  • LLM API 的 LlmArgs 添加了 enable_chunked_prefill 标志。

  • 将 BERT 和 RoBERTa 模型集成到 trtllm-build 命令中。

模型更新#

  • 添加 Qwen2-VL 支持。请参考 examples/multimodal/README.md 的 “Qwen2-VL” 部分。

  • 添加了多模态评估示例。请参考 examples/multimodal

  • 添加了 Stable Diffusion XL 支持。请参考 examples/sdxl/README.md。感谢 @Zars19 在 #1514 中的贡献。

修复的问题#

  • 修复了不必要的批量 logits 后处理器调用。 (#2439)

  • 修复了错误消息中的拼写错误。 (#2473)

  • 修复了平滑量化中就地钳制操作的使用。感谢 @StarrickLiu 在 #2485 中的贡献。

  • 修复了 sampling_params,使其仅在 LLM API 中,当 end_id 为 None 且 tokenizer 不为 None 时才设置。感谢 @mfuntowicz 在 #2573 中的贡献。

基础设施变更#

  • 将 TensorRT-LLM 的基础 Docker 镜像更新为 nvcr.io/nvidia/pytorch:24.11-py3

  • 将 TensorRT-LLM Backend 的基础 Docker 镜像更新为 nvcr.io/nvidia/tritonserver:24.11-py3

  • 更新到 TensorRT v10.7。

  • 更新到 CUDA v12.6.3。

  • 为 PyPI 上的 TensorRT-LLM Python wheels 添加了 Python 3.10 和 3.12 的支持。

  • Linux 平台更新到 ModelOpt v0.21,而 Windows 平台仍然使用 v0.17。

已知问题#

  • 在基于 AMD 的 CPU 平台上,NCCL 2.23.4 存在已知的 AllReduce 性能问题,可以通过 export NCCL_P2P_LEVEL=SYS 来解决。

TensorRT-LLM Release 0.15.0#

主要特性和增强#

  • 增加了对 EAGLE 的支持。请参考 examples/eagle/README.md

  • 增加了对 GH200 系统的功能支持。

  • 增加了 AutoQ (混合精度) 支持。

  • 增加了一个 trtllm-serve 命令来启动一个基于 FastAPI 的服务器。

  • 为 Nemotron NAS 51B 增加了 FP8 支持。请参考 examples/nemotron_nas/README.md

  • 为 GPTQ 量化增加了 INT8 支持。

  • 增加了 TensorRT 对 INT8 平滑量化的原生支持。

  • 为 Exaone 模型增加了量化支持。请参考 examples/exaone/README.md

  • 为 Qwen2 模型启用了 Medusa。请参考 examples/medusa/README.md 中的 “Medusa with Qwen2” 部分。

  • 针对 Mixtral 模型,使用 ReduceScatter 和 AllGather 优化了流水线并行性。

  • 增加了对 Qwen2ForSequenceClassification 模型架构的支持。

  • 增加了 Python 插件支持,以简化插件开发工作。请参考 examples/python_plugin/README.md

  • 在使用 Hugging Face 格式时,为 LoRA 模块增加了不同的 rank 维度支持。感谢 @AlessioNetti 在 #2366 中的贡献。

  • 默认启用嵌入共享。有关嵌入共享所需条件的信息,请参考 docs/source/performance/perf-best-practices.md 中的 “Embedding Parallelism, Embedding Sharing, and Look-Up Plugin” 部分。

  • 在 Ada 上增加了对 per-token per-channel FP8 (即行式 FP8) 的支持。

  • 将最大支持的 beam_width 扩展到 256

  • 为 InternVL2-4B 变体(仅 LLM 模型)增加了 FP8 和 INT8 SmoothQuant 量化支持。请参考 examples/multimodal/README.md

  • 增加了对 prompt-lookup speculative decoding 的支持。请参考 examples/prompt_lookup/README.md

  • 集成了 QServe w4a8 per-group/per-channel 量化。请参考 examples/llama/README.md 中的 “w4aINT8 quantization (QServe)” 部分。

  • 使用 executor API 添加了一个 C++ 示例,用于快速 logits。请参考 examples/cpp/executor/README.md 中的 “executorExampleFastLogits” 部分。

  • [重大变更] 在此版本和以后的版本中,将移除 NVIDIA Volta GPU 支持。

  • LLM API 添加了以下增强:

    • [重大变更] 为了更好的生成性能(无需预热),将运行时初始化从第一次调用 LLM.generate 移动到 LLM.__init__

    • SamplingParams 类添加了 nbest_of 参数。这些参数允许为单个请求返回多个生成结果。

    • SamplingParams 类添加了 ignore_eos, detokenize, skip_special_tokens, spaces_between_special_tokens, 和 truncate_prompt_tokens 参数。这些参数允许更好地控制 tokenizer 的行为。

    • 增加了对增量反token化的支持,以提高流式生成时的反token化性能。

    • LLM 类添加了 enable_prompt_adapter 参数,并为 LLM.generate 方法添加了 prompt_adapter_request 参数。 这些参数启用了提示调整 (prompt tuning)。

  • examples/gpt/convert_checkpoint.py 文件添加了 gpt_variant 参数的支持。此增强功能允许使用更多的 GPT 模型变体进行检查点转换。 感谢 @tonylek 在 #2352 中的贡献。

API 变更#

  • [重大变更] 将 trtllm-build 命令中的标志 builder_force_num_profiles 移动到 BUILDER_FORCE_NUM_PROFILES 环境变量。

  • [重大变更] 修改了 BuildConfig 类的默认值,使其与 trtllm-build 命令对齐。

  • [重大变更] 删除了 GptManager 的 Python 绑定。

  • [重大变更] auto 用作量化和检查点转换脚本中 --dtype 选项的默认值。

  • [重大变更] 弃用了 gptManagerBenchmark 中的 gptManager API 路径。

  • [重大变更] 弃用了 LLM API 中 SamplingParams 类的 beam_widthnum_return_sequences 参数。 请改用 n, best_ofuse_beam_search 参数。

  • 向 OpenAI API 服务器公开了 --trust_remote_code 参数。 (#2357)

模型更新#

  • 增加了对 Llama 3.2 和 llama 3.2-Vision 模型的支持。有关 llama 3.2-Vision 模型的更多详细信息,请参考 examples/mllama/README.md

  • 增加了对 Deepseek-v2 的支持。请参考 examples/deepseek_v2/README.md

  • 增加了对 Cohere Command R 模型支持。 请参考 examples/commandr/README.md

  • 添加了对 Falcon 2 的支持,请参考 examples/falcon/README.md,感谢 @puneeshkhanna 在 #1926 中的贡献。

  • 增加了对 InternVL2 的支持。请参考 examples/multimodal/README.md

  • 增加了对 Qwen2-0.5B 和 Qwen2.5-1.5B 模型。 (#2388)

  • 增加了对 Minitron 的支持。请参考 examples/nemotron

  • 增加了一个 GPT 变体 - Granite(20B 和 34B)。请参考 examples/gpt/README.md 中的 “GPT Variant - Granite” 部分。

  • 新增了对 LLaVA-OneVision 模型的支持。请参考 examples/multimodal/README.md 中的 “LLaVA, LLaVa-NeXT, LLaVA-OneVision and VILA” 部分。

修复的问题#

  • 修复了 forward 函数中的切片错误。 (#1480)

  • 修复了构建 BERT 时出现的问题。 (#2373)

  • 修复了构建 BERT 时模型未加载的问题。 (2379)

  • 修复了损坏的 executor 示例。 (#2294)

  • 修复了专家数量不是 2 的幂时,内核 moeTopK() 无法找到正确专家的Bug。感谢 @dongjiyingdjy 报告了这个bug。

  • 修复了 crossKvCacheFraction 上的断言失败。 (#2419)

  • 修复了使用 smoothquant 量化 Qwen2 模型时出现的问题。 (#2370)

  • 修复了 docs/source/performance/perf-benchmarking.md 中的 PDL 拼写错误,感谢 @MARD1NO 在 #2425 中指出。

基础设施变更#

  • TensorRT-LLM 的基础 Docker 镜像已更新为 nvcr.io/nvidia/pytorch:24.10-py3

  • TensorRT-LLM Backend 的基础 Docker 镜像已更新为 nvcr.io/nvidia/tritonserver:24.10-py3

  • 依赖的 TensorRT 版本已更新至 10.6。

  • 依赖的 CUDA 版本已更新至 12.6.2。

  • 依赖的 PyTorch 版本已更新至 2.5.1。

  • Linux 平台的依赖 ModelOpt 版本已更新至 0.19,而 Windows 平台仍使用 0.17。

文档#

  • 在文档中为代码片段添加了复制按钮。 (#2288)

TensorRT-LLM 发布 0.14.0#

主要特性和增强功能#

  • 增强了 LLM API 中的 LLM 类。

    • 增加了对使用离线数据集进行校准的支持。

    • 增加了对 Mamba2 的支持。

    • 增加了对 finish_reasonstop_reason 的支持。

  • 为 CodeLlama 增加了 FP8 支持。

  • 为类 Module 添加了 __repr__ 方法,感谢 @1ytic 在 #2191 中的贡献。

  • 为融合门控 MLP 增加了 BFloat16 支持。

  • 更新了 ReDrafter beam search 逻辑以匹配 Apple ReDrafter v1.1。

  • 提高了 customAllReduce 的性能。

  • orchestrator 模式下,草稿模型现在可以直接通过 MPI 将 logits 复制到目标模型的进程。这种快速 logits 复制减少了草稿 token 生成和目标模型推理开始之间的延迟。

  • NVIDIA Volta GPU 支持已被弃用,将在未来的版本中删除。

API 变更#

  • [重大变更] trtllm-build 命令的默认 max_batch_size 设置为 2048

  • [重大变更] 从 BuildConfig 类和 trtllm-build 命令中删除 builder_opt

  • ModelRunnerCpp 类添加 logits 后处理器支持。

  • 向 C++ Executor API 添加了 isParticipant 方法,用于检查当前进程是否是执行器实例中的参与者。

模型更新#

  • 增加了对 NemotronNas 的支持,请参见 examples/nemotron_nas/README.md

  • 增加了对 Deepseek-v1 的支持,请参见 examples/deepseek_v1/README.md

  • 增加了对 Phi-3.5 模型 的支持,请参见 examples/phi/README.md

修复的问题#

  • 修复了 tensorrt_llm/models/model_weights_loader.py 中的拼写错误,感谢 @wangkuiyi 在 #2152 中的贡献。

  • 修复了 tensorrt_llm/runtime/generation.py 中的重复导入模块问题,感谢 @lkm2835 在 #2182 中的贡献。

  • 对于在旧版检查点转换路径中没有 lm_head 的模型,启用了 share_embedding,感谢 @lkm2835 在 #2232 中的贡献。

  • 修复了 Python 基准测试中的 kv_cache_type 问题,感谢 @qingquansong 在 #2219 中的贡献。

  • 修复了使用自定义数据集进行 SmoothQuant 校准时出现的问题。感谢 @Bhuvanesh09 在 #2243 中的贡献。

  • 修复了使用虚假或随机权重时 trtllm-build --fast-build 缺少权重的问题。感谢 @ZJLi2013 在 #2135 中标记了它。

  • 修复了从 dict 构造 BuildConfig 时缺少 use_fused_mlp 的问题,感谢 @ethnzhng 在 #2081 中的修复。

  • 修复了 numNewTokensCumSum 的先行批处理布局。 (#2263)

基础设施变更#

  • 依赖的 ModelOpt 版本已更新至 v0.17。

文档#

  • @Sherlock113 在 #2169 中将 技术博客 添加到最新消息中,感谢您的贡献。

已知问题#

  • Replit Code 不支持 transformers 4.45+

TensorRT-LLM 发布 0.13.0#

主要特性和增强功能#

  • 支持先行解码(实验性),请参见 docs/source/speculative_decoding.md

  • ModelWeightsLoader (统一检查点转换器,请参见 docs/source/architecture/model-weights-loader.md) 进行了一些增强。

    • 支持 Qwen 模型。

    • 支持 INT4-wo/INT8-wo/INT4-GPTQ 中不可分割的 TP 形状的自动填充。

    • 提高了 *.bin*.pth 的性能。

  • 在 C++ 运行时中支持 OpenAI Whisper。

  • LLM 类进行了一些增强。

    • 支持 LoRA。

    • 支持使用虚拟权重构建引擎。

    • 支持从 Hugging Face Hub 下载的自定义模型和分词器的 trust_remote_code

  • 支持流模式的 beam search。

  • 支持 Mamba2 的张量并行。

  • 支持返回流模式的生成 logits。

  • ReDrafter 添加了 curandbfloat16 支持。

  • 为 MoE 模型添加了稀疏混合器归一化模式。

  • 增加了对 FP8 FMHA 中 QKV 缩放的支持。

  • 支持 MoE LoRA 的 FP8。

  • 支持 P-Tuning 和 LoRA 的 KV 缓存重用。

  • 支持 CogVLM 模型中的飞行中批处理。

  • 支持 ModelRunnerCpp 类的 LoRA。

  • 支持 FMHA 内核的 head_size=48 情况。

  • 为 DiT 模型添加了 FP8 示例,请参见 examples/dit/README.md

  • 支持 C++ executor API 的带有编码器输入特征的解码器。

API 变更#

  • [重大变更] 默认情况下将 use_fused_mlp 设置为 True

  • [重大变更] 默认情况下启用 multi_block_mode

  • [重大变更] 在 builder API 中默认启用 strongly_typed

  • [重大变更] 将 maxNewTokensrandomSeedminLength 重命名为 maxTokensseedminTokens,遵循 OpenAI 风格。

  • LLM

    • [重大变更] 更新了 LLM.generate 参数,以包括 PromptInputstqdm

  • C++ executor API

    • [重大变更] 添加了 LogitsPostProcessorConfig

    • Result 添加了 FinishReason

模型更新#

  • 支持 Gemma 2,请参见 examples/gemma/README.md 中的 “运行 Gemma 2” 部分。

修复的问题#

  • 修复了启用 cross attention 的 remove padding 功能时出现的准确性问题。 (#1999)

  • 修复了使用 smoothquant 时转换 qwen2-0.5b-instruct 时出现的故障。 (#2087)

  • convert_utils.py 中将 exclude_modules 模式与 quantize.py 中的更改相匹配。 (#2113)

  • 修复了设置 FORCE_NCCL_ALL_REDUCE_STRATEGY 时出现的构建引擎错误。

  • 修复了 gpt_attention 量化模式下的意外截断。

  • 修复了取消请求时由于竞争条件导致的挂起问题。

  • 修复了 LoraConfig 的默认工厂函数。 (#1323)

基础设施变更#

  • TensorRT-LLM 的基础 Docker 镜像已更新为 nvcr.io/nvidia/pytorch:24.07-py3

  • TensorRT-LLM Backend 的基础 Docker 镜像已更新为 nvcr.io/nvidia/tritonserver:24.07-py3

  • 依赖的 TensorRT 版本已更新至 10.4.0。

  • 依赖的 CUDA 版本已更新至 12.5.1。

  • 依赖的 PyTorch 版本已更新至 2.4.0。

  • 依赖的 ModelOpt 版本已更新至 v0.15。

TensorRT-LLM 发布版本 0.12.0#

主要特性和增强功能#

  • 支持 MoE 模型的 LoRA。

  • ModelWeightsLoader 已为 LLaMA 系列模型启用(实验性),请参阅 docs/source/architecture/model-weights-loader.md

  • 支持 NVIDIA Ada Lovelace 架构的 FP8 FMHA。

  • 支持用于 LLM 类的 GPT-J、Phi、Phi-3、Qwen、GPT、GLM、Baichuan、Falcon 和 Gemma 模型。

  • 支持 FP8 OOTB MoE。

  • 支持 Starcoder2 SmoothQuant。 (#1886)

  • 支持 ReDrafter 投机解码,请参阅 docs/source/speculative_decoding.md 中的“ReDrafter”章节。

  • 支持 BERT 的填充移除,感谢 @Altair-Alpha 在 #1834 中的贡献。

  • 为 GLM 10B 模型增加了 in-flight 批处理支持。

  • 支持 gelu_pytorch_tanh 激活函数,感谢 @ttim 在 #1897 中的贡献。

  • 为 Whisper 添加了 chunk_length 参数,感谢 @MahmoudAshraf97 在 #1909 中的贡献。

  • gptManagerBenchmark 添加了 concurrency 参数。

  • Executor API 支持具有不同 beam width 的请求,请参阅 docs/source/executor.md#sending-requests-with-different-beam-widths

  • trtllm-build 命令添加了标志 --fast_build(实验性)。

API 变更#

  • [重大变更] max_output_len 已从 trtllm-build 命令中移除,如果要在引擎构建阶段限制序列长度,请指定 max_seq_len

  • [重大变更] use_custom_all_reduce 参数已从 trtllm-build 中移除。

  • [重大变更] multi_block_mode 参数已从构建阶段(trtllm-build 和 builder API)移动到运行时。

  • [重大变更] 构建时间参数 context_fmha_fp32_acc 已移动到解码器模型的运行时。

  • [重大变更] 参数 tp_sizepp_sizecp_size 已从 trtllm-build 命令中移除。

  • C++ 批处理管理器 API 已弃用,取而代之的是 C++ executor API,它将在 TensorRT-LLM 的未来版本中移除。

  • 为 C++ 库添加了版本 API,将生成一个 cpp/include/tensorrt_llm/executor/version.h 文件。

模型更新#

  • 支持 LLaMA 3.1 模型。

  • 支持 Mamba-2 模型。

  • 支持 EXAONE 模型,请参阅 examples/exaone/README.md

  • 支持 Qwen 2 模型。

  • 支持 GLM4 模型,请参阅 examples/chatglm/README.md

  • 增加了 LLaVa-1.6 (LLaVa-NeXT) 多模态支持,请参阅 examples/multimodal/README.md 中的“LLaVA, LLaVa-NeXT and VILA”章节。

修复的问题#

  • 修复了 CodeQwen 模型的错误填充 token。 (#1953)

  • 修复了 tensorrt_llm/auto_parallel/cluster_info.py 中定义的 cluster_infos 中的拼写错误,感谢 @saeyoonoh 在 #1987 中的贡献。

  • 删除了 docs/source/reference/troubleshooting.md 中命令里的重复标志,感谢 @hattizai 在 #1937 中的贡献。

  • 修复了 TopP 采样层中的段错误,感谢 @akhoroshev 在 #2039 中的贡献。 (#2040)

  • 修复了转换 Mistral Nemo 模型检查点时的失败问题。 (#1985)

  • exclude_modules 传播到仅权重量化,感谢 @fjosw 在 #2056 中的贡献。

  • 修复了 README 中的错误链接,感谢 @Tayef-Shah 在 #2028 中的贡献。

  • 修复了文档中的一些拼写错误,感谢 @lfz941 在 #1939 中的贡献。

  • 修复了推导出的 max_seq_len 不是整数时引擎构建失败的问题。 (#2018)

基础设施变更#

  • TensorRT-LLM 的基础 Docker 镜像已更新为 nvcr.io/nvidia/pytorch:24.07-py3

  • TensorRT-LLM Backend 的基础 Docker 镜像已更新为 nvcr.io/nvidia/tritonserver:24.07-py3

  • 依赖的 TensorRT 版本已更新至 10.3.0。

  • 依赖的 CUDA 版本已更新至 12.5.1。

  • 依赖的 PyTorch 版本已更新至 2.4.0。

  • 依赖的 ModelOpt 版本已更新至 v0.15.0。

已知问题#

  • 在 Windows 上,TensorRT-LLM 的安装可能成功,但在 Python 中导入库时可能会遇到 OSError: exception: access violation reading 0x0000000000000000。有关解决方法,请参阅 在 Windows 上安装

TensorRT-LLM 发布版本 0.11.0#

主要特性和增强功能#

  • 支持 LLaMA 的超长上下文(请参阅 examples/llama/README.md 中的“长上下文评估”章节)。

  • 低延迟优化

    • 添加了一个 reduce-norm 特性,旨在将 ResidualAdd 和 LayerNorm 内核在 AllReduce 之后融合到一个内核中,建议在批处理大小较小且生成阶段时间占主导地位时启用。

    • 为 GEMM 插件添加了 FP8 支持,这有利于批处理大小小于 4 的情况。

    • 为 SM90 上的 FP8 添加了一个融合的 GEMM-SwiGLU 插件。

  • LoRA 增强功能

    • 支持使用 FP16 LoRA 检查点运行 FP8 LLaMA。

    • 增加了对量化基础模型和 FP16/BF16 LoRA 的支持。

      • SQ OOTB (- INT8 A/W) + FP16/BF16/FP32 LoRA

      • INT8/ INT4 仅权重(INT8 /W)+ FP16/BF16/FP32 LoRA

      • 仅权重分组 + FP16/BF16/FP32 LoRA

    • 增加了对 Qwen2 的 LoRA 支持,请参阅 examples/qwen/README.md 中的“使用 LoRA 运行模型”章节。

    • 增加了对 Phi-3-mini/small FP8 基础 + FP16/BF16 LoRA 的支持,请参阅 examples/phi/README.md 中的“使用 LoRA 运行 Phi-3”章节。

    • 增加了对 starcoder-v2 FP8 基础 + FP16/BF16 LoRA 的支持,请参阅 examples/gpt/README.md 中的“使用 LoRA 运行 StarCoder2”章节。

  • 编码器-解码器模型 C++ 运行时增强功能

    • 支持分页 KV 缓存和 inflight 批处理。 (#800)

    • 支持张量并行。

  • 支持排除嵌入层的 INT8 量化。

  • 更新了 Whisper 的默认模型为 distil-whisper/distil-large-v3,感谢 @IbrahimAmin1 在 #1337 中的贡献。

  • 支持 Python 高级 API 的 HuggingFace 模型自动下载。

  • 支持 in-flight 批处理的显式 draft tokens。

  • 支持本地自定义校准数据集,感谢 @DreamGenX 在 #1762 中的贡献。

  • 添加了批处理 logits 后处理器。

  • 为 XQA JIT 代码路径添加了 Hopper qgmma 内核。

  • 支持同时启用 MoE 的张量并行和专家并行。

  • 支持当层数无法被 PP 大小整除时的流水线并行情况。

  • numQueuedRequests 添加到 executor API 的迭代统计日志中。

  • iterLatencyMilliSec 添加到 executor API 的迭代统计日志中。

  • 添加了来自社区的 HuggingFace 模型动物园,感谢 @matichon-vultureprime 在 #1674 中的贡献。

API 变更#

  • [重大变更] trtllm-build 命令

    • 将 Whisper 迁移到统一工作流程(trtllm-build 命令),请参阅文档:examples/whisper/README.md。

    • trtllm-build 命令中的 max_batch_size 默认切换为 256。

    • trtllm-build 命令中的 max_num_tokens 默认切换为 8192。

    • 弃用了 max_output_len 并添加了 max_seq_len

    • trtllm-build 命令中移除了不必要的 --weight_only_precision 参数。

    • trtllm-build 命令中移除了 attention_qk_half_accumulation 参数。

    • trtllm-build 命令中移除了 use_context_fmha_for_generation 参数。

    • trtllm-build 命令中移除了 strongly_typed 参数。

    • max_seq_len 的默认值现在从 HuggingFace 模型配置中读取。

  • C++ 运行时

    • [重大变更] 重命名了 ModelRunnerCpp 中的 free_gpu_memory_fractionkv_cache_free_gpu_memory_fraction

    • [重大变更] 重构了 GptManager API

      • maxBeamWidth 移动到 TrtGptModelOptionalParams 中。

      • schedulerConfig 移动到 TrtGptModelOptionalParams 中。

    • ModelRunnerCpp 添加了更多选项,包括 max_tokens_in_paged_kv_cachekv_cache_enable_block_reuseenable_chunked_context

  • [重大变更] Python 高级 API

    • 移除了 ModelConfig 类,所有选项都移动到 LLM 类中。

    • 重构了 LLM 类,请参考 examples/high-level-api/README.md

      • 将最常用的选项移动到显式参数列表,并将专家选项隐藏在 kwargs 中。

      • 公开了 model 以接受 HuggingFace 模型名称或本地 HuggingFace 模型/TensorRT-LLM 检查点/TensorRT-LLM 引擎。

      • 支持从 HuggingFace 模型中心下载模型,目前仅支持 Llama 变体。

      • 支持构建缓存以重用构建的 TensorRT-LLM 引擎,通过设置环境变量 TLLM_LLMAPI_BUILD_CACHE=1 或将 enable_build_cache=True 传递给 LLM 类。

      • 在 kwargs 中公开了低级选项,包括 BuildConfigSchedulerConfig 等等。理想情况下,您应该能够配置关于构建和运行时阶段的详细信息。

    • 重构了 LLM.generate()LLM.generate_async() API。

      • 移除了 SamplingConfig

      • 添加了 SamplingParams,其中包含更广泛的参数,请参阅 tensorrt_llm/llmapi/utils.py

        • 新的 SamplingParams 包含并管理来自 SamplingConfig, OutputConfig 的Python绑定的字段等等。

      • LLM.generate() 输出重构为 RequestOutput,请参阅 tensorrt_llm/llmapi/llm.py

    • 更新了 apps 示例,特别是通过使用 LLM API 重写了 chat.pyfastapi_server.py,请参考 examples/apps/README.md 获取详细信息。

      • 更新了 chat.py 以支持多轮对话,允许用户在终端与模型聊天。

      • 修复了 fastapi_server.py,并消除了在多 GPU 场景中对 mpirun 的需求。

  • [重大变更] 推测性解码配置统一

    • 引入了 SpeculativeDecodingMode.h 以选择不同的推测性解码技术。

    • 引入了 SpeculativeDecodingModule.h 作为推测性解码技术的基类。

    • 移除了 decodingMode.h

  • gptManagerBenchmark

    • [重大变更] gptManagerBenchmark 命令中的 api 现在默认是 executor

    • 添加了一个运行时 max_batch_size

    • 添加了一个运行时 max_num_tokens

  • [重大变更] 向 LayerNorm 模块添加了 bias 参数,并支持非 bias 的层归一化。

  • [重大变更] 移除了 GptSession Python 绑定。

模型更新#

  • 支持 Jais,请参阅 examples/jais/README.md

  • 支持 DiT,请参阅 examples/dit/README.md

  • 支持 VILA 1.5。

  • 支持 Video NeVA,请参阅 examples/multimodal/README.md 中的 Video NeVA 部分。

  • 支持 Grok-1,请参阅 examples/grok/README.md

  • 支持带有 FP8 PTQ 的 Qwen1.5-110B。

  • 支持带有块稀疏注意力的 Phi-3 小型模型。

  • 支持 InternLM2 7B/20B,感谢 @RunningLeon 在 #1392 中的贡献。

  • 支持 Phi-3-medium 模型,请参阅 examples/phi/README.md

  • 支持 Qwen1.5 MoE A2.7B。

  • 支持 phi 3 vision multimodal。

修复的问题#

  • 修复了当批处理大小大于 1 时的中断输出。 (#1539)

  • 修复了 executor.py 中的 top_k 类型,感谢 @vonjackustc 在 #1329 中的贡献。

  • 修复了 Python 运行时中的停止词和不良词汇列表指针偏移,感谢 @fjosw 在 #1486 中的贡献。

  • 修复了 Whisper 模型的一些拼写错误,感谢 @Pzzzzz5142 在 #1328 中的贡献。

  • 修复了 CUDA 驱动 < 526 和 pynvml >= 11.5.0 时的导出失败,感谢 @CoderHam 在 #1537 中的贡献。

  • 修复了 NMT 权重转换中的一个问题,感谢 @Pzzzzz5142 在 #1660 中的贡献。

  • 修复了 LLaMA Smooth Quant 转换,感谢 @lopuhin 在 #1650 中的贡献。

  • 修复了 Qwen1.5-32B 的 qkv_bias 形状问题 (#1589),感谢 @Tlntin 在 #1637 中的贡献。

  • 修复了 fpA_intB 的 Ada 特征的错误,感谢 @JamesTheZ 在 #1583 中的贡献。

  • 更新 examples/qwenvl/requirements.txt,感谢 @ngoanpv 在 #1248 中的贡献。

  • 修复了 lora_manager 中的 rsLoRA 缩放,感谢 @TheCodeWrangler 在 #1669 中的贡献。

  • 修复了 Qwen1.5 检查点转换失败 #1675。

  • 修复了 Medusa safetensors 和 AWQ 转换,感谢 @Tushar-ml 在 #1535 中的贡献。

  • 修复了当函数在全局范围之外调用时 convert_hf_mpt_legacy 调用失败的问题,感谢 @bloodeagle40234 在 #1534 中的贡献。

  • 修复了 use_fp8_context_fmha 的中断输出 (#1539)。

  • 修复了 NMT 模型的预归一化权重转换,感谢 @Pzzzzz5142 在 #1723 中的贡献。

  • 修复了随机种子初始化问题,感谢 @pathorn 在 #1742 中的贡献。

  • 修复了 python 绑定中的停止词和不良词。 (#1642)

  • 修复了转换 Mistral 7B v0.3 检查点时的问题,感谢 @Ace-RR: #1732。

  • 修复了 fp8 Llama 和 Mixtral 的中断的飞行中批处理,感谢 @bprus: #1738

  • 修复了 quantize.py 将数据导出到 config.json 时的失败,感谢 @janpetrov: #1676

  • 当 autopp 检测到不支持的量化插件时,引发错误 #1626。

  • 修复了加载 Gemma 时未设置 shared_embedding_table 的问题 #1799,感谢 @mfuntowicz。

  • 修复了 ModelRunner 的停止词和不良词列表不连续的问题 #1815,感谢 @Marks101。

  • 修复了 FAST_BUILD 的缺失注释,感谢 @lkm2835 在 #1851 中的支持。

  • 修复了 Top-P 采样偶尔产生无效 token 的问题。 #1590

  • 修复了 #1424。

  • 修复了 #1529。

  • 修复了 #1562 和 #1552 的 benchmarks/cpp/README.md

  • 修复了死链接,感谢 @DefTruth, @buvnswrn 和 @sunjiabin17 在以下链接中的帮助: https://github.com/triton-inference-server/tensorrtllm_backend/pull/478, https://github.com/triton-inference-server/tensorrtllm_backend/pull/482 和 https://github.com/triton-inference-server/tensorrtllm_backend/pull/449。

基础设施变更#

  • TensorRT-LLM 的基础 Docker 镜像已更新为 nvcr.io/nvidia/pytorch:24.05-py3

  • TensorRT-LLM 后端的基础 Docker 镜像已更新为 nvcr.io/nvidia/tritonserver:24.05-py3

  • 依赖的 TensorRT 版本已更新为 10.2.0。

  • 依赖的 CUDA 版本已更新为 12.4.1。

  • 依赖的 PyTorch 版本已更新为 2.3.1。

  • 依赖的 ModelOpt 版本已更新为 v0.13.0。

已知问题#

  • 在 Windows 上的 conda 环境中,TensorRT-LLM 的安装可能会成功。但是,在 Python 中导入库时,您可能会收到错误消息 OSError: exception: access violation reading 0x0000000000000000。此问题正在调查中。

TensorRT-LLM 发布 0.10.0#

公告#

  • TensorRT-LLM 支持 TensorRT 10.0.1 和 NVIDIA NGC 24.03 容器。

主要特性和增强功能#

  • Python 高级 API

    • 增加了嵌入并行、嵌入共享和融合 MLP 支持。

    • 启用了 executor API 的使用。

  • 添加了权重剥离功能,并提供了一个新的 trtllm-refit 命令。 更多信息请参考 examples/sample_weight_stripping/README.md

  • 添加了权重流式传输功能。 更多信息请参考 docs/source/advanced/weight-streaming.md

  • 增强了多配置特性;trtllm-build 命令中的 --multiple_profiles 参数现在构建更多的优化配置以获得更好的性能。

  • 为 Mixtral 添加了 FP8 量化支持。

  • 为 GPT 添加了流水线并行支持。

  • 优化了 applyBiasRopeUpdateKVCache 内核,避免了重复计算。

  • 减少了 TensorRT 引擎的 enqueue 调用之间的开销。

  • 为 enc-dec 模型添加了分页 KV 缓存支持。 该支持仅限于 beam width 1。

  • 为 NVIDIA Ada Lovelace 架构添加了 W4A(fp)8 CUTLASS 内核。

  • trtllm-build 命令添加了调试选项(--visualize_network--dry_run)以在引擎构建之前可视化 TensorRT 网络。

  • 集成了用于 LLaMA 2 70B 模型的新 NVIDIA Hopper XQA 内核。

  • 提高了启用飞行中批处理时流水线并行的性能。

  • 支持 Nemotron 模型的量化。

  • 为 Mixtral 和 Qwen 添加了 LoRA 支持。

  • 为 ChatGLM 模型添加了飞行中批处理支持。

  • 增加了对 ModelRunnerCpp 的支持,以便它可以与兼容 IFB 的模型的 executor API 一起运行。

  • 通过添加启发式方法增强了自定义 AllReduce;当硬件要求不满足时,回退到使用原生 NCCL 内核以获得最佳性能。

  • 优化了 LLaMA 的检查点转换过程的性能。

  • 基准测试

    • [重大变更] 将请求速率生成参数和逻辑从准备数据集脚本移动到 gptManagerBenchmark

    • gptManagerBenchmark 启用流式传输,并支持 Time To the First Token (TTFT) 延迟和 Inter-Token Latency (ITL) 指标。

    • gptManagerBenchmark 添加了 --max_attention_window 选项。

API 变更#

  • [重大变更] 将 trtllm-build 命令的默认 tokens_per_block 参数设置为 64 以获得更好的性能。

  • [重大变更] 将 enc-dec 模型迁移到统一的工作流程。

  • [重大变更] 将 GptModelConfig 重命名为 ModelConfig

  • [重大变更] 向构建器 API 添加了推测解码模式。

  • [重大变更] 重构调度配置

    • 统一了 batch_schedulerexecutor 中同名的 SchedulerPolicy,并将其重命名为 CapacitySchedulerPolicy

    • 将现有的配置调度策略从 SchedulerPolicy 扩展到 SchedulerConfig,以增强可扩展性。 后者还引入了一个基于块的配置,称为 ContextChunkingPolicy

  • [重大变更] 在 generate()generate_async() API 中,输入提示已从生成输出中删除。 例如,当给定提示为 A B 时,原始生成结果可能是 <s>A B C D E,其中只有 C D E 是实际输出,而现在结果是 C D E

  • [重大变更] 将 TensorRT-LLM 后端中的默认 add_special_token 切换为 True

  • 已弃用 GptSessionTrtGptModelV1

模型更新#

  • 支持 DBRX

  • 支持 Qwen2

  • 支持 CogVLM

  • 支持 ByT5

  • 支持 LLaMA 3

  • 支持 Arctic (w/ FP8)

  • 支持 Fuyu

  • 支持 Persimmon

  • 支持 Deplot

  • 支持带长 Rope 的 Phi-3-Mini

  • 支持 Neva

  • 支持 Kosmos-2

  • 支持 RecurrentGemma

修复的问题#

    • 修复了束搜索和提前停止中的一些意外行为,从而使输出更加准确。

  • 修复了流水线并行和 gather_all_token_logits 导致的段错误。 (#1284)

  • 删除了 XQA 中不必要的检查以修复 code Llama 70b Triton 崩溃问题。 (#1256)

  • 修复了 BF16 LoRA 不支持 ScalarType 的问题。 (https://github.com/triton-inference-server/tensorrtllm_backend/issues/403)

  • 消除了多模态中 prompt table 的加载和保存。 (https://github.com/NVIDIA/TensorRT-LLM/discussions/1436)

  • 修复了转换 Qwen 72B INT4-GPTQ 模型权重时出现的错误。 (#1344)

  • 修复了 Medusa 飞行中批处理案例的提前停止和失败问题。 (#1449)

  • 增加了对更多 NVLink 版本的支持,以实现自动并行。 (#1467)

  • 修复了由采样配置的默认值引起的断言失败。 (#1447)

  • 修复了 Windows 上 nvidia-cudnn-cu12 的需求规范。 (#1446)

  • 修复了 enc-dec 模型的 gpt_attention_plugin 中 MMHA 相对位置计算错误。 (#1343)

基础设施变更#

  • TensorRT-LLM 的基础 Docker 镜像已更新为 nvcr.io/nvidia/pytorch:24.03-py3

  • TensorRT-LLM 后端的基础 Docker 镜像已更新为 nvcr.io/nvidia/tritonserver:24.03-py3

  • 相关的 TensorRT 版本已更新至 10.0.1。

  • 相关的 CUDA 版本已更新至 12.4.0。

  • 相关的 PyTorch 版本已更新至 2.2.2。

TensorRT-LLM Release 0.9.0#

公告#

  • TensorRT-LLM 需要 TensorRT 9.3 和 24.02 容器。

主要功能和增强#

  • [重大变更] 默认启用具有确定性 AIR TopP 算法的 TopP 采样优化

  • [重大变更] 增加了对 Gemma 嵌入共享的支持

  • 增加了上下文分块支持,以与 KV 缓存重用一起使用

  • 为 Medusa 启用了每个序列的不同重绕 token

  • 增加了 BART LoRA 支持(仅限于 Python 运行时)

  • 为 BART LoRA 启用了 multi-LoRA

  • 增加了对 C++ Runtime 的束搜索中 early_stopping=False 的支持

  • 增加了对批处理管理器 logits 后处理器的支持

  • 增加了对导入和转换 HuggingFace Gemma 检查点的支持

  • 增加了从 HuggingFace 加载 Gemma 的支持

  • 增加了对高级 API 和统一构建器工作流程的自动并行规划器的支持

  • 增加了对在没有 OpenMPI 的情况下运行 GptSession 的支持

  • 增加了对 Medusa IFB 的支持

  • [实验性] 增加了对 FP8 FMHA 的支持,请注意性能不是最佳的,我们将继续优化它

  • 增加了对类 LLaMA 模型的更多 head size 的支持

    • NVIDIA Ampere (SM80, SM86)、NVIDIA Ada Lovelace (SM89)、NVIDIA Hopper (SM90) 都支持 head size [32, 40, 64, 80, 96, 104, 128, 160, 256]

  • 增加了对 OOTB 功能的支持

    • T5

    • Mixtral 8x7B

  • 基准测试功能

    • gptManagerBenchmark 中增加了模拟的静态批处理

    • 增加了对来自 HuggingFace 的任意数据集的支持,以用于 C++ 基准测试

    • 将百分位延迟报告添加到 gptManagerBenchmark

  • 性能特征

    • 优化了 gptDecoderBatch 以支持批量采样

    • 为 BART、Whisper 和 NMT 系列中的模型启用了 FMHA

    • 删除了路由器张量并行以提高 MoE 模型的性能

    • 改进了自定义 all-reduce 内核

  • 基础设施功能

    • TensorRT-LLM 的基础 Docker 镜像已更新为 nvcr.io/nvidia/pytorch:24.02-py3

    • 相关的 PyTorch 版本已更新至 2.2

    • TensorRT-LLM 后端的基础 Docker 镜像已更新为 nvcr.io/nvidia/tritonserver:24.02-py3

    • 相关的 CUDA 版本已更新至 12.3.2 (12.3 Update 2)

API 变更#

  • 增加了 C++ executor API

  • 添加了 Python 绑定

  • executor C++ API 的 Python 绑定添加了高级和多 GPU 示例

  • 为 C++ executor API 添加了文档

  • 将 Mixtral 迁移到高级 API 和统一构建器工作流程

  • [重大变更] 将 LLaMA 转换检查点脚本从 examples 目录移动到核心库

  • 添加了对 LLM() API 的支持,以接受由 trtllm-build 命令构建的引擎

  • [重大变更]gptManagerBenchmarkgptSessionBenchmark 中移除了 model 参数

  • [重大变更] 使用统一的构建流程重构了 GPT

  • [重大变更] 将 Qwen 模型重构为统一的构建流程

  • [重大变更]convert_checkpoint.py 脚本中移除了所有 LoRA 相关的标志,并将检查点内容移至 trtllm-build 命令,以便更好地将该功能推广到更多模型

  • [重大变更]convert_checkpoint.py 脚本中移除了 use_prompt_tuning 标志和选项,并将检查点内容移至 trtllm-build 命令,以便更好地将该功能推广到更多模型。请改用 trtllm-build --max_prompt_embedding_table_size

  • [重大变更]trtllm-build --world_size 标志更改为 --auto_parallel 标志。该选项仅用于自动并行规划器。

  • [重大变更] 移除 AsyncLLMEngine。重构 tensorrt_llm.GenerationExecutor 类,使其既可以显式地在应用程序级别使用 mpirun 启动,也可以接受由 mpi4py 创建的 MPI 通信器。

  • [重大变更] 移除 examples/server

  • [重大变更] 从转换检查点脚本中移除了 LoRA 相关的参数。

  • [重大变更] 简化了 Qwen 转换检查点脚本。

  • [重大变更] 复用了 trtllm-build 工具中使用的 QuantConfig,以支持更广泛的量化功能。

  • 增加了对 TensorRT-LLM 检查点作为模型输入的支持。

  • 改进了 LLM.generateLLM.generate_async API 中使用的 SamplingConfig,支持束搜索、多种惩罚以及更多功能。

  • 增加了对 StreamingLLM 功能的支持。通过设置 LLM(streaming_llm=...) 启用它。

模型更新#

  • 增加了对 distil-whisper 的支持

  • 增加了对 HuggingFace StarCoder2 的支持

  • 增加了对 VILA 的支持

  • 增加了对 Smaug-72B-v0.1 的支持

  • 将 BLIP-2 示例迁移到 examples/multimodal

局限性#

  • Windows 不支持 openai-triton 示例。

已修复的问题#

  • 修复了 Whisper 的仅权重量化错误,以确保 encoder_input_len_range 不为 0。 (#992)

  • 修复了 Python 运行时不返回日志概率的问题。 (#983)

  • 多模态示例的多 GPU 修复。 (#1003)

  • 修复了 Qwen 的错误 end_id 问题。 (#987)

  • 修复了非停止生成问题。 (#1118, #1123)

  • 修复了 examples/mixtral/README.md 中的错误链接。 (#1181)

  • 修复了启用 INT8 kv 缓存和每通道 INT8 权重时,LLaMA2-7B 结果不佳的问题。 (#967)

  • 修复了从 HuggingFace Hub 导入 Gemma 模型时错误的 head_size。 (#1148)

  • 修复了 INT8 上 ChatGLM2-6B 构建失败的问题。 (#1239)

  • 修复了 Baichuan 文档中错误的相对路径。 (#1242)

  • 修复了 ModelRunnerCpp 中错误的 SamplingConfig 张量。 (#1183)

  • 修复了转换 SmoothQuant LLaMA 时发生的错误。 (#1267)

  • 修复了 examples/run.py 仅从 --input_file 加载一行的问题。

  • 修复了 ModelRunnerCpp 未正确传输 SamplingConfig 张量字段的问题。 (#1183)

TensorRT-LLM 0.8.0 版本#

主要特性和增强功能#

  • 分块上下文支持 (参见 docs/source/advanced/gpt-attention.md#chunked-context)

  • C++ 运行时的 LoRA 支持 (参见 docs/source/lora.md)

  • Medusa 解码支持 (参见 examples/medusa/README.md)

    • 对于 Ampere 或更新的 GPU,以及具有 fp16 和 bf16 精度的 Python 运行时,该支持仅限于 Python 运行时,并且采样配置的 temperature 参数应为 0

  • LLaMA 的 StreamingLLM 支持 (参见 docs/source/advanced/gpt-attention.md#streamingllm)

  • 支持批处理管理器从上下文和/或生成阶段返回 logits

    • 包括对 Triton 后端的支持

  • 支持 QWEN 的 AWQ 和 GPTQ

  • 支持 ReduceScatter 插件

  • 支持组合 repetition_penaltypresence_penalty #274

  • 支持 frequency_penalty #275

  • OOTB 功能支持

    • Baichuan

    • InternLM

    • Qwen

    • BART

  • LLaMA

    • 支持启用 INT4-AWQ 以及 FP8 KV 缓存

    • 支持仅权重插件的 BF16

  • Baichuan

    • P-tuning 支持

    • INT4-AWQ 和 INT4-GPTQ 支持

  • 解码器迭代级别分析改进

  • 添加 masked_selectcumsum 函数用于建模

  • 支持 ChatGLM2-6B / ChatGLM3-6B / ChatGLM2-6B-32K 的 Smooth 量化

  • 添加对 Whisper 的仅权重支持 #794,感谢 @Eddie-Wang1120 的贡献

  • 支持 NVIDIA V100 GPU 上的 FP16 fMHA

    注意

    并非 examples 文件夹中列出的所有模型都启用了某些功能。

模型更新#

  • Phi-1.5/2.0

  • Mamba 支持 (参见 examples/mamba/README.md)

    • 该支持仅限于 beam width = 1 和单节点单 GPU

  • Nougat 支持 (参见 examples/multimodal/README.md#nougat)

  • Qwen-VL 支持 (参见 examples/qwenvl/README.md)

  • RoBERTa 支持,感谢 @erenup 的贡献

  • Skywork 模型支持

  • 添加多模态模型 (BLIP with OPT or T5, LlaVA) 的示例

有关支持的模型列表,请参阅 软件 部分。

  • API

    • 为端到端生成任务添加了一组 LLM API (参见 examples/llm-api/README.md)

    • [重大变更] 将模型迁移到新的构建流程,包括 LLaMA、Mistral、Mixtral、InternLM、ChatGLM、Falcon、GPT-J、GPT-NeoX、Medusa、MPT、Baichuan 和 Phi (参见 docs/source/new_workflow.md)

    • [重大变更] 弃用 LayerNormRMSNorm 插件,并移除相应的构建参数

    • [重大变更] 移除 GPT 管理器的可选参数 maxNumSequences

  • 已修复的问题

    • 修复了启用 --gather_all_token_logits 时第一个 token 出现异常的问题 #639

    • 修复了启用 LoRA 的 LLaMA 构建失败的问题 #673

    • 修复了 InternLM SmoothQuant 构建失败的问题 #705

    • 修复了 Bloom int8_kv_cache 功能 #741

    • 修复了 gptManagerBenchmark 中的崩溃问题 #649

    • 修复了 Blip2 构建错误 #695

    • InferenceRequest 添加了 pickle 支持 #701

    • 修复了 Mixtral-8x7b 使用 custom_all_reduce 构建失败的问题 #825

    • 修复了 INT8 GEMM 形状 #935

    • 小错误修复

  • 性能

    • [重大变更] 将默认 freeGpuMemoryFraction 参数从 0.85 增加到 0.9,以获得更高的吞吐量

    • [重大变更] 默认禁用 GPT 管理器的 enable_trt_overlap 参数

    • 波束搜索内核的性能优化

    • 为优化的生成 MQA/GQA 内核添加 bfloat16 和分页 kv 缓存支持

    • 自定义 AllReduce 插件性能优化

    • Top-P 采样性能优化

    • LoRA 性能优化

    • 通过引入乒乓缓冲区来避免额外的同步成本,从而优化自定义 allreduce 性能

    • 集成用于 GPT-J 的 XQA 内核 (beamWidth=4)

  • 文档

    • 批处理管理器参数文档更新

    • 为调整 TensorRT-LLM 性能的最佳实践添加文档 (参见 docs/source/perf_best_practices.md)

    • 为 Falcon AWQ 支持添加文档 (参见 examples/falcon/README.md)

    • 更新到 docs/source/new_workflow.md 文档

    • 更新 GPT-J 的 AWQ INT4 仅权重量化文档

    • 添加博客:使用 TRT-LLM 中的 SOTA 量化技术加速推理

    • 改进 TensorRT-LLM 后端 README 结构 #133

    • 拼写错误修复 #739

TensorRT-LLM 0.7.1 版本#

主要特性和增强功能#

  • 推测解码 (预览)

  • GptManager 添加了 Python 绑定

  • 添加了一个 Python 类 ModelRunnerCpp,它封装了 C++ gptSession

  • 系统提示缓存

  • 为仅权重 Cutlass 内核启用 split-k

  • XQA内核的 FP8 KV 缓存支持

  • 新的 Python 构建器 API 和 trtllm-build 命令 (已应用于 blip2OPT)

  • Python 生成 API 中支持 StoppingCriteriaLogitsProcessor

  • FHMA 支持分块注意力机制和分页 KV 缓存

  • 性能增强包括

    • MQA 和 GQA 的 MMHA 优化

    • LoRA 优化:cutlass 分组 GEMM

    • 优化 Hopper warp 特殊化内核

    • 优化 Falcon 和 GPT-J 上并行注意力的 AllReduce

    • 当 SM>=75 时,启用仅权重的 cutlass 内核的 split-k

  • 添加了 工作流程 文档

模型更新#

  • 编码器-解码器模型中支持 BART 和 mBART

  • FairSeq 神经机器翻译 (NMT) 系列

  • Mixtral-8x7B 模型

  • 支持 HuggingFace Mixtral 模型的权重加载

  • OpenAI Whisper

  • 专家混合支持

  • MPT - Int4 AWQ / SmoothQuant 支持

  • Baichuan FP8 量化支持

已修复的问题#

  • 修复了 quantize.py 中的 tokenizer 用法 #288

  • 修复了 LLaMa 与 LoRA 错误

  • 修复了 LLaMA GPTQ 失败

  • 修复了 InferenceRequest 问题的 Python 绑定

  • 修复了 CodeLlama SQ 准确性问题

已知问题#

  • TensorRT-LLM 团队尚未重现问题 #149 中报告的挂起问题。如果它是由 TensorRT-LLM 中的错误引起的,则该错误可能存在于该版本中。