Guida per nuovi utenti di Addestramento personalizzato

Questa guida per principianti è un'introduzione all'addestramento personalizzato sulla piattaforma per agenti Gemini Enterprise. L'addestramento personalizzato si riferisce all'addestramento di un modello utilizzando un framework ML come TensorFlow, PyTorch o XGBoost.

Obiettivi di apprendimento

Livello di esperienza con Gemini Enterprise Agent Platform: principiante

Tempo di lettura stimato: 15 minuti

Argomenti trattati:

  • Vantaggi dell'utilizzo di un servizio gestito per l'addestramento personalizzato.
  • Best practice per il packaging del codice di addestramento.
  • Come inviare e monitorare un job di addestramento.

Perché utilizzare un servizio di addestramento gestito?

Immagina di lavorare a un nuovo problema di ML. Apri un notebook, importa i tuoi dati ed esegui l'esperimento. In questo scenario, crei un modello con il framework ML di tua scelta ed esegui le celle del notebook per eseguire un ciclo di addestramento. Al termine dell'addestramento, valuti i risultati del modello, apporti modifiche e poi esegui nuovamente l'addestramento. Questo flusso di lavoro è utile per la sperimentazione, ma quando inizi a pensare di creare applicazioni di produzione con il machine learning, potresti scoprire che l'esecuzione manuale delle celle del notebook non è l'opzione più conveniente.

Ad esempio, se il set di dati e il modello sono grandi, potresti provare l'addestramento distribuito. Inoltre, in un ambiente di produzione è improbabile che dovrai addestrare il modello una sola volta. Nel tempo, addestrerai nuovamente il modello per assicurarti che rimanga aggiornato e continui a produrre risultati utili. Quando vuoi automatizzare gli esperimenti su larga scala o eseguire il retraining dei modelli per un'applicazione di produzione, l'utilizzo di un servizio di addestramento ML gestito semplificherà i tuoi flussi di lavoro.

Questa guida fornisce un'introduzione all'addestramento di modelli personalizzati su Gemini Enterprise Agent Platform. Poiché il servizio di addestramento è completamente gestito, Gemini Enterprise Agent Platform esegue automaticamente il provisioning delle risorse di calcolo, esegue l'attività di addestramento e garantisce l'eliminazione delle risorse di calcolo al termine del job di addestramento. Tieni presente che esistono ulteriori personalizzazioni, funzionalità e modi di interagire con il servizio che non sono trattati qui. Questa guida ha lo scopo di fornire una panoramica. Per ulteriori dettagli, consulta la documentazione di formazione di Gemini Enterprise Agent Platform.

Panoramica dell'addestramento personalizzato

L'addestramento di modelli personalizzati su Gemini Enterprise Agent Platform segue questo flusso di lavoro standard:

  1. Pacchettizza il codice dell'applicazione di addestramento.

  2. Configura e invia il job di addestramento personalizzato.

  3. Monitora il job di addestramento personalizzato.

Pacchettizzazione del codice dell'applicazione di addestramento

L'esecuzione di un job di addestramento personalizzato sulla piattaforma Gemini Enterprise Agent viene eseguita con i container. I container sono pacchetti del codice dell'applicazione, in questo caso il codice di addestramento, insieme a dipendenze come versioni specifiche di librerie necessarie per eseguire il codice. Oltre a semplificare la gestione delle dipendenze, i container possono essere eseguiti praticamente ovunque, il che consente una maggiore portabilità. Il packaging del codice di addestramento con i relativi parametri e dipendenze in un container per creare un componente portatile è un passaggio importante quando si spostano le applicazioni ML dal prototipo alla produzione.

Prima di poter avviare un job di addestramento personalizzato, devi creare un pacchetto per l'applicazione di addestramento. In questo caso, l'applicazione di addestramento si riferisce a un file o a più file che eseguono attività come il caricamento dei dati, la pre-elaborazione dei dati, la definizione di un modello e l'esecuzione di un ciclo di addestramento. Il servizio di addestramento della piattaforma Gemini Enterprise Agent esegue il codice che fornisci, quindi spetta interamente a te decidere quali passaggi includere nell'applicazione di addestramento.

Gemini Enterprise Agent Platform fornisce container predefiniti per TensorFlow, PyTorch, XGBoost e Scikit-learn. Questi contenitori vengono aggiornati regolarmente e includono librerie comuni che potrebbero servirti nel codice di addestramento. Puoi scegliere di eseguire il codice di addestramento con uno di questi container o creare un container personalizzato con il codice di addestramento e le dipendenze preinstallate.

