¿Qué es la CLI y el SDK de Python de Azure Machine Learning v2?

SE APLICA A:Extensión ML de la CLI de Azure v2 (actual)SDK de Python azure-ai-ml v2 (actual)

La CLI de Azure Machine Learning v2 y el SDK de Python de Azure Machine Learning SDK v2 presentan una coherencia de las características y la terminología entre las interfaces. Para crear esta coherencia, la sintaxis de los comandos difiere, en algunos casos significativamente, de las primeras versiones (v1).

CLI de Azure Machine Learning v2

La CLI de Azure Machine Learning v2 (CLI v2) es la extensión más reciente de la CLI de Azure. La CLI v2 proporciona comandos con el formato az ml <nombre><verbo><opciones> para crear y mantener recursos y flujos de trabajo de Azure ML. Los propios recursos o flujos de trabajo se definen mediante un archivo YAML. El archivo YAML define la configuración del recurso o flujo de trabajo: qué es, dónde debe ejecutarse, etc.

Algunos ejemplos de comandos de la CLI v2:

  • az ml job create --file my_job_definition.yaml
  • az ml environment update --name my-env --file my_updated_env_definition.yaml
  • az ml model list
  • az ml compute show --name my_compute

Casos de uso de la CLI v2

La CLI v2 es útil en los escenarios siguientes:

  • Incorporación a Azure ML sin necesidad de aprender un lenguaje de programación específico

    El archivo YAML define la configuración del recurso o flujo de trabajo: qué es, dónde debe ejecutarse, etc. Cualquier lógica/IP personalizada utilizada, por ejemplo, la preparación de datos, el entrenamiento del modelo o la puntuación del modelo, puede permanecer en archivos de script, a los que se hace referencia en el YAML, pero no forma parte del propio YAML. Azure ML admite archivos de script en Python, R, Java, Julia o C#. Todo lo que necesita aprender es el formato YAML y las líneas de comando para usar Azure ML. Puede seguir con los archivos de script que prefiera.

  • Facilidad de implementación y automatización

    El uso de la línea de comandos para la ejecución simplifica la implementación y automatización, ya que los flujos de trabajo se pueden invocar desde cualquier oferta o plataforma, lo que permite a los usuarios llamar a la línea de comandos.

  • Implementaciones de inferencia administradas

    Azure ML ofrece puntos de conexión para simplificar las implementaciones de modelos en implementaciones en tiempo real y de inferencias por lotes. Esta funcionalidad solo está disponible a través de la CLI v2 y el SDK v2.

  • Componentes reutilizables en canalizaciones

    Azure ML presenta componentes para administrar y reutilizar la lógica común entre canalizaciones. Esta funcionalidad solo está disponible a través de la CLI v2 y el SDK v2.

SDK de Python de Azure Machine Learning v2

El SDK de Python de AzureML v2 es un paquete de SDK de Python actualizado, que permite a los usuarios:

  • Enviar los trabajos de entrenamiento
  • Administrar datos, modelos, entornos
  • Realizar la inferencia administrada (en tiempo real y por lotes)
  • Unir varias tareas y flujos de trabajo de producción mediante canalizaciones de Azure ML

El SDK v2 está a la par de la funcionalidad de la CLI v2 y es coherente en cómo se usan los recursos (sustantivos) y las acciones (verbos) entre el SDK y la CLI. Por ejemplo, para enumerar un recurso, la acción list se puede usar tanto en la CLI como en el SDK. La misma acción list se puede usar para enumerar un proceso, un modelo, un entorno, etc.

Casos de uso del SDK v2

El SDK v2 es útil en los escenarios siguientes:

  • Uso de funciones de Python para crear un único paso o un flujo de trabajo complejo

    El SDK v2 permite compilar un único comando o una cadena de comandos como funciones de Python: el comando tiene un nombre y parámetros, espera la entrada y devuelve la salida.

  • Paso de conceptos simples a complejos de forma incremental

    El SDK v2 le permite:

    • Construir un solo comando.
    • Agregar un barrido de hiperparámetros encima de ese comando.
    • Agregar el comando con otros usuarios a una canalización (uno tras otro).

    Esta construcción es útil, dada la naturaleza iterativa del aprendizaje automático.

  • Componentes reutilizables en canalizaciones

    Azure ML presenta componentes para administrar y reutilizar la lógica común entre canalizaciones. Esta funcionalidad solo está disponible a través de la CLI v2 y el SDK v2.

  • Inferencia administrada

    Azure ML ofrece puntos de conexión para simplificar las implementaciones de modelos en implementaciones en tiempo real y de inferencias por lotes. Esta funcionalidad solo está disponible a través de la CLI v2 y el SDK v2.

¿Debo usar v1 o v2?

CLI v2

La CLI v1 de Azure Machine Learning ha quedado en desuso. Se recomienda usar la CLI v2 si:

  • Era usuario de la CLI v1.
  • Quiere usar nuevas características, como componentes reutilizables o inferencia administrada.
  • No quiere usar un SDK de Python: la CLI v2 le permite usar YAML con scripts en Python, R, Java, Julia o C#.
  • Anteriormente era usuario del SDK de R: Azure ML no admitirá un SDK en R. Sin embargo, la CLI v2 admite scripts R.
  • Quiere usar la automatización o las implementaciones basadas en la línea de comandos.
  • No necesita trabajos de Spark. Esta característica está disponible actualmente en versión preliminar en la CLI v2.

SDK v2

El SDK de Python de Azure Machine Learning v1 no tiene una fecha planeada para caer en desuso. Si tiene inversiones significativas en el SDK de Python v1 y no necesita ninguna característica nueva que ofrezca SDK v2, puede seguir usando SDK v1. Sin embargo, debe considerar el uso del SDK v2 si:

  • Quiere usar nuevas características, como componentes reutilizables o inferencia administrada.
  • Está iniciando un nuevo flujo de trabajo o canalización: todas las nuevas características y futuras inversiones se introducirán en la versión 2.
  • Quiere aprovechar la facilidad de uso mejorada del SDK de Python v2: capacidad para componer trabajos y canalizaciones mediante funciones de Python, una evolución sencilla de tareas simples a complejas, etc.
  • No necesita trabajos de Spark. Esta característica está disponible actualmente en versión preliminar en el SDK v2.

Pasos siguientes