Prospettiva AI e ML: ottimizzazione delle prestazioni

Last reviewed 2024-10-11 UTC

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

I sistemi di AI e ML consentono nuove funzionalità di automazione e decisionale per la tua organizzazione. Il rendimento di questi sistemi può influire direttamente sui fattori di crescita della tua attività, come entrate, costi e soddisfazione dei clienti. Per sfruttare tutto il potenziale dei tuoi sistemi di IA e ML, devi ottimizzarne il rendimento in base agli obiettivi commerciali e ai requisiti tecnici. Il processo di ottimizzazione del rendimento spesso comporta determinati compromessi. Ad esempio, una scelta di design che offre le prestazioni richieste potrebbe comportare costi più elevati. I consigli contenuti in questo documento danno la priorità al rendimento rispetto ad altri fattori, come i costi.

Per ottimizzare il rendimento dell'AI e del ML, devi prendere decisioni in merito 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 molto grandi possono avere un rendimento molto elevato su infrastrutture di addestramento di grandi dimensioni, ma i modelli molto grandi potrebbero non funzionare bene in ambienti con limitazioni di capacità come i dispositivi mobili.

Tradurre gli obiettivi commerciali in obiettivi di rendimento

Per prendere decisioni di architettura che ottimizzano le prestazioni, inizia con un insieme chiaro di scopi commerciali. Progetta sistemi di AI e ML che forniscano le prestazioni tecniche necessarie per supportare gli scopi e le priorità della tua attività. I tuoi team tecnici devono comprendere la mappatura tra gli obiettivi di rendimento e gli scopi commerciali.

Prendi in considerazione i seguenti consigli:

  • Tradurre gli scopi commerciali in requisiti tecnici: tradurre gli scopi commerciali dei sistemi di AI e ML in requisiti di prestazioni tecniche specifici e valutare gli effetti del mancato rispetto degli stessi. Ad esempio, per un'applicazione che prevede il tasso di abbandono dei clienti, il modello ML deve avere un buon rendimento per le metriche standard, come accuratezza e richiamo, e l'applicazione deve soddisfare i requisiti operativi, come la bassa latenza.
  • Monitora il rendimento 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 deviazioni dagli scopi commerciali.
  • Automatizza la valutazione per renderla riproducibile e standardizzata: con una metodologia e una piattaforma standardizzate e paragonabili per la valutazione degli esperimenti, i tuoi ingegneri possono aumentare il ritmo del miglioramento del rendimento.

Esegui e monitora 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 di AI e ML si sviluppano continuamente e rapidamente. Per mantenere un processo iterativo e veloce, devi separare lo spazio di sperimentazione dalle piattaforme di addestramento e pubblicazione. È importante avere una procedura di sperimentazione standardizzata e solida.

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 delle pipeline di ML.
  • Integra la sperimentazione come cultura: esegui gli esperimenti prima di qualsiasi deployment in produzione. Rilascia nuove versioni in modo iterativo e raccogli sempre i dati sul rendimento. Sperimenta con diversi tipi di dati, trasformazioni delle funzionalità, algoritmi e iperparametri.

Crea e automatizza i servizi di addestramento e pubblicazione

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 rapidi e affidabili dei modelli di AI. Investi tempo e impegno per creare piattaforme di base per le tue attività di addestramento e pubblicazione di AI di base. Queste piattaforme di base aiutano a ridurre il tempo e gli sforzi dei team e a migliorare la qualità dei risultati a medio e lungo termine.

Prendi in considerazione i seguenti consigli:

  • Utilizza i componenti specializzati in AI di un servizio di addestramento: questi componenti includono componenti di MLOps e di calcolo ad alte prestazioni come feature store, registry dei modelli, metastore e servizi di valutazione delle prestazioni dei modelli.
  • Utilizza i componenti specializzati in 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 degrado delle prestazioni, implementa strategie di deployment e rollback affidabili.

Adatta le scelte di progettazione ai requisiti di prestazioni

Quando scegli un design 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 appropriate, identifica i colli di bottiglia del rendimento e valuta il loro collegamento alle tue misurazioni del rendimento. Ad esempio, anche su acceleratori GPU molto potenti, le attività di addestramento possono presentare 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 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: concentrati sull'ottimizzazione delle prestazioni in base ai requisiti specifici dei carichi di lavoro di IA e ML. Affidati ai servizi gestiti per le prestazioni dell'infrastruttura di base.
  • Scegli strategie di addestramento appropriate: sono disponibili diversi modelli di base e preaddestrati e ne vengono rilasciati spesso di nuovi. Scegli una strategia di addestramento che possa offrire un rendimento ottimale per la tua attività. Decidi se creare il tuo modello, ottimizzare un modello preaddestrato sui tuoi dati o utilizzare un'API di modello preaddestrato.
  • Tieni presente che le strategie di ottimizzazione del rendimento possono avere un rendimento decrescente: se una determinata strategia di ottimizzazione del rendimento non fornisce un valore commerciale incrementale misurabile, smetti di perseguirla.

Per innovare, risolvere i problemi e esaminare i problemi di prestazioni, stabilisci un collegamento chiaro tra le scelte di progettazione e i risultati in termini di prestazioni. Oltre alla sperimentazione, devi registrare in modo affidabile la cronologia delle risorse, dei deployment, degli output dei modelli e delle configurazioni e degli input che hanno prodotto gli output.

Prendi in considerazione i seguenti consigli:

  • Crea un sistema di organizzazione della struttura dei dati e dei modelli: tutti gli asset di cui è stato eseguito il deployment e le relative metriche sul 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 gli strumenti di spiegabilità per migliorare il rendimento del modello: adotta e standardizza strumenti e benchmark per l'esplorazione e la spiegabilità del modello. Questi strumenti aiutano gli ingegneri ML a comprendere il comportamento del modello e a migliorare le prestazioni o rimuovere i bias.

Collaboratori

Autori:

Altri collaboratori: