Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
SE APLICA A:
Extensión ML de la CLI de Azure v2 (actual)
SDK de Python azure-ai-ml v2 (actual)
Introducción a Acciones de GitHub para entrenar un modelo en Azure Machine Learning.
En este artículo se explica cómo crear un flujo de trabajo de Acciones de GitHub que compila e implementa un modelo de Machine Learning en Azure Machine Learning. Entrena un modelo de regresión lineal de scikit-learn en el dataset de NYC Taxi.
Las Acciones de GitHub usan un archivo YAML (.yml) de flujo de trabajo en la ruta de acceso /.github/workflows/ del repositorio. En esta definición se incluyen los diversos pasos y parámetros que componen el flujo de trabajo.
Prerrequisitos
Un área de trabajo de Azure Machine Learning. Para conocer los pasos para crear un área de trabajo, consulte Creación del área de trabajo.
Sdk de Azure Machine Learning para Python v2. Para instalar el SDK, use el siguiente comando:
pip install azure-ai-ml azure-identityPara actualizar una instalación existente del SDK a la versión más reciente, use el siguiente comando:
pip install --upgrade azure-ai-ml azure-identityPara más información, consulte Biblioteca cliente de Azure Machine Learning Package para Python.
- Una cuenta de GitHub. Si no tiene una, cree una cuenta gratuita.
Paso 1: Obtención del código
Forkea el siguiente repositorio en GitHub:
https://github.com/azure/azureml-examples
Clone el repositorio bifurcado localmente.
git clone https://github.com/YOUR-USERNAME/azureml-examples
Paso 2: Autenticación con Azure
En primer lugar, defina cómo autenticarse con Azure. La opción recomendada y más segura es iniciar sesión mediante OpenID Connect con una aplicación de Microsoft Entra o una identidad administrada asignada por el usuario. Si es necesario, también puede iniciar sesión con una entidad de servicio y un secreto. Este enfoque es menos seguro y no se recomienda.
Genere las credenciales de implementación
Para usar acción de inicio de sesión de Azure con OIDC, debe configurar una credencial de identidad federada en una aplicación de Microsoft Entra o en una identidad administrada asignada por el usuario.
Opción 1: aplicaciones de Microsoft Entra
- Cree una aplicación de Microsoft Entra con una entidad de servicio mediante Azure Portal, la CLI de Azure o Azure PowerShell.
- Copie los valores de Id. de cliente, Id. de suscripción e Id. de directorio (inquilino) para usarlos más adelante en el flujo de trabajo de Acciones de GitHub.
- Asigne un rol adecuado a la entidad de servicio con Azure Portal, la CLI de Azure o Azure PowerShell.
- Configuración de una credencial de identidad federada en una aplicación de Microsoft Entra para confiar en los tokens emitidos por GitHub Actions en tu repositorio de GitHub.
Opción 2: identidad administrada asignada por el usuario
- Creación de una identidad administrada asignada por el usuario.
- Copie los valores de Id. de cliente, Id. de suscripción e Id. de directorio (inquilino) para usarlos más adelante en el flujo de trabajo de Acciones de GitHub.
- Asigne un rol apropiado a la identidad administrada asignada por el usuario.
- Configurar una credencial de identidad federada en una identidad administrada asignada por el usuario para confiar en los tokens emitidos por Acciones de GitHub en el repositorio de GitHub.
Crear secretos
Debe especificar el identificador de cliente, el identificador de directorio (inquilino) y el identificador de suscripción en la acción de inicio de sesión. Estos valores se pueden proporcionar directamente en el flujo de trabajo o se pueden almacenar en secretos de GitHub y se puede hacer referencia a ellos en el flujo de trabajo. Guardar los valores como secretos de GitHub es la opción más segura.
En GitHub, vaya al repositorio.
Seleccione Seguridad > Secretos y variables > Acciones.
Seleccione New repository secret (Nuevo secreto del repositorio).
Nota:
Para mejorar la seguridad del flujo de trabajo en repositorios públicos, use secretos de entorno en lugar de secretos de repositorio. Si el entorno requiere aprobación, una tarea no puede acceder a los secretos del entorno hasta que uno de los revisores requeridos lo apruebe.
Cree secretos para
AZURE_CLIENT_ID,AZURE_TENANT_IDyAZURE_SUBSCRIPTION_ID. Copie estos valores de la aplicación de Microsoft Entra o identidad administrada asignada por el usuario para los secretos de GitHub:Secreto de GitHub Aplicación de Microsoft Entra o identidad administrada asignada por el usuario AZURE_CLIENT_ID Id. de cliente AZURE_SUBSCRIPTION_ID Id. de suscripción AZURE_TENANT_ID Id. de directorio (inquilino) Nota:
Por motivos de seguridad, se recomienda usar secretos de GitHub en lugar de pasar valores directamente al flujo de trabajo.
Paso 3: Actualización setup.sh para conectarse al área de trabajo de Azure Machine Learning
Actualice las variables del archivo de instalación de la CLI para que coincidan con el área de trabajo.
En el repositorio bifurcada, vaya a
azureml-examples/cli/.Edite
setup.shy actualice estas variables en el archivo.Variable Descripción GROUPnombre del grupo de recursos. LOCATIONUbicación del área de trabajo (ejemplo: eastus2)WORKSPACENombre del área de trabajo de Azure Machine Learning
Paso 4: Actualiza pipeline.yml con el nombre del clúster de computación
Use un archivo pipeline.yml para implementar la canalización de Azure Machine Learning. Esta canalización es una canalización de aprendizaje automático y no una canalización de DevOps. Solo tiene que realizar esta actualización si usa un nombre para su clúster de computación distinto de cpu-cluster.
- En el repositorio bifurcada, vaya a
azureml-examples/cli/jobs/pipelines/nyc-taxi/pipeline.yml. - Cada vez que vea
compute: azureml:cpu-cluster, actualice el valor decpu-clustercon el nombre de su clúster de cómputo. Por ejemplo, si su grupo se denominamy-cluster, su nuevo valor seríaazureml:my-cluster. Hay cinco actualizaciones.
Paso 5: Ejecución del flujo de trabajo de Acciones de GitHub
El flujo de trabajo se autentica con Azure, configura la CLI de Azure Machine Learning y usa la CLI para entrenar un modelo en Azure Machine Learning.
El archivo de flujo de trabajo se compone de una sección de desencadenador y trabajos:
- Un desencadenador inicia el flujo de trabajo en la sección
on. El flujo de trabajo se ejecuta de forma predeterminada en una programación cron y cuando se realiza una solicitud de incorporación de cambios a partir de ramas y rutas de acceso coincidentes. Obtenga más información sobre los eventos que desencadenan flujos de trabajo. - En la sección de trabajos del flujo de trabajo, descargue el código e inicie sesión en Azure con la opción de inicio de sesión de Azure mediante OpenID Connect.
- La sección trabajos también incluye una acción de instalación que instala y configura la CLI de Machine Learning (v2). Una vez instalada la CLI, la acción ejecutar trabajo ejecuta el archivo de Azure Machine Learning
pipeline.ymlpara entrenar un modelo con datos de taxis de Nueva York.
Habilitación del flujo de trabajo
En el repositorio bifurcado, abra
.github/workflows/cli-jobs-pipelines-nyc-taxi-pipeline.ymly compruebe que su flujo de trabajo se vea similar a este.Nota:
El archivo de flujo de trabajo del repositorio puede incluir pasos adicionales (como arranque y validación) que no se muestran aquí. En el ejemplo siguiente se muestran los pasos principales.
name: cli-jobs-pipelines-nyc-taxi-pipeline on: workflow_dispatch: schedule: - cron: "0 0/4 * * *" pull_request: branches: - main paths: - cli/jobs/pipelines/nyc-taxi/** - .github/workflows/cli-jobs-pipelines-nyc-taxi-pipeline.yml - cli/run-pipeline-jobs.sh - cli/setup.sh permissions: id-token: write jobs: build: runs-on: ubuntu-latest steps: - name: check out repo uses: actions/checkout@v4 - name: azure login uses: azure/login@v2 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - name: setup run: bash setup.sh working-directory: cli continue-on-error: true - name: run job run: bash -x ../../../run-job.sh pipeline.yml working-directory: cli/jobs/pipelines/nyc-taxiSeleccione Ver ejecuciones.
Habilite los flujos de trabajo seleccionando Entiendo mis flujos de trabajo, continúe y habilítelos.
Seleccione el flujo de trabajo cli-jobs-pipelines-nyc-taxi-pipeline y elija Habilitar flujo de trabajo.
Seleccione Ejecutar flujo de trabajo y elija la opción Ejecutar flujo de trabajo ahora.
Paso 6: Comprobación de la ejecución del flujo de trabajo
Abra la ejecución del flujo de trabajo completado y compruebe que el trabajo de compilación se ejecutó correctamente. Verá una marca de verificación verde junto al trabajo.
Abra Azure Machine Learning Studio y vaya a nyc-taxi-pipeline-example. Compruebe que se ha completado cada parte del trabajo (preparación, transformación, entrenamiento, predicción, puntuación) y que ve una marca de verificación verde.
Limpieza de recursos
Cuando ya no necesite el grupo de recursos y el repositorio, limpie los recursos implementados mediante la eliminación del grupo de recursos y el repositorio de GitHub.