Compartir a través de


Esquema YAML de la implementación en línea de Kubernetes de la CLI (v2) con Azure Arc habilitado

SE APLICA A: Extensión de ML de la CLI de Azure v2 (actual)

El esquema JSON de origen se puede encontrar en https://azuremlschemas.azureedge.net/latest/kubernetesOnlineDeployment.schema.json.

Nota

La sintaxis de YAML que se detalla en este documento se basa en el esquema JSON de la versión más reciente de la extensión ML de la CLI v2. Se garantiza que esta sintaxis solo funciona con la versión más reciente de la extensión ML de la CLI v2. Dispone de los esquemas de las versiones de anteriores de la extensión en https://azuremlschemasprod.azureedge.net/.

Sintaxis de YAML

Clave Tipo Descripción Valores permitidos Valor predeterminado
$schema string Esquema de YAML. Si usa la extensión VS Code de Azure Machine Learning para crear el archivo YAML, la inclusión de $schema en la parte superior del archivo le permite invocar las finalizaciones del esquema y los recursos.
name string Necesario. Nombre de la implementación.

Las reglas de nomenclatura se definen aquí.
description string Descripción de la implementación.
tags object Diccionario de etiquetas para la implementación.
endpoint_name string Necesario. Nombre del punto de conexión en el que se creará la implementación.
model cadena u objeto Modelo que se usará para la implementación. Este valor puede ser una referencia a un modelo con versiones existente en el área de trabajo o una especificación de modelo en línea.

Para hacer referencia a un modelo existente, use la sintaxis azureml:<model-name>:<model-version>.

Para definir un modelo en línea, siga el Esquema del modelo.

Como procedimiento recomendado para escenarios de producción, debe crear el modelo por separado y hacerle referencia aquí.

Este campo es opcional para escenarios de implementación de contenedores personalizados.
model_mount_path string Ruta de acceso para montar el modelo en un contenedor personalizado. Aplicable solo para escenarios de implementación de contenedores personalizados. Si se especifica el campo model, se monta en esta ruta de acceso en el contenedor.
code_configuration object Configuración de la lógica de código de puntuación.

Este campo es opcional para escenarios de implementación de contenedores personalizados.
code_configuration.code string Ruta de acceso local al directorio de código fuente para la puntuación del modelo.
code_configuration.scoring_script string Ruta de acceso relativa al archivo de puntuación en el directorio de código fuente.
environment_variables object Diccionario de pares clave-valor de variable de entorno que se establecerán en el contenedor de implementación. Puede acceder a estas variables de entorno desde los scripts de puntuación.
environment cadena u objeto Necesario. El entorno que se usará para la implementación. Este valor puede ser una referencia a un entorno con versiones existente en el área de trabajo o una especificación de entorno en línea.

Para hacer referencia a un entorno existente, use la sintaxis azureml:<environment-name>:<environment-version>.

Para definir un entorno en línea, siga el Esquema de entorno.

Como procedimiento recomendado para escenarios de producción, debe crear el entorno por separado y hacerle referencia aquí.
instance_type string Tipo de instancia usado para colocar la carga de trabajo de inferencia. Si se omite, la carga de trabajo de inferencia se colocará en el tipo de instancia predeterminado del clúster de Kubernetes especificado en el campo del punto de conexión compute. Si se especifica, la carga de trabajo de inferencia se colocará en ese tipo de instancia seleccionado.

El conjunto de tipos de instancia de un clúster de Kubernetes se configura con la definición de recursos personalizados (CRD) del clúster de Kubernetes, por lo que no forman parte del esquema YAML de Azure Machine Learning para adjuntar el proceso de Kubernetes. Para más información, consulte Creación y selección de tipos de instancia de Kubernetes.
instance_count integer El número de instancias que se usarán para la implementación. Especifique el valor en función de la carga de trabajo que espera. Este campo solo es necesario si usa el tipo default de escala (scale_settings.type: default).

instance_count se puede actualizar después de la creación de la implementación mediante el comando az ml online-deployment update.
app_insights_enabled boolean Si desea habilitar la integración con la instancia de Azure Application Insights asociada al área de trabajo. false
scale_settings object La configuración de escala para la implementación. Los dos tipos de configuración de escala admitidos son el tipo de escala default y el tipo de escalatarget_utilization.

Con el tipo de escala default (scale_settings.type: default), puede escalar y reducir verticalmente de forma manual el recuento de instancias después de la creación de la implementación mediante la actualización de la propiedad instance_count.

Para configurar el tipo de escala target_utilization (scale_settings.type: target_utilization), consulte TargetUtilizationScaleSettings para obtener el conjunto de propiedades configurables.
scale_settings.type string El tipo de escala. default, target_utilization target_utilization
data_collector object Configuración de la recopilación de datos para la implementación. Consulte DataCollector para ver el conjunto de propiedades configurables.
request_settings object Configuración de la solicitud de puntuación para la implementación. Consulte RequestSettings para el conjunto de propiedades configurables.
liveness_probe object Configuración del sondeo de ejecución para supervisar el estado del contenedor con regularidad. Consulte ProbeSettings para el conjunto de propiedades configurables.
readiness_probe object Configuración del sondeo de preparación para validar si el contenedor está listo para atender el tráfico. Consulte ProbeSettings para el conjunto de propiedades configurables.
resources object Requisitos de recursos de contenedor.
resources.requests object Solicitudes de recursos para el contenedor. Consulte RequestSettings para el conjunto de propiedades configurables.
resources.limits object Límites de recursos para el contenedor. Consulte ContainerResourceLimits para el conjunto de propiedades configurables.

