发布说明

发布说明中所有已发布的功能均已通过全面测试和验证,并记录了已知的限制。要分享关于此版本的反馈,请访问我们的NVIDIA Developer Forum

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仅在end_id为None且tokenizer不为None时在LLM API中设置的问题。感谢@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轮子增加了对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 发布 0.15.0

主要功能与增强

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

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

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

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

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

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

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

  • 为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模块添加了不同的排名维度支持。感谢@AlessioNetti在#2366中的贡献。

  • 默认启用嵌入共享。有关嵌入共享所需条件的信息,请参阅docs/source/performance/perf-best-practices.md中的“嵌入并行性、嵌入共享和查找插件”部分。

  • 在Ada上增加了对每个令牌每个通道FP8(即行式FP8)的支持。

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

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

  • 增加了对prompt-lookup推测解码的支持。请参考examples/prompt_lookup/README.md

  • 集成了QServe的w4a8逐组/逐通道量化。请参考examples/llama/README.md中的“w4aINT8量化(QServe)”部分。

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

  • [重大变更] 在此版本及未来版本中,移除了对NVIDIA Volta GPU的支持。

  • LLM API进行了以下增强:

    • [重大变更] 为了在没有预热的情况下获得更好的生成性能,已将运行时初始化从第一次调用 LLM.generate 移至 LLM.__init__

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

    • SamplingParams类添加了ignore_eosdetokenizeskip_special_tokensspaces_between_special_tokenstruncate_prompt_tokens参数。这些参数使得对分词器行为的控制更加精细。

    • 增加了对增量去标记化的支持,以提高流生成时的去标记化性能。

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

  • 增加了对gpt_variant参数的支持,该参数位于examples/gpt/convert_checkpoint.py文件中。此增强功能使得能够转换更多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参数。请改用nbest_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变体 - Granite”部分。

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

