Prospettiva IA e ML: ottimizzazione delle prestazioni

Last reviewed 2024-10-11 UTC

Questo documento nella Well-Architected Framework: prospettiva AI e ML fornisce una panoramica dei principi e dei consigli per aiutarti a ottimizzare le prestazioni dei tuoi carichi di lavoro AI e ML su Google Cloud. I consigli contenuti in questo documento sono in linea con il pilastro dell'ottimizzazione del rendimento del Google Cloud Well-Architected Framework.

I sistemi di AI e ML offrono nuove funzionalità di automazione e decision-making per la tua organizzazione. Il rendimento di questi sistemi può influire direttamente sui fattori che guidano la tua attività, come entrate, costi e soddisfazione dei clienti. Per sfruttare tutto il potenziale dei tuoi sistemi di AI e ML, devi ottimizzarne le prestazioni in base ai tuoi obiettivi aziendali e ai requisiti tecnici. Il processo di ottimizzazione delle prestazioni spesso comporta determinati compromessi. Ad esempio, una scelta di progettazione che offre le prestazioni richieste potrebbe comportare costi più elevati. I suggerimenti riportati in questo documento danno la priorità al rendimento rispetto ad altre considerazioni, come i costi.

Per ottimizzare le prestazioni dell'AI e del machine learning, devi prendere decisioni in merito a fattori come l'architettura, i parametri e la strategia di addestramento del modello. 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 molto grandi possono avere prestazioni elevate su un'infrastruttura di addestramento massiccia, ma i modelli molto grandi potrebbero non funzionare bene in ambienti con capacità limitata come i dispositivi mobili.

Tradurre gli obiettivi commerciali in obiettivi di rendimento

Per prendere decisioni architetturali che ottimizzino il rendimento, inizia con una serie chiara di obiettivi commerciali. Progetta sistemi di AI e ML che forniscano il rendimento tecnico necessario per supportare i tuoi obiettivi e le tue priorità aziendali. I tuoi team tecnici devono comprendere la mappatura tra gli obiettivi di rendimento e gli obiettivi aziendali.

Prendi in considerazione i seguenti consigli:

  • Tradurre gli scopi commerciali in requisiti tecnici: tradurre gli scopi commerciali dei tuoi sistemi di AI e ML in requisiti tecnici di rendimento specifici e valutare gli effetti del mancato rispetto dei requisiti. Ad esempio, per un'applicazione che prevede l'abbandono dei clienti, il modello ML deve avere un buon rendimento in base a metriche standard, come accuratezza e richiamo, e l'applicazione deve soddisfare i requisiti operativi, come la bassa latenza.
  • Monitora le prestazioni in tutte le fasi del ciclo di vita del modello: durante la sperimentazione e l'addestramento dopo il deployment del modello, monitora gli indicatori chiave di prestazione (KPI) e osserva eventuali scostamenti dagli obiettivi aziendali.
  • Automatizza la valutazione per renderla riproducibile e standardizzata: con una piattaforma e una metodologia standardizzate e comparabili per la valutazione degli esperimenti, i tuoi ingegneri possono aumentare il ritmo di miglioramento del rendimento.

Eseguire e monitorare esperimenti frequenti

Per trasformare l'innovazione e la creatività in miglioramenti del rendimento, hai bisogno di una cultura e di una piattaforma che supportino la sperimentazione. Il miglioramento delle prestazioni è un processo continuo perché le tecnologie AI e ML si sviluppano continuamente e rapidamente. Per mantenere un processo iterativo e rapido, devi separare lo spazio di sperimentazione dalle piattaforme di addestramento e pubblicazione. È importante un processo di sperimentazione standardizzato e solido.

Prendi in considerazione i seguenti consigli:

  • Crea un ambiente di sperimentazione: i miglioramenti delle prestazioni richiedono un ambiente dedicato, potente e interattivo che supporti la sperimentazione e lo sviluppo collaborativo di pipeline ML.
  • Integra gli esperimenti nella cultura aziendale: esegui esperimenti prima di qualsiasi implementazione di produzione. Rilascia nuove versioni in modo iterativo e raccogli sempre dati sul rendimento. Sperimenta con diversi tipi di dati, trasformazioni delle funzionalità, algoritmi e iperparametri.

Crea e automatizza i servizi di addestramento e gestione

