Well-Architected Framework: prospettiva IA e ML

Last reviewed 2025-02-14 UTC

Questo documento del Google Cloud Well-Architected Framework descrive principi e suggerimenti per aiutarti a progettare, creare e gestire carichi di lavoro di AI e ML in Google Cloud che soddisfino i tuoi obiettivi operativi, di sicurezza, affidabilità, costi e prestazioni.

Il pubblico di destinazione di questo documento include responsabili delle decisioni, architetti, amministratori, sviluppatori e operatori che progettano, creano, eseguono il deployment e gestiscono carichi di lavoro di AI e ML in Google Cloud.

Le pagine seguenti descrivono principi e consigli specifici per l'AI e il ML, per ogni pilastro del Well-Architected Framework:

Collaboratori

Autori:

Altri collaboratori:

Prospettiva AI e ML: eccellenza operativa

Questo documento del Well-Architected Framework: prospettiva AI e ML fornisce una panoramica dei principi e dei consigli per creare e gestire sistemi AI e ML robusti su Google Cloud. Questi consigli ti aiutano a configurare elementi fondamentali come osservabilità, automazione e scalabilità. I suggerimenti contenuti in questo documento sono in linea con il pilastro dell'eccellenza operativa del Google Cloud Well-Architected Framework.

L'eccellenza operativa nel dominio dell'AI e del ML è la capacità di eseguire il deployment, gestire e controllare senza problemi i sistemi e le pipeline di AI e ML che contribuiscono a raggiungere gli obiettivi strategici della tua organizzazione. L'eccellenza operativa ti consente di rispondere in modo efficiente ai cambiamenti, ridurre la complessità operativa e garantire che le tue operazioni rimangano in linea con gli obiettivi aziendali.

I consigli contenuti in questo documento sono mappati ai seguenti principi fondamentali:

Crea una base solida per lo sviluppo del modello

Per sviluppare ed eseguire il deployment di sistemi di AI scalabili e affidabili che ti aiutino a raggiungere i tuoi obiettivi aziendali, è essenziale una base solida per lo sviluppo dei modelli. Una base di questo tipo consente flussi di lavoro coerenti, automatizza i passaggi critici per ridurre gli errori e garantisce che i modelli possano essere scalati in base alla domanda. Una solida base per lo sviluppo di modelli garantisce che i tuoi sistemi ML possano essere aggiornati, migliorati e sottoposti a un nuovo addestramento senza problemi. La base ti aiuta anche ad allineare le prestazioni dei tuoi modelli alle esigenze aziendali, a implementare rapidamente soluzioni di AI di grande impatto e ad adattarti ai requisiti in continua evoluzione.

Per creare una base solida per lo sviluppo dei tuoi modelli di AI, tieni presenti i seguenti consigli.

Definisci i problemi e i risultati richiesti

Prima di iniziare qualsiasi progetto di AI o ML, devi avere una chiara comprensione dei problemi aziendali da risolvere e dei risultati richiesti. Inizia con una bozza degli scopi commerciali e suddividi gli scopi in indicatori chiave di prestazione (KPI) misurabili. Per organizzare e documentare le definizioni e le ipotesi del problema in un ambiente notebook Jupyter, utilizza strumenti come Vertex AI Workbench. Per implementare il controllo delle versioni per il codice e i documenti e per documentare i tuoi progetti, obiettivi e ipotesi, utilizza strumenti come Git. Per sviluppare e gestire i prompt per le applicazioni di AI generativa, puoi utilizzare Vertex AI Studio.

Raccogliere ed elaborare i dati necessari

Per implementare il pre-elaborazione e la trasformazione dei dati, puoi utilizzare Dataflow (per Apache Beam), Dataproc (per Apache Spark) o BigQuery se è appropriato un processo basato su SQL. Per convalidare gli schemi e rilevare anomalie, utilizza TensorFlow Data Validation (TFDV) e sfrutta le scansioni automatiche della qualità dei dati in BigQuery, ove applicabile.

Per l'AI generativa, la qualità dei dati include accuratezza, pertinenza, diversità e allineamento con le caratteristiche di output richieste. Nei casi in cui i dati reali sono insufficienti o sbilanciati, puoi generare dati sintetici per migliorare la robustezza e la generalizzazione del modello. Per creare set di dati sintetici basati su pattern esistenti o per aumentare i dati di addestramento per migliorare il rendimento del modello, utilizza BigQuery DataFrames e Gemini. I dati sintetici sono particolarmente utili per l'AI generativa perché possono contribuire a migliorare la diversità dei prompt e la robustezza complessiva del modello. Quando crei set di dati per il fine-tuning dei modelli di AI generativa, valuta la possibilità di utilizzare le funzionalità di generazione di dati sintetici in Vertex AI.

Per le attività di AI generativa come l'ottimizzazione o l'apprendimento per rinforzo con feedback umano (RLHF), assicurati che le etichette riflettano con precisione la qualità, la pertinenza e la sicurezza degli output generati.

Selezionare un approccio ML appropriato

Quando progetti il modello e i parametri, considera la complessità del modello e le esigenze di calcolo. A seconda dell'attività (ad esempio classificazione, regressione o generazione), valuta la possibilità di utilizzare l'addestramento personalizzato di Vertex AI per la creazione di modelli personalizzati o AutoML per attività di ML più semplici. Per le applicazioni comuni, puoi anche accedere ai modelli preaddestrati tramite Vertex AI Model Garden. Puoi sperimentare una serie di modelli di base all'avanguardia per vari casi d'uso, come la generazione di testo, immagini e codice.

Potresti voler perfezionare un foundation model preaddestrato per ottenere prestazioni ottimali per il tuo caso d'uso specifico. Per requisiti di prestazioni elevate nell'addestramento personalizzato, configura le Tensor Processing Unit (TPU) Cloud o le risorse GPU per accelerare l'addestramento e l'inferenza dei modelli di deep learning, come i modelli linguistici di grandi dimensioni (LLM) e i modelli di diffusione.

Configurare il controllo della versione per codice, modelli e dati

Per gestire ed eseguire il deployment delle versioni del codice in modo efficace, utilizza strumenti come GitHub o GitLab. Questi strumenti forniscono solide funzionalità di collaborazione, strategie di branching e integrazione con le pipeline CI/CD per garantire un processo di sviluppo semplificato.

Utilizza soluzioni appropriate per gestire ogni artefatto del tuo sistema ML, come i seguenti esempi:

  • Per gli artefatti di codice come le immagini container e i componenti della pipeline, Artifact Registry fornisce una soluzione di archiviazione scalabile che può contribuire a migliorare la sicurezza. Artifact Registry include anche il controllo delle versioni e può essere integrato con Cloud Build e Cloud Deploy.
  • Per gestire gli artefatti di dati, come i set di dati utilizzati per l'addestramento e la valutazione, utilizza soluzioni come BigQuery o Cloud Storage per l'archiviazione e il controllo delle versioni.
  • Per archiviare i metadati e i puntatori alle posizioni dei dati, utilizza il sistema di controllo delle versioni o un catalogo dei dati separato.

Per mantenere la coerenza e il controllo delle versioni dei dati delle caratteristiche, utilizza Vertex AI Feature Store. Per monitorare e gestire gli artefatti del modello, inclusi binari e metadati, utilizza Vertex AI Model Registry, che ti consente di archiviare, organizzare ed eseguire il deployment delle versioni del modello senza problemi.

Per garantire l'affidabilità del modello, implementa Vertex AI Model Monitoring. Rileva la deviazione dei dati, monitora le prestazioni e identifica le anomalie in produzione. Per i sistemi di AI generativa, monitora le variazioni nella qualità dell'output e nella conformità alla sicurezza.

Automatizzare il ciclo di vita dello sviluppo del modello

L'Automation ti aiuta a semplificare ogni fase del ciclo di vita dell'AI e del ML. L'Automation riduce l'impegno manuale e standardizza i processi, il che porta a una maggiore efficienza operativa e a un minor rischio di errori. I flussi di lavoro automatizzati consentono un'iterazione più rapida, un deployment coerente tra gli ambienti e risultati più affidabili, in modo che i tuoi sistemi possano scalare e adattarsi senza problemi.

Per automatizzare il ciclo di vita dello sviluppo dei tuoi sistemi di AI e ML, prendi in considerazione i seguenti consigli.

Utilizzare un sistema di orchestrazione delle pipeline gestito

Utilizza Vertex AI Pipelines per automatizzare ogni fase del ciclo di vita ML, dalla preparazione dei dati all'addestramento, alla valutazione e al deployment del modello. Per accelerare il deployment e promuovere la coerenza tra i progetti, automatizza le attività ricorrenti con le esecuzioni pianificate delle pipeline, monitora i flussi di lavoro con le metriche di esecuzione e sviluppa modelli di pipeline riutilizzabili per flussi di lavoro standardizzati. Queste funzionalità si estendono ai modelli di AI generativa, che spesso richiedono passaggi specializzati come l'ingegneria dei prompt, il filtraggio delle risposte e la valutazione human-in-the-loop. Per l'AI generativa, Vertex AI Pipelines può automatizzare questi passaggi, inclusa la valutazione degli output generati in base a metriche di qualità e linee guida per la sicurezza. Per migliorare la diversità dei prompt e la robustezza del modello, i flussi di lavoro automatizzati possono includere anche tecniche di aumento dei dati.

Implementare pipeline CI/CD

Per automatizzare la creazione, il test e il deployment dei modelli di machine learning, utilizza Cloud Build. Questo servizio è particolarmente efficace quando esegui suite di test per il codice dell'applicazione, il che garantisce che l'infrastruttura, le dipendenze e il packaging del modello soddisfino i requisiti di deployment.

I sistemi di ML spesso richiedono passaggi aggiuntivi oltre al test del codice. Ad esempio, devi sottoporre i modelli a test di stress con carichi variabili, eseguire valutazioni collettive per valutare le prestazioni del modello in diversi set di dati e convalidare l'integrità dei dati prima del riaddestramento. Per simulare carichi di lavoro realistici per gli stress test, puoi utilizzare strumenti come Locust, Grafana k6 o Apache JMeter. Per identificare i colli di bottiglia, monitora le metriche chiave come latenza, tasso di errore e utilizzo delle risorse tramite Cloud Monitoring. Per l'AI generativa, i test devono includere anche valutazioni specifiche per il tipo di contenuti generati, come la qualità del testo, la fedeltà delle immagini o la funzionalità del codice. Queste valutazioni possono coinvolgere metriche automatizzate come la perplessità per i modelli linguistici o la valutazione human-in-the-loop per aspetti più sfumati come la creatività e la sicurezza.

Per implementare attività di test e valutazione, puoi integrare Cloud Build con altri servizi Google Cloud . Ad esempio, puoi utilizzare Vertex AI Pipelines per la valutazione automatica dei modelli, BigQuery per l'analisi dei dati su larga scala e la convalida della pipeline Dataflow per la convalida delle funzionalità.

Puoi migliorare ulteriormente la pipeline CI/CD utilizzando Vertex AI per l'addestramento continuo per consentire il riaddestramento automatico dei modelli sui nuovi dati. Nello specifico, per l'AI generativa, per mantenere gli output generati pertinenti e diversi, il riaddestramento potrebbe comportare l'aggiornamento automatico dei modelli con nuovi dati o prompt di addestramento. Puoi utilizzare Vertex AI Model Garden per selezionare i modelli di base più recenti disponibili per l'ottimizzazione. Questa pratica garantisce che i modelli rimangano aggiornati e ottimizzati per le esigenze della tua attività in evoluzione.

