Usare GitHub Actions per il training di modelli

Completato

GitHub Actions è una piattaforma che consente di automatizzare le attività attivate da eventi che si verificano all'interno di un repository GitHub. Un flusso di lavoro di GitHub Actions è costituito da processi. Un processo raggruppa un set di passaggi che è possibile definire. Uno di questi passaggi può usare l'interfaccia della riga di comando (v2) per eseguire un processo di Azure Machine Learning per eseguire il training di un modello.

Per automatizzare il training dei modelli con GitHub Actions, è necessario:

  • Creare un'entità servizio usando l'interfaccia della riga di comando di Azure.
  • Archiviare le credenziali di Azure in un segreto GitHub.
  • Definire un'azione GitHub in YAML.

Creare un'entità servizio

Quando si usa GitHub Actions per automatizzare i processi di Azure Machine Learning, è necessario usare un'entità servizio per autenticare GitHub per gestire l'area di lavoro di Azure Machine Learning. Ad esempio, per eseguire il training di un modello usando l'ambiente di calcolo di Azure Machine Learning, l'utente o qualsiasi strumento usato deve essere autorizzato a usare tale ambiente di calcolo.

Suggerimento

Altre informazioni su come usare GitHub Actions per connettersi ad Azure

Archiviare le credenziali di Azure

Le credenziali di Azure necessarie per l'autenticazione non devono essere archiviate nel codice o nel testo normale ma devono essere archiviate in un segreto GitHub.

Per aggiungere un segreto al repository GitHub:

  1. Passare alla scheda Impostazioni.

    Screenshot della scheda Impostazioni nel repository GitHub.

  2. Nella scheda Impostazioni, in Sicurezza, espandere l'opzione Segreti e selezionare Azioni.

    Screenshot dell'opzione Segreti nella sezione Sicurezza.

  3. Immettere le credenziali di Azure come segreto e denominare il segreto AZURE_CREDENTIALS.

  4. Per usare un segreto contenente le credenziali di Azure in un'azione GitHub, fare riferimento al segreto nel file 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}}'
    

Definire l'azione GitHub

Per definire un flusso di lavoro, è necessario creare un file YAML. È possibile attivare il flusso di lavoro per eseguire il training di un modello manualmente o con un evento push. L'attivazione manuale del flusso di lavoro è ideale per i test, mentre l'automazione con un evento è migliore per l'automazione.

Per configurare un flusso di lavoro di GitHub Actions in modo che sia possibile attivarlo manualmente, usare on: workflow_dispatch. Per attivare un flusso di lavoro con un evento push, usare on: [push].

Dopo l'attivazione del flusso di lavoro di GitHub Actions, è possibile aggiungere vari passaggi a un processo. Ad esempio, è possibile usare un passaggio per eseguire un processo di 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