Esistono tre opzioni per il packaging del codice su Gemini Enterprise Agent Platform:

  1. Invia un singolo file Python.
  2. Crea una distribuzione di origine Python.
  3. Utilizza container personalizzati.

File python

Questa opzione è adatta per una sperimentazione rapida. Puoi utilizzarla se tutto il codice necessario per eseguire l'applicazione di addestramento si trova in un unico file Python e uno dei container di addestramento predefiniti della piattaforma di agenti Gemini Enterprise contiene tutte le librerie necessarie per eseguire l'applicazione. Per un esempio di pacchetto dell'applicazione di addestramento come singolo file Python, consulta il tutorial del blocco note Addestramento personalizzato e inferenza batch.

Distribuzione di origine Python

Puoi creare una distribuzione di origine Python che contiene l'applicazione di addestramento. Memorizzerai la distribuzione di origine con il codice di addestramento e le dipendenze in un bucket Cloud Storage. Per un esempio di pacchettizzazione dell'applicazione di addestramento come distribuzione di origine Python, consulta il tutorial del blocco note Addestramento, ottimizzazione e deployment di un modello di classificazione PyTorch.

Container personalizzato

Questa opzione è utile quando vuoi avere un maggiore controllo sulla tua applicazione o magari vuoi eseguire codice non scritto in Python. In questo caso, devi scrivere un Dockerfile, creare l'immagine personalizzata ed eseguirne il push su Artifact Registry. Per un esempio di containerizzazione dell'applicazione di addestramento, consulta il tutorial del blocco note Profilare le prestazioni dell'addestramento del modello utilizzando Profiler.

Se scegli di creare un pacchetto del codice come distribuzione di origine Python o come container personalizzato, ti consigliamo di strutturare l'applicazione come segue:

training-application-dir/
....setup.py
....Dockerfile
....trainer/
........task.py
........model.py
........utils.py

Crea una directory per archiviare tutto il codice dell'applicazione di addestramento, in questo caso, training-application-dir. Questa directory conterrà un file setup.py se utilizzi una distribuzione di origine Python o un file Dockerfile se utilizzi un container personalizzato.

In entrambi gli scenari, questa directory di livello superiore conterrà anche una sottodirectory trainer, che contiene tutto il codice per eseguire l'addestramento. All'interno di trainer, task.py è l'entry point principale della tua applicazione. Questo file esegue l'addestramento del modello. Puoi scegliere di inserire tutto il codice in questo file, ma per le applicazioni di produzione è probabile che tu abbia file aggiuntivi, ad esempio model.py, data.py, utils.py, per citarne alcuni.

Eseguire un allenamento personalizzato di corsa

I job di addestramento su Gemini Enterprise Agent Platform eseguono automaticamente il provisioning delle risorse di calcolo, eseguono il codice dell'applicazione di addestramento e garantiscono l'eliminazione delle risorse di calcolo al termine del job di addestramento.

Man mano che crei flussi di lavoro più complessi, è probabile che utilizzerai l'SDK Agent Platform per Python per configurare, inviare e monitorare i job di addestramento. Tuttavia, la prima volta che esegui un job di addestramento personalizzato, può essere più facile utilizzare la console Google Cloud .

  1. Nella console Google Cloud , vai alla pagina Training.

    Vai alla formazione

  2. Fai clic su Addestra nuovo modello.

  3. In Metodo di addestramento del modello, seleziona Addestramento personalizzato (avanzato).

    specificare il metodo di addestramento

  4. Nella sezione Container di addestramento, seleziona il container predefinito o personalizzato, a seconda di come hai pacchettizzato l'applicazione.

    specifica il container di addestramento

  5. In Compute e prezzi, specifica l'hardware per il job di addestramento. Per l'addestramento con un nodo singolo, devi configurare solo il pool di worker 0. Se ti interessa eseguire l'addestramento distribuito, devi comprendere gli altri pool di worker. Per saperne di più, consulta la sezione Addestramento distribuito.

    compute di addestramento

La configurazione del contenitore di inferenza è facoltativa. Se vuoi solo addestrare un modello su Gemini Enterprise Agent Platform e accedere agli artefatti del modello salvato risultanti, puoi saltare questo passaggio. Se vuoi ospitare ed eseguire il deployment del modello risultante sul servizio di inferenza gestito di Gemini Enterprise Agent Platform, devi configurare un container di inferenza. Per saperne di più, consulta Ottenere inferenze da un modello con addestramento personalizzato.

Monitoraggio dei job di addestramento

Puoi monitorare il job di addestramento nella console Google Cloud . Vedrai un elenco di tutti i job eseguiti. Puoi fare clic su un job specifico ed esaminare i log in caso di problemi.

dashboard di addestramento

Notebook

Video