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.