已修复的问题

  • 修复了前向函数中的一个切片错误。(#1480)

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

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

  • 修复了损坏的执行器示例。(#2294)

  • 修复了当专家数量不是2的幂时,内核moeTopK()无法找到正确专家的问题。感谢@dongjiyingdjy报告此错误。

  • 修复了在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的束搜索逻辑以匹配Apple ReDrafter v1.1。

  • 改进了customAllReduce的性能。

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

  • 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中的贡献。

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

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

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

  • 修复了关于trtllm-build --fast-build使用虚假或随机权重的问题。感谢@ZJLi2013在#2135中标记了这个问题。

  • 修复了从字典构造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

  • 支持流式模式的束搜索。

  • 支持Mamba2的张量并行。

  • 支持在流模式下返回生成的对数概率。

  • ReDrafter添加了curandbfloat16支持。

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

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

  • 支持MoE LoRA的FP8。

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

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

  • 支持的LoRA用于ModelRunnerCpp类。

  • 支持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

    • FinishReason添加到Result中。

模型更新

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

已修复的问题

  • 修复了在启用交叉注意力去除填充问题时出现的精度问题。(#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 后端的 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

主要功能与增强

  • 支持的LoRA用于MoE模型。

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

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

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

  • 支持FP8开箱即用的MoE。

  • 支持的Starcoder2 SmoothQuant。(#1886)

  • 支持ReDrafter推测解码,请参阅docs/source/speculative_decoding.md中的“ReDrafter”部分。

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

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

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

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

  • gptManagerBenchmark添加了concurrency参数。

  • Executor API 支持不同波束宽度的请求,请参阅 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_size, pp_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模型的错误填充标记。(#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 后端的 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。请参阅Installing on Windows以获取解决方法。

TensorRT-LLM 发布 0.11.0

主要功能与增强

  • 支持LLaMA的超长上下文(参见examples/llama/README.md中的“长上下文评估”部分)。

  • 低延迟优化

    • 添加了一个reduce-norm功能,旨在将AllReduce之后的ResidualAdd和LayerNorm内核融合为单个内核,建议在批量大小较小且生成阶段时间占主导时启用。

    • 为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缓存和飞行中批处理。(#800)

    • 支持的张量并行。

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

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

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

  • 支持用于飞行中批处理的显式草稿令牌。

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

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

  • 已将Hopper qgmma内核添加到XQA JIT代码路径中。

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

  • 支持了当层数不能被PP大小整除时的管道并行情况。

  • 在executor API的迭代统计日志中添加了numQueuedRequests

  • 在executor API的迭代统计日志中添加了iterLatencyMilliSec

  • 从社区添加HuggingFace模型库,感谢@matichon-vultureprime在#1674中的贡献。

API变更

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

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

    • max_batch_sizetrtllm-build 命令中默认切换为 256。

    • max_num_tokenstrtllm-build 命令中默认切换为 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_fraction重命名为kv_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变体。

      • 支持通过设置环境变量TLLM_LLMAPI_BUILD_CACHE=1或传递enable_build_cache=TrueLLM类来重用构建的TensorRT-LLM引擎。

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

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

      • 移除了 SamplingConfig

      • 添加了SamplingParams,包含更多扩展参数,请参见tensorrt_llm/llmapi/utils.py

        • 新的SamplingParams包含并管理来自SamplingConfigOutputConfig等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

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

    • 添加了一个运行时 max_batch_size

    • 添加了一个运行时 max_num_tokens

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

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

模型更新

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

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

  • 支持VILA 1.5。

  • 支持的视频NeVA,请参见Video NeVA部分在examples/multimodal/README.md中。

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

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

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

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

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

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

  • 支持phi 3视觉多模态。

已修复的问题

  • 修复了当批量大小大于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平滑量化转换,感谢@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检测到不支持的quant插件时,引发错误 #1626。

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

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

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

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

  • 修复了 #1424。

  • 修复了 #1529。

  • 修复了benchmarks/cpp/README.md以解决#1562和#1552问题。

  • 修复了死链接,感谢 @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

  • 增强了多配置文件功能;--multiple_profiles 参数在 trtllm-build 命令中现在构建了更多的优化配置文件,以提高性能。

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

  • 增加了对GPT管道并行性的支持。

  • 通过避免重新计算优化了applyBiasRopeUpdateKVCache内核。

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

  • 增加了对编码-解码模型的分页KV缓存的支持。该支持仅限于波束宽度为1的情况。

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

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

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

  • 在启用飞行中批处理时,改进了管道并行的性能。

  • 支持的Nemotron模型量化。

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

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

  • 增加了对ModelRunnerCpp的支持,使其能够与executor API一起运行,适用于IFB兼容模型。

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

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

  • 基准测试

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

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

    • gptManagerBenchmark添加了--max_attention_window选项。

API变更

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

  • [重大变更] 已将编码-解码模型迁移到统一的工作流程中。

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

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

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

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

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

  • [重大变更] 在generate()generate_async() API中,输入提示已从生成输出中移除。例如,当给定提示为A B时,原始生成结果可能是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(带FP8)

  • 支持Fuyu

  • 支持柿子

  • 支持部署

  • 支持具有长Rope的Phi-3-Mini

  • 支持Neva

  • 支持 Kosmos-2

  • 支持 RecurrentGemma

已修复的问题

    • 修复了beam search和early stopping中的一些意外行为,使得输出更加准确。

  • 修复了使用管道并行和gather_all_token_logits时的分段错误。(#1284)

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

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

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

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

  • 修复了Medusa在飞行批处理情况下的早期停止和失败问题。(#1449)

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

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

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

  • 修复了在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 发布 0.9.0

公告

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

主要功能与增强

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

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

  • 增加了对上下文分块的支持,以便与KV缓存重用一起工作

  • 为Medusa启用了每个序列的不同回退令牌

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

  • 为BART LoRA启用了多LoRA功能

  • 在C++运行时的beam search中添加了对early_stopping=False的支持

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

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

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

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

  • 增加了在不使用OpenMPI的情况下运行GptSession的支持

  • 增加了对Medusa IFB的支持

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

  • 为类似LLaMA的模型增加了更多头大小的支持

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

  • 增加了对OOTB功能的支持

    • T5

    • Mixtral 8x7B

  • 基准特性

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

    • 为C++基准测试添加了对来自HuggingFace的任意数据集的支持

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

  • 性能特点

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

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

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

    • 改进的自定义全归约内核

  • 基础设施特性

    • 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更新2)

API变更

  • 添加了C++ executor API

  • 添加了Python绑定

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

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

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

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

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

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

  • [重大变更] 重构了GPT,采用统一的构建工作流程

  • [重大变更] 重构了Qwen模型以符合统一的构建工作流程

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

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

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

  • [重大变更] AsyncLLMEngine 已被移除。tensorrt_llm.GenerationExecutor 类已重构,以支持在应用层使用 mpirun 显式启动,并接受由 mpi4py 创建的 MPI 通信器。

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

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

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

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

  • 增加了对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

限制

  • openai-triton 示例在Windows上不受支持。

已修复的问题

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

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

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

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

  • 修复了一个无法停止生成的问题。(#1118, #1123)

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

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

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

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

  • 修复了百川文档中错误的相对路径。(#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)

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

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

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

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

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

    • 在Triton后端中包含支持

  • 支持AWQ和GPTQ用于QWEN

  • 支持ReduceScatter插件

  • 支持结合repetition_penaltypresence_penalty #274

  • 支持 frequency_penalty #275

  • 开箱即用功能支持:

    • 百川

    • InternLM

    • Qwen

    • BART

  • LLaMA

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

    • 支持BF16仅用于权重插件

  • 百川

    • P-tuning 支持

    • INT4-AWQ 和 INT4-GPTQ 支持

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

  • 为建模添加masked_selectcumsum函数

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

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

  • 在NVIDIA V100 GPU上支持FP16 fMHA

    注意

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

模型更新

  • Phi-1.5/2.0

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

    • 支持仅限于波束宽度 = 1 和单节点单GPU

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

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

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

  • Skywork模型支持

  • 添加多模态模型的示例(BLIP与OPT或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时第一个令牌异常的问题 #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性能,以避免额外的同步成本

    • 集成XQA内核用于GPT-J(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缓存

  • 性能增强包括:

    • MMHA优化用于MQA和GQA

    • LoRA优化:cutlass分组GEMM

    • 优化Hopper warp专用内核

    • 优化 AllReduce 以在 Falcon 和 GPT-J 上进行并行注意力处理

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

  • 添加了工作流文档

模型更新

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

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

  • Mixtral-8x7B 模型

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

  • OpenAI Whisper

  • 专家混合支持

  • MPT - Int4 AWQ / SmoothQuant 支持

  • 百川 FP8 量化支持

已修复的问题

  • 修复了在quantize.py中的分词器使用问题 #288

  • 修复了LLaMa与LoRA的错误

  • 修复了LLaMA GPTQ的故障

  • 修复了InferenceRequest问题的Python绑定

  • 修复了CodeLlama SQ准确性问题

已知问题

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