Questo documento del Google Cloud Well-Architected Framework: prospettiva di AI e ML fornisce principi e consigli per aiutarti a ottimizzare le prestazioni dei tuoi workload di AI e ML su Google Cloud. I consigli contenuti in questo documento sono in linea con il pilastro Ottimizzazione delle prestazioni del Well-Architected Framework.
I sistemi di AI e ML offrono alla tua organizzazione funzionalità avanzate di automazione e processo decisionale. Le prestazioni di questi sistemi possono influire direttamente su importanti fattori aziendali come entrate, costi e soddisfazione del cliente. Per sfruttare appieno il potenziale dei sistemi di AI e ML, devi ottimizzarne le prestazioni in base ai tuoi obiettivi commerciali e ai requisiti tecnici. Il processo di ottimizzazione delle prestazioni spesso comporta dei compromessi. Ad esempio, una scelta di progettazione che fornisce le prestazioni richieste potrebbe comportare costi più elevati. I consigli riportati in questo documento danno priorità alle prestazioni rispetto ad altre considerazioni.
Per ottimizzare le prestazioni di AI e ML, devi prendere decisioni relative a fattori come l'architettura del modello, i parametri e la strategia di addestramento. Quando prendi queste decisioni, considera l'intero ciclo di vita dei sistemi di AI e ML e il loro ambiente di deployment. Ad esempio, gli LLM di grandi dimensioni possono essere molto performanti su un'infrastruttura di addestramento di grandi dimensioni, ma potrebbero non funzionare bene in ambienti con capacità limitata come i dispositivi mobili.
I suggerimenti di questo documento sono mappati ai seguenti principi fondamentali:
- Stabilisci obiettivi di rendimento e metodi di valutazione
- Esegui e monitora esperimenti frequenti
- Crea e automatizza l'infrastruttura di addestramento e distribuzione
- Abbinare le scelte di progettazione ai requisiti di prestazioni
- Collega le metriche sul rendimento alle scelte di progettazione e configurazione
Stabilisci obiettivi di rendimento e metodi di valutazione
La tua strategia e i tuoi obiettivi aziendali sono la base per sfruttare le tecnologie di AI e ML. Traduci i tuoi obiettivi commerciali in indicatori chiave di prestazione (KPI) misurabili. Esempi di KPI includono entrate totali, costi, tasso di conversione, tasso di fidelizzazione o abbandono, soddisfazione del cliente e soddisfazione dei dipendenti.
Definisci obiettivi realistici
Secondo le best practice di Site Reliability Engineering (SRE), gli obiettivi di un servizio devono riflettere un livello di prestazioni che soddisfi i requisiti dei clienti tipo. Ciò significa che gli obiettivi del servizio devono essere realistici in termini di scalabilità e prestazioni delle funzionalità.
Obiettivi non realistici possono portare a uno spreco di risorse per ottenere miglioramenti minimi delle prestazioni. I modelli che offrono le prestazioni più elevate potrebbero non portare a risultati aziendali ottimali. Questi modelli potrebbero richiedere più tempo e costi per l'addestramento e l'esecuzione.
Quando definisci gli obiettivi, distingui e dai la priorità agli obiettivi di qualità e di rendimento:
- La qualità si riferisce alle caratteristiche intrinseche che determinano il valore di un'entità. Ti aiuta a valutare se l'entità soddisfa le tue aspettative e i tuoi standard.
- Le prestazioni si riferiscono all'efficienza e all'efficacia con cui un'entità funziona o svolge lo scopo previsto.
Gli ML engineer possono migliorare le metriche sul rendimento di un modello durante il processo di addestramento. Gemini Enterprise Agent Platform fornisce un servizio di valutazione che gli ingegneri ML possono utilizzare per implementare il monitoraggio standardizzato e ripetibile delle metriche di qualità. L'efficienza di previsione di un modello indica il rendimento di un modello in produzione o al momento dell'inferenza. Per monitorare le prestazioni, utilizza Cloud Monitoring e Model Monitoring su Gemini Enterprise Agent Platform. Per selezionare i modelli appropriati e decidere come addestrarli, devi tradurre gli obiettivi commerciali in requisiti tecnici che determinano le metriche di qualità e prestazioni.
Per capire come impostare obiettivi realistici e identificare metriche sul rendimento appropriate, considera il seguente esempio di un sistema di rilevamento delle frodi basato sull'AI:
- Scopo commerciale: per un sistema di rilevamento delle frodi, uno scopo commerciale irrealistico è rilevare con precisione il 100% delle transazioni fraudolente entro un nanosecondo con un traffico di picco di 100 miliardi di transazioni al secondo. Un obiettivo più realistico è rilevare le transazioni fraudolente con un'accuratezza del 95% in 100 millisecondi per il 90% delle previsioni online durante l'orario di lavoro negli Stati Uniti con un volume di picco di un milione di transazioni al secondo.
- Metriche sul rendimento: il rilevamento delle frodi è un problema di classificazione. Puoi misurare la qualità di un sistema di rilevamento delle frodi utilizzando metriche come richiamo, punteggio F1 e accuratezza. Per monitorare le prestazioni o la velocità del sistema, puoi misurare la latenza di inferenza. Il rilevamento di transazioni potenzialmente fraudolente potrebbe essere più importante dell'accuratezza. Pertanto, un obiettivo realistico potrebbe essere un richiamo elevato con una latenza p90 inferiore a 100 millisecondi.
Monitora le prestazioni in tutte le fasi del ciclo di vita del modello
Durante la sperimentazione e l'addestramento e dopo il deployment del modello, monitora i KPI e osserva eventuali deviazioni dagli scopi commerciali. Una strategia di monitoraggio completa ti aiuta a prendere decisioni critiche sulla qualità del modello e sull'utilizzo delle risorse, ad esempio:
- Decidere quando interrompere un job di addestramento.
- Determinare se le prestazioni di un modello stanno peggiorando in produzione.
- Migliorare i costi e il time-to-market per i nuovi modelli.
Monitoraggio durante la sperimentazione e l'addestramento
L'obiettivo della fase di sperimentazione è trovare l'approccio complessivo, l'architettura del modello e gli iperparametri ottimali per un'attività specifica. La sperimentazione ti aiuta a determinare in modo iterativo la configurazione che offre prestazioni ottimali e come addestrare il modello. Il monitoraggio ti aiuta a identificare in modo efficiente le potenziali aree di miglioramento.
Per monitorare la qualità e l'efficienza dell'addestramento di un modello, gli ingegneri ML devono:
- Visualizza le metriche di qualità e prestazioni del modello per ogni prova.
- Visualizza grafici e metriche dei modelli, ad esempio istogrammi di pesi e bias.
- Rappresentare visivamente i dati di addestramento.
- Profilare gli algoritmi di addestramento su hardware diversi.
Per monitorare la sperimentazione e l'addestramento, tieni presente i seguenti suggerimenti:
Qualità del modello: per visualizzare e monitorare le metriche degli esperimenti, come l'accuratezza, e per visualizzare l'architettura del modello o i dati di addestramento, utilizza TensorBoard. TensorBoard è una suite di strumenti open source compatibile con framework di ML come i seguenti:
- XGBoost
- JAX
- Flax
- PyTorch
- Framework basati su XLA su Cloud TPU per l'addestramento di Cloud TPU
- TensorFlow
Monitoraggio degli esperimenti: Experiments su Gemini Enterprise Agent Platform si integra con istanze TensorBoard di Agent Platform gestite di livello enterprise per supportare il monitoraggio degli esperimenti. Questa integrazione consente l'archiviazione e la condivisione affidabili di log e metriche. Per consentire a più team e individui di monitorare gli esperimenti, ti consigliamo di utilizzare il principio del privilegio minimo.
Efficienza di addestramento e sperimentazione: Agent Platform esporta le metriche in Monitoring e raccoglie i dati di telemetria e i log utilizzando un agente di osservabilità. Puoi visualizzare le metriche nella console Google Cloud . In alternativa, crea dashboard o avvisi basati su queste metriche utilizzando Monitoring. Per saperne di più, consulta Metriche di Monitoring per la piattaforma dell'agente.
GPU NVIDIA: Ops Agent consente il monitoraggio delle GPU per Compute Engine e per altri prodotti supportati da Ops Agent. Puoi anche utilizzare NVIDIA Data Center GPU Manager (DCGM), una suite di strumenti per la gestione e il monitoraggio delle GPU NVIDIA in ambienti cluster. Il monitoraggio delle GPU NVIDIA è particolarmente utile per l'addestramento e la distribuzione di modelli di deep learning.
Debug approfondito: per eseguire il debug dei problemi con il codice di addestramento o la configurazione di un job di addestramento gestito di Gemini Enterprise Agent Platform, puoi ispezionare il container di addestramento utilizzando una sessione di shell interattiva.
Monitoraggio durante l'erogazione: previsione flussi di dati
Dopo aver addestrato un modello ed esportato in Model Registry su Gemini Enterprise Agent Platform, puoi creare un endpoint Agent Platform. Questo endpoint fornisce un endpoint HTTP per il modello.
Model Monitoring su Agent Platform ti aiuta a identificare variazioni significative nella distribuzione delle caratteristiche di input o output. Puoi anche monitorare le attribuzioni delle caratteristiche in produzione rispetto a una distribuzione di riferimento. La distribuzione di riferimento può essere il set di addestramento o può basarsi su distribuzioni passate del traffico di produzione. Una variazione nella distribuzione della pubblicazione potrebbe implicare una riduzione delle prestazioni predittive rispetto all'addestramento.
- Scegli un obiettivo di monitoraggio: a seconda della sensibilità di un caso d'uso alle modifiche ai dati forniti al modello, puoi monitorare diversi tipi di obiettivi: deviazione delle caratteristiche di input, deviazione dell'output e attribuzione delle caratteristiche. Model Monitoring su Agent Platform v2 ti consente di monitorare i modelli di cui esegui il deployment su una piattaforma di gestione gestita come Agent Platform e anche su servizi self-hosted come Google Kubernetes Engine (GKE). Inoltre, per un monitoraggio del rendimento granulare, puoi monitorare i parametri a livello di modello anziché per un endpoint.
- Monitora l'erogazione dei modelli di AI generativa: per garantire la stabilità e ridurre al minimo la latenza, in particolare per gli endpoint LLM, configura uno stack di monitoraggio solido. I modelli Gemini forniscono metriche integrate, come il tempo al primo token (TTFT), a cui puoi accedere direttamente in Esplora metriche. Per monitorare il throughput, la latenza e le percentuali di errore in tutti i modelliGoogle Cloud , utilizza la dashboard di osservabilità dei modelli.
Monitoraggio durante l'erogazione: previsione in batch
Per monitorare la previsione in batch, puoi eseguire job di valutazione standard nel servizio di valutazione Agent Platform. Model Monitoring su Agent Platform supporta il monitoraggio delle inferenze batch. Se utilizzi Batch per eseguire il workload di gestione, puoi monitorare il consumo delle risorse utilizzando le metriche in Esplora metriche.
Automatizza la valutazione per la riproducibilità e la standardizzazione
Per passare dai prototipi ai sistemi di produzione affidabili, è necessario un processo di valutazione standardizzato. Questo processo ti aiuta a monitorare i progressi tra le iterazioni, confrontare diversi modelli, rilevare e mitigare i bias e assicurarti di soddisfare i requisiti normativi. Per garantire la riproducibilità e la scalabilità, devi automatizzare il processo di valutazione.
Per standardizzare e automatizzare il processo di valutazione delle prestazioni del ML, completa i seguenti passaggi:
- Definisci indicatori quantitativi e qualitativi.
- Scegliere le origini dati e le tecniche appropriate.
- Standardizza la pipeline di valutazione.
Questi passaggi sono descritti nelle sezioni seguenti.
1. Definisci gli indicatori quantitativi e qualitativi
Le metriche basate su calcolo vengono calcolate utilizzando formule numeriche. Ricorda che le metriche relative alla perdita di addestramento potrebbero differire dalle metriche di valutazione pertinenti agli obiettivi aziendali. Ad esempio, un modello utilizzato per il rilevamento supervisionato delle frodi potrebbe utilizzare la perdita di entropia incrociata per l'addestramento. Tuttavia, per valutare le prestazioni di inferenza, una metrica più pertinente potrebbe essere il richiamo, che indica la copertura delle transazioni fraudolente. Agent Platform fornisce un servizio di valutazione per metriche come richiamo, precisione e area sotto la curva di precisione-richiamo (AuPRC). Per saperne di più, consulta Valutazione dei modelli in Agent Platform.
Gli indicatori qualitativi, come la fluidità o il valore di intrattenimento dei contenuti generati, non possono essere calcolati oggettivamente. Per valutare questi indicatori, puoi utilizzare la strategia LLM-as-a-judge o i servizi di etichettatura umana come Labelbox.
2. Scegliere le tecniche e le origini dati appropriate
Una valutazione è statisticamente significativa quando viene eseguita su un volume minimo di esempi diversi. Scegli i set di dati e le tecniche che utilizzi per le valutazioni utilizzando approcci come i seguenti:
- Set di dati d'oro: utilizza campioni di dati affidabili, coerenti e accurati che riflettono la distribuzione di probabilità di un modello in produzione.
- LLM-as-a-judge: valuta l'output di un modello generativo utilizzando un LLM. Questo approccio è pertinente solo per le attività in cui un LLM può valutare un modello.
- Feedback degli utenti: per guidare i miglioramenti futuri, acquisisci il feedback diretto degli utenti come parte del traffico di produzione.
A seconda della tecnica di valutazione, delle dimensioni e del tipo di dati di valutazione e della frequenza di valutazione, puoi utilizzare BigQuery o Cloud Storage come origini dati, anche per il servizio di valutazione della piattaforma dell'agente.
- BigQuery ti consente di utilizzare i comandi SQL per eseguire attività di inferenza come l'elaborazione del linguaggio naturale e la traduzione automatica. Per saperne di più, consulta la panoramica delle soluzioni specifiche per le attività.
- Cloud Storage offre una soluzione di archiviazione conveniente per set di dati di grandi dimensioni.
3. Standardizza la pipeline di valutazione
Per automatizzare il processo di valutazione, prendi in considerazione i seguenti servizi e strumenti:
- Servizio di valutazione di Agent Platform: fornisce primitive pronte all'uso per monitorare le prestazioni del modello nell'ambito del ciclo di vita del ML su Agent Platform.
- Gen AI evaluation service: consente di valutare qualsiasi modello o applicazione generativi e confrontare i risultati della valutazione in base al tuo giudizio e ai tuoi criteri di valutazione. Questo servizio ti aiuta anche a eseguire attività specializzate come il prompt engineering, la generazione RAG (Retrieval-Augmented Generation) e l'ottimizzazione degli agenti AI.
- Strumento Automatic Side-by-Side (AutoSxS) di Agent Platform: supporta la valutazione basata su modelli a coppie.
- Kubeflow: fornisce componenti speciali per eseguire le valutazioni dei modelli.
Esegui e monitora esperimenti frequenti
Per ottimizzare in modo efficace le prestazioni del ML, hai bisogno di una piattaforma dedicata, potente e interattiva per la sperimentazione. La piattaforma deve avere le seguenti funzionalità:
- Facilitare lo sviluppo iterativo, in modo che i team possano passare dall'idea ai risultati convalidati con velocità, affidabilità e scalabilità.
- Consenti ai team di scoprire in modo efficiente le configurazioni ottimali che possono utilizzare per attivare i job di addestramento.
- Fornire un accesso controllato a dati, funzionalità e strumenti pertinenti per eseguire e monitorare gli esperimenti.
- Supportare la riproducibilità e il monitoraggio della derivazione dei dati.
Tratta i dati come un servizio
Isola i workload sperimentali dai sistemi di produzione e configura controlli di sicurezza appropriati per i tuoi asset di dati utilizzando le seguenti tecniche:
| Tecnica | Descrizione | Vantaggi |
|---|---|---|
| Isolamento delle risorse | Isola le risorse per ambienti diversi in progetti Google Cloud separati. Ad esempio, esegui il provisioning delle risorse per gli ambienti di sviluppo, gestione temporanea e produzione in progetti separati come ml-dev, ml-staging e ml-prod. |
L'isolamento delle risorse aiuta a impedire che i workload sperimentali consumino le risorse necessarie ai sistemi di produzione. Ad esempio, se utilizzi un singolo progetto per gli esperimenti e la produzione, un esperimento potrebbe consumare tutte le GPU NVIDIA A100 disponibili per l'addestramento gestito della piattaforma agente. Ciò potrebbe causare interruzioni nell'addestramento di un modello di produzione critico. |
| Controllo di identità e accessi | Applica i principi di
Zero Trust e privilegio minimo e
utilizza service account specifici per i workload. Concedi l'accesso utilizzando ruoli Identity and Access Management (IAM) predefiniti come Agent Platform User (roles/aiplatform.user). |
Questo approccio aiuta a prevenire azioni accidentali o dannose che potrebbero danneggiare gli esperimenti. |
| Sicurezza di rete | Isola il traffico di rete utilizzando le reti Virtual Private Cloud (VPC) e applica i perimetri di sicurezza utilizzando i Controlli di servizio VPC. | Questo approccio aiuta a proteggere i dati sensibili e impedisce al traffico sperimentale di influire sui servizi di produzione. |
| Isolamento dei dati | Archivia i dati sperimentali in bucket Cloud Storage e set di dati BigQuery separati. | L'isolamento dei dati impedisce la modifica accidentale dei dati di produzione. Ad esempio, senza l'isolamento dei dati, un esperimento potrebbe inavvertitamente alterare i valori delle caratteristiche in una tabella BigQuery condivisa, il che potrebbe portare a un significativo peggioramento dell'accuratezza del modello nell'ambiente di produzione. |
Fornisci ai team gli strumenti appropriati
Per creare un insieme selezionato di strumenti per accelerare l'intero ciclo di vita della sperimentazione, dall'esplorazione dei dati all'addestramento e all'analisi dei modelli, utilizza le seguenti tecniche:
- Prototipazione interattiva: per l'esplorazione rapida dei dati, il test delle ipotesi e la prototipazione del codice, utilizza Colab Enterprise o le istanze JupyterLab gestite su Gemini Enterprise Agent Platform Workbench. Per ulteriori informazioni, vedi Scegli una soluzione per i notebook.
- Addestramento dei modelli scalabile: esegui job di addestramento su un servizio gestito che supporta l'addestramento distribuito e risorse di calcolo scalabili come GPU e Cloud TPU. Questo approccio consente di ridurre il tempo di addestramento da giorni a ore e di eseguire più esperimenti in parallelo. Per saperne di più, consulta Utilizza componenti specializzati per l'addestramento.
- ML nel database: addestra i modelli direttamente in BigQuery ML utilizzando SQL. Questa tecnica aiuta a eliminare lo spostamento dei dati e accelera la sperimentazione per gli analisti e gli utenti incentrati su SQL.
- Monitoraggio degli esperimenti: crea una cronologia ricercabile e confrontabile dei dati degli esperimenti registrando parametri, metriche e artefatti per ogni esecuzione dell'esperimento. Per saperne di più, consulta Crea un sistema di derivazione dei dati e dei modelli.
- Ottimizzazione dell'AI generativa: per ottimizzare le prestazioni delle applicazioni di AI generativa, devi sperimentare con i prompt, la selezione dei modelli e l'ottimizzazione. Per un prompt engineering rapido, utilizza Agent Studio su Gemini Enterprise Agent Platform. Per sperimentare con i foundation model (come Gemini) e trovare un modello adatto al tuo caso d'uso e ai tuoi obiettivi commerciali, utilizza Model Garden.
Standardizza per la riproducibilità e l'efficienza
Per garantire che gli esperimenti utilizzino le risorse in modo efficiente e producano risultati coerenti e affidabili, standardizza e automatizza gli esperimenti utilizzando i seguenti approcci:
- Garantisci ambienti coerenti utilizzando i container: pacchettizza il codice di addestramento e le dipendenze come container Docker. Gestisci e fornisci i container utilizzando Artifact Registry. Questo approccio ti consente di riprodurre i problemi su macchine diverse ripetendo gli esperimenti in ambienti identici. Agent Platform fornisce container predefiniti per l'addestramento serverless.
- Automatizza i workflow ML come pipeline: orchestra il workflow ML end-to-end come pipeline codificata utilizzando Gemini Enterprise Agent Platform Pipelines. Questo approccio aiuta ad applicare la coerenza, garantire la riproducibilità e monitorare automaticamente tutti gli artefatti e i metadati in Agent Platform ML Metadata.
- Automatizza il provisioning con l'infrastructure as code (IaC): definisci ed esegui il deployment di ambienti di sperimentazione standardizzati utilizzando strumenti IaC come Terraform. Per assicurarti che ogni progetto rispetti un insieme standardizzato di configurazioni per la sicurezza, il networking e la governance, utilizza i moduli Terraform.
Crea e automatizza l'infrastruttura di addestramento e gestione
Per addestrare e pubblicare modelli di AI, configura una piattaforma solida che supporti lo sviluppo, il deployment e la pubblicazione efficienti e affidabili. Questa piattaforma consente ai tuoi team di migliorare in modo efficiente la qualità e le prestazioni dell'addestramento e della distribuzione nel lungo periodo.
Utilizza componenti specializzati per l'addestramento
Una piattaforma di addestramento affidabile aiuta ad accelerare le prestazioni e fornisce un approccio standardizzato per automatizzare le attività ripetibili nel ciclo di vita del ML, dalla preparazione dei dati alla convalida del modello.
Raccolta e preparazione dei dati
Per un addestramento efficace del modello, devi raccogliere e preparare i dati necessari per l'addestramento, il test e la convalida. I dati potrebbero provenire da origini diverse ed essere di tipi diversi. Devi anche riutilizzare i dati pertinenti tra le esecuzioni di addestramento e condividere le caratteristiche tra i team. Per migliorare la ripetibilità della fase di raccolta e preparazione dei dati, tieni presente i seguenti consigli:
- Migliora la rilevabilità dei dati con Knowledge Catalog.
- Centralizza il feature engineering in Agent Platform Feature Store.
- Pre-elaborare i dati utilizzando Dataflow.
Esecuzione dell'addestramento
Quando addestri un modello, utilizzi i dati per creare un oggetto modello. Per farlo, devi configurare l'infrastruttura e le dipendenze necessarie del codice di addestramento. Devi anche decidere come rendere persistenti i modelli di addestramento, monitorare l'avanzamento dell'addestramento, valutare il modello e presentare i risultati. Per migliorare la ripetibilità dell'addestramento, tieni presente i seguenti consigli:
- Segui le linee guida riportate in Automatizza la valutazione per la riproducibilità e la standardizzazione.
- Per inviare job di addestramento su uno o più nodi worker senza gestire il provisioning o le dipendenze dell'infrastruttura sottostante, utilizza la risorsa
CustomJobin Agent Platform Managed Training. Puoi anche utilizzare la risorsaCustomJobper i job di ottimizzazione degli iperparametri. - Ottimizza il goodput di pianificazione utilizzando Dynamic Workload Scheduler o prenotazioni per Agent Platform Managed Training.
- Registra i tuoi modelli in Model Registry.
Orchestrazione dell'addestramento
Esegui il deployment dei workload di addestramento come fasi di una pipeline utilizzando Agent Platform Pipelines. Questo servizio fornisce servizi Kubeflow e TFX gestiti. Definisci ogni passaggio della pipeline come un componente eseguito in un container. Ogni componente funziona come una funzione, con parametri di input e artefatti di output che diventano input per i componenti successivi della pipeline. Per ottimizzare l'efficienza della pipeline, tieni presente i seguenti consigli:
- Implementa l'automazione di base:
- Utilizza i componenti di Kubeflow Pipelines.
- Utilizza i flussi di controllo per progetti di pipeline avanzati, come i gate condizionali.
- Integra la compilazione della pipeline nel tuo flusso CI/CD.
- Esegui la pipeline con Cloud Scheduler.
- Aumenta la velocità e l'efficienza in termini di costi:
- Per aumentare la velocità delle iterazioni e ridurre i costi, utilizza la cache di esecuzione delle pipeline della piattaforma degli agenti.
- Specifica la configurazione della macchina per ogni componente in base ai requisiti delle risorse di ogni passaggio.
- Aumenta la robustezza:
- Per aumentare la solidità contro i problemi temporanei senza richiedere un intervento manuale, configura i tentativi di ripetizione.
- Per eseguire il fail-fast e l'iterazione in modo efficiente, configura una policy di errore.
- Per gestire gli errori, configura le notifiche via email.
- Implementa la governance e il monitoraggio:
- Per sperimentare diverse configurazioni di modelli o di addestramento, aggiungi le esecuzioni della pipeline agli esperimenti.
- Monitora i log e le metriche per le pipeline di Agent Platform.
- Segui i consigli riportati in Monitora le prestazioni in tutte le fasi del ciclo di vita del modello.
Utilizza un'infrastruttura specializzata per la previsione
Per ridurre il lavoro manuale di gestione dell'infrastruttura e dei deployment dei modelli, automatizza i flussi di attività ripetibili. Un approccio orientato ai servizi ti consente di concentrarti sulla velocità e su un time to value (TTV) più rapido. Prendi in considerazione i seguenti consigli.
Implementa il deployment automatico
- Dopo l'addestramento di un modello, utilizza l'automazione per eseguirne il deployment. Agent Platform Pipelines fornisce componenti specializzati per il deployment dei modelli negli endpoint di Agent Platform. Puoi gestire il deployment automatico utilizzando i flussi di controllo di Kubeflow.
- Per decidere se eseguire il deployment di un modello in base a una valutazione rispetto a un set di validazione, sfrutta i componenti di valutazione della pipeline. Puoi automatizzare il deployment per l'inferenza in batch utilizzando componenti di previsioni in batch specializzati in Agent Platform.
Sfrutta le funzionalità di scalabilità gestita
- Agent Platform fornisce funzionalità di inferenza batch e online che ti consentono di configurare il comportamento di scalabilità.
- Cloud Run supporta le GPU con scalabilità automatica.
Ottimizza la latenza e il throughput sugli endpoint di Agent Platform
- Scegli un tipo di macchina appropriato.
- Scegli un tipo di endpoint appropriato per i tuoi modelli. Gli endpoint privati dedicati potrebbero contribuire a ridurre la latenza.
- Se utilizzi Feature Store, utilizza l'erogazione online di Bigtable per l'erogazione dei valori delle caratteristiche con un throughput elevato e una bassa latenza e utilizza Vector Search per l'erogazione degli incorporamenti.
Ottimizza l'utilizzo delle risorse
- Per ottimizzare l'utilizzo delle risorse, puoi condividere le risorse tra i deployment dei modelli. Anziché utilizzare una VM separata per ogni modello (comportamento predefinito), puoi eseguire il deployment di più modelli su una singola VM.
- Per garantire o ottimizzare la disponibilità delle risorse, utilizza prenotazioni, Dynamic Workload Scheduler o VM spot.
Ottimizza il deployment del modello
- Per evitare modifiche che provocano un errore, puoi eseguire una migrazione graduale e implementare i test A/B eseguendo automaticamente il deployment di più modelli sullo stesso endpoint. Agent Platform disaccoppia il livello dell'endpoint dai modelli, consentendoti di suddividere il traffico tra le versioni dei modelli.
- Per sostituire un modello di cui è stato eseguito il deployment, utilizza una strategia di deployment graduale.
Monitoraggio del rendimento
Per migliorare le prestazioni di pubblicazione in produzione, osserva i log e le metriche di inferenza per gli endpoint della piattaforma agente. Per comprendere il comportamento dei modelli in produzione, hai bisogno di strumenti per monitorare la qualità e le prestazioni. Model Monitoring su Agent Platform v2 ti consente di monitorare diverse versioni di un modello ed eseguire rapidamente l'iterazione.
Abbinare le scelte di progettazione ai requisiti di prestazioni
Quando fai scelte di progettazione per migliorare le prestazioni, valuta se queste scelte supportano i requisiti aziendali o se sono inutili e controproducenti. Per scegliere l'infrastruttura, i modelli e le configurazioni appropriati, identifica i colli di bottiglia delle prestazioni e valuta come sono collegati alle metriche sul rendimento. Ad esempio, anche su acceleratori GPU molto potenti, le attività di addestramento possono riscontrare colli di bottiglia delle prestazioni. Questi colli di bottiglia possono essere causati da problemi di I/O dei dati nel livello di archiviazione o da limitazioni delle prestazioni del modello.
Concentrati sulle prestazioni olistiche del flusso ML
Man mano che i requisiti di addestramento aumentano in termini di dimensioni del modello e del cluster, il tasso di errore e i costi dell'infrastruttura potrebbero aumentare. Pertanto, il costo di un errore potrebbe aumentare in modo quadratico. Non puoi fare affidamento solo sulle metriche convenzionali di efficienza delle risorse, come l'utilizzo FLOP del modello (MFU). Per capire perché l'MFU potrebbe non essere un indicatore sufficiente delle prestazioni complessive dell'addestramento, esamina il ciclo di vita di un tipico job di addestramento. Il ciclo di vita è costituito dal seguente flusso ciclico:
- Creazione del cluster: è stato eseguito il provisioning dei nodi worker.
- Inizializzazione: l'addestramento viene inizializzato sui nodi worker.
- Esecuzione dell'addestramento: le risorse vengono utilizzate per la propagazione in avanti o all'indietro.
- Interruzione: il processo di addestramento viene interrotto durante il checkpoint del modello o a causa di prerilasci dei nodi worker.
Dopo ogni interruzione, il flusso precedente viene ripetuto.
Il passaggio di esecuzione dell'addestramento costituisce una parte del ciclo di vita di un job ML. Pertanto, l'utilizzo dei nodi worker per il passaggio di esecuzione dell'addestramento non indica l'efficienza complessiva del job. Ad esempio, anche se il passaggio di esecuzione dell'addestramento viene eseguito con un'efficienza del 100%, l'efficienza complessiva potrebbe essere bassa se le interruzioni si verificano di frequente o se il ripristino dell'addestramento dopo le interruzioni richiede molto tempo.
Adotta e monitora le metriche di goodput
Per garantire una misurazione e un'ottimizzazione olistiche delle prestazioni, sposta l'attenzione dalle metriche convenzionali di efficienza delle risorse come l'MFU al goodput. Il goodput considera la disponibilità e l'utilizzo dei cluster e delle risorse di computing e aiuta a misurare l'efficienza delle risorse su più livelli.
Le metriche di goodput si concentrano sull'avanzamento complessivo di un job, anziché sul fatto che il job sembri occupato. Le metriche di goodput ti aiutano a ottimizzare i job di addestramento per ottenere miglioramenti complessivi tangibili in termini di produttività e prestazioni.
Il goodput ti offre una comprensione granulare delle potenziali perdite di efficienza tramite le seguenti metriche:
- Il goodput di pianificazione è la frazione di tempo in cui tutte le risorse necessarie per l'addestramento o la distribuzione sono disponibili per l'utilizzo.
- Il goodput di runtime rappresenta la percentuale di passaggi di addestramento utili completati durante un determinato periodo.
- Il goodput del programma è il picco delle prestazioni hardware o MFU che un job di addestramento può estrarre dall'acceleratore. Dipende dall'utilizzo efficiente delle risorse di computing sottostanti durante l'addestramento.
Ottimizza il goodput di pianificazione
Per ottimizzare il goodput di pianificazione per un workload, devi identificare i requisiti specifici dell'infrastruttura del workload. Ad esempio, l'inferenza batch, l'inferenza in streaming e l'addestramento hanno requisiti diversi:
- I workload di inferenza batch potrebbero tollerare alcune interruzioni e ritardi nella disponibilità delle risorse.
- I workload di inferenza in streaming richiedono un'infrastruttura stateless.
- I workload di addestramento richiedono impegni infrastrutturali a lungo termine.
Scegli le modalità di ottenibilità appropriate
Nel cloud computing, l'ottenibilità è la capacità di eseguire il provisioning delle risorse quando sono necessarie. Google Cloud fornisce le seguenti modalità di ottenibilità:
- VM on demand: esegui il provisioning delle VM di Compute Engine quando sono necessarie ed esegui i workload sulle VM. La richiesta di provisioning è soggetta alla disponibilità di risorse, ad esempio le GPU. Se non è disponibile una quantità sufficiente di un tipo di risorsa richiesto, la richiesta non va a buon fine.
- VM spot: crei VM utilizzando la capacità di computing inutilizzata. Le VM spot vengono fatturate a un prezzo scontato rispetto alle VM on demand, maGoogle Cloud potrebbe prerilasciare le VM spot in qualsiasi momento. Ti consigliamo di utilizzare le VM spot per i workload stateless che possono avere un errore controllato quando le VM host vengono prerilasciate.
- Prenotazioni: prenoti la capacità come un pool di VM. Le prenotazioni sono ideali per i workload che richiedono una garanzia di capacità. Utilizza le prenotazioni per massimizzare il goodput di pianificazione assicurandoti che le risorse siano disponibili quando necessario.
Dynamic Workload Scheduler: questo meccanismo di provisioning mette in coda le richieste di VM basate su GPU in un pool dedicato. Dynamic Workload Scheduler ti aiuta a evitare i vincoli delle altre modalità di ottenibilità:
- Situazioni di esaurimento delle scorte in modalità on demand.
- Vincolo di assenza di stato e rischio di prerilascio delle VM spot.
- Implicazioni in termini di costi e disponibilità delle prenotazioni.
La tabella seguente riassume le modalità di ottenimento dei servizi Google Cloud e fornisce link alla documentazione pertinente:
Pianifica gli eventi di manutenzione
Puoi migliorare il goodput di pianificazione anticipando e pianificando la manutenzione e gli upgrade dell'infrastruttura.
GKE ti consente di controllare quando può essere eseguita la manutenzione automatica dei cluster. Per saperne di più, consulta Periodi di manutenzione ed esclusioni.
Compute Engine offre le seguenti funzionalità:
- Per mantenere in esecuzione un'istanza durante un evento dell'host, ad esempio la manutenzione pianificata per l'hardware sottostante, Compute Engine esegue una migrazione live dell'istanza a un altro host nella stessa zona. Per saperne di più, consulta Processo di migrazione live durante gli eventi di manutenzione.
- Per controllare il modo in cui un'istanza risponde quando l'host sottostante richiede manutenzione o presenta un errore, puoi impostare una policy di manutenzione dell'host per l'istanza.
Per informazioni sulla pianificazione degli eventi sull'host correlati a cluster di addestramento di grandi dimensioni in AI Hypercomputer, consulta Gestisci gli eventi sull'host nelle istanze di computing.
Goodput di runtime di Optimize
Il processo di addestramento del modello viene spesso interrotto da eventi come il checkpoint del modello e il prerilascio delle risorse. Per ottimizzare il goodput di runtime, devi assicurarti che il sistema riprenda l'addestramento e l'inferenza in modo efficiente dopo che l'infrastruttura richiesta è pronta e dopo qualsiasi interruzione.
Durante l'addestramento del modello, i ricercatori di AI utilizzano il checkpointing per monitorare i progressi e ridurre al minimo la perdita di apprendimento dovuta ai prerilasci delle risorse. Le dimensioni maggiori dei modelli prolungano le interruzioni del checkpointing, il che influisce ulteriormente sull'efficienza complessiva. Dopo le interruzioni, l'applicazione di addestramento deve essere riavviata su ogni nodo del cluster. Questi riavvii possono richiedere del tempo perché gli artefatti necessari devono essere ricaricati.
Per ottimizzare il goodput di runtime, utilizza le seguenti tecniche:
| Tecnica | Descrizione |
|---|---|
| Implementa il checkpointing automatico. | Il checkpointing frequente ti consente di monitorare l'avanzamento dell'addestramento a un livello granulare. Tuttavia, il processo di addestramento viene interrotto per ogni checkpoint, il che riduce il goodput di runtime. Per ridurre al minimo le interruzioni, puoi configurare il checkpoint automatico, in cui il segnale SIGTERM dell'host attiva la creazione di un checkpoint. Questo approccio limita le interruzioni del checkpointing ai casi in cui l'host richiede manutenzione. Ricorda che alcuni errori hardware potrebbero non attivare i segnali SIGTERM; pertanto, devi trovare un equilibrio adeguato tra il checkpoint automatico e gli eventi SIGTERM. Puoi configurare il checkpoint automatico utilizzando le seguenti tecniche:
|
| Utilizza strategie di caricamento dei container appropriate. | In un cluster GKE, prima che i nodi possano riprendere i job di addestramento, potrebbe essere necessario un po' di tempo per completare il caricamento degli artefatti richiesti, come i dati o i checkpoint del modello. Per ridurre il tempo necessario per ricaricare i dati e riprendere l'addestramento, utilizza le seguenti tecniche:
|
| Utilizza la cache di compilazione. | Se l'addestramento richiede uno stack basato sulla compilazione, verifica se puoi utilizzare una cache di compilazione. Quando utilizzi una cache di compilazione, il grafico di calcolo non viene ricompilato dopo ogni interruzione dell'addestramento. Le riduzioni di tempo e costi che ne derivano sono particolarmente vantaggiose quando utilizzi Cloud TPU. JAX ti consente di archiviare la cache di compilazione in un bucket Cloud Storage e di utilizzare i dati memorizzati nella cache in caso di interruzioni. |
Ottimizza il goodput del programma
Il goodput del programma rappresenta l'utilizzo massimo delle risorse durante l'addestramento, che è il modo convenzionale per misurare l'efficienza dell'addestramento e della distribuzione. Per migliorare il goodput del programma, hai bisogno di una strategia di distribuzione ottimizzata, di una sovrapposizione efficiente tra calcolo e comunicazione, di un accesso alla memoria ottimizzato e di pipeline efficienti.
Per ottimizzare il goodput del programma, utilizza le seguenti strategie:
| Strategia | Descrizione |
|---|---|
| Utilizza le opzioni di personalizzazione a livello di framework. | I framework o i compilatori come Accelerated Linear Algebra (XLA) forniscono molti componenti chiave del goodput del programma. Per ottimizzare ulteriormente le prestazioni, puoi personalizzare i componenti fondamentali del grafico di calcolo. Ad esempio, Pallas supporta kernel personalizzati per Cloud TPU e GPU. |
| Eseguire l'offload della memoria nella DRAM dell'host. | Per l'addestramento su larga scala, che richiede una quantità di memoria significativamente elevata dagli acceleratori, puoi trasferire parte della memoria utilizzata alla DRAM host. Ad esempio, JAX e XLA ti consentono di eseguire l'offload delle attivazioni del modello dal forward pass alla memoria host anziché utilizzare la memoria dell'acceleratore. Con questa strategia, puoi migliorare le prestazioni di addestramento aumentando la capacità del modello o le dimensioni del batch. |
| Sfrutta la quantizzazione durante l'addestramento. | Puoi migliorare l'efficienza dell'addestramento e il goodput del programma sfruttando la quantizzazione del modello durante l'addestramento. Questa strategia riduce la precisione dei gradienti o dei pesi durante determinati passaggi dell'addestramento, migliorando così il goodput del programma. Tuttavia, questa strategia potrebbe richiedere un ulteriore impegno di progettazione durante lo sviluppo del modello. Per maggiori informazioni, consulta le seguenti risorse: |
| Implementa il parallelismo. | Per aumentare l'utilizzo delle risorse di computing disponibili, puoi utilizzare strategie di parallelismo a livello di modello durante l'addestramento e il caricamento dei dati. Per informazioni sul parallelismo dei modelli, consulta le seguenti risorse:
Per ottenere il parallelismo dei dati, puoi utilizzare strumenti come i seguenti:
|
Concentrati sui requisiti specifici del workload
Per garantire che le tue attività di ottimizzazione delle prestazioni siano efficaci e olistiche, devi abbinare le decisioni di ottimizzazione ai requisiti specifici dei tuoi workload di addestramento e inferenza. Scegli i modelli di AI appropriati e utilizza strategie di ottimizzazione dei prompt pertinenti. Seleziona i framework e gli strumenti appropriati in base ai requisiti dei tuoi workload.
Identifica i requisiti specifici del workload
Valuta i requisiti e i vincoli dei tuoi workload nelle seguenti aree:
| Area | Descrizione |
|---|---|
| Requisiti di attività e qualità | Definisci l'attività principale del workload e la baseline delle prestazioni. Rispondi a domande come:
|
| Contesto di pubblicazione | Analizza l'ambiente operativo in cui prevedi di eseguire il deployment del modello. Il contesto di pubblicazione ha spesso un impatto significativo sulle decisioni di progettazione. Considera i seguenti fattori:
|
| Competenze ed economia del team | Valuta il valore aziendale dell'acquisto della soluzione rispetto al costo e alla complessità della sua creazione e manutenzione. Determina se il tuo team dispone delle competenze specializzate necessarie per lo sviluppo di modelli personalizzati o se un servizio gestito potrebbe fornire un time-to-value più rapido. |
Scegli un modello appropriato
Se un'API o un modello aperto può fornire le prestazioni e la qualità richieste, utilizza quell'API o quel modello.
Per attività specifiche per la modalità, come il riconoscimento ottico dei caratteri (OCR), l'etichettatura e la moderazione dei contenuti, scegli API ML come le seguenti:
Per le applicazioni di AI generativa, prendi in considerazione i modelli di Google come Gemini, Imagen e Veo.
Esplora Model Garden e scegli da una raccolta curata di modelli di base e specifici per le attività di Google. Model Garden fornisce anche modelli aperti come Gemma e modelli di terze parti, che puoi eseguire in Agent Platform o di cui puoi eseguire il deployment su runtime come GKE.
Se un'attività può essere completata utilizzando un'API ML o un modello di AI generativa, considera la complessità dell'attività. Per le attività complesse, i modelli di grandi dimensioni come Gemini potrebbero offrire prestazioni superiori rispetto ai modelli più piccoli.
Migliora la qualità con un prompting migliore
Per migliorare la qualità dei prompt su larga scala, utilizza l'ottimizzatore dei prompt di Agent Platform. Non è necessario riscrivere manualmente le istruzioni di sistema e i prompt. L'ottimizzatore dei prompt supporta i seguenti approcci:
- Ottimizzazione zero-shot: un approccio a bassa latenza che migliora un singolo prompt o un'istruzione di sistema in tempo reale.
- Ottimizzazione basata sui dati: un approccio avanzato che migliora i prompt valutando le risposte di un modello ai prompt di esempio rispetto a metriche di valutazione specifiche.
Per ulteriori linee guida sull'ottimizzazione dei prompt, consulta la panoramica delle strategie di prompting.
Migliora le prestazioni per gli endpoint di ML e AI generativa
Per migliorare la latenza o il throughput (token al secondo) per gli endpoint di ML e AI generativa, tieni presente i seguenti consigli:
- Memorizza i risultati nella cache utilizzando Memorystore.
- Per le API di AI generativa, utilizza le seguenti tecniche:
- Memorizzazione nella cache del contesto: ottieni una latenza inferiore per le richieste che contengono contenuti ripetuti.
- Throughput riservato: migliora il throughput per gli endpoint Gemini prenotando la capacità di throughput.
- Per i modelli self-hosted, prendi in considerazione i seguenti framework di inferenza ottimizzati:
Framework Notebooks e guide Container vLLM ottimizzati in Model Garden Esegui il deployment di modelli aperti con container predefiniti Inferenza basata su GPU su GKE Inferenza basata su Cloud TPU
Utilizza soluzioni low-code e ottimizzazione
Se i modelli preaddestrati non soddisfano i tuoi requisiti, puoi migliorarne le prestazioni per domini specifici utilizzando le soluzioni:
- AutoML è una soluzione low-code per migliorare i risultati di inferenza con il minimo sforzo tecnico per un'ampia gamma di attività. AutoML ti consente di creare modelli ottimizzati su diverse dimensioni: architettura, prestazioni e fase di addestramento (tramite checkpoint).
- L'ottimizzazione ti aiuta a ottenere una generazione più stabile e di qualità superiore, oltre a una latenza inferiore con prompt più brevi e senza molti dati. Ti consigliamo di iniziare l'ottimizzazione utilizzando i valori predefiniti per gli iperparametri. Per saperne di più, consulta Informazioni sul fine-tuning supervisionato per Gemini.
Ottimizza l'addestramento autogestito
In alcuni casi, potresti decidere di riaddestrare un modello o di gestire completamente un job di ottimizzazione. Questo approccio richiede competenze avanzate e tempo aggiuntivo a seconda del modello, del framework e delle risorse che utilizzi.
Sfrutta le opzioni del framework ottimizzate per le prestazioni, come le seguenti:
Utilizza immagini o container di deep learning, che includono le dipendenze software più recenti e le librerie specifiche perGoogle Cloud.
Esegui l'addestramento del modello con Ray su Google Cloud:
- Ray su Gemini Enterprise Agent Platform ti consente di portare il framework di addestramento distribuito di Ray su Compute Engine o GKE e semplifica l'overhead di gestione del framework.
- Puoi gestire autonomamente Ray su GKE con KubeRay eseguendo il deployment dell'operatore Ray su un cluster esistente.
Esegui il deployment dei workload di addestramento su un cluster di computing di cui esegui il provisioning utilizzando Cluster Toolkit open source. Per eseguire il provisioning in modo efficiente di cluster ottimizzati per le prestazioni, utilizza i blueprint basati su YAML. Gestisci i cluster utilizzando scheduler come Slurm e GKE.
Addestra architetture di modelli standard utilizzando ricette ottimizzate per GPU.
Crea architetture e strategie di addestramento che ottimizzano le prestazioni utilizzando le seguenti tecniche:
- Implementa l'addestramento distribuito su Agent Platform o sui framework descritti in precedenza. L'addestramento distribuito consente il parallelismo dei modelli e dei dati, che può contribuire ad aumentare le dimensioni del set di dati di addestramento e del modello, nonché a ridurre il tempo di addestramento.
- Per un addestramento efficiente del modello ed esplorare diverse configurazioni delle prestazioni, esegui il checkpoint a intervalli appropriati. Per saperne di più, consulta Ottimizza il goodput di runtime.
Ottimizza la gestione autonoma della distribuzione
Per la gestione autonoma, sono necessarie operazioni di inferenza efficienti e un throughput elevato (numero di inferenze per unità di tempo).
Per ottimizzare il modello per l'inferenza, considera i seguenti approcci:
Quantizzazione: riduci le dimensioni del modello rappresentando i suoi parametri in un formato di precisione inferiore. Questo approccio aiuta a ridurre il consumo di memoria e la latenza. Tuttavia, la quantizzazione dopo l'addestramento potrebbe influire sulla qualità del modello. Ad esempio, la quantizzazione dopo l'addestramento potrebbe causare una riduzione dell'accuratezza.
- La quantizzazione post-addestramento (PTQ) è un'attività ripetibile. I principali framework di ML come PyTorch e TensorFlow supportano la PTQ.
- Puoi orchestrare il PTQ utilizzando una pipeline su Agent Platform Pipelines.
- Per stabilizzare le prestazioni del modello e trarre vantaggio dalle riduzioni delle dimensioni del modello, puoi utilizzare Qwix.
Parallelismo dei tensori: migliora il throughput di inferenza distribuendo il carico di calcolo su più GPU.
Ottimizzazione della memoria: aumenta il throughput e ottimizza la memorizzazione nella cache dell'attenzione, le dimensioni dei batch e le dimensioni degli input.
Utilizza framework ottimizzati per l'inferenza, come i seguenti:
- Per i modelli generativi, utilizza un framework aperto come MaxText, MaxDiffusion o vLLM.
- Esegui immagini container predefinite su Agent Platform per previsioni e spiegazioni. Se scegli TensorFlow, utilizza il runtime TensorFlow ottimizzato. Questo runtime consente un'inferenza più efficiente e a costi inferiori rispetto ai container predefiniti che utilizzano TensorFlow open source.
- Esegui l'inferenza multi-host utilizzando Pathways.
- Sfrutta il server di inferenza NVIDIA Triton per Agent Platform.
- Semplifica il deployment dei workload di inferenza su GKE utilizzando configurazioni ottimizzate per gli LLM. Per saperne di più, consulta Analizza le prestazioni e i costi di erogazione del modello con GKE Inference Quickstart.
Ottimizza il consumo di risorse in base agli obiettivi di rendimento
L'ottimizzazione delle risorse aiuta ad accelerare l'addestramento, eseguire iterazioni in modo efficiente, migliorare la qualità del modello e aumentare la capacità di gestione.
Scegli i tipi di processore appropriati
La scelta della piattaforma di computing può avere un impatto significativo sull'efficienza di addestramento di un modello.
- I modelli di deep learning funzionano bene su GPU e Cloud TPU perché richiedono grandi quantità di memoria e calcolo matriciale parallelo. Per ulteriori informazioni sui workload adatti a CPU, GPU e Cloud TPU, consulta Quando utilizzare Cloud TPU.
- Le VM ottimizzate per il calcolo sono ideali per i workload HPC.
Ottimizza l'addestramento e l'erogazione sulle GPU
Per ottimizzare le prestazioni dei workload di addestramento e inferenza di cui è stato eseguito il deployment sulle GPU, tieni presente i seguenti suggerimenti:
| Suggerimento | Descrizione |
|---|---|
| Seleziona le specifiche di memoria appropriate. | Quando scegli i tipi di macchine GPU, seleziona le specifiche della memoria in base ai seguenti fattori:
|
| Valuta i requisiti di larghezza di banda della memoria e dei core. | Oltre alle dimensioni della memoria, considera altri requisiti come il numero di Tensor Core e la larghezza di banda della memoria. Questi fattori influiscono sulla velocità di accesso ai dati e sui calcoli sul chip. |
| Scegli i tipi di macchina GPU appropriati. | L'addestramento e la gestione potrebbero richiedere tipi di macchine GPU diversi.
Ti consigliamo di utilizzare tipi di macchine di grandi dimensioni per l'addestramento e tipi di macchine più piccoli ed economici per l'inferenza. Per rilevare i problemi di utilizzo delle risorse, utilizza strumenti di monitoraggio come l'agente NVIDIA DCGM e regola le risorse in modo appropriato. |
| Sfrutta la condivisione delle GPU su GKE. | In alcuni casi, dedicare una GPU completa a un singolo container potrebbe essere un approccio inefficiente. Per aiutarti a superare questa inefficienza, GKE supporta le seguenti strategie di condivisione delle GPU:
Per massimizzare l'utilizzo delle risorse, ti consigliamo di utilizzare una combinazione appropriata di queste strategie. Ad esempio, quando virtualizzi una GPU H100 di grandi dimensioni utilizzando le strategie di condivisione del tempo della GPU e di GPU multi-istanza, la piattaforma di distribuzione può fare lo scale up e lo scale down in base al traffico. Le risorse GPU vengono riutilizzate in tempo reale in base al carico sui container del modello. |
| Ottimizza il routing e il bilanciamento del carico. | Quando esegui il deployment di più modelli su un cluster, puoi utilizzare
GKE Inference Gateway
per il routing e il bilanciamento del carico ottimizzati. Inference Gateway estende i meccanismi di routing dell'API Kubernetes Gateway utilizzando le seguenti funzionalità:
|
| Condividi le risorse per gli endpoint di Agent Platform. | Puoi configurare più endpoint della piattaforma agente in modo che utilizzino un pool di risorse comune. Per saperne di più su questa funzionalità e sulle sue limitazioni, consulta Condividi le risorse tra i deployment. |
Ottimizza l'addestramento e l'erogazione su Cloud TPU
Cloud TPU fornisce chip Google che aiutano a risolvere le sfide su larga scala per gli algoritmi di ML. Questi chip offrono prestazioni ottimali per i workload di addestramento e inferenza dell'AI. Rispetto alle GPU, Cloud TPU offre una maggiore efficienza per l'addestramento e l'erogazione del deep learning. Per informazioni sui casi d'uso adatti a Cloud TPU, consulta Quando utilizzare Cloud TPU. Cloud TPU è compatibile con framework di ML come TensorFlow, PyTorch e JAX.
Per ottimizzare le prestazioni di Cloud TPU, utilizza le seguenti tecniche, descritte nella guida alle prestazioni di Cloud TPU:
- Massimizza le dimensioni del batch per ogni unità di memoria Cloud TPU.
- Assicurati che le risorse Cloud TPU non siano inattive. Ad esempio, implementa letture di dati in parallelo.
- Ottimizza il compilatore XLA. Regola le dimensioni dei tensori in base alle esigenze ed evita il padding. XLA ottimizza automaticamente le prestazioni di esecuzione del grafo utilizzando strumenti come la fusione e il broadcasting.
Ottimizza l'addestramento su Cloud TPU e l'erogazione su GPU
Cloud TPU supporta l'addestramento efficiente. Le GPU offrono versatilità e una maggiore disponibilità per i workload di inferenza. Per combinare i punti di forza di Cloud TPU e delle GPU, puoi addestrare i modelli su Cloud TPU e gestirli su GPU. Questo approccio può contribuire a ridurre i costi complessivi e ad accelerare lo sviluppo, in particolare per i modelli di grandi dimensioni. Per informazioni sulle località in cui sono disponibili i tipi di macchine Cloud TPU e GPU, consulta Regioni e zone di Cloud TPU e Località GPU.
Ottimizza il livello di archiviazione
Il livello di archiviazione dell'infrastruttura di addestramento e pubblicazione è fondamentale per le prestazioni. I job di addestramento e i workload di inferenza prevedono le seguenti attività relative allo spazio di archiviazione:
- Caricamento ed elaborazione dei dati.
- Creazione di checkpoint del modello durante l'addestramento.
- Ricaricamento dei file binari per riprendere l'addestramento dopo le prerilasci dei nodi.
- Caricamento del modello in modo efficiente per gestire l'inferenza su larga scala.
I seguenti fattori determinano i requisiti di capacità di archiviazione, larghezza di banda e latenza:
- Dimensione modello
- Volume del set di dati di addestramento
- Frequenza di checkpoint
- Pattern di scalabilità
Se i dati di addestramento si trovano in Cloud Storage, puoi ridurre la latenza di caricamento dei dati utilizzando la memorizzazione dei file nella cache in Cloud Storage FUSE. Cloud Storage FUSE ti consente di montare un bucket Cloud Storage sui nodi di computing con dischi SSD locali. Per informazioni su come migliorare le prestazioni di Cloud Storage FUSE, consulta Best practice per l'ottimizzazione delle prestazioni.
Un connettore PyTorch per Cloud Storage offre prestazioni elevate per le letture e le scritture dei dati. Questo connettore è particolarmente utile per l'addestramento con set di dati di grandi dimensioni e per il checkpoint di modelli di grandi dimensioni.
Compute Engine supporta vari tipi di Persistent Disk. Con Google Cloud Hyperdisk ML, puoi eseguire il provisioning del throughput e delle IOPS richiesti in base alle esigenze di addestramento. Per ottimizzare le prestazioni del disco, inizia ridimensionando i dischi e poi valuta la possibilità di modificare il tipo di macchina. Per ulteriori informazioni, consulta Ottimizza le prestazioni di Persistent Disk. Per eseguire il test di carico delle prestazioni e della latenza di lettura e scrittura a livello di archiviazione, puoi utilizzare strumenti come Flexible I/O tester (FIO).
Per saperne di più sulla scelta e sull'ottimizzazione dei servizi di archiviazione per i workload di AI e ML, consulta Panoramica dei servizi di archiviazione per i workload di AI e ML in AI Hypercomputer.
Ottimizza il livello di rete
Per ottimizzare le prestazioni dei workload di AI e ML, configura le reti VPC in modo da fornire una larghezza di banda adeguata e un throughput massimo con una latenza minima. Prendi in considerazione i seguenti consigli:
| Suggerimento | Tecniche suggerite per l'implementazione |
|---|---|
| Ottimizza le reti VPC. |
|
| Posiziona le VM più vicine tra loro. |
|
| Configura le VM in modo che supportino velocità di rete più elevate. |
|
Collegare le metriche sul rendimento alle scelte di progettazione e configurazione
Per innovare, risolvere i problemi ed esaminare i problemi di prestazioni, devi stabilire un collegamento chiaro tra le scelte di progettazione e i risultati delle prestazioni. Devi avere un record affidabile della derivazione degli asset ML, dei deployment, degli output del modello e delle configurazioni e degli input corrispondenti che hanno prodotto gli output.
Crea un sistema di derivazione dei dati e dei modelli
Per migliorare le prestazioni in modo affidabile, devi essere in grado di risalire da ogni versione del modello ai dati, al codice e alle configurazioni esatti utilizzati per produrlo. Man mano che scali un modello, questo tracciamento diventa difficile. Hai bisogno di un sistema di derivazione che automatizzi il processo di tracciamento e crei un record chiaro e interrogabile per ogni esperimento. Questo sistema consente ai tuoi team di identificare e riprodurre in modo efficiente le scelte che portano ai modelli con il rendimento ottimale.
Per visualizzare e analizzare la derivazione degli artefatti della pipeline per i workload in Agent Platform, puoi utilizzare Agent Platform ML Metadata o Knowledge Catalog. Entrambe le opzioni ti consentono di registrare eventi o artefatti per soddisfare i requisiti di governance, eseguire query sui metadati e recuperare informazioni quando necessario. Questa sezione fornisce una panoramica delle due opzioni. Per informazioni dettagliate sulle differenze tra i metadati ML di Agent Platform e Knowledge Catalog, consulta Traccia la derivazione degli artefatti della pipeline.
Implementazione predefinita: Vertex ML Metadata
La prima esecuzione della pipeline o il primo esperimento in Agent Platform crea un servizio di metadati ML di Agent Platform predefinito. I parametri e i metadati degli artefatti utilizzati e generati dalla pipeline vengono registrati automaticamente in un archivio di metadati ML di Agent Platform. Il modello di dati utilizzato per organizzare e collegare i metadati archiviati contiene i seguenti elementi:
- Contesto: un gruppo di artefatti ed esecuzioni che rappresenta un'esecuzione di sperimentazione.
- Esecuzione: un passaggio di un workflow, ad esempio la convalida dei dati o l'addestramento del modello.
- Artefatto: un'entità, un oggetto o un dato di input o output che un workflow produce e consuma.
- Evento: una relazione tra un artefatto e un'esecuzione.
Per impostazione predefinita, Agent Platform ML Metadata acquisisce e traccia tutti gli artefatti di input e output di un'esecuzione della pipeline. Integra questi artefatti con Esperimenti su Agent Platform, Model Registry e set di dati gestiti di Agent Platform.
Il logging automatico è una funzionalità integrata nell'addestramento gestito di Agent Platform per registrare automaticamente i dati negli esperimenti su Agent Platform. Per monitorare in modo efficiente gli esperimenti per ottimizzare le prestazioni, utilizza le integrazioni integrate tra Experiments on Agent Platform e il servizio di metadati ML di Agent Platform associato.
I metadati ML di Agent Platform forniscono una sintassi di filtro e operatori per eseguire query su artefatti, esecuzioni e contesti. Quando necessario, i tuoi team possono recuperare in modo efficiente le informazioni sul link del registry di un modello e sul relativo set di dati o sulla valutazione per l'esecuzione di un esperimento specifico. Questi metadati possono contribuire ad accelerare la scoperta di scelte che ottimizzano le prestazioni. Ad esempio, puoi confrontare le esecuzioni della pipeline, confrontare i modelli e confrontare le esecuzioni degli esperimenti. Per saperne di più, incluse query di esempio, consulta Analizza i metadati.
Implementazione alternativa: Knowledge Catalog
Knowledge Catalog rileva i metadati dalle risorseGoogle Cloud , inclusi gli artefatti di Agent Platform. Puoi anche integrare un'origine dati personalizzata.
Knowledge Catalog può leggere i metadati in più regioni e archivi a livello di organizzazione, mentre i metadati ML della piattaforma agente sono una risorsa specifica del progetto. Rispetto ai metadati ML di Agent Platform, Knowledge Catalog richiede un maggiore impegno di configurazione. Tuttavia, Knowledge Catalog potrebbe essere appropriato quando hai bisogno di un'integrazione con il tuo portafoglio di dati più ampio in Google Cloud e con gli archivi a livello di organizzazione.
Knowledge Catalog rileva e raccoglie i metadati per i progetti in cui è abilitata l'API Data Lineage. I metadati nel catalogo sono organizzati utilizzando un modello di dati composto da progetti, gruppi di voci, voci e aspetti. Knowledge Catalog fornisce una sintassi specifica che puoi utilizzare per scoprire gli artefatti. Se necessario, puoi mappare gli artefatti dei metadati a Knowledge Catalog.
Utilizza gli strumenti di spiegabilità
Il comportamento di un modello di AI si basa sui dati utilizzati per addestrarlo. Questo comportamento è codificato come parametri nelle funzioni matematiche. Capire esattamente perché un modello si comporta in un determinato modo può essere difficile. Tuttavia, questa conoscenza è fondamentale per l'ottimizzazione delle prestazioni.
Ad esempio, considera un modello di classificazione delle immagini in cui i dati di addestramento contengono solo immagini di auto rosse. Il modello potrebbe imparare a identificare l'etichetta "auto" in base al colore dell'oggetto anziché ai suoi attributi spaziali e di forma. Quando il modello viene testato con immagini che mostrano auto di colori diversi, le prestazioni del modello potrebbero peggiorare. Le sezioni seguenti descrivono gli strumenti che puoi utilizzare per identificare e diagnosticare questi problemi.
Rileva i bias nei dati
Nella fase di analisi esplorativa dei dati (EDA) di un progetto di ML, identifichi i problemi relativi ai dati, come set di dati con classi sbilanciate e bias.
Nei sistemi di produzione, spesso riaddestri i modelli ed esegui esperimenti con set di dati diversi. Per standardizzare i dati e confrontarli tra gli esperimenti, consigliamo un approccio sistematico all'EDA che includa le seguenti caratteristiche:
- Automazione: man mano che un set di addestramento aumenta di dimensioni, il processo EDA deve essere eseguito automaticamente in background.
- Ampia copertura: quando aggiungi nuove caratteristiche, l'EDA deve rivelare insight su di esse.
Molte attività di EDA sono specifiche per il tipo di dati e il contesto aziendale. Per automatizzare il processo EDA, utilizza BigQuery o un servizio di trattamento dati gestito come Dataflow. Per saperne di più, consulta Classificazione su dati sbilanciati e Metriche di bias dei dati per Agent Platform.
Comprendi le caratteristiche e il comportamento del modello
Oltre a comprendere la distribuzione dei dati nei set di addestramento e nei set di validazione e i relativi bias, devi comprendere le caratteristiche e il comportamento di un modello al momento della previsione. Per comprendere il comportamento del modello, utilizza i seguenti strumenti:
| Strumento | Descrizione | Finalità |
|---|---|---|
| Spiegazioni basate su esempi | Puoi utilizzare le spiegazioni basate su esempi o la ricerca del vicino più prossimo per comprendere una previsione trovando gli esempi più simili dai dati di addestramento. Questo approccio si basa sul principio che input simili producono output simili. |
|
| Spiegazioni basate sulle caratteristiche | Per le previsioni basate su dati tabulari o immagini, le spiegazioni basate sulle caratteristiche mostrano l'impatto di ogni caratteristica su una previsione rispetto a una base di riferimento. Le tecniche di spiegabilità e le spiegazioni tabulari forniscono metodi di attribuzione delle caratteristiche a seconda del tipo di modello e dell'attività. I metodi in genere si basano sul campionamento e sull'analisi di sensibilità per misurare quanto cambia l'output in risposta alle modifiche di una caratteristica di input. |
|
| Strumento What-If | Lo strumento What-If è stato sviluppato dall'iniziativa People + AI Research (PAIR) di Google per aiutarti a comprendere e visualizzare il comportamento dei modelli tabulari e di immagini. Per esempi di utilizzo dello strumento, consulta Demo web dello strumento What-If. |
|
Collaboratori
Autori:
- Benjamin Sadik | AI and ML Specialist Customer Engineer
- Filipe Gracio, PhD | Customer Engineer, AI/ML Specialist
Altri collaboratori:
- Daniel Lees | Cloud Security Architect
- Kumar Dhanagopal | Cross-Product Solution Developer