RequestSettings

Clave Tipo Descripción Valor predeterminado
request_timeout_ms integer Tiempo de espera de la puntuación, en milisegundos. 5000
max_concurrent_requests_per_instance integer El número máximo de solicitudes simultáneas por instancia permitidas para la implementación.

No cambie este valor a menos que se lo indique el soporte técnico de Microsoft o un miembro del equipo de Azure Machine Learning.
1
max_queue_wait_ms integer La cantidad máxima de tiempo en milisegundos que una solicitud permanecerá en la cola. 500

ProbeSettings

Clave Tipo Descripción Valor predeterminado
period integer Frecuencia (en segundos) con que se ejecutará el sondeo. 10
initial_delay integer El número de segundos después de que se haya iniciado el contenedor y antes de que se inicie el sondeo. El valor mínimo es 1. 10
timeout integer El número de segundos después de los cuales se agota el tiempo de espera del sondeo. El valor mínimo es 1. 2
success_threshold integer El número mínimo de valores correctos consecutivos para que el sondeo se considere correcto después de que se haya producido un error. El valor mínimo es 1. 1
failure_threshold integer Cuando un sondeo genera un error, el sistema efectuará failure_threshold intentos antes de abandonar. La entrega en el caso de un sondeo de ejecución significa que se reiniciará el contenedor. En el caso de un sondeo de preparación, el contenedor se marcará como que no está listo. El valor mínimo es 1. 30

TargetUtilizationScaleSettings

Clave Tipo Descripción Valor predeterminado
type const El tipo de escala target_utilization
min_instances integer Número mínimo de instancias. 1
max_instances integer Número máximo de instancias para escalar. 1
target_utilization_percentage integer Uso de CPU de destino para el escalador automático. 70
polling_interval integer Frecuencia con la que el escalador automático debe intentar escalar esta implementación en segundos. 1

ContainerResourceRequests

Clave Tipo Description
cpu string Número de núcleos de CPU solicitados para el contenedor.
memory string Tamaño de memoria solicitado para el contenedor
nvidia.com/gpu string Número de tarjetas GPU de Nvidia solicitadas para el contenedor

ContainerResourceLimits

Clave Tipo Description
cpu string Límite del número de núcleos de CPU para el contenedor.
memory string Límite del tamaño de memoria del contenedor.
nvidia.com/gpu string Límite del número de tarjetas GPU de Nvidia para el contenedor

DataCollector

Clave Tipo Descripción Valor predeterminado
sampling_rate FLOAT Porcentaje, representado como una tasa decimal, de datos que se van a recopilar. Por ejemplo, el valor 1,0 representa la recopilación del 100 % de los datos. 1.0
rolling_rate string Velocidad para crear particiones de los datos en el almacenamiento. El valor puede ser: Minute, Hour, Day, Month o Year. Hour
collections object Conjunto de elementos collection_name individuales y sus respectivas opciones de configuración para esta implementación.
collections.<collection_name> object Agrupación lógica de datos de inferencia de producción que se van a recopilar (ejemplo: model_inputs). Hay dos nombres reservados: request y response, que corresponden respectivamente a la recopilación de datos de las solicitudes HTTP y las cargas de respuesta. Todos los demás nombres son arbitrarios y definibles por el usuario.

Nota: Cada elemento collection_name debe corresponder al nombre del objeto Collector usado en la implementación score.py para recopilar los datos de inferencia de producción. Para obtener más información sobre la recopilación de datos de carga y la recopilación de datos con el SDK de Python proporcionado, consulte Recopilación de datos de modelos en producción.
collections.<collection_name>.enabled boolean Indica si se va a habilitar la recopilación de datos para el elemento collection_name especificado. 'False''
collections.<collection_name>.data.name string Nombre del recurso de datos que se va a registrar con los datos recopilados. <endpoint>-<deployment>-<collection_name>
collections.<collection_name>.data.path string Ruta de acceso completa del almacén de datos de Azure Machine Learning en la que se deben registrar los datos recopilados como recurso de datos. azureml://datastores/workspaceblobstore/paths/modelDataCollector/<endpoint_name>/<deployment_name>/<collection_name>
collections.<collection_name>.data.version integer Versión del recurso de datos que se va a registrar con los datos recopilados en Blob Storage. 1

Observaciones

El comando az ml online-deployment se puede usar para administrar implementaciones en línea Kubernetes de Azure Machine Learning.

Ejemplos

Hay ejemplos disponibles en el repositorio de GitHub de ejemplos.

Pasos siguientes