你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

CLI (v2) 启用了 Azure Arc 的 Kubernetes 联机部署 YAML 架构

适用于:Azure CLI ml 扩展 v2(当前)

源 JSON 架构可在 https://azuremlschemas.azureedge.net/latest/kubernetesOnlineDeployment.schema.json 中找到。

注意

本文档中详细介绍的 YAML 语法基于最新版本的 ML CLI v2 扩展的 JSON 架构。 此语法必定仅适用于最新版本的 ML CLI v2 扩展。 可以在 https://azuremlschemasprod.azureedge.net/ 上查找早期扩展版本的架构。

YAML 语法

密钥 类型 说明 允许的值 默认值
$schema 字符串 YAML 架构。 如果使用 Azure 机器学习 VS Code 扩展来创作 YAML 文件,则可通过在文件顶部包含 $schema 来调用架构和资源完成操作。
name 字符串 必需。 部署的名称。

此处定义命名规则。
description 字符串 部署的说明。
tags object 部署的标记字典。
endpoint_name 字符串 必需。 要在其中创建部署的终结点的名称。
model 字符串或对象 要用于部署的模型。 此值可以是对工作区中现有版本受控模型的引用,也可以是对内联模型规范的引用。

若要引用现有模型,请使用 azureml:<model-name>:<model-version> 语法。

若要内联定义模型,请遵循模型架构

对于生产方案,最佳做法应该是单独创建模型并在此处引用模型。

对于自定义容器部署方案,此字段是可选的。
model_mount_path 字符串 在自定义容器中装载模型的路径。 仅适用于自定义容器部署方案。 如果指定了 model 字段,则会将模型装载在容器中的此路径上。
code_configuration object 评分代码逻辑的配置。

对于自定义容器部署方案,此字段是可选的。
code_configuration.code 字符串 用于对模型评分的源代码目录的本地路径。
code_configuration.scoring_script 字符串 源代码目录中评分文件的相对路径。
environment_variables object 要在部署容器中设置的环境变量键值对的字典。 可以从评分脚本访问这些环境变量。
environment 字符串或对象 必需。 用于作业的环境。 此值可以是对工作区中现有版本受控环境的引用,也可以是对内联环境规范的引用。

若要引用现有环境,请使用 azureml:<environment-name>:<environment-version> 语法。

若要以内联方式定义环境,请遵循环境架构

对于生产方案,最佳做法应该是单独创建环境并在此处引用环境。
instance_type 字符串 用于放置推理工作负荷的实例类型。 如果省略此项,推理工作负荷将放置在终结点的 compute 字段中指定的 Kubernetes 群集的默认实例类型上。 如果指定此项,推理工作负荷将放置在所选的实例类型上。

Kubernetes 群集的实例类型集是通过 Kubernetes 群集自定义资源定义 (CRD) 配置的,因此它们不是用于附加 Kubernetes 计算的 Azure 机器学习 YAML 架构的一部分。有关详细信息,请参阅创建和选择 Kubernetes 实例类型
instance_count integer 用于部署的实例数。 根据期望的工作负载指定值。 只有在使用 default 缩放类型 (scale_settings.type: default) 时,才需要此字段。

可以在使用 az ml online-deployment update 命令创建部署后更新 instance_count
app_insights_enabled boolean 是否启用与与工作区关联的 Azure Application Insights 实例的集成。 false
scale_settings object 部署的规模设置。 支持的两种类型的缩放设置是 default 缩放类型和 target_utilization 缩放类型。

使用 default 缩放类型 (scale_settings.type: default),你可以在创建部署后通过更新 instance_count 属性手动纵向缩放实例计数。

若要配置 target_utilization 缩放类型 (scale_settings.type: target_utilization),请参阅 TargetUtilizationScaleSettings 了解可配置属性集。
scale_settings.type 字符串 缩放类型。 %> target_utilization
data_collector object 部署的数据收集设置。 有关可配置属性集,请参阅 DataCollector
request_settings object 部署的评分请求设置。 请参阅 RequestSettings 以了解可配置属性集。
liveness_probe object 运行情况探测设置,用于定期监控容器的运行状况。 请参阅 ProbeSettings 以了解可配置属性集。
readiness_probe object 用于验证容器是否已准备好为流量提供服务的就绪情况探测设置。 请参阅 ProbeSettings 以了解可配置属性集。
resources object 容器资源要求。
resources.requests object 对容器的资源请求。 请参阅 ContainerResourceRequests 了解可配置属性集。
resources.limits object 容器的资源限制。 请参阅 ContainerResourceLimits 了解可配置属性集。

