TensorRT-LLM七日谈 Day3

今天主要是结合理论进一步熟悉TensorRT-LLM的内容

从下面的分享可以看出,TensorRT-LLM是在TensorRT的基础上进行了进一步封装,提供拼batch,量化等推理加速实现方式。

下面的图片更好的展示了TensorRT-LLM的流程,包含权重转换,构建Engine,以及推理,评估等内容。总结一下就是三步。

不想看图的话,可以看看AI的总结,我放在附录中。

下图也很好的展示的trt-llm推理的全流程。

多卡并行

值得注意的是,trt-llm特意考虑了多卡部署的使用场景。通过tp-size参数来控制张量并行的程度,pp-size来控制溧水县并行的程度。

流水线并行

量化

权重&激活值量化

KV Cache量化

量化精度影响

从下图可以看出,使用FP8进行量化,量化精度较高。

性能调优

关于性能调优,trt-llm中也使用了类似于vllm中xontinuous batching的策略。

附录

The image describes an overview of the TensorRT-LLM (Large Language Model) workflow. Here's a summary of the key steps and elements involved:

1. Input Models:
- Various external models from frameworks like **HuggingFace**, **NeMo**, **AMMO**, and **Jax** can be used as inputs.

2. TRT-LLM Checkpoint:
- These external models are converted into a format defined by TRT-LLM using scripts like **convert_checkpoint.py** or **quantize.py**.
- This conversion determines several key backward layer parameters, including:
  - Quantization method
  - Parallelization method
  - And more...

3. TRT-LLM Engines:
- After converting to the checkpoint format, the **trtllm-build** command is used to further convert and optimize the checkpoint into **TensorRT Engines**.
- During this step, important inference parameters are set, such as:
  - Max batch size
  - Max input length
  - Max output length
  - Max beam width
  - Plugin configuration
  - And others...
- Most of the automatic optimizations occur at this stage.

4. Application Development:
- Using C++/Python APIs, developers can build applications with these optimized engines.
- TensorRT-LLM comes with several built-in tools to help with secondary development:
  - **summarize.py** for text summarization
  - **mmlu.py** for accuracy testing
  - **run.py** for a dry run to verify the model
  - **benchmark** for benchmarking
- The runtime options include:
  - **Temperature** (for sampling)
  - **Top K** (for top K sampling)
  - **Top P** (for nucleus sampling)

This workflow outlines how to integrate and optimize models for efficient inference with TensorRT-LLM and leverage its tools for application development and performance testing.

NVIDIA AI 加速精讲堂-TensorRT-LLM 应用与部署_哔哩哔哩_bilibili 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/446598.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iPhone 16 Pro 拆解揭秘:设计改进与维修便利性

苹果最新推出的iPhone 16系列在许多方面都进行了更新和改进,而这次我们要聚焦的是其中的高端型号——iPhone 16 Pro。 这款手机不仅在性能上有所提升,在内部构造上也带来了不少变化,让我们一起来看看这些细节吧。 更容易进入的内部结构 对于…

一、Java基础

韩顺平Java基础 浮点型使用细节基本数据类型转换自动类型转换强制类型转换 浮点型使用细节 double d 8.1 / 3 的结果是一个非常接近2.7的小数,比如2.69999997,这是计算机的运算规则造成的 基本数据类型转换 自动类型转换 对于第四点,如下…

电脑知识:适用于 Windows 10 的 PDF 编辑器列表

PDF 是一种流行的、多功能且安全的文件格式,用于在线共享文档。但是,如果没有合适的应用程序,查看和编辑 PDF 文件可能会变得复杂。 幸运的是,有很多 PDF 编辑器可以帮助您更正重要文档上的错误、填写表格、为合同添加签名、更改…

Unity3d折叠Inspector中的变量

InspectorFoldoutGroup插件 [Pixeye.Unity.Foldout("【曲线图】")] public BrokenLineUpDownGraph aimStabilityGraph;[Pixeye.Unity.Foldout("【曲线图】")] public BrokenLineUpGraph aimDensityGraph;[Pixeye.Unity.Foldout("【曲线图】")] p…

MedMamba代码解释及用于糖尿病视网膜病变分类

MedMamba原理和用于糖尿病视网膜病变检测尝试 1.MedMamba原理 MedMamba发表于2024.9.28,是构建在Vision Mamba基础之上,融合了卷积神经网的架构,结构如下图: 原理简述就是图片输入后按通道输入后切分为两部分,一部分走…

Spring Boot 应用开发:入门与实战

Spring Boot 应用开发:入门与实战 引言 Spring Boot 是 Spring 框架的一个子项目,旨在简化 Spring 应用的配置和开发。它通过自动配置和嵌入式服务器,极大地简化了 Java 企业级应用的开发。本文将详细介绍 Spring Boot 的核心概念&#xff…

JVM进阶调优系列(1)类加载器原理一文讲透

今天开始写JVM调优系列,并发编程系列也会继续穿插连载,让各位同学闲暇之余有更多阅读选择。 起笔写第一篇,并不好写。首先要构思整个系列的大概框架,一个好的框架一定是深度上由浅入深、逻辑上有严格顺序,读者订阅跟踪…

《OpenCV计算机视觉》—— 人脸检测

文章目录 一、人脸检测流程介绍二、用于人脸检测的关键方法1.加载分类器(cv2.CascadeClassifier())2.检测图像中的人脸(cv2.CascadeClassifier.detectMultiscale()) 三、代码实现 一、人脸检测流程介绍 下面是一张含有多个人脸的…

使用camunda的DMN实现班级决策案例

班级决策 Camunda 支持DMN1.3版本,在BPMN业务活动流程中,可通过业务规则任务调用DMN决策。DMN决策目的是想把业务代码和决策进行解耦,使决策分析人员只需关心决策即可。 需求描述 通过幼儿园学生年龄age和身高height分配不同的班级&#xff0…

10.13论文阅读

通过联合学习检测和描述关键点增强可变形局部特征 摘要 局部特征提取是计算机视觉中处理图像匹配和检索等关键任务的常用方法。大多数方法的核心理念是图像经历仿射变换,忽略了诸如非刚性形变等更复杂的效果。此外,针对非刚性对应的新兴工作仍然依赖于…

个性化图像生成新王炸!无需微调,Meta重磅发布Imagine yourself:三大核心全面SOTA!

论文链接:https://arxiv.org/pdf/2409.13346 亮点直击 本文提出了“Imagine Yourself”,这是一种用于个性化图像生成的创新型最先进模型。该模型可以将任意参考图像作为输入进行定制化图像生成,并且不需要针对每个对象进行调整。“Imagine Yo…

springboot汽车售票系统演-毕业设计源码07891

基于springboot的汽车售票系统 摘 要 汽车售票系统主要功能模块包括系统用户管理、车次车票信息、车票预定、退票信息、改签信息等,采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及…

【C】C语言常见概念~

C语言常见概念 转义字符 转义字符&#xff0c;顾名思义&#xff0c;转变原来意思的字符 比如 #include <stdio.h> int main() {printf("abcndef");return 0; }输出的结果为&#xff1a; 将代码修改一下&#xff1a; #include <stdio.h> int main(…

萱仔求职复习系列——2 Linux的常用方法(包含基础进阶高级操作)

由于最近接了一个笔试&#xff0c;发现笔试可能涉及到Linux&#xff0c;我准备临时抱佛脚一下赶紧复习一下Linux的用法哈哈。Linux 的基础用法包含文件系统操作、权限管理、网络配置、进程管理等基本命令&#xff1b;进阶操作包括网络调试、包管理、服务管理和用户管理等&#…

UE5学习笔记24-添加武器弹药

一、给角色的武器添加弹药 1.创建界面&#xff0c;根据笔记23的界面中添加 2.绑定界面控件 UPROPERTY(meta (Bindwidget))UTextBlock* WeaponAmmoAmount;UPROPERTY(meta (Bindwidget))UTextBlock* CarriedAmmoAmount; 3.添加武器类型枚举 3.1创建武器类型枚举头文件 3.2创建文…

【论文解读系列】EdgeNAT: 高效边缘检测的 Transformer

代码&#xff1a; https://github.com/jhjie/edgenat 论文&#xff1a; https://arxiv.org/abs/2408.10527v1 论文 EdgeNAT: Transformer for Efficient Edge Detection 介绍了一种名为EdgeNAT的基于Transformer的边缘检测方法。 1. 背景与动机 EdgeNAT预测结果示例。(a, b)…

软考《信息系统运行管理员》- 4.1信息系统软件运维概述

4.1信息系统软件运维概述 文章目录 4.1信息系统软件运维概述信息系统软件运维的概念信息系统软件的可维护性及维护类型对软件可维护性的度量可以从以下几个方面进行&#xff1a;软件维护分类&#xff1a; 信息系统软件运维的体系1.**需求驱动**2.**运维流程**3.**运维过程**4.*…

LabVIEW提高开发效率技巧----事件触发模式

事件触发模式在LabVIEW开发中是一种常见且有效的编程方法&#xff0c;适用于需要动态响应外部或内部信号的场景。通过事件结构&#xff08;Event Structure&#xff09;和用户自定义事件&#xff08;User Events&#xff09;&#xff0c;开发者可以设计出高效的事件驱动程序&am…

WPF 为button动态设置不同的模板

有时候需要动态的设置一些按钮的状态模板。使一个button显示不同的内容&#xff0c;比如Button未点击安装显示&#xff1a; 安装后显示&#xff1a; 可以通过设置button的content&#xff0c;通过content来设置不同的模板来实现功能&#xff0c;以下是代码&#xff1a; MainWi…

opencascade鼠标拖拽框选功能

1.首先在OccView中添加用于显示矩形框的类 //! rubber rectangle for the mouse selection.Handle(AIS_RubberBand) mRectBand; 2.设置框选的属性 mRectBand new AIS_RubberBand(); //设置属性 mRectBand->SetLineType(Aspect_TOL_SOLID); //设置变宽线型为实线 mRe…