Azure Pipelines (Canales de Azure)

Completado

Una opción para automatizar flujos de trabajo es usar Azure Pipelines, que forma parte del Azure DevOps Services. Con Azure Pipelines, puede compilar, probar e implementar automáticamente el código.

En un proyecto de aprendizaje automático, puede usar Azure Pipelines para crear cualquier recurso del área de trabajo de Azure Machine Learning, como la propia área de trabajo, recursos de datos, clústeres de proceso o trabajos para ejecutar canalizaciones de Azure Machine Learning.

Nota

Para usar Azure Pipelines con canalizaciones de Azure Machine Learning, debe conectar Azure DevOps al área de trabajo de Azure Machine Learning mediante una conexión de servicio.

A continuación aprenderá a usar Azure Pipelines para ejecutar una canalización de Azure Machine Learning.

Crear una canalización de Azure Pipelines

Azure Pipelines le ayuda a automatizar el trabajo mediante la ejecución de pasos cada vez que se produce un desencadenador. A fin de usar Azure Pipelines para automatizar las cargas de trabajo de aprendizaje automático, deberá desencadenar una canalización de Azure Machine Learning con Azure Pipelines.

Diagrama de la jerarquía de canalizaciones.

  1. Desencadene una canalización de Azure. Normalmente, con un cambio en el repositorio (confirmación o solicitud de incorporación de cambios).
  2. Ejecute la canalización de Azure, es decir, un grupo de trabajos que constan de pasos.
  3. Un paso inicia una canalización de Azure Machine Learning.
  4. Una canalización de Azure Machine Learning ejecuta scripts o componentes de Azure Machine Learning.
  5. Un script o componente representa una tarea de aprendizaje automático.

Para crear la canalización de Azure, defina los pasos que quiere incluir en un archivo YAML. En el archivo YAML de la canalización de Azure, deberá incluir lo siguiente:

  • Desencadenador: el evento que inicia la canalización.
  • Fase: un grupo de trabajos normalmente alineados con diferentes entornos de desarrollo (desarrollo/pruebas/producción).
  • Trabajo: un conjunto de pasos que se ejecutan en un agente. En el caso de las cargas de trabajo de aprendizaje automático, es probable que use un agente de Ubuntu hospedado por Microsoft.
  • Paso: un script o tarea que quiere ejecutar. Por ejemplo, un comando de la CLI que inicia una canalización de Azure Machine Learning (az ml job create).

Sugerencia

Obtenga más información sobre los conceptos clave que se usan en Azure Pipelines.

Para ejecutar una canalización de Azure Machine Learning cuando se realiza un cambio en el repositorio de Azure, puede usar un archivo YAML como este:

trigger: 
- main

stages:
- stage: deployDev
  displayName: 'Deploy to development environment'
  jobs:
    - deployment: publishPipeline
      displayName: 'Model Training'
      pool:
        vmImage: 'Ubuntu-18.04'
      environment: dev
      strategy:
       runOnce:
         deploy:
          steps:
          - template: aml-steps.yml
            parameters:
              serviceconnectionname: 'spn-aml-workspace-dev'

El trabajo de la canalización usa aml-steps.yml para enumerar los pasos que se deben ejecutar. Para ejecutar una canalización de Azure Machine Learning definida en pipeline-job.yml puede usar la CLI (v2). Para ejecutar la canalización de Azure Machine Learning como paso en la canalización de Azure, deberá hacer lo siguiente:

  1. Instalar la extensión de Azure Machine Learning para la CLI.
  2. Usar el comando az ml job create para ejecutar el trabajo de canalización en Azure Machine Learning.

El archivo aml-steps.yml para la instalación y el inicio del trabajo de Azure Machine Learning puede tener un aspecto similar al siguiente:

parameters:
- name: serviceconnectionname
  default: ''

steps:
- checkout: self

- script: az extension add -n ml -y
  displayName: 'Install Azure ML CLI v2'

- task: AzureCLI@2
  inputs:
    azureSubscription: ${{ parameters.serviceconnectionname }}
    scriptType: bash
    scriptLocation: inlineScript
    workingDirectory: $(Build.SourcesDirectory)
    inlineScript: |
      cd src
      az ml job create --file aml_service/pipeline-job.yml --resource-group dev-ml-rg --workspace-name dev-ml-ws
  displayName: 'Run Azure Machine Learning Pipeline'

Como se muestra en el ejemplo, puede usar parámetros en las definiciones de canalización (como serviceconnectionname) a fin de que los archivos YAML sean más reutilizables para otros proyectos.

Ejecución de una canalización con Azure DevOps

Después de crear los archivos YAML y almacenarlos en el repositorio de Azure, puede configurar Azure DevOps para ejecutar la canalización.

Captura de pantalla de la configuración de canalización en Azure DevOps.

  1. En Azure DevOps, vaya a la pestaña Canalizaciones y seleccione Canalizaciones.
  2. Cree una canalización.
  3. Seleccione GIT de Azure Repos como ubicación del código.
  4. Seleccione el repositorio que contiene el código.
  5. Seleccione el archivo YAML de Azure Pipelines existente.
  6. Seleccione la ruta de acceso que apunta al archivo YAML que creó para la canalización de Azure.
  7. Después de revisar la canalización, puede Guardar y ejecutar.

La canalización se desencadena mediante una confirmación en la rama principal. Al configurar la canalización, Azure Pipelines confirmará un cambio en la rama principal, lo que desencadenará que la canalización se ejecute por primera vez. En cualquier momento después de la configuración, puede desencadenar la canalización mediante la inserción de confirmaciones en el repositorio desde Visual Studio Code o Azure Repos.

Captura de pantalla del error en un trabajo en Azure Pipelines.

Al seleccionar un trabajo, puede ver su proceso. Cada paso de un trabajo se refleja en el panel de navegación de la izquierda. En la información general se mostrará qué pasos se ejecutaron correctamente y cuáles generaron errores. Los posibles mensajes de error se mostrarán en la interfaz de la línea de comandos al seleccionar ese paso. Al revisar la salida, podrá solucionar el error.

Cuando una tarea desencadena la ejecución de una canalización de Azure Machine Learning, también podrá revisar la ejecución de la canalización en el área de trabajo de Azure Machine Learning para ver las métricas o errores que puedan interesarle.