Usare il controllo del codice sorgente per gli asset di Machine Learning

Completato

Il modello di classificazione del diabete Proseware è stato avviato in un notebook Jupyter su un portatile. Quando il team cresce, ovvero data scientist, ingegneri di Machine Learning e revisori, questo approccio si interrompe. È necessaria una posizione in cui tutti gli utenti lavorano dallo stesso codice, possono esaminare le modifiche dell'altro e tracciare ogni modello al codice che lo ha prodotto.

Che cosa appartiene in Git

Un repository Git è la casa giusta per gli asset che definiscono il modello e il relativo processo di training:

  • Script di addestramento e preelaborazione — i file Python che eseguono la preparazione dei dati e l’addestramento del modello
  • Definizioni di processi e componenti : file YAML che descrivono Azure Machine Learning processi di comando e componenti della pipeline
  • File di ambiente e delle dipendenzerequirements.txt, conda.yml o definizioni di ambiente di Azure Machine Learning
  • File di configurazione : nomi di aree di lavoro, nomi dei gruppi di risorse, nomi di calcolo e altri riferimenti usati dall'automazione

Cosa non appartiene in Git

Alcuni asset appartengono a servizi creati appositamente, non in un repository:

  • Set di dati e dati non elaborati — usare gli asset di dati di Azure Machine Learning o Azure Data Lake Storage; i file di dati sono di grandi dimensioni e sono sottoposti a controllo delle versioni separatamente dal codice
  • Artefatti di modelli addestrati — registrare asset di modello denominati e versionati in Azure Machine Learning
  • Output e log dell'esecuzione del training: Azure Machine Learning li archivia con il processo
  • Segreti e credenziali: usare GitHub segreti o Azure Key Vault; l'inserimento delle credenziali in un repository li espone a chiunque disponga dell'accesso in lettura

Tip

Test utile: se il file è basato su testo e definisce la modalità di produzione del modello, appartiene a Git. Se si tratta di un file binario di grandi dimensioni o di un valore sensibile, appartiene a un archivio creato appositamente.

Perché il controllo del codice sorgente è importante per l'apprendimento automatico

Quando ogni definizione di training si trova in Git, il team lavora dalla stessa versione del codice. Un revisore vede esattamente ciò che è cambiato tra le esecuzioni. Se una modifica degrada le prestazioni del modello, è possibile tornare al commit precedente. Le definizioni registrate del codice e dell'ambiente aiutano anche a riprodurre un'esecuzione di addestramento.

Questa tracciabilità è la base per tutto ciò che segue, ovvero lo sviluppo basato su rami, la convalida automatizzata e un audit trail che connette ogni versione del modello alla modifica che lo ha prodotto.

Tip

Scegliere un asset di progetto. Archiviarlo in Git, Azure Machine Learning o in un archivio segreto? Spiega perché.