triton inference server翻译之Model Repository

2024-01-23 17:32

本文主要是介绍triton inference server翻译之Model Repository,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

link

Triton Inference Server访问模型文件的方式可以是本地可访问文件路径,Google Cloud Storage和Amazon S3,用–model-repository选项启动服务器时,将指定这些路径。

  • 对于本地可访问的文件系统,必须指定绝对路径,例如--model-repository=/path/to/model/repository
  • 对于驻留在Google Cloud Storage中的模型,该路径必须以gs://作为前缀,例如--model-repository = gs://bucket/path/to/model/repository
  • 对于驻留在Amazon S3中的模型,该路径必须以s3://作为前缀,例如--model-repository = s3://bucket/path/to/model/repository
  • 使用S3的本地实例时,前缀s3://后面必须是主机和端口(用分号分隔),然后是存储区路径。例如,--model-repository = s3://host:port/bucket/path/to/model/repository

使用Amazon S3时,默认区域各个环境变量可以使用aws config <https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html> _命令或通过环境变量。如果设置了环境变量,它们将具有更高的优先级,并由Triton Inference Server使用,而不是使用aws config命令设置的凭据。

示例模型存储库介绍了如何使用几个图像分类模型创建示例存储库。

典型的模型存储库布局示例如下所示:

<model-repository-path>/model_0/config.pbtxtoutput0_labels.txt1/model.plan2/model.planmodel_1/config.pbtxtoutput0_labels.txtoutput1_labels.txt0/model.graphdef7/model.graphdef

有关推论服务器如何管理模型存储库中指定的模型的讨论,请参阅模型管理。 Status API可用于确定是否有任何模型无法成功加载。服务器的控制台日志还将显示启动过程中所有失败的原因。

模型目录的名称(在上例中为model_0model_1)必须与在模型配置文件config.pbtxt中指定的模型名称匹配。客户端API和服务器API中使用模型名称来标识模型。每个模型目录必须至少有一个数字子目录。这些子目录中的每一个都包含模型的版本,该版本的版本号与目录名称相对应。

有关服务器如何处理模型版本的更多信息,请参见模型版本。每个版本子目录中都有一个或多个模型定义文件,用于指定实际模型(集合模型除外)。模型定义可以是特定于框架的模型文件,也可以是实现自定义后端的共享库。

* _labels.txt文件是可选的,用于为表示分类的输出提供标签。标签文件必须在模型配置中对应的输出的label_filename属性中指定。

Modifying the Model Repository

推理服务器具有多种执行模式,这些执行模式控制如何管理模型存储库中的模型。 这些模式在模型管理中描述。

Model Versions

每个模型在模型存储库中可以有一个或多个可用版本。 每个版本都存储在其自己的数字命名子目录中,该子目录的名称与模型的版本号相对应。 没有数字命名或前缀为零的子目录将被忽略。 每个模型都指定一个版本策略,该策略控制服务器在任何给定时间提供模型存储库中的哪个版本。

Framework Model Definition

每个模型版本子目录必须至少包含一个模型定义。 默认情况下,此文件或目录的名称必须为:

  • model.plan for TensorRT models
  • model.graphdef for TensorFlow GraphDef models
  • model.savedmodel for TensorFlow SavedModel models
  • model.onnx for ONNX Runtime ONNX models
  • model.pt for PyTorch TorchScript models
  • model.netdef and init_model.netdef for Caffe2 Netdef models

默认文件名称可以在模型配置文件的default_model_filename中修改。

可选地,一个模型可以提供多个模型定义文件,每个文件都针对具有不同计算能力的GPU。 最常见的是,TensorRT和TensorFlow/TensorRT集成模型需要此功能,其中某个模型定义或许仅对单个算力的机器有效。 有关如何为不同的计算功能指定不同的模型定义的说明,参见中的cc_model_filenames

TensorRT Models

模型定义是plan文件,默认名称model.plan,与CUDA Compute Capability有关。
A TensorRT model definition is called a Plan. A TensorRT Plan is a single file that by default must be named model.plan. A TensorRT Plan is specific to CUDA Compute Capability and so it is typically necessary to use the model configuration’s cc_model_filenames property as described above.

