Use la extensión de la CLI para Azure Machine LearningUse the CLI extension for Azure Machine Learning

Se aplica a: síBasic Edition síEnterprise Edition                    (Actualización a Enterprise Edition)APPLIES TO: yesBasic edition yesEnterprise edition                    (Upgrade to Enterprise edition)

La CLI de Azure Machine Learning es una extensión de la CLI de Azure, una interfaz de la línea de comandos multiplataforma para la plataforma Azure.The Azure Machine Learning CLI is an extension to the Azure CLI, a cross-platform command-line interface for the Azure platform. Esta extensión proporciona comandos para trabajar con Azure Machine Learning.This extension provides commands for working with Azure Machine Learning. Permite automatizar las actividades de aprendizaje automático.It allows you to automate your machine learning activities. En esta lista se muestran algunas acciones de ejemplo que puede realizar con la extensión de la CLI:The following list provides some example actions that you can do with the CLI extension:

  • Realizar experimentos para crear modelos de aprendizaje automáticoRun experiments to create machine learning models

  • Registrar los modelos de aprendizaje automático para el uso del clienteRegister machine learning models for customer usage

  • Empaquetar, implementar y realizar un seguimiento del ciclo de vida de los modelos de aprendizaje automáticoPackage, deploy, and track the lifecycle of your machine learning models

La CLI no sustituye al SDK de Azure Machine Learning.The CLI is not a replacement for the Azure Machine Learning SDK. Es una herramienta complementaria que está optimizada para administrar tareas con muchos parámetros y que están bien adaptadas para la automatización.It is a complementary tool that is optimized to handle highly parameterized tasks which suit themselves well to automation.

Requisitos previosPrerequisites

Documentos de referencia completosFull reference docs

Busque los documentos de referencia completos sobre la extensión azure-cli-ml de la CLI de Azure.Find the full reference docs for the azure-cli-ml extension of Azure CLI.

Instalación de la extensiónInstall the extension

Para instalar la extensión de la CLI de Machine Learning, use el siguiente comando:To install the Machine Learning CLI extension, use the following command:

az extension add -n azure-cli-ml

Sugerencia

Aquí puede encontrar algunos archivos de ejemplo que puede usar con los comandos siguientes.Example files you can use with the commands below can be found here.

Cuando se le solicite, seleccione y para instalar la extensión.When prompted, select y to install the extension.

Para comprobar que se ha instalado la extensión, utilice el siguiente comando para mostrar una lista de los subcomandos específicos de ML:To verify that the extension has been installed, use the following command to display a list of ML-specific subcommands:

az ml -h

Actualización de la extensiónUpdate the extension

Para actualizar la extensión de la CLI de Machine Learning, use el siguiente comando:To update the Machine Learning CLI extension, use the following command:

az extension update -n azure-cli-ml

Eliminación de la extensiónRemove the extension

Para eliminar la extensión de la CLI, use el siguiente comando:To remove the CLI extension, use the following command:

az extension remove -n azure-cli-ml

Administración de recursosResource management

Los siguientes comandos muestran cómo utilizar la CLI para administrar los recursos que usa Azure Machine Learning.The following commands demonstrate how to use the CLI to manage resources used by Azure Machine Learning.

  • Cree un grupo de recursos si todavía no tiene uno:If you do not already have one, create a resource group:

    az group create -n myresourcegroup -l westus2
    
  • Cree un área de trabajo de Azure Machine Learning:Create an Azure Machine Learning workspace:

    az ml workspace create -w myworkspace -g myresourcegroup
    

    Sugerencia

    Este comando crea un área de trabajo de edición básica.This command creates a basic edition workspace. Para crear un área de trabajo empresarial, use el modificador --sku enterprise con el comando az ml workspace create.To create an enterprise workspace, use the --sku enterprise switch with the az ml workspace create command. Para más información sobre las ediciones de Azure Machine Learning, consulte ¿Qué es Azure Machine Learning?.For more information on Azure Machine Learning editions, see What is Azure Machine Learning.

    Para más información, consulte az ml workspace create.For more information, see az ml workspace create.

  • Adjunte una configuración de área de trabajo a una carpeta para permitir el reconocimiento contextual de la CLI.Attach a workspace configuration to a folder to enable CLI contextual awareness.

    az ml folder attach -w myworkspace -g myresourcegroup
    

    Este comando crea un subdirectorio .azureml que contiene archivos de entorno de conda y runconfig de ejemplo.This command creates a .azureml subdirectory that contains example runconfig and conda environment files. También contiene un archivo config.json que se usa para comunicarse con el área de trabajo de Azure Machine Learning.It also contains a config.json file that is used to communicate with your Azure Machine Learning workspace.

    Para más información, consulte az ml folder attach.For more information, see az ml folder attach.

  • Adjunte un contenedor de blobs de Azure como almacén de datos.Attach an Azure blob container as a Datastore.

    az ml datastore attach-blob  -n datastorename -a accountname -c containername
    

    Para más información, consulte az ml datastore attach-blob.For more information, see az ml datastore attach-blob.

  • Cargue archivos a un almacén de archivos.Upload files to a Datastore.

    az ml datastore upload  -n datastorename -p sourcepath
    

    Para más información, consulte az ml datastore upload.For more information, see az ml datastore upload.

  • Adjunte un clúster de AKS como destino de proceso.Attach an AKS cluster as a Compute Target.

    az ml computetarget attach aks -n myaks -i myaksresourceid -g myresourcegroup -w myworkspace
    

    Para más información, consulte az ml computetarget attach aksFor more information, see az ml computetarget attach aks

  • Cree un nuevo destino AMLcompute.Create a new AMLcompute target.

    az ml computetarget create amlcompute -n cpu --min-nodes 1 --max-nodes 1 -s STANDARD_D3_V2
    

    Para más información, consulte az ml computetarget create amlcompute.For more information, see az ml computetarget create amlcompute.

Ejecución de los experimentosRun experiments

  • Inicie la ejecución del experimento.Start a run of your experiment. Cuando use este comando, especifique el nombre del archivo runconfig (el texto que va antes de *.runconfig, si mira el sistema de archivo) con respecto al parámetro -c.When using this command, specify the name of the runconfig file (the text before *.runconfig if you are looking at your file system) against the -c parameter.

    az ml run submit-script -c sklearn -e testexperiment train.py
    

    Sugerencia

    El comando az ml folder attach crea un subdirectorio .azureml, que contiene dos archivos runconfig de ejemplo.The az ml folder attach command creates a .azureml subdirectory, which contains two example runconfig files.

    Si tiene un script de Python que crea un objeto de configuración de ejecución mediante programación, puede usar RunConfig.save() para guardarlo como un archivo runconfig.If you have a Python script that creates a run configuration object programmatically, you can use RunConfig.save() to save it as a runconfig file.

    El esquema runconfig completo se puede encontrar en este archivo JSON.The full runconfig schema can be found in this JSON file.

    Para obtener más información, consulte az ml run submit-script.For more information, see az ml run submit-script.

  • Vea una lista de los experimentos:View a list of experiments:

    az ml experiment list
    

    Para obtener más información, consulte az ml experiment list.For more information, see az ml experiment list.

Administrador de entornosEnvironment management

Los comandos siguientes muestran cómo crear, registrar y enumerar los entornos de Azure Machine Learning para el área de trabajo:The following commands demonstrate how to create, register, and list Azure Machine Learning environments for your workspace:

Administración de canalizaciones de aprendizaje automáticoML pipeline management

Los siguientes comandos muestran cómo trabajar con canalizaciones de aprendizaje automático:The following commands demonstrate how to work with machine learning pipelines:

Registro del modelo, generación de perfiles, implementaciónModel registration, profiling, deployment

Los siguientes comandos muestran cómo registrar un modelo entrenado e implementarlo como servicio de producción:The following commands demonstrate how to register a trained model, and then deploy it as a production service:

  • Registre un modelo con Azure Machine Learning:Register a model with Azure Machine Learning:

    az ml model register -n mymodel -p sklearn_regression_model.pkl
    

    Para más información, consulte az ml model register.For more information, see az ml model register.

  • OPCIONAL Genere un perfil del modelo para obtener los valores óptimos de CPU y memoria para la implementación.OPTIONAL Profile your model to get optimal CPU and memory values for deployment.

    az ml model profile -n myprofile -m mymodel:1 --ic inferenceconfig.json -d "{\"data\": [[1,2,3,4,5,6,7,8,9,10],[10,9,8,7,6,5,4,3,2,1]]}" -t myprofileresult.json
    

    Para más información, consulte az ml model profile.For more information, see az ml model profile.

  • Implementación del modelo en AKSDeploy your model to AKS

    az ml model deploy -n myservice -m mymodel:1 --ic inferenceconfig.json --dc deploymentconfig.json --ct akscomputetarget
    

    Para más información sobre el esquema del archivo de configuración de inferencia, consulte Esquema de configuración de inferencia.For more information on the inference configuration file schema, see Inference configuration schema.

    Para más información sobre el esquema del archivo de configuración de implementación, consulte Esquema de configuración de implementación.For more information on the deployment configuration file schema, see Deployment configuration schema.

    Para más información, consulte az ml model deploy.For more information, see az ml model deploy.

Esquema de configuración de inferenciaInference configuration schema

Las entidades del documento inferenceconfig.json se asignan a los parámetros de la clase InferenceConfig.The entries in the inferenceconfig.json document map to the parameters for the InferenceConfig class. En la tabla siguiente se describe la asignación entre las entidades del documento JSON y los parámetros del método:The following table describes the mapping between entities in the JSON document and the parameters for the method:

Entidad JSONJSON entity Parámetro del métodoMethod parameter DESCRIPCIÓNDescription
entryScript entry_script Ruta de acceso al archivo local que contiene el código que se ejecuta para la imagen.Path to a local file that contains the code to run for the image.
runtime runtime el runtime que se usará para la imagen.Which runtime to use for the image. Los runtimes admitidos actualmente son spark-py y python.Current supported runtimes are spark-py and python.
condaFile conda_file Opcional.Optional. Ruta de acceso a un archivo local que contiene una definición de entorno de Conda que se usará para la imagen.Path to a local file that contains a Conda environment definition to use for the image.
extraDockerFileSteps extra_docker_file_steps Opcional.Optional. Ruta de acceso a un archivo local que contiene los pasos de Docker adicionales que se deben ejecutar al configurar la imagen.Path to a local file that contains additional Docker steps to run when setting up the image.
sourceDirectory source_directory Opcional.Optional. Ruta de acceso a las carpetas que contienen todos los archivos para crear la imagen.Path to folders that contain all files to create the image.
enableGpu enable_gpu Opcional.Optional. Determina si se habilita la compatibilidad con GPU en la imagen.Whether to enable GPU support in the image. La imagen GPU se debe usar en un servicio de Azure como Azure Container Instances, Proceso de Azure Machine Learning, Azure Virtual Machines y Azure Kubernetes Service.The GPU image must be used on an Azure service, like Azure Container Instances, Azure Machine Learning Compute, Azure Virtual Machines, and Azure Kubernetes Service. El valor predeterminado es False.The default is False.
baseImage base_image Opcional.Optional. Una imagen personalizada que se usará como imagen base.Custom image to be used as a base image. Si no se proporciona ninguna imagen base, la imagen se basará en el parámetro runtime proporcionado.If no base image is provided, the image will be based on the provided runtime parameter.
baseImageRegistry base_image_registry Opcional.Optional. registro de imágenes que contiene la imagen base.Image registry that contains the base image.
cudaVersion cuda_version Opcional.Optional. versión de CUDA que se debe instalar para las imágenes que requieren compatibilidad con GPU.Version of CUDA to install for images that need GPU support. La imagen GPU se debe usar en un servicio de Azure como Azure Container Instances, Proceso de Azure Machine Learning, Azure Virtual Machines y Azure Kubernetes Service.The GPU image must be used on an Azure service, like Azure Container Instances, Azure Machine Learning Compute, Azure Virtual Machines, and Azure Kubernetes Service. Las versiones compatibles son 9.0, 9.1 y 10.0.Supported versions are 9.0, 9.1, and 10.0. Si se establece enable_gpu, el valor predeterminado es 9.1.If enable_gpu is set, the default is 9.1.
description description Una descripción de la imagen.A description for the image.

El siguiente JSON es un ejemplo de la configuración de inferencia que se puede usar con la CLI:The following JSON is an example inference configuration for use with the CLI:

{
    "entryScript": "score.py",
    "runtime": "python",
    "condaFile": "myenv.yml",
    "extraDockerfileSteps": null,
    "sourceDirectory": null,
    "enableGpu": false,
    "baseImage": null,
    "baseImageRegistry": null
}

Esquema de configuración de implementaciónDeployment configuration schema

Esquema de configuración de implementación localLocal deployment configuration schema

Las entradas del documento deploymentconfig.json se asignan a los parámetros de LocalWebservice.deploy_configuration.The entries in the deploymentconfig.json document map to the parameters for LocalWebservice.deploy_configuration. En la tabla siguiente se describe la asignación entre las entidades del documento JSON y los parámetros del método:The following table describes the mapping between the entities in the JSON document and the parameters for the method:

Entidad JSONJSON entity Parámetro del métodoMethod parameter DESCRIPCIÓNDescription
computeType N/DNA El destino de proceso.The compute target. Para los destinos locales, el valor tiene que ser local.For local targets, the value must be local.
port port Puerto local en el que se va a exponer el punto de conexión HTTP del servicio.The local port on which to expose the service's HTTP endpoint.

Este elemento JSON es un ejemplo de la configuración de implementación que se puede usar con la CLI:This JSON is an example deployment configuration for use with the CLI:

{
    "computeType": "local",
    "port": 32267
}

Esquema de configuración de implementación de Azure Container InstancesAzure Container Instance deployment configuration schema

Las entradas del documento deploymentconfig.json se asignan a los parámetros de AciWebservice.deploy_configuration.The entries in the deploymentconfig.json document map to the parameters for AciWebservice.deploy_configuration. En la tabla siguiente se describe la asignación entre las entidades del documento JSON y los parámetros del método:The following table describes the mapping between the entities in the JSON document and the parameters for the method:

Entidad JSONJSON entity Parámetro del métodoMethod parameter DESCRIPCIÓNDescription
computeType N/DNA El destino de proceso.The compute target. Para ACI, el valor debe ser ACI.For ACI, the value must be ACI.
containerResourceRequirements N/DNA Contenedor de las entidades de CPU y memoria.Container for the CPU and memory entities.
  cpu cpu_cores Número de núcleos de CPU que se van a asignar.The number of CPU cores to allocate. El valor predeterminado es 0.1.Defaults, 0.1
  memoryInGB memory_gb Cantidad de memoria (en GB) que se va a asignar a este servicio web.The amount of memory (in GB) to allocate for this web service. El valor predeterminado es 0.5.Default, 0.5
location location Región de Azure en la que se implementará este servicio web.The Azure region to deploy this Webservice to. Si no se especifica, se usará la ubicación del área de trabajo.If not specified the Workspace location will be used. Puede encontrar más información sobre las regiones disponibles aquí: Regiones de ACIMore details on available regions can be found here: ACI Regions
authEnabled auth_enabled Indica si se debe habilitar la autenticación para este servicio web.Whether to enable auth for this Webservice. El valor predeterminado es False.Defaults to False
sslEnabled ssl_enabled Indica si se debe habilitar SSL para este servicio web.Whether to enable SSL for this Webservice. El valor predeterminado es False.Defaults to False.
appInsightsEnabled enable_app_insights Indica si se debe habilitar AppInsights para este servicio web.Whether to enable AppInsights for this Webservice. El valor predeterminado es False.Defaults to False
sslCertificate ssl_cert_pem_file Archivo de certificado necesario si SSL está habilitadoThe cert file needed if SSL is enabled
sslKey ssl_key_pem_file Archivo de clave necesario si SSL está habilitadoThe key file needed if SSL is enabled
cname ssl_cname CNAME si SSL está habilitadoThe cname for if SSL is enabled
dnsNameLabel dns_name_label Etiqueta del nombre DNS para el punto de conexión de puntuación.The dns name label for the scoring endpoint. Si no se especifica, se generará una etiqueta de nombre DNS única para el punto de conexión de puntuación.If not specified a unique dns name label will be generated for the scoring endpoint.

El siguiente elemento JSON es un ejemplo de la configuración de implementación que se puede usar con la CLI:The following JSON is an example deployment configuration for use with the CLI:

{
    "computeType": "aci",
    "containerResourceRequirements":
    {
        "cpu": 0.5,
        "memoryInGB": 1.0
    },
    "authEnabled": true,
    "sslEnabled": false,
    "appInsightsEnabled": false
}

Esquema de configuración de implementación de Azure Kubernetes ServiceAzure Kubernetes Service deployment configuration schema

Las entradas del documento deploymentconfig.json se asignan a los parámetros de AksWebservice.deploy_configuration.The entries in the deploymentconfig.json document map to the parameters for AksWebservice.deploy_configuration. En la tabla siguiente se describe la asignación entre las entidades del documento JSON y los parámetros del método:The following table describes the mapping between the entities in the JSON document and the parameters for the method:

Entidad JSONJSON entity Parámetro del métodoMethod parameter DESCRIPCIÓNDescription
computeType N/DNA El destino de proceso.The compute target. Para AKS, el valor debe ser aks.For AKS, the value must be aks.
autoScaler N/DNA Contiene elementos de configuración para la escalabilidad automática.Contains configuration elements for autoscale. Consulte la tabla del escalador automático.See the autoscaler table.
  autoscaleEnabled autoscale_enabled Indica si se debe habilitar la escalabilidad automática para el servicio web.Whether to enable autoscaling for the web service. Si numReplicas = 0, True; de lo contrario, False.If numReplicas = 0, True; otherwise, False.
  minReplicas autoscale_min_replicas Número mínimo de contenedores que se van a usar al escalar automáticamente este servicio web.The minimum number of containers to use when autoscaling this web service. El valor predeterminado es 1.Default, 1.
  maxReplicas autoscale_max_replicas Número máximo de contenedores que se van a usar al escalar automáticamente este servicio web.The maximum number of containers to use when autoscaling this web service. El valor predeterminado es 10.Default, 10.
  refreshPeriodInSeconds autoscale_refresh_seconds Frecuencia con la que el escalador automático intenta escalar este servicio web.How often the autoscaler attempts to scale this web service. El valor predeterminado es 1.Default, 1.
  targetUtilization autoscale_target_utilization Uso objetivo (en un porcentaje de 100) que el escalador automático debe intentar mantener para este servicio web.The target utilization (in percent out of 100) that the autoscaler should attempt to maintain for this web service. El valor predeterminado es 70.Default, 70.
dataCollection N/DNA Contiene elementos de configuración para la colección de datos.Contains configuration elements for data collection.
  storageEnabled collect_model_data Indica si se debe habilitar la recopilación de datos del modelo para el servicio web.Whether to enable model data collection for the web service. El valor predeterminado es False.Default, False.
authEnabled auth_enabled Indica si se debe habilitar o no la autenticación mediante clave para el servicio web.Whether or not to enable key authentication for the web service. tokenAuthEnabled y authEnabled no pueden ser True.Both tokenAuthEnabled and authEnabled cannot be True. El valor predeterminado es True.Default, True.
tokenAuthEnabled token_auth_enabled Indica si se debe habilitar o no la autenticación por tokens para el servicio web.Whether or not to enable token authentication for the web service. tokenAuthEnabled y authEnabled no pueden ser True.Both tokenAuthEnabled and authEnabled cannot be True. El valor predeterminado es False.Default, False.
containerResourceRequirements N/DNA Contenedor de las entidades de CPU y memoria.Container for the CPU and memory entities.
  cpu cpu_cores Número de núcleos de CPU que se asigna a este servicio web.The number of CPU cores to allocate for this web service. El valor predeterminado es 0.1.Defaults, 0.1
  memoryInGB memory_gb Cantidad de memoria (en GB) que se va a asignar a este servicio web.The amount of memory (in GB) to allocate for this web service. El valor predeterminado es 0.5.Default, 0.5
appInsightsEnabled enable_app_insights Indica si se debe habilitar el registro de Application Insights para el servicio web.Whether to enable Application Insights logging for the web service. El valor predeterminado es False.Default, False.
scoringTimeoutMs scoring_timeout_ms Tiempo de espera que se aplicará a las llamadas de puntuación al servicio web.A timeout to enforce for scoring calls to the web service. El valor predeterminado es 60000.Default, 60000.
maxConcurrentRequestsPerContainer replica_max_concurrent_requests Número máximo de solicitudes simultáneas por nodo para este servicio web.The maximum concurrent requests per node for this web service. El valor predeterminado es 1.Default, 1.
maxQueueWaitMs max_request_wait_time Tiempo máximo que permanecerá en la cola una solicitud (en milisegundos) antes de que se devuelva un error 503.The maximum time a request will stay in thee queue (in milliseconds) before a 503 error is returned. El valor predeterminado es 500.Default, 500.
numReplicas num_replicas Número de contenedores que se asignarán a este servicio web.The number of containers to allocate for this web service. No hay ningún valor predeterminado.No default value. Si no se establece este parámetro, el escalador automático se habilita de forma predeterminada.If this parameter is not set, the autoscaler is enabled by default.
keys N/DNA Contiene elementos de configuración para las claves.Contains configuration elements for keys.
  primaryKey primary_key Clave de autenticación principal que se usará para este servicio webA primary auth key to use for this Webservice
  secondaryKey secondary_key Clave de autenticación secundaria que se usará para este servicio webA secondary auth key to use for this Webservice
gpuCores gpu_cores Número de núcleos de GPU que se asignará a este servicio web.The number of GPU cores to allocate for this Webservice. El valor predeterminado es 1.Default is 1. Solo admite valores de números enteros.Only supports whole number values.
livenessProbeRequirements N/DNA Contiene elementos de configuración para los requisitos del sondeo de ejecución.Contains configuration elements for liveness probe requirements.
  periodSeconds period_seconds Frecuencia (en segundos) en que se ejecutará el sondeo de ejecución.How often (in seconds) to perform the liveness probe. El valor predeterminado es de 10 segundos.Default to 10 seconds. El valor mínimo es 1.Minimum value is 1.
  initialDelaySeconds initial_delay_seconds Número de segundos después de que se haya iniciado el contenedor antes de que se inicien los sondeos de ejecución.Number of seconds after the container has started before liveness probes are initiated. El valor predeterminado es 310Defaults to 310
  timeoutSeconds timeout_seconds Número de segundos tras los cuales el sondeo de ejecución agota el tiempo de espera. El valor predeterminado es de 2 segundos.Number of seconds after which the liveness probe times out. Defaults to 2 seconds. El valor mínimo es 1Minimum value is 1
  successThreshold success_threshold Número mínimo de valores correctos consecutivos para que el sondeo de ejecución se considere correcto después de que se haya producido un error.Minimum consecutive successes for the liveness probe to be considered successful after having failed. De manera predeterminada, su valor es 1.Defaults to 1. El valor mínimo es 1.Minimum value is 1.
  failureThreshold failure_threshold Cuando se inicie un pod y se produzca un error en el sondeo de ejecución, Kubernetes probará las veces especificadas en failureThreshold antes de abandonarlo.When a Pod starts and the liveness probe fails, Kubernetes will try failureThreshold times before giving up. El valor predeterminado es 3.Defaults to 3. El valor mínimo es 1.Minimum value is 1.
namespace namespace Espacio de nombres de Kubernetes en el que está implementado el servicio web.The Kubernetes namespace that the webservice is deployed into. Hasta 63 caracteres alfanuméricos en minúsculas (de la "a" a la "z" y de "0" a "9") y guiones ("-").Up to 63 lowercase alphanumeric ('a'-'z', '0'-'9') and hyphen ('-') characters. El primer y el último carácter no pueden ser un guion.The first and last characters can't be hyphens.

El siguiente elemento JSON es un ejemplo de la configuración de implementación que se puede usar con la CLI:The following JSON is an example deployment configuration for use with the CLI:

{
    "computeType": "aks",
    "autoScaler":
    {
        "autoscaleEnabled": true,
        "minReplicas": 1,
        "maxReplicas": 3,
        "refreshPeriodInSeconds": 1,
        "targetUtilization": 70
    },
    "dataCollection":
    {
        "storageEnabled": true
    },
    "authEnabled": true,
    "containerResourceRequirements":
    {
        "cpu": 0.5,
        "memoryInGB": 1.0
    }
}

Pasos siguientesNext steps