你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
CLI (v2) 启用了 Azure Arc 的 Kubernetes 联机部署 YAML 架构
源 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 )。 有两个保留名称:request 和 response ,分别对应于 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 存储库中提供了示例。