最简单的模型如下所示:

models/<model-name>/config.pbtxt1/model.plan

参见中的描述,config.pbtxt是可选的,所以最简版的模型仓库应该类似:

models/<model-name>/1/model.plan

TensorFlow Models

两种模型保存方式:GraphDefSavedModel

GraphDef的默认文件名称为 model.graphdef

models/<model-name>/config.pbtxt1/model.graphdef

SavedModel包含多个文件默认在名为model.savedmodel的目录中:

models/<model-name>/config.pbtxt1/model.savedmodel/<saved-model files>

最简版的模型仓库:

models/<model-name>/1/model.savedmodel/<saved-model files>

TensorRT/TensorFlow Models

TensorFlow 1.7及更高版本集成了TensorRT以使TensorFlow模型能够受益于TensorRT提供的推理优化。 推理服务器支持已使用TensorRT优化的模型,并且可以像其他任何TensorFlow模型一样为这些模型提供服务。 推理服务器的TensorRT版本必须与创建模型时使用的TensorRT版本相匹配。

TensorRT/TensorFlow集成模型特定于CUDA计算功能,因此通常有必要如上所述使用模型配置的cc_model_filenames属性。

作为离线创建TensorRT/TensorFlow模型的替代方法,可以在首次加载模型时或响应推理请求时使用模型配置设置来动态执行TensorRT优化。 参见。

ONNX Models

ONNX模型是单个文件或包含多个文件的目录。默认情况下,文件或目录必须命名为model.onnx。请注意,推理服务器可能不支持某些ONNX模型,因为基础ONNX运行时不支持它们(由于使用过时的ONNX opset版本或包含类型不受支持的运算符)。

默认情况下,ONNX运行时在运行模型时使用默认执行提供程序。为了在CPU上执行模型,此默认执行提供程序不使用MKL-DNN。通过模型配置优化策略,您可以选择用于模型的CPU执行的OpenVino执行提供程序,而不是默认执行提供程序。为了在GPU上执行模型,默认的CUDA执行提供程序使用CuDNN加速推理。通过模型配置优化策略,您可以选择GPU的tensorrt执行提供程序,从而使ONNX运行时使用TensorRT来加速全部或部分模型。

单个文件中包含的单个ONNX模型的最小模型存储库如下所示:

models/<model-name>/config.pbtxt1/model.onnx

最简版的模型仓库:

models/<model-name>/1/model.onnx

由多个文件组成的ONNX模型必须包含在目录中。 默认情况下,此目录必须命名为model.onnx,但可以使用模型配置中的default_model_filename属性覆盖。 此目录中的主模型文件必须命名为model.onnx。 目录中包含的单个ONNX模型的最小模型存储库如下所示:

models/<model-name>/config.pbtxt1/model.onnx/model.onnx<other model files>

最简版的模型仓库:

models/<model-name>/1/model.onnx/model.onnx<other model files>

PyTorch Models

PyTorch模型是单个文件,默认情况下必须命名为model.pt。 请注意,必须使用示例输入来跟踪PyTorch模型,并将其保存为TorchScript模块,如下所示。 由于基础操作集的更改,推理服务器可能不支持使用不同版本的PyTorch跟踪的某些模型。 单个PyTorch模型的最小模型存储库如下所示:

models/<model-name>/config.pbtxt1/model.pt

Caffe2 Models

Caffe2模型定义称为NetDef。 Caffe2 NetDef是单个文件,默认情况下必须命名为model.netdef。 单个NetDef模型的最小模型存储库如下所示:

models/<model-name>/config.pbtxt1/model.netdef

Custom Backends

使用自定义后端的模型在模型存储库中的表示方式与使用深度学习框架后端的模型相同。 每个模型版本子目录必须至少包含一个实现自定义模型后端的共享库。 默认情况下,此共享库的名称必须为libcustom.so,但是可以使用模型配置中的default_model_filename属性覆盖默认名称。

可选地,一个模型可以提供多个共享库,每个共享库都针对具有不同计算能力的GPU。 有关如何为不同的计算功能指定不同的共享库的说明,参见中的cc_model_filenames属性。

当前,仅本地文件系统上的模型存储库支持自定义后端。 推理服务器无法加载云存储中模型存储库中包含的自定义后端(例如,如上所述,使用gs://前缀或s3://前缀访问的存储库)。

Custom Backend API

定制后端必须实现custom.h中定义的C接口。该接口也记录在API接口中。

Example Custom Backend

示例在src/custom目录中,有关构建自己的自定义后端的更多信息以及可以构建自己的简单示例。

Ensemble Backends

使用集成后端的模型在模型存储库中的表示方式与使用深度学习框架后端的模型相同。 当前,集成后端不需要任何特定于版本的数据,因此每个模型版本子目录必须存在,但应为空。

可以在docs/examples/ensemble_model_repository/preprocess_resnet50_ensemble目录中找到模型存储库中的集成后端示例。

这篇关于triton inference server翻译之Model Repository的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/637002

相关文章

MySQL 中的服务器配置和状态详解(MySQL Server Configuration and Status)

《MySQL中的服务器配置和状态详解(MySQLServerConfigurationandStatus)》MySQL服务器配置和状态设置包括服务器选项、系统变量和状态变量三个方面,可以通过... 目录mysql 之服务器配置和状态1 MySQL 架构和性能优化1.1 服务器配置和状态1.1.1 服务器选项

查询SQL Server数据库服务器IP地址的多种有效方法

《查询SQLServer数据库服务器IP地址的多种有效方法》作为数据库管理员或开发人员,了解如何查询SQLServer数据库服务器的IP地址是一项重要技能,本文将介绍几种简单而有效的方法,帮助你轻松... 目录使用T-SQL查询方法1:使用系统函数方法2:使用系统视图使用SQL Server Configu

SQL Server数据库迁移到MySQL的完整指南

《SQLServer数据库迁移到MySQL的完整指南》在企业应用开发中,数据库迁移是一个常见的需求,随着业务的发展,企业可能会从SQLServer转向MySQL,原因可能是成本、性能、跨平台兼容性等... 目录一、迁移前的准备工作1.1 确定迁移范围1.2 评估兼容性1.3 备份数据二、迁移工具的选择2.1

SQL Server使用SELECT INTO实现表备份的代码示例

《SQLServer使用SELECTINTO实现表备份的代码示例》在数据库管理过程中,有时我们需要对表进行备份,以防数据丢失或修改错误,在SQLServer中,可以使用SELECTINT... 在数据库管理过程中,有时我们需要对表进行备份,以防数据丢失或修改错误。在 SQL Server 中,可以使用 SE

Window Server创建2台服务器的故障转移群集的图文教程

《WindowServer创建2台服务器的故障转移群集的图文教程》本文主要介绍了在WindowsServer系统上创建一个包含两台成员服务器的故障转移群集,文中通过图文示例介绍的非常详细,对大家的... 目录一、 准备条件二、在ServerB安装故障转移群集三、在ServerC安装故障转移群集,操作与Ser

SQL Server数据库磁盘满了的解决办法

《SQLServer数据库磁盘满了的解决办法》系统再正常运行,我还在操作中,突然发现接口报错,后续所有接口都报错了,一查日志发现说是数据库磁盘满了,所以本文记录了SQLServer数据库磁盘满了的解... 目录问题解决方法删除数据库日志设置数据库日志大小问题今http://www.chinasem.cn天发

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已

red5-server源码

red5-server源码:https://github.com/Red5/red5-server

MVC(Model-View-Controller)和MVVM(Model-View-ViewModel)

1、MVC MVC(Model-View-Controller) 是一种常用的架构模式,用于分离应用程序的逻辑、数据和展示。它通过三个核心组件(模型、视图和控制器)将应用程序的业务逻辑与用户界面隔离,促进代码的可维护性、可扩展性和模块化。在 MVC 模式中,各组件可以与多种设计模式结合使用,以增强灵活性和可维护性。以下是 MVC 各组件与常见设计模式的关系和作用: 1. Model(模型)