Acciones de GitHub

Completado

Cuando quiera automatizar flujos de trabajo con GitHub, use Acciones de GitHub.

GitHub se usa principalmente para hospedar proyectos de código. Al hospedar el código de aprendizaje automático en un repositorio de GitHub, puede crear Acciones de GitHub para compilar, probar e implementar automáticamente el código.

Nota

Para usar Acciones de GitHub con canalizaciones de Azure Machine Learning, debe permitir que el repositorio de GitHub acceda al área de trabajo de Azure Machine Learning a través de una conexión segura.

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

Creación de una Acción de GitHub

Diagrama de la jerarquía de canalizaciones.

  1. Defina un evento que desencadenará el flujo de trabajo.
  2. Ejecute el flujo de trabajo, que consta de trabajos.
  3. Un trabajo contiene uno o varios pasos.
  4. Como paso, ejecute una canalización de Azure Machine Learning.
  5. La canalización de Azure Machine Learning se compone de scripts o componentes de Azure Machine Learning.

Para crear el flujo de trabajo para Acciones de GitHub, defina los pasos que quiere ejecutar en un archivo YAML. En el archivo YAML, incluirá lo siguiente:

  • Evento: cómo quiere desencadenar el flujo de trabajo.
  • Trabajo: grupo de pasos que quiere ejecutar en un ejecutor. En el caso de las cargas de trabajo de aprendizaje automático, es probable que use una máquina virtual Ubuntu Linux.
  • Paso: script o acción que quiere ejecutar. Por ejemplo, un comando de la CLI para iniciar la canalización de Azure Machine Learning (az ml job create).

Sugerencia

Obtenga más información sobre los conceptos básicos que se usan en Acciones de GitHub.

Para ejecutar una canalización de Azure Machine Learning cada vez que se insertan cambios en el repositorio, puede usar un archivo YAML como el siguiente:

name: Train model

on:
  push:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest 
    steps:
    - name: check out repo
      uses: actions/checkout@v2
    - name: install az ml extension
      run: az extension add -n ml -y
    - name: azure login
      uses: azure/login@v1
      with:
        creds: ${{secrets.AZURE_CREDENTIALS}}
    - name: set current directory
      run: cd src
    - name: run pipeline
      run: az ml job create --file src/aml_service/pipeline-job.yml --resource-group dev-ml-rg --workspace-name dev-ml-ws

El flujo de trabajo de ejemplo hará lo siguiente:

  1. Extraer el repositorio para que esté disponible en el ejecutor.
  2. Instalar la extensión de Azure Machine Learning para la CLI.
  3. Iniciar sesión en Azure con los valores de AZURE_CREDENTIALS predefinidos.
  4. Ir a la carpeta src, que contiene todo el código de producción.
  5. Ejecutar la canalización de Azure Machine Learning.

Ejecución de un flujo de trabajo con Acciones de GitHub

Supongamos que ha creado el archivo YAML para definir el flujo de trabajo. El archivo YAML está almacenado en el directorio .github/workflows/ del repositorio.

Para ver el flujo de trabajo, vaya a la pestaña Acciones de GitHub del repositorio.

Captura de pantalla de la información general de Acciones de GitHub.

GitHub seleccionará automáticamente los flujos de trabajo almacenados en el directorio .github/workflows/.

Sugerencia

Si agrega workflow_dispatch: al archivo YAML del flujo de trabajo, puede desencadenar manualmente el flujo de trabajo para que se ejecute desde la pestaña Acciones.

Puede desencadenar el flujo de trabajo con los eventos especificados en el archivo YAML del flujo de trabajo. En el ejemplo, una inserción en el repositorio desencadenará la ejecución del flujo de trabajo. Cada vez que realice un cambio e inserte las confirmaciones en el repositorio (localmente en Visual Studio Code o directamente en GitHub), se ejecutará el flujo de trabajo.

Seleccione la ejecución más reciente para explorar con más detalle si todos los pasos se han ejecutado correctamente o si ha recibido mensajes de error.

Captura de pantalla del flujo de trabajo ejecutado correctamente.

Cuando un flujo de trabajo desencadena una canalización de Azure Machine Learning, también debe revisar la ejecución de la canalización en el área de trabajo de Azure Machine Learning, ya que pueden producirse errores en la canalización de Azure Machine Learning. Los mensajes de error se verán en la carpeta de salida de la ejecución del experimento de la canalización de Azure Machine Learning.