L'addestramento e la pubblicazione dei modelli di AI sono componenti fondamentali dei tuoi servizi di AI. Hai bisogno di piattaforme e pratiche solide che supportino la creazione, il deployment e la pubblicazione di modelli di AI in modo rapido e affidabile. Investi tempo e impegno per creare piattaforme di base per le attività principali di addestramento e serving dell'AI. Queste piattaforme di base aiutano a ridurre il tempo e l'impegno dei tuoi team e a migliorare la qualità degli output a medio e lungo termine.

Prendi in considerazione i seguenti consigli:

  • Utilizza componenti specializzati per l'AI di un servizio di addestramento: questi componenti includono risorse di calcolo ad alte prestazioni e componenti MLOps come feature store, registri dei modelli, archivi di metadati e servizi di valutazione delle prestazioni dei modelli.
  • Utilizza componenti specializzati per l'AI di un servizio di previsione: questi componenti forniscono risorse scalabili e ad alte prestazioni, supportano il monitoraggio delle funzionalità e consentono il monitoraggio delle prestazioni del modello. Per prevenire e gestire il peggioramento delle prestazioni, implementa strategie di deployment e rollback affidabili.

Abbinare le scelte di progettazione ai requisiti di rendimento

Quando fai scelte di progettazione per migliorare il rendimento, valuta attentamente se le scelte supportano i requisiti della tua attività o sono dispendiose e controproducenti. Per scegliere l'infrastruttura, i modelli o le configurazioni appropriati, identifica i colli di bottiglia delle prestazioni e valuta il loro collegamento alle misure di rendimento. Ad esempio, anche su acceleratori GPU molto potenti, le attività di addestramento possono riscontrare colli di bottiglia delle prestazioni a causa di problemi di I/O dei dati dal livello di archiviazione o a causa di limitazioni delle prestazioni del modello stesso.

Prendi in considerazione i seguenti consigli:

  • Ottimizzare il consumo di hardware in base agli obiettivi di rendimento: per addestrare e pubblicare modelli di ML che soddisfino i tuoi requisiti di rendimento, devi ottimizzare l'infrastruttura a livello di calcolo, archiviazione e rete. Devi misurare e comprendere le variabili che influiscono sui tuoi obiettivi di rendimento. Queste variabili sono diverse per l'addestramento e l'inferenza.
  • Concentrati sui requisiti specifici del carico di lavoro: concentra i tuoi sforzi di ottimizzazione delle prestazioni sui requisiti unici dei tuoi carichi di lavoro AI e ML. Affidati ai servizi gestiti per le prestazioni dell'infrastruttura sottostante.
  • Scegli strategie di addestramento appropriate: sono disponibili diversi modelli preaddestrati e di base e ne vengono rilasciati spesso altri. Scegli una strategia di addestramento in grado di offrire prestazioni ottimali per il tuo compito. Decidi se creare un modello personalizzato, ottimizzare un modello preaddestrato sui tuoi dati o utilizzare un'API di modello preaddestrato.
  • Riconosci che le strategie di ottimizzazione del rendimento possono avere rendimenti decrescenti: quando una particolare strategia di ottimizzazione del rendimento non fornisce un valore commerciale incrementale misurabile, smetti di perseguirla.

Per innovare, risolvere i problemi e analizzare i problemi di prestazioni, stabilisci un collegamento chiaro tra le scelte di progettazione e i risultati delle prestazioni. Oltre all'esperimento, devi registrare in modo affidabile la derivazione di asset, deployment, output del modello e le configurazioni e gli input che hanno prodotto gli output.

Prendi in considerazione i seguenti consigli:

  • Crea un sistema di lineage di dati e modelli: tutti gli asset di cui è stato eseguito il deployment e le relative metriche di rendimento devono essere collegati ai dati, alle configurazioni, al codice e alle scelte che hanno portato ai sistemi di cui è stato eseguito il deployment. Inoltre, gli output del modello devono essere collegati a versioni specifiche del modello e alla modalità di produzione degli output.
  • Utilizza strumenti di spiegabilità per migliorare il rendimento del modello: adotta e standardizza strumenti e benchmark per l'esplorazione e la spiegabilità dei modelli. Questi strumenti aiutano i tuoi ingegneri ML a comprendere il comportamento del modello e a migliorare le prestazioni o rimuovere i bias.

Collaboratori

Autori:

Altri collaboratori: