GitHub Actions
Per automatizzare i flussi di lavoro con GitHub è possibile usare GitHub Actions.
GitHub viene usato principalmente per ospitare progetti di codice. Quando si ospita il codice di Machine Learning in un repository GitHub, è possibile creare un flusso di lavoro di GitHub Actions per compilare, testare e distribuire automaticamente il codice.
Nota
Per usare GitHub Actions con le pipeline di Azure Machine Learning, è necessario consentire al repository GitHub di accedere all'area di lavoro di Azure Machine Learning tramite una connessione sicura.
Si apprenderà come usare GitHub Actions per eseguire una pipeline di Azure Machine Learning.
Creare un'azione GitHub
- Definire un evento che attiverà il flusso di lavoro.
- Eseguire il flusso di lavoro, costituito da processi.
- Un processo include uno o più passaggi.
- Come passaggio, eseguire una pipeline di Azure Machine Learning.
- La pipeline di Azure Machine Learning è costituita da script o da componenti di Azure Machine Learning.
Per creare il flusso di lavoro per GitHub Actions, si definiscono i passaggi da eseguire in un file YAML. Nel file YAML si includeranno:
- Evento: la modalità di attivazione del flusso di lavoro.
- Processo: un gruppo di passaggi da eseguire in uno strumento di esecuzione. Per i carichi di lavoro di Machine Learning, si userà probabilmente una macchina virtuale Ubuntu Linux.
- Passaggio: uno script o un'azione da eseguire. Ad esempio, un comando dell'interfaccia della riga di comando per avviare la pipeline di Azure Machine Learning (
az ml job create
).
Suggerimento
Altre informazioni sui concetti di base usati in GitHub Actions.
Per eseguire una pipeline di Azure Machine Learning ogni volta che viene eseguito il push delle modifiche nel repository, è possibile usare un file YAML simile al seguente:
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
Di seguito è illustrato il flusso di lavoro di esempio:
- Estrarre il repository per renderlo disponibile nello strumento di esecuzione.
- Installare l'estensione di Azure Machine Learning per l'interfaccia della riga di comando.
- Accedere ad Azure usando il valore predefinito di
AZURE_CREDENTIALS
. - Passare alla cartella
src
contenente tutto il codice di produzione. - Eseguire la pipeline di Azure Machine Learning.
Eseguire un flusso di lavoro con GitHub Actions
Si supponga di aver creato il file YAML per definire il flusso di lavoro. Il file YAML viene archiviato nella directory .github/workflows/
del repository.
Per visualizzare il flusso di lavoro, passare alla scheda Actions di GitHub relativa al repository.
GitHub estrarrà automaticamente tutti i flussi di lavoro archiviati nella directory .github/workflows/
.
Suggerimento
Se si aggiunge workflow_dispatch:
al file YAML del flusso di lavoro, è possibile attivare manualmente l'esecuzione del flusso di lavoro dalla scheda Actions.
È possibile attivare il flusso di lavoro con gli eventi specificati nel file YAML del flusso di lavoro. Nell'esempio, l'esecuzione di un push nel repository attiverà l'esecuzione del flusso di lavoro. Ogni volta che si apporta una modifica e si esegue il push dei commit nel repository (in locale in Visual Studio Code o direttamente in GitHub), viene eseguito il flusso di lavoro.
Selezionare l'esecuzione più recente per esaminare più in dettaglio se tutti i passaggi sono stati eseguiti correttamente o quali messaggi di errore sono stati restituiti.
Quando un flusso di lavoro attiva una pipeline di Azure Machine Learning, è necessario esaminare anche l'esecuzione della pipeline nell'area di lavoro di Azure Machine Learning perché possono comunque verificarsi errori all'interno della pipeline di Azure Machine Learning. Tutti i messaggi di errore potranno essere visualizzati nella cartella degli output generati dall'esecuzione dell'esperimento della pipeline di Azure Machine Learning.