Implementare rilasci di modelli sicuri e controllati

Per ridurre al minimo i rischi e garantire deployment affidabili, implementa un approccio di rilascio del modello che ti consenta di rilevare i problemi in anticipo, convalidare le prestazioni ed eseguire il rollback rapidamente, se necessario.

Per pacchettizzare i tuoi modelli e le tue applicazioni di ML in immagini container ed eseguirne il deployment, utilizza Cloud Deploy. Puoi eseguire il deployment dei tuoi modelli sugli endpoint Vertex AI.

Implementa rilasci controllati per le tue applicazioni e i tuoi sistemi di AI utilizzando strategie come i canary release. Per le applicazioni che utilizzano modelli gestiti come Gemini, ti consigliamo di rilasciare gradualmente le nuove versioni dell'applicazione a un sottoinsieme di utenti prima del deployment completo. Questo approccio ti consente di rilevare potenziali problemi in anticipo, soprattutto quando utilizzi modelli di AI generativa in cui gli output possono variare.

Per rilasciare modelli ottimizzati, puoi utilizzare Cloud Deploy per gestire il deployment delle versioni del modello e utilizzare la strategia di versione canary per ridurre al minimo il rischio. Con i modelli gestiti e quelli ottimizzati, lo scopo dei rilasci controllati è testare le modifiche con un pubblico limitato prima di rilasciare le applicazioni e i modelli a tutti gli utenti.

Per una convalida solida, utilizza Vertex AI Experiments per confrontare i nuovi modelli con quelli esistenti e utilizza Vertex AI Model Evaluation per valutare le prestazioni del modello. Nello specifico per lAI generativa, definisci metriche di valutazione che siano in linea con il caso d'uso previsto e i potenziali rischi. Puoi utilizzare Gen AI evaluation service in Vertex AI per valutare metriche come tossicità, coerenza, accuratezza fattuale e rispetto delle linee guida per la sicurezza.

Per garantire l'affidabilità del deployment, è necessario un piano di rollback solido. Per i sistemi ML tradizionali, utilizza Vertex AI Model Monitoring per rilevare la deviazione dei dati e il peggioramento delle prestazioni. Per i modelli di AI generativa, puoi monitorare le metriche pertinenti e configurare avvisi per i cambiamenti nella qualità dell'output o per l'emergere di contenuti dannosi utilizzando la valutazione dei modelli di Vertex AI insieme a Cloud Logging e Cloud Monitoring. Configura gli avvisi in base a metriche specifiche dell'AI generativa per attivare le procedure di rollback quando necessario. Per monitorare la derivazione del modello e ripristinare la versione stabile più recente, utilizza gli approfondimenti di Vertex AI Model Registry.

Implementare l'osservabilità

Il comportamento dei sistemi di AI e ML può cambiare nel tempo a causa di modifiche ai dati o all'ambiente e aggiornamenti ai modelli. Questa natura dinamica rende l'osservabilità fondamentale per rilevare problemi di prestazioni, distorsioni o comportamenti inattesi. Ciò è particolarmente vero per i modelli di AI generativa perché gli output possono essere molto variabili e soggettivi. L'osservabilità ti consente di affrontare in modo proattivo comportamenti imprevisti e garantire che i tuoi sistemi di AI e ML rimangano affidabili, accurati ed equi.

Per implementare l'osservabilità per i tuoi sistemi di AI e ML, considera i seguenti suggerimenti.

Monitorare continuamente il rendimento

Utilizza metriche e criteri di successo per la valutazione continua dei modelli dopo il deployment.

Puoi utilizzare Vertex AI Model Monitoring per monitorare in modo proattivo le prestazioni del modello, identificare il disallineamento tra addestramento e servizio e la deviazione della previsione e ricevere avvisi per attivare il riaddestramento necessario del modello o altri interventi. Per monitorare in modo efficace il disallineamento addestramento/produzione, crea un set di dati di riferimento che rappresenti la distribuzione ideale dei dati e utilizza TFDV per analizzare i dati di addestramento e stabilire uno schema di base.

Configura il monitoraggio del modello per confrontare la distribuzione dei dati di input con il golden dataset per il rilevamento automatico della distorsione. Per i modelli ML tradizionali, concentrati su metriche come accuratezza, precisione, richiamo, punteggio F1, AUC-ROC e perdita logaritmica. Definisci soglie personalizzate per gli avvisi in Model Monitoring. Per l'AI generativa, utilizza il servizio di valutazione Gen AI per monitorare continuamente l'output del modello in produzione. Puoi anche attivare metriche di valutazione automatica per qualità della risposta, sicurezza, aderenza alle istruzioni, fondatezza, stile di scrittura e livello di dettaglio. Per valutare la qualità, la pertinenza, la sicurezza e il rispetto delle linee guida degli output generati, puoi incorporare la valutazione human-in-the-loop.

Crea cicli di feedback per eseguire automaticamente il retraining dei modelli con Vertex AI Pipelines quando Model Monitoring attiva un avviso. Utilizza questi approfondimenti per migliorare continuamente i tuoi modelli.

Valutare i modelli durante lo sviluppo

Prima di eseguire il deployment dei tuoi LLM e di altri modelli di AI generativa, valutali accuratamente durante la fase di sviluppo. Utilizza la valutazione dei modelli di Vertex AI per ottenere prestazioni ottimali e mitigare i rischi. Utilizza Vertex AI rapid evaluation per consentire a Google Cloud di eseguire automaticamente le valutazioni in base al set di dati e ai prompt che fornisci.

Puoi anche definire e integrare metriche personalizzate specifiche per il tuo caso d'uso. Per il feedback sui contenuti generati, integra i flussi di lavoro human-in-the-loop utilizzando la valutazione dei modelli Vertex AI.

Utilizza i test avversariali per identificare vulnerabilità e potenziali modalità di errore. Per identificare e mitigare i potenziali bias, utilizza tecniche come l'analisi dei sottogruppi e la generazione controfattuale. Utilizza gli approfondimenti raccolti dalle valutazioni completate durante la fase di sviluppo per definire la strategia di monitoraggio del modello in produzione. Prepara la soluzione per il monitoraggio continuo come descritto nella sezione Monitorare continuamente il rendimento di questo documento.

Monitorare la disponibilità

Per ottenere visibilità sull'integrità e sulle prestazioni dei tuoi endpoint e della tua infrastruttura di cui è stato eseguito il deployment, utilizza Cloud Monitoring. Per gli endpoint Vertex AI, monitora le metriche chiave come frequenza delle richieste, tasso di errore, latenza e utilizzo delle risorse e configura avvisi per le anomalie. Per ulteriori informazioni, consulta Metriche di Cloud Monitoring per Vertex AI.

Monitora l'integrità dell'infrastruttura sottostante, che può includere istanze Compute Engine, cluster Google Kubernetes Engine (GKE) e TPU e GPU. Ricevi consigli di ottimizzazione automatica da Active Assist. Se utilizzi la scalabilità automatica, monitora il comportamento di scalabilità per assicurarti che risponda in modo appropriato alle variazioni dei pattern di traffico.

Monitora lo stato dei deployment dei modelli, inclusi i rilasci canary e i rollback, integrando Cloud Deploy con Cloud Monitoring. Inoltre, monitora le potenziali minacce alla sicurezza e vulnerabilità utilizzando Security Command Center.

Configurare avvisi personalizzati per soglie specifiche per l'attività

Per l'identificazione e la rettifica tempestive di anomalie e problemi, configura avvisi personalizzati in base a soglie specifiche per gli obiettivi della tua attività. Esempi di prodotti Google Cloud che puoi utilizzare per implementare un sistema di avviso personalizzato includono:

  • Cloud Logging: Raccogli, archivia e analizza i log di tutti i componenti del tuo sistema di AI e ML.
  • Cloud Monitoring: crea dashboard personalizzate per visualizzare metriche e tendenze chiave e definisci metriche personalizzate in base alle tue esigenze. Configura gli avvisi per ricevere notifiche sui problemi critici e integra gli avvisi con gli strumenti di gestione degli incidenti come PagerDuty o Slack.
  • Error Reporting: Acquisizione e analisi automatiche di errori ed eccezioni.
  • Cloud Trace: Analizza le prestazioni dei sistemi distribuiti e identifica i colli di bottiglia. Il tracciamento è particolarmente utile per comprendere la latenza tra i diversi componenti della pipeline AI e ML.
  • Cloud Profiler: Analizza continuamente le prestazioni del codice in produzione e identifica i colli di bottiglia delle prestazioni nell'utilizzo della CPU o della memoria.

Creare una cultura dell'eccellenza operativa

Shift l'attenzione dalla semplice creazione di modelli alla creazione di soluzioni di AI sostenibili, affidabili e di grande impatto. Consente ai team di imparare, innovare e migliorare continuamente, il che porta a cicli di sviluppo più rapidi, riduzione degli errori e maggiore efficienza. Dando la priorità all'automazione, alla standardizzazione e alle considerazioni etiche, puoi assicurarti che le tue iniziative di AI e ML offrano costantemente valore, mitighino i rischi e promuovano lo sviluppo AI responsabile.

Per creare una cultura dell'eccellenza operativa per i tuoi sistemi di AI e ML, prendi in considerazione i seguenti consigli.

Promuovere l'automazione e la standardizzazione

Per enfatizzare l'efficienza e la coerenza, incorpora l'automazione e le pratiche standardizzate in ogni fase del ciclo di vita dell'AI e del machine learning. L'Automation riduce gli errori manuali e consente ai team di concentrarsi sull'innovazione. La standardizzazione garantisce che i processi siano ripetibili e scalabili tra team e progetti.

Dai la priorità all'apprendimento e al miglioramento continui

Promuovi un ambiente in cui l'istruzione e la sperimentazione continua siano principi fondamentali. Incoraggia i team a rimanere al passo con i progressi dell'AI e del ML e offri opportunità per imparare dai progetti passati. Una cultura della curiosità e dell'adattamento promuove l'innovazione e garantisce che i team siano attrezzati per affrontare nuove sfide.

Promuovere la responsabilità e la proprietà

Crea fiducia e allineamento con ruoli, responsabilità e metriche di successo chiaramente definiti. Consenti ai team di prendere decisioni informate entro questi limiti e stabilisci modi trasparenti per misurare i progressi. Un senso di appartenenza motiva i team e garantisce la responsabilità collettiva per i risultati.

Incorporare considerazioni etiche e di sicurezza dell'AI

Dai la priorità alle considerazioni etiche in ogni fase dello sviluppo. Incoraggia i team a pensare in modo critico all'impatto delle loro soluzioni di AI e promuovi discussioni su equità, pregiudizi e impatto sociale. Principi chiari e meccanismi di responsabilità garantiscono che i tuoi sistemi di AI siano in linea con i valori dell'organizzazione e promuovano la fiducia.

Progettare per la scalabilità

