Triton教程 --- 动态批处理

Triton教程 — 动态批处理

在这里插入图片描述

Triton系列教程:

  1. 快速开始
  2. 利用Triton部署你自己的模型
  3. Triton架构
  4. 模型仓库
  5. 存储代理
  6. 模型设置
  7. 优化
  8. 动态批处理

Triton 提供了动态批处理功能,将多个请求组合在一起执行同一模型以提供更大的吞吐量。 默认情况下,只有当每个输入在请求中具有相同的形状时,请求才能被动态批处理。 为了在输入形状经常变化的情况下利用动态批处理,客户端需要将请求中的输入张量填充为相同的形状。

参差不齐的批处理是一种通过允许用户指定哪些输入不需要形状检查来避免显式填充的功能。 用户可以通过在模型配置中设置 allow_ragged_batch 字段来指定此类输入(参差不齐的输入):

...
input [
  {
    name: "input0"
    data_type: TYPE_FP32
    dims: [ 16 ]
    allow_ragged_batch: true
  }
]
...

如何在一批请求中处理参差不齐的输入取决于后端实现。 ONNX Runtime 后端、TensorFlow 后端、PyTorch 后端和 TensorRT 后端等后端要求模型将参差不齐的输入作为一维张量接受。 这些后端将请求输入连接到一维张量中。

由于连接的输入不跟踪每个请求的开始和结束索引,因此后端通常要求模型具有额外的输入,批输入,描述有关形成的批的各种信息。

批量输入

批输入通常与参差不齐的输入结合使用,以提供有关每个批元素的信息,例如批中每个请求的输入元素计数。 批次输入由 Triton 生成,而不是在请求中提供,因为信息只有在动态批次形成后才能最终确定。

除了元素计数,用户还可以指定其他批输入类型,详情请参阅 protobuf 文档。

参差不齐的输入和批量输入的例子

如果您的模型接受 1 个可变长度输入张量 INPUT,形状为 [ -1, -1 ]。 第一个维度是批量维度,第二个维度是变长内容。 当客户端发送 3 个形状为 [ 1, 3 ]、[ 1, 4 ]、[ 1, 5 ] 的请求时。 为了利用动态批处理,实现此模型的直接方法是期望输入形状 [-1, -1] 并假设所有输入都被填充到相同的长度,以便所有请求都变成形状 [1, 5],因此 Triton 可以 批处理并将它们作为单个 [ 3, 5 ] 张量发送到模型。 在这种情况下,填充张量和填充内容的额外模型计算将产生开销。 下面是输入配置:

max_batch_size: 16
input [
  {
    name: "INPUT"
    data_type: TYPE_FP32
    dims: [ -1 ]
  }
]

使用 triton 参差不齐的批处理,模型将实现为期望输入形状 [-1] 和一个额外的批输入、索引、形状 [-1],模型应该使用它来解释输入中的批元素。 对于这样的模型,客户端请求不需要填充,可以按原样发送(形状为[1, 3],[1, 4],[1, 5])。 上面讨论的后端会将输入批处理为形状为 [12] 的张量,其中包含请求的 3 + 4 + 5 级联。 Triton 还创建了形状为 [ 3 ] 且值为 [ 3, 7, 12 ] 的批量输入张量,它给出了每个批量元素结束的输入张量的偏移量。 下面是输入配置:

max_batch_size: 16
input [
  {
    name: "INPUT"
    data_type: TYPE_FP32
    dims: [ -1 ]
    allow_ragged_batch: true
  }
]
batch_input [
  {
    kind: BATCH_ACCUMULATED_ELEMENT_COUNT
    target_name: "INDEX"
    data_type: TYPE_FP32
    source_input: "INPUT"
  }
]

上面的示例使用 BATCH_ACCUMULATED_ELEMENT_COUNT 类型的参差不齐的批处理。 protobuf 文档中描述的其他类型的操作类似。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【开源与项目实战:开源实战】81 | 开源实战三(上):借Google Guava学习发现和开发通用功能模块

上几节课,我们拿 Unix 这个超级大型开源软件的开发作为引子,从代码设计编写和研发管理两个角度,讲了如何应对大型复杂项目的开发。接下来,我们再讲一下 Google 开源的 Java 开发库 Google Guava。 Google Guava 是一个非常成功、…

io.netty学习(十一)Reactor 模型

目录 前言 传统服务的设计模型 NIO 分发模型 Reactor 模型 1、Reactor 处理请求的流程 2、Reactor 三种角色 单Reactor 单线程模型 1、消息处理流程 2、缺点 单Reactor 多线程模型 1、消息处理流程 2、缺点 主从Reactor 多线程模型 主从Reactor 多线程模型示例 1…

CTF-Show密码学:ZIP文件密码破解【暴力破解】

萌新 隐写23 题目内容: 文件的主人喜欢用生日做密码,而且还是个90后。 一、已知条件 在这个题目中,我们有以下已知条件: 文件的主人喜欢用生日做密码 - 这个条件告诉我们,密码可能是一个八位的纯数字密码&#xff0c…

云原生之深入解析如何正确计算Kubernetes容器CPU使用率

一、简介说明 使用 Prometheus 配置 kubernetes 环境中 Container 的 CPU 使用率时,会经常遇到 CPU 使用超出 100%,现在来分析一下: container_spec_cpu_period:当对容器进行 CPU 限制时,CFS 调度的时间窗口&#xff…

[架构之路-214]- UML-类图图解、详解、结构化、本质化讲解

目录 一、什么是类 1.1 概述 1.2 UML中类的表示 1.3 接口 1.4 抽象类 1.5 模板类 二、什么类图 2.1 概述 2.2 类关系 三、UML类图 3.1 结构关系 3.1.1 完全一体:继承关系 (类与类耦合度最高,类与类之间最强的关系) …

计算机基础知识

参考链接:https://blog.csdn.net/ChineseSoftware/article/details/123176978 https://www.cnblogs.com/8023-CHD/p/11067141.html https://blog.csdn.net/qq_42033567/article/details/108088514 http与https的区别 HTTP 的URL以http:// 开头,而HTTPS…

【Matlab】语音信号分析与处理实验报告

一、目的 使用Matlab分析与设计实验,理解与掌握以下知识点: 1、信号的采样、频谱混叠 2、信号的频谱分析 3、信号的幅度调制与解调方法 4、理想滤波器的时域和频域特性 5、数字滤波器的设计与实现 二、内容 1、录制一段个人的语音信号 2、采用合适的频…

Unity光照贴图的切换,实现黑夜和白天效果

有这么一个需求,不能使用实时光来进行动态控制光照开关,但是又要实现白天和黑夜的效果,我的场景中有大概十几个点光源和平行光 实现步骤: 一、模型原模原样复制到另一个场景中(因为贴图只能存在于当前的场景文件夹&am…

支付宝沙箱支付详细教程(IDEA版)—2023最新版

😇作者介绍:一个有梦想、有理想、有目标的,且渴望能够学有所成的追梦人。 🎆学习格言:不读书的人,思想就会停止。——狄德罗 ⛪️个人主页:进入博主主页 🗼专栏系列:无 &#x1f33c…

Redis数据库操作

Redis 命令参考 — Redis 命令参考http://doc.redisfans.com/ 1、Redis,远程词典服务器,是一个基于内存的键值型NoSQL数据库 特征: 键值型,支持多种不同数据结构,功能丰富 单线程,每个命令具备原子性 …

Docker的安装部署以及配置的操作流程(图文)

Docker的安装以及配置流程(图文) Docker一、配置域名解析二、CentOS Docker 安装1. 查询已安装的docker2. 安装必要的一些系统工具3. 添加软件源(阿里云)信息4. 更新并安装Docker-CE5. 查看docker 的版本6. 关闭运行的防火墙7. 开…

h5手写签名示例

前言 业务中需要用户进行签字&#xff0c;如何让用户在手机端进行签字&#xff1f; 示例如下 代码已分享至Gitee: https://gitee.com/lengcz/qianming 原示例&#xff1a; https://www.jq22.com/jquery-info13488 H5实现手写签字 创建一个html页面 <!DOCTYPE html> …

Wireshark抓包分析(ARP TCP DNS HTTP)

目录 一、ARP 二、DNS 三、TCP TCP的总过程&#xff1a; ​TCP三次握手&#xff1a; TCP四次挥手&#xff1a; 四、HTTP 一、ARP 1.ARP&#xff08;Address Resolution Protocol&#xff09;&#xff0c;是根据IP地址获取物理地址的一个TCP/IP协议。 我们要抓ARP 同网段内…

每日学术速递6.7

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.The ObjectFolder Benchmark: Multisensory Learning with Neural and Real Objects(CVPR 2023) 标题&#xff1a;ObjectFolder 基准测试&#xff1a;使用神经和真实对象进行多感官…

Windows VMware安装RockyLinux9

前言&#xff0c;今天用虚拟机安装rockyLinux时碰到了一些坑&#xff0c;要么时无法联网&#xff0c;要么是无法使用ssh链 接&#xff0c;在这里记录下 准备工作 1. VMware Workstation 17 Pro 2. RockyLinux9.2阿里镜像站&#xff0c;这里无选择了最小版本Rocky-9-latest-x86…

小程序自动化测试的示例代码

背景 近期团队打算做一个小程序自动化测试的工具&#xff0c;期望能够做的业务人员操作一遍小程序后&#xff0c;自动还原之前的操作路径&#xff0c;并且捕获操作过程中发生的异常&#xff0c;以此来判断这次发布时候会影响小程序的基础功能。 上述描述看似简单&#xff0c;但…

【算法证明 七】深入理解深度优先搜索

深度优先搜索包含一个递归&#xff0c;对其进行分析要复杂一些。与上一篇文章一样&#xff0c;还是给节点定义几个状态&#xff0c;然后详细分析深度优先搜索算法有哪些性质。 算法描述 定义状态 v . c o l o r &#xff1a;初始状态为白色&#xff0c;被发现时改为灰色&…

【cfeng work】什么是云原生 Cloud Native

WorkProj 内容管理 云原生云原生应用十二要素应用cfeng的work理解 本文introduce 云原生 Cloud Native相关内容 随着技术的迭代&#xff0c;从最初的物理机—> 虚拟机&#xff0c;从单机 —> 分布式微服务&#xff0c; 现在的热门概念就是云☁&#xff08;cloud&#xff…

python 使用 openpyxl 处理 Excel 教程

目录 前言一、安装openpyxl库二、新建excel及写入单元格1.创建一个xlsx格式的excel文件并保存2.保存成流(stream)3.写入单元格 三、创建sheet工作表及操作四、读取excel和单元格1.读取 excel 文件2.读取单元格3.获取某一行某一列的数据4.遍历所有单元格5.遍历指定行列范围的单元…

数据结构之堆——算法与数据结构入门笔记(六)

本文是算法与数据结构的学习笔记第六篇&#xff0c;将持续更新&#xff0c;欢迎小伙伴们阅读学习。有不懂的或错误的地方&#xff0c;欢迎交流 引言 当涉及到高效的数据存储和检索时&#xff0c;堆&#xff08;Heap&#xff09;是一种常用的数据结构。上一篇文章中介绍了树和完…