Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Semplifica i flussi di lavoro di machine learning dallo sviluppo locale agli esperimenti scalabili utilizzando SageMaker AI e Hydra
Creato da David Sauerwein (AWS), Julian Ferdinand Grueber (AWS) e Marco Geiger (AWS)
Riepilogo
Questo modello fornisce un approccio unificato alla configurazione e all'esecuzione di algoritmi di machine learning (ML) dai test locali alla produzione su Amazon AI. SageMaker Gli algoritmi ML sono al centro di questo modello, ma il suo approccio si estende all'ingegneria delle funzionalità, all'inferenza e a intere pipeline ML. Questo modello dimostra la transizione dallo sviluppo di script locali ai lavori di formazione sull' SageMaker intelligenza artificiale attraverso un esempio di caso d'uso.
Un tipico flusso di lavoro ML consiste nello sviluppare e testare soluzioni su un computer locale, eseguire esperimenti su larga scala (ad esempio, con parametri diversi) nel cloud e distribuire la soluzione approvata nel cloud. Quindi, la soluzione implementata deve essere monitorata e gestita. Senza un approccio unificato a questo flusso di lavoro, gli sviluppatori devono spesso rifattorizzare il codice in ogni fase. Se la soluzione dipende da un gran numero di parametri che potrebbero cambiare in qualsiasi fase di questo flusso di lavoro, può diventare sempre più difficile rimanere organizzati e coerenti.
Questo modello affronta queste sfide. Innanzitutto, elimina la necessità di rifattorizzare il codice tra gli ambienti fornendo un flusso di lavoro unificato che rimane coerente indipendentemente dal fatto che venga eseguito su macchine locali, in contenitori o sull'intelligenza artificiale. SageMaker In secondo luogo, semplifica la gestione dei parametri tramite il sistema di configurazione di Hydra, in cui i parametri sono definiti in file di configurazione separati che possono essere facilmente modificati e combinati, con registrazione automatica della configurazione di ogni esecuzione. Per ulteriori dettagli su come questo modello affronta queste sfide, consulta Informazioni aggiuntive.
Prerequisiti e limitazioni
Prerequisiti
Un attivo Account AWS
Un ruolo utente AWS Identity and Access Management (IAM) per l'implementazione e l'avvio dei lavori di formazione sull' SageMaker intelligenza artificiale
AWS Command Line Interface (AWS CLI) versione 2.0 o successiva installata e configurata
Installata la versione 1.8 o successiva di Poetry
, ma precedente alla 2.0
Limitazioni
Il codice attualmente si rivolge solo ai lavori di formazione sull' SageMaker intelligenza artificiale. Estenderlo ai processi di elaborazione e a intere pipeline di SageMaker intelligenza artificiale è semplice.
Per una configurazione SageMaker AI completamente prodotta, è necessario disporre di ulteriori dettagli. Alcuni esempi potrebbero essere le chiavi custom AWS Key Management Service (AWS KMS) per l'elaborazione e lo storage o le configurazioni di rete. È inoltre possibile configurare queste opzioni aggiuntive utilizzando Hydra in una sottocartella dedicata della cartella.
config
Alcune Servizi AWS non sono disponibili in tutte. Regioni AWS Per la disponibilità regionale, vedi AWS Servizi per regione
. Per endpoint specifici, consulta Service endpoints and quotas e scegli il link relativo al servizio.
Architettura
Il diagramma seguente illustra l'architettura della soluzione.

Il diagramma mostra il flusso di lavoro seguente:
Il data scientist può eseguire iterazioni sull'algoritmo su piccola scala in un ambiente locale, regolare i parametri e testare rapidamente lo script di addestramento senza bisogno di Docker o AI. SageMaker (Per maggiori dettagli, consulta l'attività «Esegui localmente per test rapidi» in Epics.)
Una volta soddisfatto dell'algoritmo, il data scientist crea e invia l'immagine Docker al repository Amazon Elastic Container Registry (Amazon ECR) denominato.
hydra-sm-artifact
(Per maggiori dettagli, consulta «Esegui flussi di lavoro sull' SageMaker intelligenza artificiale» in Epics.)Il data scientist avvia lavori di formazione sull' SageMaker intelligenza artificiale o lavori di ottimizzazione degli iperparametri (HPO) utilizzando script Python. Per i normali lavori di formazione, la configurazione modificata viene scritta nel bucket Amazon Simple Storage Service (Amazon S3) denominato.
hydra-sample-config
Per i lavori HPO, viene applicato il set di configurazione predefinito che si trova nellaconfig
cartella.Il processo di formazione SageMaker AI estrae l'immagine Docker, legge i dati di input dal bucket Amazon S3 e recupera la configurazione dal bucket
hydra-sample-data
Amazon S3 o utilizza la configurazione predefinita.hydra-sample-config
Dopo l'addestramento, il processo salva i dati di output nel bucket Amazon S3.hydra-sample-data
Automazione e scalabilità
Per la formazione, la riqualificazione o l'inferenza automatizzate, puoi integrare il AWS CLI codice con servizi come AWS LambdaAWS CodePipeline, o Amazon. EventBridge
La scalabilità può essere ottenuta modificando le configurazioni, ad esempio le dimensioni, o aggiungendo configurazioni per la formazione distribuita.
Strumenti
Servizi AWS
AWS CloudFormationti aiuta a configurare AWS le risorse, fornirle in modo rapido e coerente e gestirle durante tutto il loro ciclo di vita tra e. Account AWS Regioni AWS
AWS Command Line Interface (AWS CLI) è uno strumento open source che consente di interagire Servizi AWS tramite comandi nella shell della riga di comando. Per questo modello, AWS CLI è utile sia per la configurazione iniziale delle risorse che per il test.
Amazon Elastic Container Registry (Amazon ECR) è un servizio di registro di immagini di container gestito sicuro, scalabile e affidabile.
Amazon SageMaker AI è un servizio di machine learning (ML) gestito che ti aiuta a creare e addestrare modelli di machine learning per poi distribuirli in un ambiente ospitato pronto per la produzione. SageMaker AI Training è un servizio di machine learning completamente gestito all'interno dell' SageMaker intelligenza artificiale che consente la formazione di modelli di machine learning su larga scala. Lo strumento è in grado di gestire le esigenze computazionali dei modelli di formazione in modo efficiente, utilizzando la scalabilità e l'integrazione integrate con altri. Servizi AWS SageMaker AI Training supporta anche algoritmi e contenitori personalizzati, rendendolo flessibile per un'ampia gamma di flussi di lavoro ML.
Amazon Simple Storage Service (Amazon S3) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
Altri strumenti
Docker
è un insieme di prodotti Platform as a Service (PaaS) che utilizzano la virtualizzazione a livello di sistema operativo per fornire software in container. È stato utilizzato secondo questo schema per garantire ambienti coerenti in varie fasi, dallo sviluppo alla distribuzione, e per impacchettare dipendenze e codice in modo affidabile. La containerizzazione di Docker ha consentito una facile scalabilità e il controllo delle versioni in tutto il flusso di lavoro. Hydra
è uno strumento di gestione della configurazione che offre flessibilità per la gestione di più configurazioni e la gestione dinamica delle risorse. È fondamentale per la gestione delle configurazioni degli ambienti e consente un'implementazione senza interruzioni in ambienti diversi. Per ulteriori dettagli su Hydra, vedere Informazioni aggiuntive. Python
è un linguaggio di programmazione per computer generico. Python è stato usato per scrivere il codice ML e il flusso di lavoro di distribuzione. Poetry
è uno strumento per la gestione delle dipendenze e la creazione di pacchetti in Python.
Archivio di codice
Il codice per questo pattern è disponibile nel repository GitHub configuring-sagemaker-training-jobs-with-hydra
Best practice
Scegli un ruolo IAM per l'implementazione e l'avvio dei lavori di formazione sull' SageMaker intelligenza artificiale che segua il principio del privilegio minimo e concedi le autorizzazioni minime necessarie per eseguire un'attività. Per ulteriori informazioni, consulta le best practice relative alla concessione dei privilegi minimi e alla sicurezza nella documentazione IAM.
Utilizza credenziali temporanee per accedere al ruolo IAM nel terminale.
Epiche
Attività | Descrizione | Competenze richieste |
---|---|---|
Crea e attiva l'ambiente virtuale. | Per creare e attivare l'ambiente virtuale, esegui i seguenti comandi nella radice del repository:
| Informazioni generali su AWS |
Implementa l'infrastruttura. | Per distribuire l'infrastruttura utilizzando CloudFormation, esegui il comando seguente:
| General AWS, DevOps ingegnere |
Scarica i dati di esempio. | Per scaricare i dati di input da openml
| Informazioni generali su AWS |
Esegui localmente per test rapidi. | Per eseguire il codice di addestramento localmente per il test, esegui il comando seguente:
I registri di tutte le esecuzioni vengono archiviati in base alla data di esecuzione in una cartella denominata. È inoltre possibile eseguire più corsi di formazione in parallelo, con parametri diversi, utilizzando la | Data scientist |
Attività | Descrizione | Competenze richieste |
---|---|---|
Imposta le variabili di ambiente. | Per eseguire il tuo lavoro sull' SageMaker intelligenza artificiale, imposta le seguenti variabili di ambiente, fornendo il tuo ID Regione AWS e il tuo Account AWS ID:
| Informazioni generali su AWS |
Crea e invia un'immagine Docker. | Per creare l'immagine Docker e inviarla al repository Amazon ECR, esegui il seguente comando:
Questa attività presuppone che tu disponga di credenziali valide nel tuo ambiente. L'immagine Docker viene inviata al repository Amazon ECR specificato nella variabile di ambiente nell'attività precedente e viene utilizzata per attivare il contenitore SageMaker AI in cui verrà eseguito il processo di formazione. | Ingegnere ML, General AWS |
Copia i dati di input su Amazon S3. | Il processo di formazione sull' SageMaker intelligenza artificiale deve raccogliere i dati di input. Per copiare i dati di input nel bucket Amazon S3 per i dati, esegui il seguente comando:
| Ingegnere dei dati, General AWS |
Invia lavori di formazione sull' SageMaker intelligenza artificiale. | Per semplificare l'esecuzione degli script, specifica i parametri di configurazione predefiniti nel
| General AWS, ingegnere ML, Data scientist |
Esegui l'ottimizzazione degli iperparametri SageMaker AI. | L'esecuzione dell'ottimizzazione degli iperparametri SageMaker AI è simile all'invio di un lavoro di formazione AII. SageMaker Tuttavia, lo script di esecuzione differisce in alcuni aspetti importanti, come si può vedere nel file start_sagemaker_hpo_job.py. Per avviare il processo di ottimizzazione degli iperparametri (HPO), esegui i seguenti comandi:
| Data scientist |
Risoluzione dei problemi
Problema | Soluzione |
---|---|
Token scaduto | Esporta nuove credenziali AWS . |
Mancanza di autorizzazioni IAM | Assicurati di esportare le credenziali di un ruolo IAM che disponga di tutte le autorizzazioni IAM necessarie per implementare il CloudFormation modello e avviare i lavori di formazione sull' SageMaker IA. |
Risorse correlate
Informazioni aggiuntive
Questo modello affronta le seguenti sfide:
Coerenza dallo sviluppo locale alla distribuzione su larga scala: con questo modello, gli sviluppatori possono utilizzare lo stesso flusso di lavoro, indipendentemente dal fatto che utilizzino script Python locali, eseguano contenitori Docker locali, conducano grandi esperimenti SageMaker sull'intelligenza artificiale o implementino in produzione sull'intelligenza artificiale. SageMaker Questa coerenza è importante per i seguenti motivi:
Iterazione più rapida: consente una rapida sperimentazione locale senza la necessità di grandi aggiustamenti durante la scalabilità.
Nessun refactoring: il passaggio a esperimenti più ampi sull' SageMaker intelligenza artificiale è semplice e non richiede alcuna revisione della configurazione esistente.
Miglioramento continuo: lo sviluppo di nuove funzionalità e il miglioramento continuo dell'algoritmo sono semplici perché il codice rimane lo stesso in tutti gli ambienti.
Gestione della configurazione: questo modello utilizza Hydra
I parametri sono definiti nei file di configurazione, separati dal codice.
Diversi set di parametri possono essere scambiati o combinati facilmente.
Il tracciamento degli esperimenti è semplificato perché la configurazione di ogni esecuzione viene registrata automaticamente.
Gli esperimenti sul cloud possono utilizzare la stessa struttura di configurazione delle esecuzioni locali, garantendo la coerenza.
Con Hydra, puoi gestire la configurazione in modo efficace, abilitando le seguenti funzionalità:
Dividi le configurazioni: suddividi le configurazioni del progetto in parti più piccole e gestibili che possono essere modificate indipendentemente. Questo approccio semplifica la gestione di progetti complessi.
Modifica facilmente i valori predefiniti: modifica rapidamente le configurazioni di base, semplificando la sperimentazione di nuove idee.
Allinea gli input della CLI e i file di configurazione: combina facilmente gli input della riga di comando con i file di configurazione. Questo approccio riduce il disordine e la confusione, rendendo il progetto più gestibile nel tempo.