Per gestire volumi di dati e richieste degli utenti in crescita e massimizzare il valore degli investimenti nell'AI, i tuoi sistemi di AI e ML devono essere scalabili. I sistemi devono adattarsi e funzionare in modo ottimale per evitare colli di bottiglia delle prestazioni che ne ostacolano l'efficacia. Quando progetti per la scalabilità, ti assicuri che l'infrastruttura AI possa gestire la crescita e mantenere la reattività. Utilizza un'infrastruttura scalabile, pianifica la capacità e impiega strategie come lo scaling orizzontale e i servizi gestiti.

Per progettare i tuoi sistemi di AI e ML in modo che siano scalabili, tieni presente i seguenti consigli.

Pianificare la capacità e le quote

Valuta la crescita futura e pianifica di conseguenza la capacità dell'infrastruttura e le quote di risorse. Collabora con gli stakeholder aziendali per comprendere la crescita prevista e definisci i requisiti dell'infrastruttura di conseguenza.

Utilizza Cloud Monitoring per analizzare l'utilizzo storico delle risorse, identificare le tendenze e prevedere le esigenze future. Esegui regolarmente test di carico per simulare i carichi di lavoro e identificare i colli di bottiglia.

Familiarizza con le quoteGoogle Cloud per i servizi che utilizzi, come Compute Engine, Vertex AI e Cloud Storage. Richiedi in modo proattivo aumenti della quota tramite la console Google Cloud e giustifica gli aumenti con i dati delle previsioni e dei test di carico. Monitora l'utilizzo della quota e configura avvisi per ricevere notifiche quando l'utilizzo si avvicina ai limiti della quota.

Per ottimizzare l'utilizzo delle risorse in base alla domanda, dimensiona correttamente le risorse, utilizza le VM spot per i workload batch a tolleranza di errore e implementa la scalabilità automatica.

Prepararsi per gli eventi di picco

Assicurati che il tuo sistema sia in grado di gestire improvvisi picchi di traffico o carico di lavoro durante gli eventi di picco. Documenta la tua strategia per i picchi di eventi e conduci esercitazioni regolari per testare la capacità del tuo sistema di gestire un carico maggiore.

Per aumentare in modo aggressivo le risorse quando la domanda aumenta, configura le policy di scalabilità automatica in Compute Engine e GKE. Per pattern di picco prevedibili, valuta la possibilità di utilizzare la scalabilità automatica predittiva. Per attivare la scalabilità automatica in base a indicatori specifici dell'applicazione, utilizza metriche personalizzate in Cloud Monitoring.

Distribuisci il traffico su più istanze dell'applicazione utilizzando Cloud Load Balancing. Scegli un tipo di bilanciatore del carico appropriato in base alle esigenze della tua applicazione. Per gli utenti distribuiti geograficamente, puoi utilizzare il bilanciamento del carico globale per instradare il traffico all'istanza disponibile più vicina. Per le architetture complesse basate sui microservizi, valuta la possibilità di utilizzare Cloud Service Mesh.

Memorizza nella cache i contenuti statici all'edge della rete di Google utilizzando Cloud CDN. Per memorizzare nella cache i dati a cui si accede di frequente, puoi utilizzare Memorystore, che offre un servizio in memoria completamente gestito per Redis, Valkey o Memcached.

Disaccoppia i componenti del sistema utilizzando Pub/Sub per la messaggistica in tempo reale e Cloud Tasks per l'esecuzione asincrona delle attività

Scalare le applicazioni per la produzione

Per garantire la pubblicazione scalabile in produzione, puoi utilizzare servizi gestiti come Vertex AI Distributed Training e Vertex AI Inference. Vertex AI Inference ti consente di configurare i tipi di macchine per i nodi di previsione quando esegui il deployment di un modello in un endpoint o richiedi previsioni batch. Per alcune configurazioni, puoi aggiungere GPU. Scegli il tipo di macchina e gli acceleratori appropriati per ottimizzare latenza, velocità effettiva e costi.

Per scalare applicazioni AI e Python complesse e carichi di lavoro personalizzati su risorse di computing distribuite, puoi utilizzare Ray su Vertex AI. Questa funzionalità può contribuire a ottimizzare il rendimento e consente l'integrazione perfetta con i serviziGoogle Cloud . Ray su Vertex AI semplifica il calcolo distribuito gestendo la gestione del cluster, la pianificazione delle attività e il trasferimento dei dati. Si integra con altri servizi Vertex AI come addestramento, previsione e pipeline. Ray offre tolleranza di errore e scalabilità automatica e ti aiuta ad adattare l'infrastruttura ai carichi di lavoro variabili. Offre un framework unificato per l'addestramento distribuito, l'ottimizzazione degli iperparametri, l'apprendimento per rinforzo e la pubblicazione del modello. Utilizza Ray per la pre-elaborazione distribuita dei dati con Dataflow o Dataproc, l'addestramento accelerato dei modelli, l'ottimizzazione scalabile degli iperparametri, l'apprendimento per rinforzo e la previsione batch parallelizzata.

Collaboratori

Autori:

Altri collaboratori:

Prospettiva AI e ML: sicurezza

Questo documento della Well-Architected Framework: prospettiva di AI e ML fornisce una panoramica dei principi e dei consigli per garantire che le implementazioni di AI e ML soddisfino i requisiti di sicurezza e conformità della tua organizzazione. I suggerimenti contenuti in questo documento sono in linea con il pilastro della sicurezza del Google Cloud Well-Architected Framework.

Il deployment sicuro dei workload AI e ML è un requisito fondamentale, soprattutto negli ambienti aziendali. Per soddisfare questo requisito, devi adottare un approccio olistico alla sicurezza che inizia dalla concettualizzazione iniziale delle tue soluzioni di AI e ML e si estende a sviluppo, deployment e operazioni continue. Google Cloud offre strumenti e servizi robusti progettati per proteggere i tuoi carichi di lavoro di AI e ML.

Definisci obiettivi e requisiti chiari

È più facile integrare i controlli di sicurezza e conformità richiesti all'inizio del processo di progettazione e sviluppo, piuttosto che aggiungerli dopo lo sviluppo. Fin dall'inizio del processo di progettazione e sviluppo, prendi decisioni appropriate per il tuo ambiente di rischio specifico e per le tue priorità aziendali specifiche.

Prendi in considerazione i seguenti consigli:

  • Identifica i potenziali vettori di attacco e adotta una prospettiva di sicurezza e conformità fin dall'inizio. Durante la progettazione e l'evoluzione dei tuoi sistemi di AI, tieni traccia della superficie di attacco, dei potenziali rischi e degli obblighi che potresti dover affrontare.
  • Allinea i tuoi sforzi di sicurezza per AI e ML ai tuoi obiettivi aziendali e assicurati che la sicurezza sia parte integrante della tua strategia complessiva. Comprendere gli effetti delle tue scelte di sicurezza sui tuoi obiettivi commerciali principali.

Mantenere i dati al sicuro e prevenire perdite o gestione errata

I dati sono un asset prezioso e sensibile che deve essere protetto. La sicurezza dei dati ti aiuta a mantenere la fiducia degli utenti, supportare i tuoi obiettivi aziendali e soddisfare i requisiti di conformità.

Prendi in considerazione i seguenti consigli:

  • Non raccogliere, conservare o utilizzare dati che non sono strettamente necessari per i tuoi obiettivi aziendali. Se possibile, utilizza dati sintetici o completamente anonimizzati.
  • Monitora la raccolta, l'archiviazione e la trasformazione dei dati. Mantieni i log per tutte le attività di accesso e manipolazione dei dati. I log ti aiutano a controllare l'accesso ai dati, rilevare tentativi di accesso non autorizzati e impedire accessi indesiderati.
  • Implementa diversi livelli di accesso (ad esempio, nessun accesso, sola lettura o scrittura) in base ai ruoli utente. Assicurati che le autorizzazioni siano assegnate in base al principio del privilegio minimo. Gli utenti devono disporre solo delle autorizzazioni minime necessarie per svolgere le attività del proprio ruolo.
  • Implementa misure come la crittografia, perimetri sicuri e limitazioni al movimento dei dati. Queste misure ti aiutano a prevenire l'esfiltrazione e la perdita di dati.
  • Proteggi i tuoi sistemi di addestramento ML dall'inquinamento dei dati.

Mantenere le pipeline di AI sicure e robuste contro la manomissione

Il codice AI e ML e le pipeline definite dal codice sono asset fondamentali. Il codice non protetto può essere manomesso, il che può portare a perdite di dati, mancato rispetto della conformità e interruzione delle attività aziendali critiche. Mantenere sicuro il codice AI e ML contribuisce a garantire l'integrità e il valore dei modelli e degli output dei modelli.

Prendi in considerazione i seguenti consigli:

  • Utilizza pratiche di codifica sicure, come la gestione delle dipendenze o la convalida e la sanificazione degli input, durante lo sviluppo del modello per prevenire le vulnerabilità.
  • Proteggi il codice della pipeline e gli artefatti del modello, come file, pesi del modello e specifiche di deployment, da accessi non autorizzati. Implementa livelli di accesso diversi per ogni artefatto in base ai ruoli e alle esigenze degli utenti.
  • Applica la derivazione e il monitoraggio degli asset e delle esecuzioni della pipeline. Questa applicazione ti aiuta a soddisfare i requisiti di conformità e a evitare di compromettere i sistemi di produzione.

Esegui il deployment su sistemi sicuri con strumenti e artefatti sicuri

Assicurati che il codice e i modelli vengano eseguiti in un ambiente sicuro con un sistema di controllo dell'accesso dell'accesso solido e garanzie di sicurezza per gli strumenti e gli artefatti di cui è stato eseguito il deployment nell'ambiente.

Prendi in considerazione i seguenti consigli:

  • Addestra ed esegui il deployment dei tuoi modelli in un ambiente sicuro con controlli degli accessi e protezione adeguati contro l'utilizzo o la manipolazione non autorizzati.
  • Segui le linee guida standard di Supply-chain Levels for Software Artifacts (SLSA) per gli artefatti specifici per l'AI, come modelli e pacchetti software.
  • Preferisci utilizzare immagini container predefinite convalidate progettate specificamente per i carichi di lavoro di AI.

Proteggere e monitorare gli input

I sistemi di AI hanno bisogno di input per fare previsioni, generare contenuti o automatizzare azioni. Alcuni input potrebbero comportare rischi o essere utilizzati come vettori di attacco che devono essere rilevati e sanificati. Il rilevamento tempestivo di potenziali input dannosi ti aiuta a mantenere i tuoi sistemi AI sicuri e funzionanti come previsto.

Prendi in considerazione i seguenti consigli:

  • Implementa pratiche sicure per sviluppare e gestire i prompt per i sistemi di AI generativa e assicurati che i prompt vengano esaminati per rilevare intenti dannosi.
  • Monitora gli input dei sistemi predittivi o generativi per evitare problemi come endpoint sovraccarichi o prompt che i sistemi non sono progettati per gestire.
  • Assicurati che solo gli utenti previsti di un sistema di cui è stato eseguito il deployment possano utilizzarlo.

Monitorare, valutare e prepararsi a rispondere agli output

I sistemi di AI offrono valore perché producono risultati che aumentano, ottimizzano o automatizzano il processo decisionale umano. Per mantenere l'integrità e l'affidabilità dei tuoi sistemi e delle tue applicazioni di AI, devi assicurarti che gli output siano sicuri e rientrino nei parametri previsti. Devi anche avere un piano per rispondere agli incidenti.

