发行说明#
发行说明中发布的所有功能都经过了全面测试和验证,并记录了已知的限制。要分享有关此版本的反馈,请访问我们的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-bench
的throughput
子命令添加了--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_tokens
和max_batch_size
参数用于控制运行时参数。extended_runtime_perf_knob_config
用于启用各种性能配置。
为 Qwen 模型添加了 LogN 缩放支持。
为 Qwen 添加了
AutoAWQ
检查点支持。请参考examples/qwen/README.md
中的 “INT4-AWQ” 部分。为 LLaMA 添加了
AutoAWQ
和AutoGPTQ
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
类添加了n
和best_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_width
和num_return_sequences
参数。 请改用n
,best_of
和use_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_reason
和stop_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
添加了curand
和bfloat16
支持。为 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
。[重大变更] 将
maxNewTokens
、randomSeed
和minLength
重命名为maxTokens
、seed
和minTokens
,遵循 OpenAI 风格。LLM
类[重大变更] 更新了
LLM.generate
参数,以包括PromptInputs
和tqdm
。
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_size
、pp_size
和cp_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_fraction
为kv_cache_free_gpu_memory_fraction
。[重大变更] 重构了
GptManager
API将
maxBeamWidth
移动到TrtGptModelOptionalParams
中。将
schedulerConfig
移动到TrtGptModelOptionalParams
中。
向
ModelRunnerCpp
添加了更多选项,包括max_tokens_in_paged_kv_cache
、kv_cache_enable_block_reuse
和enable_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 中公开了低级选项,包括
BuildConfig
、SchedulerConfig
等等。理想情况下,您应该能够配置关于构建和运行时阶段的详细信息。
重构了
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.py
和fastapi_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_scheduler
和executor
中同名的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
。已弃用
GptSession
和TrtGptModelV1
。
模型更新#
支持 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
命令构建的引擎[重大变更] 从
gptManagerBenchmark
和gptSessionBenchmark
中移除了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.generate
或LLM.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_penalty
和presence_penalty
#274支持
frequency_penalty
#275OOTB 功能支持
Baichuan
InternLM
Qwen
BART
LLaMA
支持启用 INT4-AWQ 以及 FP8 KV 缓存
支持仅权重插件的 BF16
Baichuan
P-tuning 支持
INT4-AWQ 和 INT4-GPTQ 支持
解码器迭代级别分析改进
添加
masked_select
和cumsum
函数用于建模支持 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)
[重大变更] 弃用
LayerNorm
和RMSNorm
插件,并移除相应的构建参数[重大变更] 移除 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 中支持
StoppingCriteria
和LogitsProcessor
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 中的错误引起的,则该错误可能存在于该版本中。