RequestSettings

密钥 类型 说明 默认值
request_timeout_ms 整型 以毫秒为单位的评分超时。 5000
max_concurrent_requests_per_instance 整型 部署允许的每个实例的最大并发请求数。

除非获得 Microsoft 技术支持人员或 Azure 机器学习团队成员的指导,否则不要更改此设置的默认值。
1
max_queue_wait_ms 整型 请求将在队列中停留的最长时间(以毫秒为单位)。 500

ProbeSettings

密钥 类型 说明 默认值
period 整型 执行探测的频率(以秒为单位)。 10
initial_delay 整型 容器启动后且在探测启动前的秒数。 最小值为 1 10
timeout 整型 探测超时后的秒数。最小值为 1 2
success_threshold 整型 失败后,探测被视为成功的最小连续成功次数。 最小值为 1 1
failure_threshold 整型 当探测失败时,系统会尝试 failure_threshold 次,然后放弃。 在运行情况探测的情况下放弃意味着容器将被重启。 在就绪情况探测的情况下,容器将被标记为“未就绪”。 最小值为 1 30

TargetUtilizationScaleSettings

类型 说明 默认值
type const 缩放类型 target_utilization
min_instances integer 要使用的最小实例数。 1
max_instances integer 要缩放到的最大实例数。 1
target_utilization_percentage integer 自动缩放程序的目标 CPU 使用率。 70
polling_interval integer 自动缩放程序应尝试缩放部署的频率(以秒为单位)。 1

ContainerResourceRequests

类型 说明
cpu 字符串 为容器请求的 CPU 核心数。
memory 字符串 为容器请求的内存大小
nvidia.com/gpu 字符串 为容器请求的 Nvidia GPU 卡数

ContainerResourceLimits

类型 说明
cpu 字符串 容器的 CPU 核心数限制。
memory 字符串 容器的内存大小限制。
nvidia.com/gpu 字符串 容器的 Nvidia GPU 卡数限制

DataCollector

密钥 类型 说明 默认值
sampling_rate FLOAT 要收集的数据的百分比(以十进制率表示)。 例如,值 1.0 表示收集 100% 的数据。 1.0
rolling_rate 字符串 对存储中的数据进行分区的速率。 值可以是:分钟、小时、天、月、年。 Hour
collections 对象 此部署的各个 collection_name 集及其各自的设置。
collections.<collection_name> 对象 要收集的生产推理数据的逻辑分组(例如:model_inputs)。 有两个保留名称:requestresponse,分别对应于 HTTP 请求和响应有效负载数据收集。 所有其他名称都是任意的,可由用户定义。

注意:每个 collection_name 应对应于部署 score.py 中用于收集生产推理数据的 Collector 对象的名称。 有关使用提供的 Python SDK 进行有效负载数据收集和数据收集的详细信息,请参阅在生产环境中从模型收集数据
collections.<collection_name>.enabled boolean 是否为指定的 collection_name 启用数据收集。 'False''
collections.<collection_name>.data.name 字符串 要与收集的数据一起注册的数据资产的名称。 <endpoint>-<deployment>-<collection_name>
collections.<collection_name>.data.path 字符串 完整的 Azure 机器学习数据存储路径,其中收集的数据应注册为数据资产。 azureml://datastores/workspaceblobstore/paths/modelDataCollector/<endpoint_name>/<deployment_name>/<collection_name>
collections.<collection_name>.data.version integer 要与 Blob 存储中收集的数据一起注册的数据资产的版本。 1

备注

az ml online-deployment 命令可用于管理 Azure 机器学习 Kubernetes 联机部署。

示例

示例 GitHub 存储库中提供了示例。

后续步骤