Prendi in considerazione i seguenti consigli:

  • Monitora gli output dei tuoi modelli di AI e ML in produzione e identifica eventuali problemi di prestazioni, sicurezza e conformità.
  • Valuta le prestazioni del modello implementando metriche e misure di sicurezza solide, ad esempio identificando risposte generative fuori ambito o output estremi nei modelli predittivi. Raccogli feedback degli utenti sul rendimento del modello.
  • Implementa solide procedure di avviso e risposta agli incidenti per risolvere eventuali problemi.

Collaboratori

Autori:

Altri collaboratori:

Prospettiva AI e ML: affidabilità

Questo documento della Well-Architected Framework: AI and ML perspective fornisce una panoramica dei principi e dei consigli per progettare e gestire sistemi di AI e ML affidabili su Google Cloud. Il corso esplora come integrare pratiche avanzate di affidabilità e osservabilità nei tuoi progetti architetturali. I suggerimenti contenuti in questo documento sono in linea con il pilastro dell'affidabilità del Google Cloud Well-Architected Framework.

Nel panorama in rapida evoluzione dell'AI e del ML, sistemi affidabili sono essenziali per garantire la soddisfazione dei clienti e raggiungere gli obiettivi aziendali. Hai bisogno di sistemi di AI e ML robusti, affidabili e adattabili per soddisfare le esigenze uniche sia del ML predittivo che dell'AI generativa. Per gestire le complessità di MLOps, dallo sviluppo al deployment e al miglioramento continuo, devi utilizzare un approccio incentrato sull'affidabilità. Google Cloud offre un'infrastruttura di AI appositamente creata in linea con i principi di Site Reliability Engineering (SRE) e fornisce una base solida per sistemi di AI e ML affidabili.

Assicurati che l'infrastruttura sia scalabile e ad alta disponibilità

Progettando per la scalabilità e la disponibilità, consenti alle tue applicazioni di gestire livelli di domanda variabili senza interruzioni del servizio o calo delle prestazioni. Ciò significa che i tuoi servizi di AI sono comunque disponibili per gli utenti durante le interruzioni dell'infrastruttura e quando il traffico è molto elevato.

Prendi in considerazione i seguenti consigli:

  • Progetta i tuoi sistemi di AI con funzionalità di scalabilità automatica e dinamica per gestire le fluttuazioni della domanda. Ciò contribuisce a garantire prestazioni ottimali, anche durante i picchi di traffico.
  • Gestisci le risorse in modo proattivo e anticipa le esigenze future tramite test di carico e monitoraggio delle prestazioni. Utilizza i dati storici e l'analisi predittiva per prendere decisioni informate sull'allocazione delle risorse.
  • Progetta per l'alta disponibilità e la tolleranza di errore adottando gli archetipi di deployment multizona e multiregione in Google Cloud e implementando la ridondanza e la replica.
  • Distribuire il traffico in entrata su più istanze dei servizi e degli endpoint di AI e ML. Il bilanciamento del carico contribuisce a evitare il sovraccarico di una singola istanza e a garantire prestazioni e disponibilità costanti.

Utilizzare un'architettura modulare e a basso accoppiamento

Per rendere i tuoi sistemi di AI resilienti ai guasti dei singoli componenti, utilizza un'architettura modulare. Ad esempio, progetta i componenti di elaborazione e convalida dei dati come moduli separati. Quando un componente specifico non funziona, l'architettura modulare contribuisce a ridurre al minimo i tempi di inattività e consente ai tuoi team di sviluppare e implementare le correzioni più rapidamente.

Prendi in considerazione i seguenti consigli:

  • Dividi il sistema di AI e ML in piccoli moduli o componenti autonomi. Questo approccio promuove il riutilizzo del codice, semplifica i test e la manutenzione e consente di sviluppare e implementare singoli componenti in modo indipendente.
  • Progetta i moduli a basso accoppiamento con interfacce ben definite. Questo approccio riduce al minimo le dipendenze e ti consente di apportare aggiornamenti e modifiche indipendenti senza influire sull'intero sistema.
  • Pianifica la riduzione controllata. Quando un componente non funziona, le altre parti del sistema devono continuare a fornire un livello adeguato di funzionalità.
  • Utilizza le API per creare limiti chiari tra i moduli e per nascondere i dettagli di implementazione a livello di modulo. Questo approccio ti consente di aggiornare o sostituire singoli componenti senza influire sulle interazioni con altre parti del sistema.

Creare una piattaforma MLOps automatizzata

Con una piattaforma MLOps automatizzata, le fasi e gli output del ciclo di vita del modello sono più affidabili. Promuovendo la coerenza, l'basso accoppiamento e la modularità ed esprimendo le operazioni e l'infrastruttura come codice, elimini i passaggi manuali fragili e mantieni sistemi di AI e ML più solidi e affidabili.

Prendi in considerazione i seguenti consigli:

  • Automatizza il ciclo di vita di sviluppo del modello, dalla preparazione e convalida dei dati all'addestramento, alla valutazione, al deployment e al monitoraggio del modello.
  • Gestisci la tua infrastruttura come codice (IaC). Questo approccio consente un controllo efficiente delle versioni, rollback rapidi quando necessario e deployment ripetibili.
  • Verifica che i modelli si comportino come previsto con i dati pertinenti. Automatizza il monitoraggio delle prestazioni dei tuoi modelli e crea avvisi appropriati per output imprevisti.
  • Convalida gli input e gli output delle pipeline di AI e ML. Ad esempio, convalida dati, configurazioni, argomenti dei comandi, file e previsioni. Configura avvisi per valori imprevisti o non consentiti.
  • Adotta una strategia di controllo della versione gestita per gli endpoint del modello. Questo tipo di strategia consente rilasci incrementali e un rapido ripristino in caso di problemi.

Mantenere la fiducia e il controllo tramite la governance di dati e modelli

L'affidabilità dei sistemi di AI e ML dipende dalle funzionalità di trust e governance dei tuoi dati e modelli. Gli output dell'AI possono non soddisfare le aspettative in modo silenzioso. Ad esempio, gli output potrebbero essere coerenti dal punto di vista formale, ma potrebbero essere errati o indesiderati. Implementando la tracciabilità e una governance solida, puoi assicurarti che gli output siano affidabili e attendibili.

Prendi in considerazione i seguenti consigli:

  • Utilizza un catalogo di dati e modelli per monitorare e gestire in modo efficace le tue risorse. Per facilitare la tracciabilità e gli audit, mantieni un record completo delle versioni di dati e modelli durante tutto il ciclo di vita.
  • Implementa controlli di accesso e audit trail rigorosi per proteggere dati e modelli sensibili.
  • Affrontare il problema critico dei bias nell'AI, in particolare nelle applicazioni di AI generativa. Per creare fiducia, punta alla trasparenza e alla spiegabilità negli output del modello.
  • Automatizza la generazione di statistiche sulle funzionalità e implementa il rilevamento di anomalie per identificare in modo proattivo i problemi relativi ai dati. Per garantire l'affidabilità del modello, stabilisci meccanismi per rilevare e mitigare l'impatto delle variazioni nelle distribuzioni dei dati.

Implementa pratiche olistiche di osservabilità e affidabilità di AI e ML

Per migliorare continuamente le operazioni di AI, devi definire obiettivi di affidabilità significativi e misurare i progressi. L'osservabilità è un elemento fondamentale dei sistemi affidabili. L'osservabilità ti consente di gestire le operazioni in corso e gli eventi critici. L'osservabilità ben implementata ti aiuta a creare e mantenere un servizio affidabile per i tuoi utenti.

Prendi in considerazione i seguenti consigli:

  • Monitora le metriche dell'infrastruttura per i processori (CPU, GPU e TPU) e per altre risorse come l'utilizzo della memoria, la latenza di rete e l'utilizzo del disco. Esegui test di carico e monitoraggio delle prestazioni. Utilizza i risultati e le metriche dei test del monitoraggio per gestire lo scaling e la capacità dei tuoi sistemi di AI e ML.
  • Definisci obiettivi di affidabilità e monitora le metriche delle applicazioni. Misura metriche come velocità effettiva e latenza per le applicazioni AI che crei. Monitora i pattern di utilizzo delle tue applicazioni e degli endpoint esposti.
  • Definisci metriche specifiche del modello, come indicatori di accuratezza o sicurezza, per valutare l'affidabilità del modello. Monitora queste metriche nel tempo per identificare eventuali deviazioni o degradazioni. Per un controllo della versione e un'automazione efficienti, definisci le configurazioni di monitoraggio come codice.
  • Definisci e monitora le metriche a livello aziendale per comprendere l'impatto dei tuoi modelli e dell'affidabilità sui risultati aziendali. Per misurare l'affidabilità dei tuoi servizi AI e ML, valuta la possibilità di adottare l'approccio SRE e definisci gli obiettivi del livello di servizio (SLO).

Collaboratori

Autori:

Altri collaboratori:

Prospettiva AI e ML: ottimizzazione dei costi

Questo documento in Well-Architected Framework: prospettiva AI e ML fornisce una panoramica dei principi e dei suggerimenti per ottimizzare il costo dei sistemi di AI durante il ciclo di vita del machine learning. Adottando un approccio proattivo e informato alla gestione dei costi, la tua organizzazione può realizzare tutto il potenziale dei sistemi AI e ML e mantenere la disciplina finanziaria. I suggerimenti contenuti in questo documento sono in linea con il pilastro dell'ottimizzazione dei costi del Google Cloud Well-Architected Framework.

I sistemi di AI e ML possono aiutarti a ottenere approfondimenti preziosi e funzionalità predittive dai dati. Ad esempio, puoi ridurre gli attriti nei processi interni, migliorare l'esperienza utente e ottenere insight più approfonditi sui clienti. Il cloud offre grandi quantità di risorse e un time-to-value rapido senza grandi investimenti iniziali per i carichi di lavoro di AI e ML. Per massimizzare il valore aziendale e allineare la spesa agli obiettivi aziendali, devi comprendere i fattori di costo, ottimizzare in modo proattivo i costi, configurare i controlli della spesa e adottare le pratiche FinOps.

I consigli contenuti in questo documento sono mappati ai seguenti principi fondamentali:

Definisci e misura costi e rendimenti

Per gestire in modo efficace i costi di AI e ML in Google Cloud, devi definire e misurare i costi delle risorse cloud e il valore aziendale delle tue iniziative di AI e ML. Per aiutarti a monitorare le spese in modo granulare, Google Cloud fornisce strumenti completi di fatturazione e gestione dei costi, ad esempio:

  • Report e tabelle della fatturazione Cloud
  • Dashboard, budget e avvisi di Looker Studio
  • Cloud Monitoring
  • Cloud Logging

Per prendere decisioni informate sull'allocazione e l'ottimizzazione delle risorse, tieni presente i seguenti suggerimenti.

Stabilisci gli obiettivi commerciali e i KPI

Allinea le scelte tecniche nei tuoi progetti di AI e ML agli obiettivi aziendali e agli indicatori chiave di prestazione (KPI).

Definisci obiettivi strategici e KPI incentrati sul ROI

