Utiliser GitHub Actions pour l’entraînement de modèle

Effectué

GitHub Actions est une plateforme qui vous permet d’automatiser les tâches déclenchées par des événements se produisant dans un dépôt GitHub. Un workflow GitHub Actions se compose de travaux. Un travail regroupe un ensemble d’étapes que vous pouvez définir. Pour l’une de ces étapes, l’interface CLI (v2) peut être utilisée pour l’exécution d’un travail Azure Machine Learning afin d’entraîner un modèle.

Pour automatiser l’entraînement de modèle avec GitHub Actions, vous devez :

  • Créer un principal de service avec Azure CLI
  • Stocker les informations d’identification Azure dans un secret GitHub
  • Définir une action GitHub dans un fichier YAML

Créer un principal du service

Quand vous utilisez GitHub Actions pour automatiser des travaux Azure Machine Learning, vous devez utiliser un principal de service pour authentifier GitHub afin de gérer l’espace de travail Azure Machine Learning. Par exemple, pour entraîner un modèle à l’aide de la capacité de calcul Azure Machine Learning, vous devez être autorisé à utiliser cette capacité de calcul. De même, les outils que vous employez doivent également être autorisés à l’utiliser.

Conseil

Apprenez-en davantage sur l’utilisation de GitHub Actions pour vous connecter à Azure.

Stocker les informations d’identification Azure

Les informations d’identification Azure que vous devez authentifier ne doivent pas être stockées dans votre code ou en texte brut. Elles doivent être stockées dans un secret GitHub.

Pour ajouter un secret à votre dépôt GitHub :

  1. Accédez à l’onglet Paramètres.

    Capture d’écran de l’onglet Paramètres dans un dépôt GitHub.

  2. Sous l’onglet Paramètres, sous Sécurité, développez l’option Secrets et sélectionnez Actions.

    Capture d’écran de l’option Secrets dans la section Sécurité.

  3. Entrez vos informations d’identification Azure comme secret et nommez le secret AZURE_CREDENTIALS.

  4. Pour utiliser un secret contenant des informations d’identification Azure dans une action GitHub, faites référence au secret dans le fichier YAML.

    on: [push]
    
    name: Azure Login Sample
    
    jobs:
      build-and-deploy:
        runs-on: ubuntu-latest
        steps:
          - name: Log in with Azure
            uses: azure/login@v1
            with:
              creds: '${{secrets.AZURE_CREDENTIALS}}'
    

Définir l’action GitHub

Pour définir un workflow, vous devez créer un fichier YAML. Vous pouvez déclencher le workflow pour entraîner un modèle manuellement ou avec un événement de poussée (push). Le déclenchement manuel du workflow est idéal pour les tests. Un déclenchement automatisé avec un événement est, quant à lui, préférable pour l’automatisation.

Pour configurer un workflow GitHub Actions afin de pouvoir le déclencher manuellement, utilisez on: workflow_dispatch. Pour déclencher un workflow avec un événement de poussée, utilisez on: [push].

Quand le workflow GitHub Actions a été déclenché, vous pouvez ajouter différentes étapes à un travail. Par exemple, vous pouvez utiliser une étape pour exécuter un travail Azure Machine Learning :

name: Manually trigger an Azure Machine Learning job

on:
  workflow_dispatch:

jobs:
  train-model:
    runs-on: ubuntu-latest
    steps:
    - name: Trigger Azure Machine Learning job
      run: |
        az ml job create --file src/job.yml