Assicurati che i progetti di AI e ML siano in linea con gli obiettivi strategici, come crescita del fatturato, riduzione dei costi, soddisfazione dei clienti ed efficienza. Coinvolgi gli stakeholder per comprendere le priorità aziendali. Definisci obiettivi di AI e ML che siano specifici, misurabili, attuabili, pertinenti e in un tempo definito (SMART). Ad esempio, un obiettivo SMART è: "Ridurre del 15% in 6 mesi il tempo di gestione delle chat per l'assistenza clienti utilizzando un chatbot AI".

Per fare progressi verso i tuoi obiettivi commerciali e misurare il ritorno sull'investimento (ROI), definisci i KPI per le seguenti categorie di metriche:

  • Costi per risorse di addestramento, inferenza, archiviazione e rete, inclusi costi unitari specifici (ad esempio il costo per inferenza, punto dati o attività). Queste metriche ti aiutano a ottenere informazioni sulle opportunità di efficienza e ottimizzazione dei costi. Puoi monitorare questi costi utilizzando i report di fatturazione Cloud e i pannelli di Cloud Monitoring.
  • Metriche sul valore aziendale come crescita delle entrate, risparmio sui costi, soddisfazione dei clienti, efficienza, precisione e adozione. Puoi monitorare queste metriche utilizzando BigQuery Analytics e dashboard Looker.
  • Metriche specifiche del settore, come le seguenti:

    • Settore della vendita al dettaglio: misura l'incremento delle entrate e il churn
    • Settore sanitario: misura il tempo dei pazienti e i risultati per i pazienti
    • Settore finanziario: misura la riduzione delle frodi
  • Metriche specifiche del progetto. Puoi monitorare queste metriche utilizzando Vertex AI Experiments e valutazione.

    • AI predittiva: misura l'accuratezza e la precisione
    • AI generativa: misura l'adozione, la soddisfazione e la qualità dei contenuti
    • AI per la visione artificiale: misura l'accuratezza

Promuovere una cultura della consapevolezza dei costi e dell'ottimizzazione continua

Adotta i principi di FinOps per garantire che ogni progetto di AI e ML abbia costi stimati e modi per misurare e monitorare i costi effettivi durante il suo ciclo di vita. Assicurati che i costi e i vantaggi aziendali dei tuoi progetti abbiano proprietari assegnati e una responsabilità chiara.

Per ulteriori informazioni, consulta Promuovere una cultura della consapevolezza dei costi nel pilastro Ottimizzazione dei costi del Google Cloud Well-Architected Framework.

Generare valore e ottimizzazione continua tramite iterazione e feedback

Mappa le tue applicazioni di AI e ML direttamente in base ai tuoi obiettivi aziendali e misura il ROI.

Per convalidare le ipotesi sul ROI, inizia con progetti pilota e utilizza il seguente ciclo di ottimizzazione iterativo:

  1. Monitora continuamente e analizza i dati: monitora i KPI e i costi per identificare deviazioni e opportunità di ottimizzazione.
  2. Apportare modifiche basate sui dati: ottimizza strategie, modelli, infrastruttura e allocazione delle risorse in base agli approfondimenti sui dati.
  3. Perfezionamento iterativo: adatta gli obiettivi aziendali e i KPI in base a ciò che hai imparato e alle esigenze aziendali in evoluzione. Questa iterazione ti aiuta a mantenere la pertinenza e l'allineamento strategico.
  4. Crea un ciclo di feedback: esamina il rendimento, i costi e il valore con gli stakeholder per informare l'ottimizzazione continua e la pianificazione dei progetti futuri.

Gestire i dati di fatturazione con la fatturazione Cloud e le etichette

Un'ottimizzazione efficace dei costi richiede visibilità sull'origine di ogni elemento di costo. I suggerimenti in questa sezione possono aiutarti a utilizzare Google Cloud strumenti per ottenere informazioni dettagliate sui costi di AI e ML. Puoi anche attribuire i costi a progetti, team e attività specifici di AI e ML. Questi approfondimenti pongono le basi per l'ottimizzazione dei costi.

Organizzare ed etichettare le risorse Google Cloud

  • Struttura i tuoi progetti e le tue risorse in una gerarchia che rifletta la tua struttura organizzativa e i tuoi flussi di lavoro di AI e ML. Per monitorare e analizzare i costi a diversi livelli, organizza le risorse Google Cloud utilizzando organizzazioni, cartelle e progetti. Per ulteriori informazioni, vedi Decidere una gerarchia delle risorse per la Google Cloud landing zone.
  • Applica etichette significative alle tue risorse. Puoi utilizzare etichette che indicano il progetto, il team, l'ambiente, il nome del modello, il set di dati, il caso d'uso e i requisiti di rendimento. Le etichette forniscono un contesto prezioso per i dati di fatturazione e consentono un'analisi granulare dei costi.
  • Mantieni la coerenza nelle convenzioni di etichettatura in tutti i tuoi progetti di AI e ML. Convenzioni di etichettatura coerenti garantiscono che i dati di fatturazione siano organizzati e possano essere analizzati facilmente.
  • Per facilitare l'analisi e la generazione di report dettagliati, esporta i dati di fatturazione in BigQuery. BigQuery offre potenti funzionalità di query che ti consentono di analizzare i dati di fatturazione per comprendere meglio i costi.
  • Per aggregare i costi per etichette, progetti o periodi di tempo specifici, puoi scrivere query SQL personalizzate in BigQuery. Queste query ti consentono di attribuire i costi ad attività specifiche di AI e ML, come l'addestramento del modello, l'ottimizzazione degli iperparametri o l'inferenza.
  • Per identificare anomalie nei costi o picchi di spesa imprevisti, utilizza le funzionalità di analisi di BigQuery. Questo approccio può aiutarti a rilevare potenziali problemi o inefficienze nei tuoi carichi di lavoro di AI e ML.
  • Per identificare e gestire i costi imprevisti, utilizza la dashboard di rilevamento delle anomalie nel fatturazione Cloud.
  • Per distribuire i costi tra team o reparti diversi in base all'utilizzo delle risorse, utilizza la funzionalità di allocazione dei costi di Google Cloud. L'allocazione dei costi promuove la responsabilità e la trasparenza.
  • Per ottenere informazioni sui modelli di spesa, esplora i report di fatturazione Cloud predefiniti. Puoi filtrare e personalizzare questi report per concentrarti su progetti o servizi specifici di AI e ML.

Monitorare continuamente le risorse con dashboard, avvisi e report

Per creare un modo scalabile e resiliente per monitorare i costi, devi monitorare e generare report in modo continuo. Dashboard, avvisi e report costituiscono la base per un monitoraggio efficace dei costi. Questa base ti consente di mantenere l'accesso costante alle informazioni sui costi, identificare le aree di ottimizzazione e garantire l'allineamento tra gli obiettivi aziendali e i costi.

Creare un sistema di segnalazione

Crea report pianificati e condividili con gli stakeholder appropriati.

Utilizza Cloud Monitoring per raccogliere metriche da varie origini, tra cui applicazioni, infrastruttura e Google Cloud servizi come Compute Engine, Google Kubernetes Engine (GKE) e le funzioni Cloud Run. Per visualizzare metriche e log in tempo reale, puoi utilizzare la dashboard di Cloud Monitoring predefinita o creare dashboard personalizzate. Le dashboard personalizzate ti consentono di definire e aggiungere metriche per monitorare aspetti specifici dei tuoi sistemi, come il rendimento del modello, le chiamate API o i KPI a livello aziendale.

Utilizza Cloud Logging per la raccolta e l'archiviazione centralizzate dei log delle tue applicazioni, dei tuoi sistemi e dei tuoi servizi. Google Cloud Utilizza i log per i seguenti scopi:

  • Monitora i costi e l'utilizzo di risorse come CPU, memoria, spazio di archiviazione e rete.
  • Identifica i casi di over-provisioning (in cui le risorse non vengono utilizzate completamente) e di under-provisioning (in cui le risorse sono insufficienti). Il provisioning eccessivo comporta costi inutili. Il provisioning insufficiente rallenta i tempi di addestramento e potrebbe causare problemi di prestazioni.
  • Identifica le risorse inattive o sottoutilizzate, come VM e GPU, e adotta misure per arrestarle o dimensionarle correttamente per ottimizzare i costi.
  • Identifica i picchi di costi per rilevare aumenti improvvisi e imprevisti dell'utilizzo delle risorse o dei costi.

Utilizza Looker o Looker Studio per creare dashboard e report interattivi. Collega i dashboard e i report a varie origini dati, tra cui BigQuery e Cloud Monitoring.

Impostare le soglie di avviso in base ai KPI chiave

Per i KPI, determina le soglie che devono attivare gli avvisi. Soglie di avviso significative possono aiutarti a evitare l'affaticamento da avvisi. Crea criteri di avviso in Cloud Monitoring per ricevere notifiche relative ai tuoi KPI. Ad esempio, puoi ricevere notifiche quando l'accuratezza scende al di sotto di una determinata soglia o la latenza supera un limite definito. Gli avvisi basati sui dati di log possono informarti in tempo reale di potenziali problemi di costi. Questi avvisi ti consentono di intraprendere azioni correttive tempestive ed evitare ulteriori perdite finanziarie.

Ottimizzare l'allocazione delle risorse

Per ottenere l'efficienza dei costi per i tuoi carichi di lavoro AI e ML in Google Cloud, devi ottimizzare l'allocazione delle risorse. Per aiutarti a evitare spese inutili e garantire che i tuoi carichi di lavoro dispongano delle risorse necessarie per funzionare in modo ottimale, allinea l'allocazione delle risorse alle esigenze dei tuoi carichi di lavoro.

Per ottimizzare l'allocazione delle risorse cloud ai carichi di lavoro AI e ML, prendi in considerazione i seguenti suggerimenti.

Utilizza la scalabilità automatica per adattare dinamicamente le risorse

Utilizza Google Cloud servizi che supportano la scalabilità automatica, che regola automaticamente l'allocazione delle risorse in base alla domanda attuale. La scalabilità automatica offre i seguenti vantaggi:

  • Ottimizzazione dei costi e delle prestazioni: eviti di pagare per le risorse inattive. Allo stesso tempo, la scalabilità automatica garantisce che i sistemi dispongano delle risorse necessarie per funzionare in modo ottimale, anche in caso di picchi di carico.
  • Maggiore efficienza: il tuo team può concentrarsi su altre attività.
  • Maggiore agilità: puoi rispondere rapidamente alle mutevoli esigenze e mantenere un'elevata disponibilità per le tue applicazioni.

La seguente tabella riassume le tecniche che puoi utilizzare per implementare lo scaling automatico per le diverse fasi dei tuoi progetti di AI.

Fase Tecniche di scalabilità automatica
Formazione
  • Utilizza servizi gestiti come Vertex AI o GKE, che offrono funzionalità di scalabilità automatica integrate per i job di addestramento.
  • Configura i criteri di scalabilità automatica per scalare il numero di istanze di addestramento in base a metriche come l'utilizzo della CPU, l'utilizzo della memoria e la lunghezza della coda dei job.
  • Utilizza metriche di scalabilità personalizzate per perfezionare il comportamento della scalabilità automatica per i tuoi carichi di lavoro specifici.
Inferenza
  • Esegui il deployment dei modelli su piattaforme scalabili come Vertex AI Inference, GPU su GKE, o TPU su GKE.
  • Utilizza le funzionalità di scalabilità automatica per regolare il numero di repliche in base a metriche come il tasso di richieste, la latenza e l'utilizzo delle risorse.
  • Implementa il bilanciamento del carico per distribuire il traffico in modo uniforme tra le repliche e garantire l'alta affidabilità.

Inizia con modelli e set di dati di piccole dimensioni

Per ridurre i costi, testa le ipotesi di ML su piccola scala, se possibile, e utilizza un approccio iterativo. Questo approccio, con modelli e set di dati più piccoli, offre i seguenti vantaggi:

  • Costi ridotti fin dall'inizio: meno potenza di calcolo, spazio di archiviazione e tempo di elaborazione possono comportare costi inferiori durante le fasi iniziali di sperimentazione e sviluppo.
  • Iterazione più rapida: è necessario meno tempo di addestramento, il che ti consente di iterare più rapidamente, esplorare approcci alternativi e identificare direzioni promettenti in modo più efficiente.
  • Complessità ridotta: debug, analisi e interpretazione dei risultati più semplici, il che porta a cicli di sviluppo più rapidi.
  • Utilizzo efficiente delle risorse: ridotta probabilità di provisioning eccessivo delle risorse. Esegui il provisioning solo delle risorse necessarie per il carico di lavoro attuale.

Prendi in considerazione i seguenti consigli:

  • Utilizza prima i dati di esempio: addestra i modelli su un sottoinsieme rappresentativo dei tuoi dati. Questo approccio ti consente di valutare le prestazioni del modello e identificare potenziali problemi senza elaborare l'intero set di dati.
  • Sperimenta utilizzando i notebook: inizia con istanze più piccole e scalale in base alle esigenze. Puoi utilizzare Vertex AI Workbench, un ambiente di notebook Jupyter gestito, ideale per sperimentare diverse architetture di modelli e set di dati.
  • Inizia con modelli più semplici o preaddestrati: utilizza Vertex AI Model Garden per scoprire ed esplorare i modelli preaddestrati. Questi modelli richiedono meno risorse di calcolo. Aumenta gradualmente la complessità in base alle esigenze di rendimento.

    • Utilizza modelli preaddestrati per attività come la classificazione delle immagini e l'elaborazione del linguaggio naturale. Per risparmiare sui costi di addestramento, puoi ottimizzare i modelli inizialmente su set di dati più piccoli.
    • Utilizza BigQuery ML per i dati strutturati. BigQuery ML ti consente di creare ed eseguire il deployment di modelli direttamente in BigQuery. Questo approccio può essere conveniente per la sperimentazione iniziale, perché puoi sfruttare il modello di prezzi con pagamento per query per BigQuery.
  • Scalabilità per l'ottimizzazione delle risorse: utilizza l'infrastruttura flessibile di Google Cloudper scalare le risorse in base alle esigenze. Inizia con istanze più piccole e regola le dimensioni o il numero quando necessario.

Scopri i requisiti delle risorse tramite la sperimentazione

I requisiti delle risorse per i carichi di lavoro di AI e ML possono variare in modo significativo. Per ottimizzare l'allocazione delle risorse e i costi, devi comprendere le esigenze specifiche dei tuoi workload attraverso una sperimentazione sistematica. Per identificare la configurazione più efficiente per i tuoi modelli, prova diverse configurazioni e analizza il loro rendimento. Poi, in base ai requisiti, dimensiona correttamente le risorse che hai utilizzato per l'addestramento e la pubblicazione.

Ti consigliamo il seguente approccio per la sperimentazione:

  1. Inizia con una baseline: inizia con una configurazione di base basata sulle stime iniziali dei requisiti del workload. Per creare una baseline, puoi utilizzare lo strumento di stima dei costi per i nuovi carichi di lavoro o un report di fatturazione esistente. Per ulteriori informazioni, consulta Unlock the true cost of enterprise AI on Google Cloud.
  2. Comprendi le tue quote: prima di lanciare esperimenti su larga scala, familiarizza con le quote del tuo Google Cloud progetto per le risorse e le API che prevedi di utilizzare. Le quote determinano l'intervallo di configurazioni che puoi testare in modo realistico. Se acquisisci familiarità con le quote, puoi lavorare entro i limiti delle risorse disponibili durante la fase di sperimentazione.
  3. Sperimenta in modo sistematico: modifica parametri come il numero di CPU, la quantità di memoria, il numero e il tipo di GPU e TPU e la capacità di archiviazione. Vertex AI Training e Vertex AI Predictions ti consentono di sperimentare diversi tipi e configurazioni di macchine.
  4. Monitora utilizzo, costi e prestazioni: monitora l'utilizzo delle risorse, i costi e le metriche chiave delle prestazioni, come il tempo di addestramento, la latenza di inferenza e l'accuratezza del modello, per ogni configurazione che sperimenti.

    • Per monitorare l'utilizzo delle risorse e le metriche sulle prestazioni, puoi utilizzare la console Vertex AI.
    • Per raccogliere e analizzare metriche dettagliate sul rendimento, utilizza Cloud Monitoring.
    • Per visualizzare i costi, utilizza i report di fatturazione Cloud e le dashboard di Cloud Monitoring.
    • Per identificare i colli di bottiglia nelle prestazioni dei tuoi modelli e ottimizzare l'utilizzo delle risorse, utilizza strumenti di profilazione come Vertex AI TensorBoard.
  5. Analizza i costi: confronta il costo e le prestazioni di ogni configurazione per identificare l'opzione più conveniente.

  6. Stabilisci soglie delle risorse e target di miglioramento in base alle quote: definisci le soglie per quando lo scaling inizia a produrre rendimenti decrescenti in termini di prestazioni, ad esempio una riduzione minima del tempo di addestramento o della latenza per un aumento significativo dei costi. Quando imposti queste soglie, tieni conto delle quote del progetto. Determina il punto in cui il costo e le potenziali implicazioni della quota di un ulteriore scalabilità non sono più giustificati dai miglioramenti delle prestazioni.

  7. Perfezionamento iterativo: ripeti il processo di sperimentazione con configurazioni perfezionate in base ai risultati. Assicurati sempre che l'utilizzo delle risorse rimanga entro le quote assegnate e sia in linea con le soglie di costi-benefici stabilite.

Utilizzare MLOps per ridurre le inefficienze

Man mano che le organizzazioni utilizzano sempre più il ML per promuovere l'innovazione e l'efficienza, la gestione efficace del ciclo di vita del ML diventa fondamentale. Le operazioni di machine learning (MLOps) sono un insieme di pratiche che automatizzano e semplificano il ciclo di vita del ML, dallo sviluppo del modello al deployment e al monitoraggio.

Allineare MLOps ai fattori di costo

Per sfruttare MLOps per l'efficienza dei costi, identifica i principali fattori di costo nel ciclo di vita del machine learning. A questo punto, puoi adottare e implementare pratiche MLOps in linea con i fattori di costo. Dai la priorità e adotta le funzionalità MLOps che riguardano i fattori di costo più significativi. Questo approccio contribuisce a garantire un percorso gestibile e di successo verso un risparmio significativo dei costi.

Implementare MLOps per l'ottimizzazione dei costi

Di seguito sono riportate alcune pratiche MLOps comuni che contribuiscono a ridurre i costi:

  • Controllo della versione: strumenti come Git possono aiutarti a monitorare le versioni di codice, dati e modelli. Il controllo delle versioni garantisce la riproducibilità, facilita la collaborazione e previene costose rielaborazioni che possono essere causate da problemi di controllo delle versioni.
  • Integrazione e distribuzione continue (CI/CD): Cloud Build e Artifact Registry ti consentono di implementare pipeline CI/CD per automatizzare la creazione, il test e il deployment dei tuoi modelli di ML. Le pipeline CI/CD garantiscono un utilizzo efficiente delle risorse e riducono al minimo i costi associati agli interventi manuali.
  • Osservabilità: Cloud Monitoring e Cloud Logging ti consentono di monitorare le prestazioni del modello in produzione, identificare i problemi e attivare avvisi per un intervento proattivo. L'osservabilità ti consente di mantenere l'accuratezza del modello, ottimizzare l'allocazione delle risorse ed evitare costosi tempi di inattività o un calo delle prestazioni.
  • Riapprendimento del modello: Vertex AI Pipelines semplifica le procedure per il riaddestramento periodico dei modelli o quando le prestazioni peggiorano. Quando utilizzi Vertex AI Pipelines per il retraining, contribuisci a garantire che i tuoi modelli rimangano accurati ed efficienti, il che può impedire il consumo non necessario di risorse e mantenere prestazioni ottimali.
  • Test e valutazione automatizzati: Vertex AI ti aiuta ad accelerare e standardizzare la valutazione dei modelli. Implementa test automatizzati durante l'intero ciclo di vita del ML per garantire la qualità e l'affidabilità dei tuoi modelli. Questi test possono aiutarti a rilevare gli errori in anticipo, a evitare problemi costosi in produzione e a ridurre la necessità di test manuali approfonditi.

Per saperne di più, consulta MLOps: pipeline di distribuzione continua e automazione nel machine learning.

Applicare le pratiche di gestione e governance dei dati

Pratiche efficaci di gestione e governance dei dati sono fondamentali per l'ottimizzazione dei costi. Dati ben organizzati possono incoraggiare i team a riutilizzare i set di dati, evitare duplicazioni inutili e ridurre l'impegno necessario per ottenere dati di alta qualità. Gestendo in modo proattivo i dati, puoi ridurre i costi di archiviazione, migliorare la qualità dei dati e assicurarti che i tuoi modelli ML vengano addestrati sui dati più pertinenti e preziosi.

Per implementare pratiche di gestione e governance dei dati, prendi in considerazione i seguenti suggerimenti.

Stabilire e adottare un framework di governance dei dati

La crescente importanza dell'AI e del ML ha reso i dati l'asset più prezioso per le organizzazioni che stanno subendo una trasformazione digitale. Un framework solido per la governance dei dati è un requisito fondamentale per gestire i workload di AI e ML in modo economicamente vantaggioso su larga scala. Un framework di governance dei dati con criteri, procedure e ruoli chiaramente definiti fornisce un approccio strutturato per la gestione dei dati durante il loro ciclo di vita. Un framework di questo tipo contribuisce a migliorare la qualità dei dati, aumentare la sicurezza, migliorare l'utilizzo e ridurre la ridondanza.

Stabilire un framework di governance dei dati

Esistono molti framework preesistenti per la governance dei dati, come quelli pubblicati dall'EDM Council, con opzioni disponibili per diversi settori e dimensioni dell'organizzazione. Scegli e adatta un framework in linea con le tue esigenze e priorità specifiche.

Implementa il framework di governance dei dati

Google Cloud fornisce i seguenti servizi e strumenti per aiutarti a implementare un framework di governance dei dati solido:

  • Dataplex Universal Catalog è un data fabric intelligente che consente di unificare i dati distribuiti e automatizzare la governance dei dati senza la necessità di consolidare i set di dati in un unico luogo. Ciò contribuisce a ridurre i costi di distribuzione e manutenzione dei dati, a facilitare l'individuazione dei dati e a promuovere il riutilizzo.

  • Dataplex Universal Catalog è anche un servizio di gestione dei metadati completamente gestito e scalabile. Il catalogo fornisce una base che garantisce che gli asset di dati siano accessibili e riutilizzabili.

    • I metadati delle origini Google Cloud supportate vengono importati automaticamente nel catalogo universale. Per le origini dati al di fuori di Google Cloud, crea voci personalizzate.
    • Per migliorare l'individuazione e la gestione degli asset di dati, arricchisci i metadati tecnici con metadati aziendali utilizzando gli aspetti.
    • Assicurati che i data scientist e i professionisti del machine learning dispongano di autorizzazioni sufficienti per accedere a Dataplex Universal Catalog e utilizzare la funzione di ricerca.
  • La condivisione di BigQuery consente di scambiare in modo efficiente e sicuro gli asset di dati tra le tue organizzazioni per far fronte alle sfide legate all'affidabilità e al costo dei dati.

    • Configura Data Exchange e assicurati che gli asset di dati selezionati possano essere visualizzati come schede.
    • Utilizza le data clean room per gestire in modo sicuro l'accesso ai dati sensibili e collaborare in modo efficiente con team e organizzazioni esterni a progetti di AI e ML.
    • Assicurati che i data scientist e i professionisti di ML dispongano di autorizzazioni sufficienti per visualizzare e pubblicare i set di dati nella condivisione BigQuery.

Rendi riutilizzabili i set di dati e le funzionalità durante tutto il ciclo di vita di ML

Per ottenere vantaggi significativi in termini di efficienza e costi, riutilizza set di dati e funzionalità in più progetti di machine learning. Se eviti attività ridondanti di data engineering e sviluppo di funzionalità, la tua organizzazione può accelerare lo sviluppo del modello, ridurre i costi dell'infrastruttura e liberare risorse preziose per altre attività critiche.

Google Cloud fornisce i seguenti servizi e strumenti per aiutarti a riutilizzare dataset e funzionalità:

  • Gli esperti di dati e ML possono pubblicare prodotti di dati per massimizzare il riutilizzo tra i team. I prodotti di dati possono quindi essere scoperti e utilizzati tramite Dataplex Universal Catalog e la condivisione di BigQuery.
  • Per i set di dati tabulari e strutturati, puoi utilizzare Vertex AI Feature Store per promuovere la riutilizzabilità e semplificare la gestione delle funzionalità tramite BigQuery.
  • Puoi archiviare dati non strutturati in Cloud Storage e gestirli utilizzando tabelle degli oggetti BigQuery e URL firmati.
  • Puoi gestire gli embedding vettoriali includendo i metadati negli indici Vector Search.

Automatizzare e semplificare con MLOps

Uno dei principali vantaggi dell'adozione delle pratiche MLOps è la riduzione dei costi per la tecnologia e il personale. L'Automation ti aiuta a evitare la duplicazione delle attività di ML e a ridurre il carico di lavoro per data scientist e ingegneri ML.

Per automatizzare e semplificare lo sviluppo ML con MLOps, prendi in considerazione i seguenti suggerimenti.

Automatizzare e standardizzare la raccolta e l'elaborazione dei dati

Per ridurre l'impegno e il tempo di sviluppo dell'ML, automatizza e standardizza le tecnologie di raccolta ed elaborazione dei dati.

Automatizzare la raccolta e l'elaborazione dei dati

Questa sezione riassume i prodotti, gli strumenti e le tecniche che puoi utilizzare per automatizzare la raccolta e il trattamento dei dati.

Identifica e scegli le origini dati pertinenti per le tue attività di AI e ML:

Per ogni origine dati, scegli uno strumento di importazione:

  • Dataflow: per l'elaborazione batch e in streaming dei dati provenienti da varie origini, con integrazione dei componenti ML. Per un'architettura basata sugli eventi, puoi combinare Dataflow con Eventarc per elaborare in modo efficiente i dati per il machine learning. Per migliorare l'efficienza dei job MLOps e ML, utilizza le funzionalità GPU e di adattamento ottimale.
  • Funzioni Cloud Run: Per l'importazione dati basata su eventi che viene attivata dalle modifiche alle origini dati per le applicazioni in tempo reale.
  • BigQuery: per l'importazione dati tabulari classici con accesso frequente.

Scegli gli strumenti per la trasformazione e il caricamento dei dati:

  • Utilizza strumenti come Dataflow o Dataform per automatizzare le trasformazioni dei dati, come il ridimensionamento delle funzionalità, la codifica delle variabili categoriche e la creazione di nuove funzionalità in batch, in streaming o in tempo reale. Gli strumenti che selezioni dipendono dai tuoi requisiti e dai servizi scelti.
  • Utilizza Vertex AI Feature Store per automatizzare la creazione e la gestione delle caratteristiche. Puoi centralizzare le funzionalità per riutilizzarle in diversi modelli e progetti.

Standardizzare la raccolta e l'elaborazione dei dati

Per scoprire, comprendere e gestire gli asset di dati, utilizza servizi di gestione dei metadati come Dataplex Universal Catalog. Ti aiuta a standardizzare le definizioni dei dati e a garantire la coerenza in tutta l'organizzazione.

Per applicare la standardizzazione ed evitare il costo di gestione di più implementazioni personalizzate, utilizza pipeline di addestramento e orchestrazione automatizzate. Per ulteriori informazioni, consulta la sezione successiva.

Automatizzare le pipeline di addestramento e riutilizzare gli asset esistenti

Per aumentare l'efficienza e la produttività in MLOps, le pipeline di addestramento automatizzate sono fondamentali. Google Cloud offre un solido insieme di strumenti e servizi per creare ed eseguire il deployment di pipeline di addestramento, con una forte enfasi sul riutilizzo di asset esistenti. Le pipeline di addestramento automatizzate contribuiscono ad accelerare lo sviluppo del modello, garantiscono la coerenza e riducono gli sforzi ridondanti.

Automatizzare le pipeline di addestramento

La tabella seguente descrive i Google Cloud servizi e le funzionalità che puoi utilizzare per automatizzare le diverse funzioni di una pipeline di addestramento.

Funzione Google Cloud servizi e funzionalità
Orchestrazione: definisci flussi di lavoro ML complessi costituiti da più passaggi e dipendenze. Puoi definire ogni passaggio come un'attività in contenitori separata, il che ti aiuta a gestire e scalare facilmente le singole attività.
  • Per creare e orchestrare le pipeline, utilizza Vertex AI Pipelines o Kubeflow Pipelines. Questi strumenti supportano la trasformazione semplice dei dati, l'addestramento del modello, il deployment del modello e il controllo delle versioni della pipeline. Ti consentono di definire le dipendenze tra i passaggi, gestire il flusso di dati e automatizzare l'esecuzione dell'intero workflow.
  • Per attività operative complesse con requisiti elevati di CI/CD ed estrazione, trasformazione e caricamento (ETL), utilizza Cloud Composer. Se preferisci Airflow per l'orchestrazione dei dati, Cloud Composer è un servizio gestito compatibile basato su Airflow.
  • Per le pipeline gestite al di fuori di Vertex AI Pipelines, utilizza Workflows per attività incentrate sull'infrastruttura, come l'avvio e l'arresto di VM o l'integrazione con sistemi esterni.
  • Per automatizzare il processo CI/CD, utilizza Cloud Build con Pub/Sub. Puoi configurare notifiche e trigger automatici per quando viene eseguito il push di nuovo codice o quando è necessario addestrare un nuovo modello.
  • Per una soluzione scalabile e completamente gestita per la gestione delle pipeline, utilizza Cloud Data Fusion.
Controllo delle versioni: monitora e controlla le diverse versioni di pipeline e componenti per garantire riproducibilità e verificabilità. Archivia i modelli di pipeline Kubeflow in un repository Kubeflow Pipelines in Artifact Registry.
Riutilizzabilità: riutilizza i componenti e gli artefatti della pipeline esistenti, ad esempio set di dati preparati e modelli addestrati, per accelerare lo sviluppo. Archivia i modelli di pipeline in Cloud Storage e condividili in tutta l'organizzazione.
Monitoraggio: monitora l'esecuzione della pipeline per identificare e risolvere eventuali problemi. Utilizza Cloud Logging e Cloud Monitoring. Per saperne di più, consulta Monitorare le risorse in modo continuo con dashboard, avvisi e report.

Estendere la riutilizzabilità oltre le pipeline

Cerca opportunità per espandere la riutilizzabilità oltre le pipeline di addestramento. Di seguito sono riportati esempi di funzionalità che consentono di riutilizzare funzionalità, set di dati, modelli e codice ML. Google Cloud

  • Vertex AI Feature Store fornisce un repository centralizzato per organizzare, archiviare e distribuire le caratteristiche di ML. Consente di riutilizzare le funzionalità in diversi progetti e modelli, il che può migliorare la coerenza e ridurre lo sforzo di feature engineering. Puoi archiviare, condividere e accedere alle funzionalità per casi d'uso online e offline.
  • I set di dati Vertex AI consentono ai team di creare e gestire i set di dati in modo centralizzato, in modo che la tua organizzazione possa massimizzare la riutilizzabilità e ridurre la duplicazione dei dati. I tuoi team possono cercare e scoprire i set di dati utilizzando Dataplex Universal Catalog.
  • Vertex AI Model Registry ti consente di archiviare, gestire ed eseguire il deployment dei modelli addestrati. Model Registry ti consente di riutilizzare i modelli nelle pipeline successive o per la previsione online, il che ti aiuta a sfruttare i precedenti sforzi di addestramento.
  • I container personalizzati ti consentono di pacchettizzare il codice di addestramento e le dipendenze in container e di archiviarli in Artifact Registry. I container personalizzati ti consentono di fornire ambienti di addestramento coerenti e riproducibili in diverse pipeline e progetti.

Utilizza i servizi Google Cloud per la valutazione e l'ottimizzazione dei modelli

Google Cloud offre una potente suite di strumenti e servizi per semplificare e automatizzare la valutazione e l'ottimizzazione dei modelli. Questi strumenti e servizi possono aiutarti a ridurre il tempo di produzione e le risorse necessarie per l'addestramento e il monitoraggio continui. Utilizzando questi servizi, i tuoi team di AI e ML possono migliorare le prestazioni dei modelli con meno iterazioni costose, ottenere risultati più rapidi e ridurre al minimo le risorse di calcolo sprecate.

Utilizzare la valutazione e la sperimentazione dei modelli efficienti in termini di risorse

Inizia un progetto di AI con esperimenti prima di scalare la soluzione. Nei tuoi esperimenti, monitora vari metadati come la versione del set di dati, i parametri del modello e il tipo di modello. Per una maggiore riproducibilità e un confronto dei risultati, utilizza il monitoraggio dei metadati oltre al controllo delle versioni del codice, in modo simile alle funzionalità di Git. Per evitare di perdere informazioni o di eseguire il deployment della versione errata in produzione, utilizza Vertex AI Experiments prima di implementare job di addestramento o deployment su larga scala.

Vertex AI Experiments ti consente di:

  • Semplifica e automatizza il monitoraggio e il rilevamento dei metadati tramite un'API e un'interfaccia utente intuitive per carichi di lavoro pronti per la produzione.
  • Analizza le metriche di rendimento del modello e confrontale tra più modelli.

Una volta addestrato il modello, monitora continuamente il rendimento e la deriva dei dati nel tempo per i dati in arrivo. Per semplificare questo processo, utilizza Vertex AI Model Monitoring per accedere direttamente ai modelli creati in Model Registry. Model Monitoring automatizza anche il monitoraggio di dati e risultati tramite previsioni online e batch. Puoi esportare i risultati in BigQuery per ulteriori analisi e monitoraggio.

Scegliere le strategie ottimali per automatizzare l'addestramento

Per l'ottimizzazione degli iperparametri, consigliamo i seguenti approcci:

  • Per automatizzare il processo di ricerca degli iperparametri ottimali per i tuoi modelli, utilizza l'ottimizzazione degli iperparametri di Vertex AI. Vertex AI utilizza algoritmi avanzati per esplorare lo spazio degli iperparametri e identificare la configurazione migliore.
  • Per un'ottimizzazione efficiente degli iperparametri, valuta la possibilità di utilizzare tecniche di ottimizzazione bayesiana, soprattutto quando hai a che fare con modelli complessi e set di dati di grandi dimensioni.

Per l'addestramento distribuito, consigliamo i seguenti approcci:

  • Per set di dati di grandi dimensioni e modelli complessi, utilizza l'infrastruttura di addestramento distribuito di Vertex AI. Questo approccio ti consente di addestrare i modelli su più macchine, il che contribuisce a ridurre in modo significativo i tempi di addestramento e i costi associati. Utilizza strumenti come i seguenti:

  • Scegli framework ML ottimizzati, come Keras e PyTorch, che supportano l'addestramento distribuito e l'utilizzo efficiente delle risorse.

Utilizzare l'AI spiegabile

È fondamentale capire perché un modello prende determinate decisioni e identificare potenziali distorsioni o aree di miglioramento. Utilizza Vertex Explainable AI per ottenere informazioni dettagliate sulle previsioni del modello. Vertex Explainable AI offre un modo per automatizzare le spiegazioni basate su caratteristiche ed esempi collegate agli esperimenti di Vertex AI.

  • Basata sulle caratteristiche: per capire quali caratteristiche sono più influenti nelle previsioni del modello, analizza le attribuzioni delle caratteristiche. Questa comprensione può guidare gli sforzi di feature engineering e migliorare l'interpretabilità del modello.
  • Basate su esempi: Per restituire un elenco di esempi (di solito dal set di addestramento) più simili all'input, Vertex AI utilizza la ricerca del vicino più prossimo. Poiché input simili generalmente producono previsioni simili, puoi utilizzare queste spiegazioni per esplorare e spiegare il comportamento di un modello.

Utilizzare servizi gestiti e modelli preaddestrati

Adotta un approccio incrementale alla selezione e allo sviluppo dei modelli. Questo approccio ti aiuta a evitare costi eccessivi associati all'avvio da zero ogni volta. Per controllare i costi, utilizza framework ML, servizi gestiti e modelli preaddestrati.

Per ottenere il massimo valore dai servizi gestiti e dai modelli preaddestrati, tieni presenti i seguenti consigli.

Utilizzare i notebook per l'esplorazione e gli esperimenti

Gli ambienti notebook sono fondamentali per una sperimentazione di machine learning economicamente vantaggiosa. Un notebook fornisce uno spazio interattivo e collaborativo in cui data scientist e ingegneri possono esplorare i dati, sviluppare modelli, condividere conoscenze e iterare in modo efficiente. La collaborazione e la condivisione delle conoscenze tramite i notebook accelerano notevolmente lo sviluppo, le revisioni del codice e il trasferimento delle conoscenze. Notebooks aiutano a semplificare i flussi di lavoro e a ridurre le attività duplicate.

Anziché procurarti e gestire hardware costoso per il tuo ambiente di sviluppo, puoi utilizzare l'infrastruttura scalabile e on demand di Vertex AI Workbench e Colab Enterprise.

  • Vertex AI Workbench è un ambiente di sviluppo di blocchi note Jupyter per l'intero flusso di lavoro di data science. Puoi interagire con Vertex AI e altri servizi Google Cloud dall'interno del notebook Jupyter di un'istanza. Le integrazioni e le funzionalità di Vertex AI Workbench ti aiutano a:

    • Accedi ed esplora i dati da un notebook Jupyter utilizzando le integrazioni di BigQuery e Cloud Storage.
    • Automatizza gli aggiornamenti ricorrenti di un modello utilizzando le esecuzioni pianificate del codice eseguito su Vertex AI.
    • Elabora i dati rapidamente eseguendo un notebook su un cluster Dataproc.
    • Esegui un notebook come passaggio di una pipeline utilizzando Vertex AI Pipelines.
  • Colab Enterprise è un ambiente di notebook gestito e collaborativo con le funzionalità di sicurezza e conformità di Google Cloud. Colab Enterprise è ideale se le priorità del tuo progetto includono lo sviluppo collaborativo e la riduzione dell'impegno per gestire l'infrastruttura. Colab Enterprise si integra con i serviziGoogle Cloud e l'assistenza basata sull'AI che utilizza Gemini. Colab Enterprise ti consente di:

    • Lavora nei blocchi note senza la necessità di gestire l'infrastruttura.
    • Condividi un notebook con un singolo utente, un gruppo Google o un dominio Google Workspace. Puoi controllare l'accesso ai blocchi note tramite Identity and Access Management (IAM).
    • Interagisci con le funzionalità integrate in Vertex AI e BigQuery.

Per monitorare le modifiche e ripristinare le versioni precedenti quando necessario, puoi integrare i tuoi blocchi note con strumenti di controllo della versione come Git.

Inizia con modelli esistenti e preaddestrati

L'addestramento di modelli complessi da zero, in particolare i modelli di deep learning, richiede risorse di calcolo e tempo significativi. Per accelerare la selezione e lo sviluppo dei modelli, inizia con modelli esistenti e pre-addestrati. Questi modelli, addestrati su vasti set di dati, eliminano la necessità di addestrare i modelli da zero e riducono significativamente i costi e i tempi di sviluppo.

Ridurre i costi di formazione e sviluppo

Seleziona un modello o un'API appropriati per ogni attività di ML e combinali per creare un processo di sviluppo ML end-to-end.

Vertex AI Model Garden offre una vasta raccolta di modelli preaddestrati per attività come la classificazione delle immagini, il rilevamento degli oggetti e l'elaborazione del linguaggio naturale. I modelli sono raggruppati nelle seguenti categorie:

Google Cloud fornisce API AI e ML che consentono agli sviluppatori di integrare potenti funzionalità di AI nelle applicazioni senza la necessità di creare modelli da zero.

  • L'API Cloud Vision ti consente di estrarre informazioni dalle immagini. Questa API è utile per applicazioni come l'analisi delle immagini, la moderazione dei contenuti e l'inserimento automatico dei dati.
  • L'API Cloud Natural Language consente di analizzare il testo per comprenderne la struttura e il significato. Questa API è utile per attività come l'analisi del feedback dei clienti, la classificazione dei contenuti e la comprensione delle tendenze dei social media.
  • L'API Speech-to-Text converte l'audio in testo. Questa API supporta un'ampia gamma di lingue e dialetti.
  • L'API Video Intelligence analizza i contenuti video per identificare oggetti, scene e azioni. Utilizza questa API per l'analisi dei contenuti video, la moderazione dei contenuti e la ricerca di video.
  • L'API Document AI elabora i documenti per estrarre, classificare e comprendere i dati. Questa API consente di automatizzare i flussi di lavoro di elaborazione dei documenti.
  • L'API Dialogflow consente la creazione di interfacce di conversazione, come chatbot e assistenti vocali. Puoi utilizzare questa API per creare bot di assistenza clienti e assistenti virtuali.
  • L'API Gemini in Vertex AI fornisce l'accesso al modello di AI più potente e generico di Google.

Ridurre i costi di ottimizzazione

Per ridurre la necessità di grandi quantità di dati e tempi di calcolo, ottimizza i modelli preaddestrati su set di dati specifici. Ti consigliamo i seguenti approcci:

  • Transfer learning: utilizza le conoscenze di un modello preaddestrato per una nuova attività, anziché iniziare da zero. Questo approccio richiede meno dati e tempo di calcolo, il che contribuisce a ridurre i costi.
  • Ottimizzazione dell'adattatore (ottimizzazione efficiente dei parametri): adatta i modelli a nuove attività o domini senza un'ottimizzazione completa. Questo approccio richiede risorse di calcolo notevolmente inferiori e un set di dati più piccolo.
  • Ottimizzazione supervisionata: Adatta il comportamento del modello con un set di dati etichettati. Questo approccio semplifica la gestione dell'infrastruttura sottostante e lo sforzo di sviluppo richiesto per un job di addestramento personalizzato.

Esplorare e sperimentare utilizzando Vertex AI Studio

Vertex AI Studio consente di testare, prototipare ed eseguire il deployment rapidamente di applicazioni di AI generativa.

  • Integrazione con Model Garden: fornisce un accesso rapido ai modelli più recenti e consente di eseguirne il deployment in modo efficiente per risparmiare tempo e costi.
  • Accesso unificato a modelli specializzati: consolida l'accesso a un'ampia gamma di modelli preaddestrati e API, inclusi quelli per chat, testo, contenuti multimediali, traduzione e sintesi vocale. Questo accesso unificato può aiutarti a ridurre il tempo dedicato alla ricerca e all'integrazione di singoli servizi.

Utilizzare i servizi gestiti per addestrare o pubblicare modelli

I servizi gestiti possono contribuire a ridurre il costo dell'addestramento dei modelli e a semplificare la gestione dell'infrastruttura, consentendoti di concentrarti sullo sviluppo e sull'ottimizzazione dei modelli. Questo approccio può comportare notevoli vantaggi in termini di costi e maggiore efficienza.

Riduci l'overhead operativo

Per ridurre la complessità e il costo della gestione dell'infrastruttura, utilizza servizi gestiti come i seguenti:

  • Vertex AI Training fornisce un ambiente completamente gestito per l'addestramento dei modelli su larga scala. Puoi scegliere tra vari container predefiniti con framework ML popolari o utilizzare i tuoi container personalizzati. Google Cloud gestisce il provisioning, lo scaling e la manutenzione dell'infrastruttura, in modo da ridurre i costi operativi.
  • Vertex AI Prediction gestisce lo scaling dell'infrastruttura, il bilanciamento del carico e il routing delle richieste. Ottieni disponibilità e prestazioni elevate senza intervento manuale.
  • Ray on Vertex AI fornisce un cluster Ray completamente gestito. Puoi utilizzare il cluster per eseguire carichi di lavoro di AI personalizzati complessi che eseguono molti calcoli (ottimizzazione degli iperparametri, perfezionamento del modello, addestramento distribuito del modello e apprendimento per rinforzo con feedback umano) senza dover gestire la tua infrastruttura.

Utilizza i servizi gestiti per ottimizzare l'utilizzo delle risorse

Per informazioni dettagliate sull'utilizzo efficiente delle risorse, vedi Ottimizzare l'utilizzo delle risorse.

Collaboratori

Autori:

Altri collaboratori:

Prospettiva AI e ML: ottimizzazione delle prestazioni

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: