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 framework Well-Architected:
- Prospettiva di AI e ML: eccellenza operativa
- Prospettiva di AI e ML: sicurezza
- Prospettiva di AI e ML: affidabilità
- Prospettiva AI e ML: ottimizzazione dei costi
- Prospettiva AI e ML: ottimizzazione del rendimento
Collaboratori
Autori:
- Benjamin Sadik | Customer Engineer specializzato in AI e ML
- Charlotte Gistelinck, PhD | Partner Engineer
- Filipe Gracio, PhD | Customer Engineer, AI/ML Specialist
- Isaac Lo | AI Business Development Manager
- Kamilla Kurta | Customer Engineer specializzata in AI generativa/ML
- Mohamed Fawzi | Responsabile della sicurezza e della conformità per il Benelux
- Rick (Rugui) Chen | AI Infrastructure Field Solutions Architect
- Sannya Dang | AI Solution Architect
Altri collaboratori:
- Daniel Lees | Cloud Security Architect
- Gary Harmson | Principal Architect
- Jose Andrade | Customer Engineer, SRE Specialist
- Kumar Dhanagopal | Sviluppatore di soluzioni cross-prodotto
- Marwan Al Shawi | Partner Customer Engineer
- Nicolas Pintaux | Customer Engineer, specialista in modernizzazione delle applicazioni
- Radhika Kanakam | Program Lead, Google Cloud Well-Architected Framework
- Ryan Cox | Principal Architect
- Samantha He | Technical Writer
- Stef Ruinard | Generative AI Field Solutions Architect
- Wade Holmes | Global Solutions Director
- Zach Seils | Specialista di networking
Prospettiva AI e ML: eccellenza operativa
Questo documento del Well-Architected Framework: AI and ML perspective 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 consigli 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
- Automatizzare il ciclo di vita dello sviluppo del modello
- Implementare l'osservabilità
- Creare una cultura dell'eccellenza operativa
- Progettare per la scalabilità
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 solida base per lo sviluppo dei modelli. Una base di questo tipo consente workflow coerenti, automatizza i passaggi critici per ridurre gli errori e garantisce che i modelli possano scalare 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, se 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 contribuire a 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, ad esempio 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 Cloud Tensor Processing Unit (TPU) 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 il rendimento 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 il lavoro 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 in tutti 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 workflow automatizzati possono includere anche tecniche di aumento dei dati.
Implementa 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 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 attivare 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 gli ultimi modelli di base disponibili per l'ottimizzazione. Questa pratica garantisce che i modelli rimangano aggiornati e ottimizzati per le esigenze in evoluzione della tua attività.
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 versione canaryry 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 l'AI 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 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 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 l'implementazione.
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 set di dati di riferimento 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 la valutazione rapida di Vertex AI 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 le prestazioni in modo continuo di questo documento.
Monitorare la disponibilità
Per ottenere visibilità sull'integrità e sulle prestazioni degli endpoint e dell'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 le 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 Google Cloud prodotti 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: Acquisisce e analizza automaticamente 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
Promuovere 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 di conseguenza i requisiti dell'infrastruttura.
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.
Acquisisci familiarità 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 punta. 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 calcolo distribuite, puoi utilizzare Ray su Vertex AI. Questa funzionalità può contribuire a ottimizzare il rendimento e consente un'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 agli errori 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:
- Charlotte Gistelinck, PhD | Partner Engineer
- Sannya Dang | AI Solution Architect
- Filipe Gracio, PhD | Customer Engineer, AI/ML Specialist
Altri collaboratori:
- Gary Harmson | Principal Architect
- Kumar Dhanagopal | Sviluppatore di soluzioni cross-prodotto
- Marwan Al Shawi | Partner Customer Engineer
- Ryan Cox | Principal Architect
- Stef Ruinard | Generative AI Field Solutions Architect
Prospettiva AI e ML: sicurezza
Questo documento nella 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 in corso. 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 dell'AI e del ML agli 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, a supportare i tuoi obiettivi aziendali e a 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.
Mantieni 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:
- Kamilla Kurta | Customer Engineer specializzata in AI generativa/ML
- Filipe Gracio, PhD | Customer Engineer, AI/ML Specialist
- Mohamed Fawzi | Responsabile della sicurezza e della conformità per il Benelux
Altri collaboratori:
- Daniel Lees | Cloud Security Architect
- Kumar Dhanagopal | Sviluppatore di soluzioni cross-prodotto
- Marwan Al Shawi | Partner Customer Engineer
- Wade Holmes | Global Solutions Director
Prospettiva AI e ML: affidabilità
Questo documento della Google Cloud Well-Architected Framework: prospettiva AI e ML 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 blueprint architetturali. I suggerimenti contenuti in questo documento sono in linea con il pilastro dell'affidabilità del Google Cloud Well-Architected Framework.
Nel panorama dell'AI e del ML in rapida evoluzione, sistemi affidabili sono essenziali per garantire la soddisfazione dei clienti e raggiungere gli obiettivi aziendali. Per soddisfare le esigenze uniche sia del ML predittivo che dell'AI generativa, hai bisogno di sistemi di AI e ML robusti, affidabili e adattabili. 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 AI appositamente creata in linea con i principi di site reliability engineering (SRE) e che fornisce una base solida per sistemi di AI e ML affidabili.
I consigli contenuti in questo documento sono mappati ai seguenti principi fondamentali:
- Assicurati che l'infrastruttura sia scalabile e ad alta disponibilità
- Utilizzare un'architettura modulare e a basso accoppiamento
- Crea una piattaforma MLOps end-to-end automatizzata
- Mantenere la fiducia e il controllo tramite la governance dei dati e dei modelli
- Implementare pratiche olistiche di osservabilità e affidabilità
Assicurati che l'infrastruttura ML sia scalabile e a disponibilità elevata
Sistemi AI e ML affidabili nel cloud richiedono un'infrastruttura scalabile e ad alta disponibilità. Questi sistemi hanno esigenze dinamiche, diverse necessità di risorse e dipendenze critiche dalla disponibilità del modello. Le architetture scalabili si adattano a carichi fluttuanti e variazioni nel volume di dati o nelle richieste di inferenza. L'alta affidabilità (HA) contribuisce a garantire la resilienza ai guasti a livello di componente, zona o regione.
Per creare un'infrastruttura ML scalabile e a disponibilità elevata, prendi in considerazione i seguenti suggerimenti.
Implementare funzionalità di scalabilità automatica e dinamica
I carichi di lavoro di AI e ML sono dinamici, con una domanda che varia in base ai tassi di arrivo dei dati, alla frequenza di addestramento e al volume del traffico di inferenza. La scalabilità automatica e dinamica adatta le risorse dell'infrastruttura senza problemi alle fluttuazioni della domanda. Scalare i workload in modo efficace aiuta a prevenire i tempi di inattività, mantenere le prestazioni e ottimizzare i costi.
Per scalare automaticamente i carichi di lavoro di AI e ML, utilizza i seguenti prodotti e funzionalità in Google Cloud:
- Pipeline di elaborazione dei dati: crea pipeline di dati in Dataflow. Configura le pipeline in modo che utilizzino la funzionalità di scalabilità automatica orizzontale di Dataflow, che regola dinamicamente il numero di istanze worker in base all'utilizzo della CPU, al parallelismo della pipeline e ai dati in attesa. Puoi configurare i parametri di scalabilità automatica tramite le opzioni della pipeline quando avvii i job.
- Job di addestramento: automatizza lo scaling dei job di addestramento utilizzando l'addestramento personalizzato di Vertex AI. Puoi definire le specifiche del pool di worker, ad esempio il tipo di macchina, il tipo e il numero di acceleratori e il numero di pool di worker. Per i job che possono tollerare interruzioni e per i job in cui il codice di addestramento implementa il checkpointing, puoi ridurre i costi utilizzando le VM spot.
- Inferenza online: per l'inferenza online, utilizza gli endpoint Vertex AI. Per abilitare la scalabilità automatica, configura il numero minimo e massimo di repliche. Specifica un minimo di due repliche per l'alta disponibilità. Vertex AI regola automaticamente il numero di repliche in base al traffico e alle metriche di scalabilità automatica configurate, come l'utilizzo della CPU e l'utilizzo delle repliche.
- Carichi di lavoro containerizzati in Google Kubernetes Engine: Configura la scalabilità automatica a livello di nodo e pod. Configura la scalabilità automatica dei cluster e il provisioning automatico dei nodi per regolare il numero di nodi in base alle richieste di risorse dei pod in attesa, come CPU, memoria, GPU e TPU. Utilizza Horizontal Pod Autoscaler (HPA) per i deployment per definire criteri di scalabilità basati su metriche come l'utilizzo di CPU e memoria. Puoi anche eseguire lo scale in base a metriche personalizzate di AI e ML, come l'utilizzo di GPU o TPU e le richieste di previsione al secondo.
- Servizi containerizzati serverless: esegui il deployment dei servizi in Cloud Run e configura la scalabilità automatica specificando il numero minimo e massimo di istanze container. Utilizza le best practice per scalare automaticamente le istanze abilitate alla GPU specificando il tipo di acceleratore. Cloud Run scala automaticamente le istanze tra i limiti minimo e massimo configurati in base alle richieste in entrata. Quando non ci sono richieste, viene scalato in modo efficiente a zero istanze. Puoi sfruttare lo scaling automatico e basato sulle richieste di Cloud Run per eseguire il deployment degli agenti Vertex AI e per eseguire il deployment di carichi di lavoro di terze parti come modelli quantizzati utilizzando Ollama, inferenza del modello LLM utilizzando vLLM e Huggingface Text Generation Inference (TGI).
Progettazione per l'alta disponibilità e la tolleranza agli errori
Per i carichi di lavoro di AI e ML di livello di produzione, è fondamentale garantire il funzionamento continuo e la resilienza agli errori. Per implementare l'alta disponibilità e la tolleranza agli errori, devi integrare la ridondanza e la replica nella tua architettura su Google Cloud. Questo approccio contribuisce a garantire che un errore di un singolo componente non causi un errore dell'intero sistema.
- Per la disponibilità elevata e la bassa latenza nella gestione dei modelli, in particolare per l'inferenza in tempo reale e i modelli di AI generativa, distribuisci i deployment in più località.
- Per disponibilità e resilienza globali, esegui il deployment dei modelli su più endpoint Vertex AI in Google Cloud regioni o utilizza l'endpoint globale.
- Utilizza il bilanciamento del carico globale per instradare il traffico.
- Per l'addestramento su GKE o sui gruppi di istanze gestite di Compute Engine, implementa il monitoraggio degli errori Xid. Quando identifichi errori Xid, intraprendi le azioni correttive appropriate. Ad esempio, puoi reimpostare le GPU, reimpostare le istanze Compute Engine o attivare la sostituzione dell'hardware utilizzando il comando gcloud CLI report faulty host.
- Esplora soluzioni di addestramento tolleranti agli errori o elastiche e resilienti come le ricette per utilizzare la libreria di resilienza di Google o l'integrazione della formazione resiliente con Pathways per i carichi di lavoro TPU.
Implementa la ridondanza per i componenti critici di AI e ML in Google Cloud. Di seguito sono riportati esempi di prodotti e funzionalità che consentono di implementare la ridondanza delle risorse:
- Esegui il deployment di cluster regionali GKE in più zone.
- Garantisci la ridondanza dei dati per set di dati e checkpoint utilizzando bucket multiregionali o dual-region di Cloud Storage.
- Utilizza Spanner per l'archiviazione coerente a livello globale e ad alta disponibilità dei metadati.
- Configura le repliche di lettura Cloud SQL per i database operativi.
- Assicurati che i database vettoriali per la generazione aumentata dal recupero (RAG) siano a disponibilità elevata e multizona o multiregionale.
Gestire le risorse in modo proattivo e anticipare i requisiti
Una gestione efficace delle risorse è importante per ottimizzare costi, prestazioni e affidabilità. I carichi di lavoro di AI e ML sono dinamici e c'è una forte richiesta di hardware specializzato come GPU e TPU. Pertanto, è fondamentale applicare una gestione proattiva delle risorse e garantire la disponibilità delle risorse.
Pianifica la capacità in base ai dati di monitoraggio storici, come l'utilizzo e i tassi di velocità effettiva di GPU o TPU, da Cloud Monitoring e dai log in Cloud Logging. Analizza questi dati di telemetria utilizzando BigQuery o Looker Studio e prevedi la domanda futura di GPU in base alla crescita o ai nuovi modelli. L'analisi dei pattern e delle tendenze di utilizzo delle risorse ti aiuta a prevedere quando e dove hai bisogno di acceleratori specializzati critici.
- Convalida le stime della capacità tramite test di carico rigorosi. Simula il traffico sui servizi AI e ML come serving e pipeline utilizzando strumenti come Apache JMeter o LoadView.
- Analizza il comportamento del sistema sotto stress.
- Per anticipare e soddisfare le maggiori esigenze di carico di lavoro in produzione, identifica in modo proattivo i requisiti delle risorse. Monitora latenza, throughput, errori e utilizzo delle risorse, in particolare GPU e TPU. Aumenta le quote delle risorse in base alle necessità.
- Per il servizio di AI generativa, esegui test con carichi simultanei elevati e identifica il livello in cui la disponibilità dell'acceleratore limita le prestazioni.
- Esegui il monitoraggio continuo delle query del modello e configura avvisi proattivi per gli agenti.
- Utilizza la dashboard di osservabilità del modello per visualizzare le metriche raccolte da Cloud Monitoring, ad esempio le query al secondo (QPS) del modello, la velocità effettiva dei token e le latenze del primo token.
Ottimizzare la disponibilità e l'ottenimento delle risorse
Ottimizza i costi e garantisci la disponibilità delle risorse selezionando in modo strategico le risorse di computing appropriate in base ai requisiti del workload.
- Per l'inferenza stabile 24 ore su 24, 7 giorni su 7 o per i workload di addestramento con requisiti di capacità fissi o prevedibili, utilizza gli sconti per impegno di utilizzo (CUD) per VM e acceleratori.
Per i nodi GKE e le VM Compute Engine, utilizza le funzionalità delle VM spot e di Dynamic Workload Scheduler (DWS):
- Per le attività a tolleranza di errore, come i workload di valutazione e sperimentazione, utilizza le VM spot. Le VM spot possono essere prerilasciate, ma possono aiutarti a ridurre i costi complessivi.
- Per gestire il rischio di preemption per gli acceleratori ad alta richiesta, puoi
garantire una migliore ottenibilità utilizzando
DWS.
- Per l'addestramento batch complesso che richiede GPU di fascia alta per l'esecuzione fino a sette giorni, utilizza la modalità DWS Flex-Start.
- Per i workload in esecuzione più a lungo, fino a tre mesi, utilizza la modalità Calendario per prenotare GPU (H100 e H200) e TPU (Trillium) specifiche.
Per ottimizzare l'inferenza AI su GKE, puoi eseguire un motore vLLM che utilizza dinamicamente TPU e GPU per soddisfare le esigenze di capacità e prestazioni fluttuanti. Per ulteriori informazioni, consulta Fungibilità di GPU/TPU vLLM.
Per scenari avanzati con esigenze complesse di risorse e topologia che coinvolgono gli acceleratori, utilizza strumenti per astrarre la gestione delle risorse.
- Cluster Director consente di eseguire il deployment e la gestione di gruppi di acceleratori con collocazione e pianificazione per l'addestramento multi-GPU (A3 Ultra H200 e A4 B200). Cluster Director supporta i cluster GKE e Slurm.
- Ray su Vertex AI astrae l'infrastruttura di computing distribuito. Consente alle applicazioni di richiedere risorse per l'addestramento e la pubblicazione senza la necessità di gestione diretta di VM e container.
Distribuire il traffico in entrata su più istanze
Un bilanciamento del carico efficace è fondamentale per le applicazioni AI con richieste fluttuanti. Il bilanciamento del carico distribuisce il traffico, ottimizza l'utilizzo delle risorse, fornisce alta disponibilità e bassa latenza e contribuisce a garantire un'esperienza utente ottimale.
- Inferenza con esigenze di risorse variabili: implementa il bilanciamento del carico in base alle metriche del modello. GKE Inference Gateway consente di eseguire il deployment dei modelli dietro un bilanciatore del carico con routing basato sul modello. Il gateway assegna la priorità alle istanze con acceleratori GPU e TPU per attività ad alta intensità di calcolo come l'AI generativa e l'inferenza LLM. Configura controlli di integrità dettagliati per valutare lo stato del modello. Utilizza framework di pubblicazione come vLLM o Triton per le metriche LLM e integra le metriche in Cloud Monitoring utilizzando Google Cloud Managed Service per Prometheus.
- Carichi di lavoro di inferenza che richiedono GPU o TPU: per garantire che i carichi di lavoro di inferenza di AI e ML critici vengano eseguiti in modo coerente su macchine adatte ai requisiti dei carichi di lavoro, in particolare quando la disponibilità di GPU e TPU è limitata, utilizza le classi di calcolo personalizzate di GKE. Puoi definire profili di calcolo specifici con criteri di riserva per lo scaling automatico. Ad esempio, puoi definire un profilo che specifica una priorità più elevata per le istanze GPU o TPU riservate. Il profilo può includere un fallback per utilizzare VM spot convenienti se le risorse prenotate non sono temporaneamente disponibili.
- AI generativa su diverse piattaforme di orchestrazione: utilizza un bilanciatore del carico centralizzato. Ad esempio, per efficienza di costi e gestione, puoi indirizzare le richieste con basse esigenze di GPU a Cloud Run e indirizzare le attività più complesse e che richiedono un uso intensivo della GPU a GKE. Per la comunicazione tra servizi e la gestione delle policy, implementa un service mesh utilizzando Cloud Service Mesh. Garantisci un logging e un monitoraggio coerenti utilizzando Cloud Logging e Cloud Monitoring.
- Distribuzione del carico globale: per bilanciare il carico del traffico degli utenti globali che richiedono una bassa latenza, utilizza un bilanciatore del carico delle applicazioni esterno globale. Configura il routing della geolocalizzazione alla regione più vicina e implementa il failover. Stabilisci la replica degli endpoint regionali in Vertex AI o GKE. Configura Cloud CDN per gli asset statici. Monitora il traffico globale e la latenza utilizzando Cloud Monitoring.
- Gestione granulare del traffico: per le richieste con diversi tipi di dati o complessità e per le richieste a esecuzione prolungata, implementa la gestione granulare del traffico.
- Configura il routing basato sui contenuti per indirizzare le richieste a backend specializzati in base ad attributi come i percorsi e le intestazioni degli URL. Ad esempio, richieste dirette ai backend abilitati per GPU per modelli di immagini o video e ai backend ottimizzati per CPU per modelli basati su testo.
- Per le richieste di AI generativa a lunga esecuzione o i workload batch, utilizza WebSocket o gRPC. Implementa la gestione del traffico per gestire i timeout e il buffering. Configura i timeout e i tentativi di richiesta e implementa la limitazione della frequenza e le quote utilizzando API Gateway o Apigee.
Utilizzare un'architettura modulare e a basso accoppiamento
In un'architettura AI e ML modulare e a basso accoppiamento, i sistemi complessi vengono divisi in componenti più piccoli e autonomi che interagiscono tramite interfacce ben definite. Questa architettura riduce al minimo le dipendenze dei moduli, semplifica lo sviluppo e il test, migliora la riproducibilità e la tolleranza agli errori contenendo i guasti. L'approccio modulare è fondamentale per gestire la complessità, accelerare l'innovazione e garantire la manutenibilità a lungo termine.
Per progettare un'architettura modulare e a basso accoppiamento per i carichi di lavoro di AI e ML, considera i seguenti suggerimenti.
Implementa moduli o componenti piccoli e autonomi
Separa il sistema AI e ML end-to-end in moduli o componenti piccoli e autonomi. Ogni modulo o componente è responsabile di una funzione specifica, come l'importazione dati, la trasformazione delle funzionalità, l'addestramento del modello, la pubblicazione delle inferenze o la valutazione. Un design modulare offre diversi vantaggi chiave per i sistemi di AI e ML: migliore manutenibilità, maggiore scalabilità, riusabilità e maggiore flessibilità e agilità.
Le sezioni seguenti descrivono Google Cloud prodotti, funzionalità e strumenti che puoi utilizzare per progettare un'architettura modulare per i tuoi sistemi di AI e ML.
Microservizi containerizzati su GKE
Per sistemi AI e ML complessi o pipeline di AI generativa intricate che richiedono un'orchestrazione granulare, implementa i moduli come microservizi orchestrati utilizzando GKE. Pacchettizza ogni fase distinta come un microservizio individuale all'interno dei container Docker. Queste fasi distinte includono l'importazione dati, personalizzata per diversi formati, la preelaborazione o l'ingegneria delle funzionalità specializzate, l'addestramento o l'ottimizzazione distribuita del modello di grandi modelli di base, la valutazione o la pubblicazione.
Esegui il deployment dei microservizi containerizzati su GKE e sfrutta la scalabilità automatica in base all'utilizzo di CPU e memoria o a metriche personalizzate come l'utilizzo della GPU, gli aggiornamenti in sequenza e le configurazioni riproducibili nei manifest YAML. Garantisci una comunicazione efficiente tra i microservizi utilizzando Service Discoveryo GKE. Per i pattern asincroni, utilizza code di messaggi come Pub/Sub.
L'approccio basato sui microservizi su GKE ti aiuta a creare piattaforme scalabili e resilienti per attività come applicazioni RAG complesse in cui le fasi possono essere progettate come servizi distinti.
Servizi serverless basati su eventi
Per le attività basate sugli eventi che possono trarre vantaggio da scalabilità automatica e serverless, utilizza Cloud Run o Cloud Run Functions. Questi servizi sono ideali per attività asincrone come la preelaborazione o per job di inferenza più piccoli. Attiva le funzioni Cloud Run in base a eventi, ad esempio un nuovo file di dati creato in Cloud Storage o aggiornamenti del modello in Artifact Registry. Per i servizi o le attività webhook che richiedono un ambiente container, utilizza Cloud Run.
I servizi Cloud Run e le funzioni Cloud Run possono aumentare rapidamente e fare lo scale down fino a zero, il che contribuisce a garantire l'efficienza dei costi per i carichi di lavoro fluttuanti. Questi servizi sono adatti ai componenti modulari nei flussi di lavoro di Vertex AI Agents. Puoi orchestrare sequenze di componenti con Workflows o Application Integration.
Servizi gestiti Vertex AI
I servizi Vertex AI supportano la modularità e ti aiutano a semplificare lo sviluppo e il deployment dei tuoi sistemi di AI e ML. I servizi astraggono le complessità dell'infrastruttura in modo che tu possa concentrarti sulla logica dell'applicazione.
- Per orchestrare i workflow creati a partire da passaggi modulari, utilizza Vertex AI Pipelines.
- Per eseguire codice AI e ML personalizzato, pacchettizza il codice in container Docker che possono essere eseguiti su servizi gestiti come l'addestramento personalizzato di Vertex AI e la previsione di Vertex AI.
- Per le pipeline modulari di feature engineering, utilizza Vertex AI Feature Store.
- Per l'esplorazione e la prototipazione modulari, utilizza ambienti notebook come Vertex AI Workbench o Colab Enterprise. Organizza il codice in funzioni, classi e script riutilizzabili.
Applicazioni agentiche
Per gli agenti AI, l'Agent Development Kit (ADK) fornisce funzionalità modulari come Strumenti e Stato. Per abilitare l'interoperabilità tra framework come LangChain, LangGraph, LlamaIndex, e Vertex AI, puoi combinare l'ADK con il protocollo Agent2Agent (A2A) e il protocollo Model Context (MCP). Questa interoperabilità ti consente di comporre flussi di lavoro agentici utilizzando diversi componenti.
Puoi eseguire il deployment degli agenti su Vertex AI Agent Engine, un runtime gestito ottimizzato per il deployment scalabile degli agenti. Per eseguire agenti in container, puoi sfruttare le funzionalità di scalabilità automatica in Cloud Run.
Progettare interfacce ben definite
Per creare sistemi software robusti e gestibili, è fondamentale assicurarsi che i componenti di un sistema siano a basso accoppiamento e modulari. Questo approccio offre vantaggi significativi, perché riduce al minimo le dipendenze tra le diverse parti del sistema. Quando i moduli sono a basso accoppiamento, le modifiche apportate a un modulo hanno un impatto minimo sugli altri moduli. Questo isolamento consente flussi di lavoro di aggiornamento e sviluppo indipendenti per i singoli moduli.
Le sezioni seguenti forniscono indicazioni per garantire una comunicazione e un'integrazione perfette tra i moduli dei sistemi di AI e ML.
Scelta del protocollo
- Per l'accesso universale, utilizza le API HTTP, rispetta i principi RESTful e utilizza JSON per lo scambio di dati indipendenti dalla lingua. Progetta gli endpoint API per rappresentare le azioni sulle risorse.
- Per la comunicazione interna ad alte prestazioni tra i microservizi, utilizza
gRPC
con Protocol Buffers (ProtoBuf)
per una serializzazione efficiente e una digitazione rigorosa. Definisci strutture di dati come ModelInput, PredictionResult o ADK Tool utilizzando i file
.proto
e poi genera i binding del linguaggio. - Per i casi d'uso in cui le prestazioni sono fondamentali, sfrutta lo streaming gRPC per set di dati di grandi dimensioni o per flussi continui come le applicazioni di sintesi vocale o video in tempo reale. Esegui il deployment dei servizi gRPC su GKE.
Documentazione standardizzata e completa
Indipendentemente dal protocollo di interfaccia scelto, la documentazione standardizzata è fondamentale. La specifica OpenAPI descrive le API RESTful. Utilizza OpenAPI per documentare le tue API AI e ML: percorsi, metodi, parametri, formati di richiesta-risposta collegati agli schemi JSON e sicurezza. La documentazione completa dell'API contribuisce a migliorare la rilevabilità e l'integrazione del client. Per la creazione e la visualizzazione di API, utilizza strumenti UI come Swagger Editor. Per accelerare lo sviluppo e garantire la coerenza, puoi generare SDK client e stub del server utilizzando strumenti di codifica assistiti dall'AI come Gemini Code Assist. Integra la documentazione OpenAPI nel flusso CI/CD.
Interazione con Google Cloud servizi gestiti come Vertex AI
Scegli tra l'astrazione più elevata dell'SDK Vertex AI, preferita per la produttività dello sviluppo, e il controllo granulare fornito dall'API REST.
- L'SDK Vertex AI semplifica le attività e l'autenticazione. Utilizza l'SDK quando devi interagire con Vertex AI.
- L'API REST è un'alternativa potente, soprattutto quando è richiesta l'interoperabilità tra i livelli del sistema. È utile per gli strumenti in lingue che non hanno un SDK o quando hai bisogno di un controllo granulare.
Utilizzare le API per isolare i moduli e astrarre i dettagli di implementazione
Per sicurezza, scalabilità e visibilità, è fondamentale implementare una gestione delle API efficace per i tuoi servizi di AI e ML. Per implementare la gestione delle API per le interfacce definite, utilizza i seguenti prodotti:
- API Gateway: per le API esposte e gestite esternamente, API Gateway fornisce un punto di accesso centralizzato e sicuro. Semplifica l'accesso a servizi di backend serverless, come API di previsione, addestramento e dati. API Gateway consente di consolidare i punti di accesso, applicare i contratti API e gestire le funzionalità di sicurezza come le chiavi API e OAuth 2.0. Per proteggere i backend dal sovraccarico e garantire l'affidabilità, implementalimitazione di frequenzaa e le quote di utilizzo in API Gateway.
- Cloud Endpoints: Per semplificare lo sviluppo e il deployment di API su GKE e Cloud Run, utilizza Cloud Endpoints, che offre una soluzione semplice per gli sviluppatori per generare chiavi API. Fornisce inoltre monitoraggio e tracciamento integrati per le chiamate API e automatizza la generazione di specifiche OpenAPI, semplificando la documentazione e l'integrazione dei client. Puoi utilizzare Cloud Endpoints per gestire l'accesso alle API di AI e ML interne o controllate, ad esempio per attivare l'addestramento e gestire gli store di funzionalità.
- Apigee: Per l'AI e il ML su scala aziendale, in particolare per le API di AI generativa sofisticate, Apigee fornisce una gestione API avanzata e completa. Utilizza Apigee per la sicurezza avanzata, ad esempio la protezione dalle minacce e OAuth 2.0, per la gestione del traffico, ad esempio memorizzazione nella cache, quote e mediazione, e per l'analisi. Apigee può aiutarti a ottenere informazioni approfondite su modelli di utilizzo, rendimento e coinvolgimento delle API, che sono fondamentali per comprendere l'utilizzo delle API di AI generativa.
Pianificare la riduzione controllata
Nei sistemi di AI e ML di produzione, i guasti dei componenti sono inevitabili, proprio come in altri sistemi. Il degrado controllato garantisce che le funzioni essenziali continuino a funzionare, potenzialmente con prestazioni ridotte. Questo approccio previene interruzioni complete e migliora la disponibilità complessiva. Il degrado controllato è fondamentale per l'inferenza sensibile alla latenza, l'addestramento distribuito e l'AI generativa.
Le sezioni seguenti descrivono le tecniche che utilizzi per pianificare e implementare la degradazione controllata.
Isolamento dei guasti
- Per isolare i componenti difettosi nelle architetture distribuite, implementa il pattern dell'interruttore di sicurezza utilizzando librerie di resilienza, come Resilience4j in Java e CircuitBreaker in Python.
- Per evitare errori a cascata, configura le soglie in base alle metriche del carico di lavoro di AI e ML, come tassi di errore e latenza, e definisci i fallback, come modelli più semplici e dati memorizzati nella cache.
Ridondanza dei componenti
Per i componenti critici, implementa la ridondanza e il failover automatico. Ad esempio, utilizza cluster multizona o regionali GKE ed esegui il deployment dei servizi Cloud Run in modo ridondante in diverse regioni. Per instradare il traffico alle istanze integre quando vengono rilevate istanze non integre, utilizza Cloud Load Balancing.
Garantisci la ridondanza dei dati utilizzando i bucket multiregionali Cloud Storage. Per l'addestramento distribuito, implementa il checkpoint asincrono per riprendere l'addestramento dopo gli errori. Per un addestramento resiliente ed elastico, utilizza Pathways.
Monitoraggio proattivo
Il degrado controllato contribuisce a garantire la disponibilità del sistema durante l'errore, ma devi anche implementare misure proattive per controlli di integrità continui e un monitoraggio completo. Raccogli metriche specifiche per l'AI e il ML, come latenza, throughput e utilizzo della GPU. Inoltre, raccogli metriche di degrado delle prestazioni del modello, come la deviazione del modello e dei dati, utilizzando Cloud Monitoring e Vertex AI Model Monitoring.
I controlli di integrità possono attivare la necessità di sostituire i nodi difettosi, implementare una maggiore capacità o attivare automaticamente il retraining continuo o l'ottimizzazione delle pipeline che utilizzano dati aggiornati. Questo approccio proattivo aiuta a prevenire sia il degrado basato sull'accuratezza sia il degrado controllato a livello di sistema e contribuisce a migliorare l'affidabilità complessiva.
Pratiche SRE
Per monitorare l'integrità dei tuoi sistemi, valuta la possibilità di adottare le pratiche SRE per implementare gli obiettivi del livello di servizio (SLO). Gli avvisi relativi alla perdita del budget di errore e al burn rate possono essere indicatori precoci di problemi di affidabilità del sistema. Per ulteriori informazioni sulle pratiche SRE, consulta il libro SRE di Google.
Creare una piattaforma MLOps end-to-end automatizzata
Un sistema AI e ML solido, scalabile e affidabile su Google Cloud richiede una piattaforma MLOps end-to-end automatizzata per il ciclo di vita dello sviluppo del modello. Il ciclo di vita dello sviluppo include la gestione iniziale dei dati, l'addestramento continuo del modello, il deployment e il monitoraggio in produzione. Automatizzando queste fasi su Google Cloud, stabilisci processi ripetibili, riduci il lavoro manuale, minimizzi gli errori e acceleri il ritmo dell'innovazione.
Una piattaforma MLOps automatizzata è essenziale per stabilire un'affidabilità di livello di produzione per le tue applicazioni. L'Automation contribuisce a garantire la qualità del modello, la riproducibilità e l'integrazione e la distribuzione continue degli artefatti di AI e ML.
Per creare una piattaforma MLOps end-to-end automatizzata, prendi in considerazione i seguenti suggerimenti.
Automatizzare il ciclo di vita dello sviluppo del modello
Un elemento fondamentale di una piattaforma MLOps automatizzata è l'orchestrazione dell'intero flusso di lavoro di AI e ML come una serie di passaggi automatizzati e connessi: dalla preparazione e convalida dei dati all'addestramento, alla valutazione, al deployment e al monitoraggio del modello.
- Utilizza
Vertex AI Pipelines
come orchestratore centrale:
- Definisci workflow end-to-end con componenti modulari per l'elaborazione, l'addestramento, la valutazione e il deployment dei dati.
- Automatizza le esecuzioni della pipeline utilizzando pianificazioni o trigger come nuovi dati o modifiche al codice.
- Implementa la parametrizzazione e il controllo delle versioni automatici per ogni esecuzione della pipeline e crea una cronologia delle versioni.
- Monitora l'avanzamento della pipeline e l'utilizzo delle risorse utilizzando il logging e la tracciabilità integrati e l'integrazione con gli avvisi di Cloud Monitoring.
- Definisci le pipeline ML in modo programmatico utilizzando l'SDK Kubeflow Pipelines (KFP) o l'SDK TensorFlow Extended. Per ulteriori informazioni, consulta Interfacce per Vertex AI Pipelines.
- Orchestra le operazioni utilizzando servizi come Dataflow, l'addestramento personalizzato di Vertex AI, Vertex AI Model Registry e gli endpoint Vertex AI. Google Cloud
- Per i flussi di lavoro di AI generativa, orchestra i passaggi per la gestione dei prompt, l'inferenza batch, la valutazione human-in-the-loop (HITL) e il coordinamento dei componenti ADK.
Gestire l'infrastruttura come codice
Infrastructure as Code (IaC) è fondamentale per gestire l'infrastruttura dei sistemi di AI e ML e per consentire deployment riproducibili, scalabili e gestibili. Le esigenze dell'infrastruttura dei sistemi AI e ML sono dinamiche e complesse. I sistemi spesso richiedono hardware specializzato come GPU e TPU. IaC aiuta a mitigare i rischi della gestione manuale dell'infrastruttura garantendo la coerenza, consentendo i rollback e rendendo ripetibili i deployment.
Per gestire in modo efficace le risorse dell'infrastruttura come codice, utilizza le seguenti tecniche.
Automatizzare il provisioning delle risorse
Per gestire in modo efficace IaC su Google Cloud, definisci ed esegui il provisioning delle risorse dell'infrastruttura di AI e ML utilizzando Terraform. L'infrastruttura potrebbe includere risorse come le seguenti:
- Cluster GKE configurati con i node pool. I pool di nodi possono essere ottimizzati in base ai requisiti del carico di lavoro. Ad esempio, puoi utilizzare le GPU A100, H100, H200 o B200 per l'addestramento e le GPU L4 per l'inferenza.
- Endpoint Vertex AI configurati per la pubblicazione di modelli, con tipi di macchina e norme di scalabilità definiti.
- Bucket Cloud Storage per dati e artefatti.
Utilizzare i modelli di configurazione
Organizza le configurazioni Terraform come modelli modulari. Per accelerare il provisioning delle risorse AI e ML, puoi utilizzare Cluster Toolkit. Il toolkit fornisce progetti di esempio, ovvero modelli Terraform curati da Google che puoi utilizzare per eseguire il deployment di cluster HPC, AI e ML pronti all'uso in Slurm o GKE. Puoi personalizzare il codice Terraform e gestirlo nel tuo sistema di controllo della versione. Per automatizzare il provisioning e il flusso di lavoro di aggiornamento delle risorse, puoi integrare il codice nelle pipeline CI/CD utilizzando Cloud Build.
Automatizzare le modifiche alla configurazione
Dopo aver eseguito il provisioning dell'infrastruttura, gestisci le modifiche alla configurazione in modo dichiarativo:
- In ambienti incentrati su Kubernetes, gestisci le tue Google Cloud risorse come oggetti Kubernetes utilizzando Config Connector.
- Definisci e gestisci risorse Vertex AI come set di dati, modelli ed endpoint, istanze Cloud SQL, argomenti Pub/Sub e bucket Cloud Storage utilizzando manifest YAML.
- Esegui il deployment dei manifest nel cluster GKE per integrare la configurazione dell'applicazione e dell'infrastruttura.
- Automatizza gli aggiornamenti della configurazione utilizzando le pipeline CI/CD e utilizza i modelli per gestire le differenze tra gli ambienti.
- Implementa le configurazioni per le policy IAM (Identity and Access Management) e gli account di servizio utilizzando IaC.
Integra con CI/CD
- Automatizza il ciclo di vita delle risorse dell'infrastruttura integrando IaC nelle pipeline CI/CD utilizzando strumenti come Cloud Build e Infrastructure Manager. Google Cloud
- Definisci i trigger per gli aggiornamenti automatici sui commit di codice.
- Implementa test e convalida automatizzati all'interno della pipeline. Ad esempio, puoi creare uno script per eseguire automaticamente i comandi Terraform
validate
eplan
. - Archivia le configurazioni come artefatti e attiva il controllo delle versioni.
- Definisci ambienti separati, come dev, staging e produzione, con configurazioni distinte nel controllo delle versioni e automatizza la promozione dell'ambiente.
Convalida il comportamento del modello
Per mantenere l'accuratezza e la pertinenza del modello nel tempo, automatizza il processo di addestramento e valutazione all'interno della piattaforma MLOps. Questa automazione, unita a una convalida rigorosa, contribuisce a garantire che i modelli si comportino come previsto con i dati pertinenti prima di essere implementati in produzione.
- Configura pipeline di addestramento continuo, attivate da nuovi dati e segnali di monitoraggio come la deriva dei dati o eseguite in base a una pianificazione.
- Per gestire i job di addestramento automatico, come le prove di ottimizzazione degli iperparametri e le configurazioni di addestramento distribuito per modelli più grandi, utilizza l'addestramento personalizzato di Vertex AI.
- Per la messa a punto dei modelli di base, automatizza il processo di messa a punto e integra i job nelle tue pipeline.
- Implementa il controllo automatico delle versioni del modello e archivia in modo sicuro gli artefatti del modello addestrato dopo ogni sessione di addestramento riuscita. Puoi archiviare gli artefatti in Cloud Storage o registrarli in Model Registry.
- Definisci le metriche di valutazione e imposta soglie chiare, ad esempio accuratezza minima, tasso di errore massimo e punteggio F1 minimo.
- Assicurati che un modello soddisfi le soglie per superare automaticamente la valutazione ed essere preso in considerazione per il deployment.
- Automatizza la valutazione utilizzando servizi come la valutazione dei modelli in Vertex AI.
- Assicurati che la valutazione includa metriche specifiche per la qualità dell'output generato, l'accuratezza fattuale, gli attributi di sicurezza e il rispetto dello stile o del formato specificato.
- Per registrare e monitorare automaticamente i parametri, le versioni del codice, le versioni del set di dati e i risultati di ogni esecuzione di addestramento e valutazione, utilizza Vertex AI Experiments. Questo approccio fornisce una cronologia utile per il confronto, il debug e la riproducibilità.
- Per ottimizzare l'ottimizzazione degli iperparametri e automatizzare la ricerca delle configurazioni ottimali del modello in base all'obiettivo definito, utilizza Vertex AI Vizier.
- Per visualizzare le metriche di addestramento ed eseguire il debug durante lo sviluppo, utilizza Vertex AI TensorBoard.
Convalida input e output delle pipeline di AI e ML
Per garantire l'affidabilità e l'integrità dei tuoi sistemi di AI e ML, devi convalidare i dati quando entrano nei sistemi e si spostano nelle pipeline. Devi anche verificare gli input e gli output ai limiti del componente. La solida convalida di tutti gli input e output (dati non elaborati, dati elaborati, configurazioni, argomenti e file) contribuisce a prevenire comportamenti imprevisti e a mantenere la qualità del modello durante l'intero ciclo di vita di MLOps. Quando integri questo approccio proattivo nella tua piattaforma MLOps, contribuisce a rilevare gli errori prima che vengano propagati in un sistema e consente di risparmiare tempo e risorse.
Per convalidare in modo efficace gli input e gli output delle pipeline AI e ML, utilizza le seguenti tecniche.
Automatizzare la convalida dei dati
- Implementa la convalida automatica dei dati nelle pipeline di importazione e preelaborazione dei dati utilizzando TensorFlow Data Validation (TFDV).
- Monitora le distribuzioni dei dati nel tempo con le funzionalità di TFDV.
- Visualizza le tendenze utilizzando strumenti integrati con Cloud Monitoring per rilevare la deriva dei dati. Puoi attivare automaticamente le pipeline di riaddestramento del modello quando i pattern dei dati cambiano in modo significativo.
- Archivia i risultati e le metriche della convalida in BigQuery per l'analisi e il monitoraggio storico e archivia gli artefatti di convalida in Cloud Storage.
Convalidare le configurazioni della pipeline e i dati di input
Per evitare errori della pipeline o comportamenti imprevisti causati da impostazioni errate, implementa una convalida rigorosa per tutte le configurazioni della pipeline e gli argomenti della riga di comando:
- Definisci schemi chiari per i file di configurazione come YAML o JSON utilizzando librerie di convalida dello schema come jsonschema per Python. Convalida gli oggetti di configurazione rispetto a questi schemi prima dell'inizio dell'esecuzione di una pipeline e prima dell'esecuzione di un componente.
- Implementa la convalida dell'input per tutti gli argomenti della riga di comando e i parametri della pipeline utilizzando librerie di analisi degli argomenti come
argparse
. La convalida deve verificare che i tipi di dati siano corretti, che i valori siano validi e che gli argomenti siano obbligatori. - In Vertex AI Pipelines, definisci i tipi e le proprietà previsti dei parametri dei componenti utilizzando le funzionalità di convalida dell'input dei componenti integrate.
- Per garantire la riproducibilità delle esecuzioni della pipeline e mantenere una traccia di controllo, archivia i file di configurazione con controllo della versione convalidati in Cloud Storage o Artifact Registry.
Convalidare i file di input e output
Convalida i file di input e output, ad esempio set di dati, artefatti del modello e report di valutazione, per verificarne l'integrità e la correttezza del formato:
- Convalida i formati di file come CSV, Parquet e i tipi di immagine utilizzando le librerie.
- Per file di grandi dimensioni o artefatti critici, convalida le dimensioni e i checksum dei file per rilevare danneggiamenti o trasferimenti incompleti utilizzando la convalida dei dati e il rilevamento delle modifiche di Cloud Storage.
- Esegui la convalida dei file utilizzando Cloud Run Functions (ad esempio, in base agli eventi di caricamento dei file) o all'interno delle pipeline Dataflow.
- Archivia i risultati della convalida in BigQuery per un recupero e un'analisi più semplici.
Automatizza il deployment e implementa il monitoraggio continuo
Il deployment automatizzato e il monitoraggio continuo dei modelli in produzione contribuiscono a garantire l'affidabilità, eseguire aggiornamenti rapidi e rilevare tempestivamente i problemi. Ciò comporta la gestione delle versioni del modello, il deployment controllato, il deployment automatizzato utilizzando CI/CD e il monitoraggio completo, come descritto nelle sezioni seguenti.
Gestire le versioni del modello
Gestisci le iterazioni del modello e gli artefatti associati utilizzando gli strumenti di controllo delle versioni:
- Per monitorare le versioni e i metadati del modello e per collegarti agli artefatti del modello sottostanti, utilizza Model Registry.
- Implementa uno schema di controllo delle versioni chiaro (ad esempio, il controllo delle versioni semantico). Per ogni versione del modello, allega metadati completi, come parametri di addestramento, metriche di valutazione delle pipeline di convalida e versione del set di dati.
- Archivia gli artefatti del modello, come file del modello, pesi preaddestrati e immagini container di servizio in Artifact Registry e utilizza le relative funzionalità di controllo delle versioni e tagging.
- Per soddisfare i requisiti di sicurezza e governance, definisci policy di controllo dell'accesso rigorose per Model Registry e Artifact Registry.
- Per registrare e gestire le versioni in modo programmatico e per integrarle nelle pipeline CI/CD automatizzate, utilizza l'SDK o l'API Vertex AI.
Eseguire un deployment controllato
Controlla il deployment delle versioni del modello negli endpoint utilizzando le funzionalità di gestione del traffico della piattaforma di pubblicazione.
- Implementa un deployment in sequenza utilizzando la funzionalità di suddivisione del traffico degli endpoint Vertex AI.
- Se esegui il deployment del modello in GKE, utilizza tecniche avanzate di gestione del traffico come il deployment canary:
- Instrada un piccolo sottoinsieme del traffico di produzione a una nuova versione del modello.
- Monitora costantemente le prestazioni e i tassi di errore tramite le metriche.
- Dimostrare che il modello è affidabile.
- Implementa la versione per tutto il traffico.
- Esegui
test A/B
degli agenti AI:
- Esegui il deployment di due versioni diverse del modello-agente o di modelli completamente diversi sullo stesso endpoint.
- Suddividi il traffico tra i deployment.
- Analizza i risultati in base agli obiettivi commerciali.
- Implementa meccanismi di rollback automatico che possono ripristinare rapidamente il traffico dell'endpoint a una versione precedente del modello stabile se vengono attivati avvisi di monitoraggio o se non vengono raggiunte le soglie di rendimento.
- Configura la suddivisione del traffico e le impostazioni di deployment in modo programmatico utilizzando l'SDK o l'API Vertex AI.
- Utilizza Cloud Monitoring per monitorare le prestazioni e il traffico tra le versioni.
- Automatizzare il deployment con le pipeline CI/CD. Puoi utilizzare Cloud Build per creare container, versionare artefatti e attivare il deployment sugli endpoint Vertex AI.
- Assicurati che le pipeline CI/CD gestiscano le versioni ed eseguano il pull da Artifact Registry.
- Prima di spostare il traffico, esegui test automatici degli endpoint per la correttezza della previsione, la latenza, la velocità effettiva e la funzione API.
- Memorizza tutte le configurazioni nel controllo delle versioni.
Monitorare in modo continuo
- Utilizza
Model Monitoring
per rilevare automaticamente il peggioramento delle prestazioni, la deviazione dei dati (modifiche nella
distribuzione dell'input rispetto all'addestramento) e la deviazione della previsione (modifiche negli
output del modello).
- Configura i job di rilevamento della deriva con soglie e avvisi.
- Monitora le prestazioni in tempo reale: latenza di previsione, velocità effettiva, percentuali di errore.
- Definisci metriche personalizzate in Cloud Monitoring per i KPI aziendali.
- Integra i risultati di Model Monitoring e le metriche personalizzate con Cloud Monitoring per avvisi e dashboard.
- Configura canali di notifica come email, Slack o PagerDuty e configura la correzione automatizzata.
- Per eseguire il debug dei log di previsione, utilizza Cloud Logging.
- Integra il monitoraggio con la gestione degli incidenti.
Per gli endpoint di AI generativa, monitora le caratteristiche dell'output come tossicità e coerenza:
- Monitora la distribuzione delle caratteristiche per rilevare la deviazione.
- Implementa la convalida granulare delle previsioni: convalida gli output rispetto a intervalli e formati previsti utilizzando una logica personalizzata.
- Monitora le distribuzioni delle previsioni per i cambiamenti.
- Convalida lo schema di output.
- Configura gli avvisi per output e turni imprevisti.
- Monitora e rispondi agli eventi di convalida in tempo reale utilizzando Pub/Sub.
Assicurati che l'output del monitoraggio completo venga reimmesso nell'addestramento continuo.
Mantenere la fiducia e il controllo tramite la governance di dati e modelli
L'affidabilità dell'AI e del ML va oltre l'uptime tecnico. Include fiducia e una governance solida di dati e modelli. Gli output dell'AI potrebbero essere imprecisi, distorti o obsoleti. Questi problemi minano la fiducia e possono causare danni. La tracciabilità completa,controllo dell'accessoi rigoroso, la convalida automatica e le pratiche trasparenti contribuiscono a garantire che gli output dell'AI siano affidabili, attendibili e rispettino gli standard etici.
Per mantenere la fiducia e il controllo tramite la governance di dati e modelli, prendi in considerazione i seguenti suggerimenti.
Crea cataloghi di dati e modelli per la tracciabilità
Per facilitare il tracciamento, l'audit e la comprensione completi della derivazione degli asset AI e ML, mantieni un record solido e centralizzato delle versioni di dati e modelli durante il loro ciclo di vita. Un catalogo affidabile di dati e modelli funge da unica fonte attendibile per tutti gli artefatti utilizzati e prodotti dalle pipeline di AI e ML, dalle origini dati non elaborati e dai set di dati elaborati alle versioni dei modelli addestrati e agli endpoint di cui è stato eseguito il deployment.
Utilizza i seguenti prodotti, strumenti e tecniche per creare e gestire cataloghi per le tue risorse di dati:
- Crea un catalogo a livello aziendale dei tuoi asset di dati utilizzando Dataplex Universal Catalog. Per rilevare e creare automaticamente inventari degli asset di dati, integra il Catalogo universale Dataplex con i tuoi sistemi di archiviazione, come BigQuery, Cloud Storage e Pub/Sub.
- Assicurati che i tuoi dati siano altamente disponibili e duraturi memorizzandoli in bucket Cloud Storage multiregionali o a doppia regione. I dati che carichi in questi bucket vengono archiviati in modo ridondante in almeno due località geografiche separate. Questa ridondanza offre una resilienza integrata contro le interruzioni regionali e contribuisce a garantire l'integrità dei dati.
- Tagga e annota i tuoi set di dati con metadati aziendali pertinenti, informazioni sulla proprietà, livelli di sensibilità e dettagli sulla derivazione. Ad esempio, collega un set di dati elaborato alla relativa origine non elaborata e alla pipeline che ha creato il set di dati.
- Crea un repository centrale per le versioni del modello utilizzando
Model Registry.
Registra ogni versione del modello addestrato e collegala ai metadati associati.
I metadati possono includere quanto segue:
- Parametri di addestramento.
- Metriche di valutazione delle pipeline di convalida.
- Versione del set di dati utilizzata per l'addestramento, con la derivazione tracciata fino alla voce pertinente di Dataplex Universal Catalog.
- La versione del codice che ha prodotto il set di dati.
- Dettagli sul framework o sul modello di base utilizzato.
- Prima di importare un modello in Model Registry, archivia gli artefatti del modello, come i file del modello e i pesi preaddestrati, in un servizio come Cloud Storage. Archivia le immagini container personalizzate per la pubblicazione o i job di addestramento personalizzati in un repository sicuro come Artifact Registry.
- Per garantire che gli asset di dati e modelli vengano registrati e aggiornati automaticamente nei rispettivi cataloghi al momento della creazione o della modifica, implementa processi automatizzati all'interno delle pipeline MLOps. Questa catalogazione completa fornisce la tracciabilità end-to-end dai dati non elaborati alla previsione, il che ti consente di controllare gli input e i processi che hanno portato a una versione o a una previsione specifica del modello. La funzionalità di controllo è fondamentale per il debug di comportamenti imprevisti, per garantire la conformità alle norme sull'utilizzo dei dati e per comprendere l'impatto delle modifiche ai dati o ai modelli nel tempo.
- Per l'AI generativa e i foundation model, il catalogo deve anche tenere traccia dei dettagli sul foundation model specifico utilizzato, dei parametri di ottimizzazione e dei risultati della valutazione specifici per la qualità e la sicurezza dell'output generato.
Implementare controlli rigidi dell'accesso e audit trail
Per mantenere la fiducia e il controllo nei tuoi sistemi di AI e ML, è essenziale proteggere i dati e i modelli sensibili da accessi non autorizzati e garantire la responsabilità di tutte le modifiche.
- Implementa controlli di accesso rigorosi e mantieni audit trail dettagliati in tutti i componenti dei tuoi sistemi di AI e ML in Google Cloud.
- Definisci autorizzazioni granulari in IAM per utenti, gruppi e service account che interagiscono con le tue risorse di AI e ML.
- Segui rigorosamente il principio del privilegio minimo.
- Concedi solo le autorizzazioni minime necessarie per attività specifiche. Ad esempio, un account di servizio di addestramento ha bisogno dell'accesso in lettura ai dati di addestramento e dell'accesso in scrittura per gli artefatti del modello, ma il servizio potrebbe non aver bisogno dell'accesso in scrittura agli endpoint di pubblicazione di produzione.
Applica i criteri IAM in modo coerente a tutte le risorse e a tutti gli asset pertinenti nei tuoi sistemi di AI e ML, tra cui:
- Bucket Cloud Storage contenenti dati sensibili o artefatti del modello.
- Set di dati BigQuery.
- Risorse Vertex AI, come repository di modelli, endpoint, pipeline e risorse Feature Store.
- Risorse di calcolo, come cluster GKE e servizi Cloud Run.
Utilizza l'audit e i log per acquisire, monitorare e analizzare l'attività di accesso:
- Attiva Cloud Audit Logs per tutti i servizi Google Cloud utilizzati dal tuo sistema di AI e ML.
- Configura gli audit log per acquisire informazioni dettagliate sulle chiamate API, sugli eventi di accesso ai dati e sulle modifiche alla configurazione apportate alle tue risorse. Monitora i log per rilevare attività sospette, tentativi di accesso non autorizzati o modifiche impreviste a dati critici o asset del modello.
- Per l'analisi, gli avvisi e la visualizzazione in tempo reale, trasmetti in streaming i log di audit a Cloud Logging.
- Per l'archiviazione a lungo termine conveniente e l'analisi retrospettiva della sicurezza o gli audit di conformità, esporta i log in BigQuery.
- Per un monitoraggio centralizzato della sicurezza, integra gli audit log con i tuoi sistemi di gestione degli eventi e delle informazioni di sicurezza (SIEM). Esamina regolarmente le norme di accesso e le tracce di controllo per assicurarti che siano in linea con i tuoi requisiti di governance e rilevare potenziali violazioni delle norme.
- Per le applicazioni che gestiscono dati sensibili, come le informazioni che consentono l'identificazione personale (PII) per l'addestramento o l'inferenza, utilizza i controlli di Sensitive Data Protection all'interno delle pipeline o nell'archiviazione dei dati.
- Per le soluzioni di AI generativa e agentic, utilizza i log di controllo per monitorare chi ha eseguito l'accesso a modelli o strumenti specifici, quali dati sono stati utilizzati per l'ottimizzazione o il prompting e quali query sono state inviate agli endpoint di produzione. I log di controllo ti aiutano a garantire la responsabilità e forniscono dati cruciali per indagare sull'uso improprio dei dati o sulle violazioni delle norme.
Affrontare pregiudizi, trasparenza e interpretabilità
Per creare sistemi di AI e ML affidabili, devi affrontare i potenziali bias inerenti a dati e modelli, puntare alla trasparenza nel comportamento del sistema e fornire spiegazioni per gli output del modello. È particolarmente importante creare sistemi affidabili in domini sensibili o quando utilizzi modelli complessi come quelli che vengono in genere utilizzati per le applicazioni di AI generativa.
- Implementa pratiche proattive per identificare e mitigare i bias durante il ciclo di vita di MLOps.
- Analizza i dati di addestramento per rilevare eventuali distorsioni utilizzando strumenti che rilevano l'asimmetria nelle distribuzioni delle caratteristiche in diversi gruppi demografici o attributi sensibili.
- Valuta le prestazioni complessive del modello e le prestazioni in base a sezioni di dati predefinite. Questa valutazione ti aiuta a identificare prestazioni o pregiudizi disparati che interessano sottogruppi specifici.
Per la trasparenza e l'interpretabilità dei modelli, utilizza strumenti che aiutino utenti e sviluppatori a capire perché un modello ha fatto una determinata previsione o prodotto un output specifico.
- Per i modelli tabellari di cui è stato eseguito il deployment sugli endpoint Vertex AI, genera le attribuzioni delle caratteristiche utilizzando Vertex Explainable AI. L'attribuzione delle caratteristiche indica le caratteristiche di input che hanno contribuito maggiormente alla previsione.
- Esplora in modo interattivo il comportamento del modello e i potenziali bias in un set di dati utilizzando strumenti indipendenti dal modello come lo strumento What-If, che si integra con TensorBoard.
- Integra l'interpretabilità nelle dashboard di monitoraggio. Nelle situazioni in cui la comprensione del ragionamento del modello è importante per la fiducia o il processo decisionale, fornisci i dati di spiegabilità direttamente agli utenti finali tramite le interfacce dell'applicazione.
- Per i modelli complessi come gli LLM utilizzati per i modelli di AI generativa, spiega la procedura seguita da un agente, ad esempio utilizzando log di traccia. La spiegabilità è relativamente difficile per questi modelli, ma è comunque fondamentale.
- Nelle applicazioni RAG, fornisci citazioni per le informazioni recuperate. Puoi anche utilizzare tecniche come il prompt engineering per guidare il modello a fornire spiegazioni o mostrare i passaggi del suo ragionamento.
- Rileva cambiamenti nel comportamento o negli output del modello che potrebbero indicare l'emergere di bias o iniquità implementando il monitoraggio continuo in produzione. Limitazioni del modello di documento, casi d'uso previsti e potenziali bias noti come parte dei metadati del modello nel Model Registry.
Implementa pratiche olistiche di osservabilità e affidabilità di AI e ML
L'osservabilità olistica è essenziale per gestire sistemi di AI e ML complessi in produzione. È anche essenziale per misurare l'affidabilità di sistemi complessi di AI e ML, in particolare per l'AI generativa, a causa della sua complessità, dell'intensità delle risorse e del potenziale di output imprevedibili. L'osservabilità olistica comporta l'osservazione dell'infrastruttura, del codice dell'applicazione, dei dati e del comportamento del modello per ottenere informazioni per il rilevamento, la diagnosi e la risposta proattivi ai problemi. Questa osservabilità porta in definitiva a sistemi affidabili e ad alte prestazioni. Per ottenere un'osservabilità olistica, devi:
- Adotta i principi SRE.
- Definisci obiettivi di affidabilità chiari.
- Monitora le metriche nei vari livelli del sistema.
- Utilizza gli approfondimenti dell'osservabilità per il miglioramento continuo e la gestione proattiva.
Per implementare pratiche di osservabilità e affidabilità olistiche per i workload di AI e ML in Google Cloud, prendi in considerazione i seguenti suggerimenti.
Definisci gli obiettivi di affidabilità e le metriche aziendali
Identifica gli indicatori chiave di prestazione (KPI) che il tuo sistema di AI e ML influenza direttamente. I KPI potrebbero includere le entrate influenzate dai consigli dell'AI, l'abbandono dei clienti previsto o mitigato dai sistemi di AI e i tassi di coinvolgimento e conversione degli utenti determinati dalle funzionalità di AI generativa.
Per ogni KPI, definisci le metriche di affidabilità tecnica corrispondenti che lo influenzano. Ad esempio, se l'KPI è "soddisfazione dei clienti con un assistente AI conversazionale", le metriche di affidabilità corrispondenti possono includere quanto segue:
- Il tasso di successo delle richieste degli utenti.
- Latenza delle risposte: tempo al primo token (TTFT) e streaming dei token per i LLM.
- Il tasso di risposte non pertinenti o dannose.
- Il tasso di completamento delle attività da parte dell'agente.
Per l'addestramento di AI e ML, le metriche di affidabilità possono includere l'utilizzo di FLOPS del modello (MFU), le iterazioni al secondo, i token al secondo e i token per dispositivo.
Per misurare e migliorare in modo efficace l'affidabilità dell'AI e del ML, inizia impostando obiettivi di affidabilità chiari e in linea con gli scopi commerciali generali. Adotta l'approccio SRE definendo SLO che quantifichino i livelli accettabili di affidabilità e prestazioni per i tuoi servizi AI e ML dal punto di vista degli utenti. Quantifica queste metriche di affidabilità tecnica con target SLO specifici.
Di seguito sono riportati alcuni esempi di target SLO:
- Il 99,9% delle chiamate API deve restituire una risposta riuscita.
- La latenza di inferenza del 95° percentile deve essere inferiore a 300 ms.
- Il TTFT deve essere inferiore a 500 ms per il 99% delle richieste.
- Il tasso di output dannoso deve essere inferiore allo 0,1%.
L'allineamento degli SLO direttamente alle esigenze aziendali garantisce che gli sforzi per l'affidabilità siano concentrati sul comportamento del sistema più critico che influisce sugli utenti e sull'azienda. Questo approccio contribuisce a trasformare l'affidabilità in una proprietà di ingegneria misurabile e azionabile.
Monitora le prestazioni di infrastruttura e applicazioni
Tieni traccia delle metriche dell'infrastruttura in tutte le risorse utilizzate dai tuoi sistemi di AI e ML. Le metriche includono l'utilizzo del processore (CPU, GPU e TPU), l'utilizzo della memoria, il throughput e la latenza di rete e l'I/O del disco. Monitora le metriche per gli ambienti gestiti come l'addestramento e la pubblicazione di Vertex AI e per le risorse autogestite come i nodi GKE e le istanze Cloud Run.
Monitora i quattro segnali aurei per le tue applicazioni AI e ML:
- Latenza: tempo necessario per rispondere alle richieste.
- Traffico: volume di richieste o carico di lavoro.
- Tasso di errori: tasso di richieste o operazioni non riuscite.
- Saturazione: utilizzo di risorse critiche come CPU, memoria e acceleratori GPU o TPU, che indica quanto il sistema si avvicina ai limiti di capacità.
Esegui il monitoraggio utilizzando le seguenti tecniche:
- Raccogli, archivia e visualizza le metriche dell'infrastruttura e delle applicazioni utilizzando Cloud Monitoring.
Puoi utilizzare dashboard predefinite per i servizi Google Cloud e creare dashboard personalizzate in base agli indicatori di rendimento specifici del tuo workload e allo stato dell'infrastruttura.
- Raccogli e integra le metriche da framework di pubblicazione specializzati come vLLM o NVIDIA Triton Inference Server in Cloud Monitoring utilizzando Google Cloud Managed Service per Prometheus.
- Crea dashboard e configura avvisi per le metriche correlate all'addestramento personalizzato, agli endpoint e alle prestazioni, nonché per le metriche che Vertex AI esporta in Cloud Monitoring.
- Raccogli log dettagliati dalle tue applicazioni di AI e ML e dall'infrastruttura sottostante utilizzando Cloud Logging. Questi log sono essenziali per la risoluzione dei problemi e l'analisi delle prestazioni. Forniscono il contesto di eventi ed errori.
- Individua i problemi di latenza e comprendi i flussi di richieste nei microservizi di AI e ML distribuiti utilizzando Cloud Trace. Questa funzionalità è fondamentale per il debug di interazioni complesse di Vertex AI Agents o di pipeline di inferenza multicomponente.
- Identifica i colli di bottiglia delle prestazioni all'interno dei blocchi di funzioni nel codice dell'applicazione utilizzando Cloud Profiler. L'identificazione dei colli di bottiglia delle prestazioni può aiutarti a ottimizzare l'utilizzo delle risorse e il tempo di esecuzione.
- Raccogli metriche specifiche relative agli acceleratori, come l'utilizzo dettagliato della GPU per processo, l'utilizzo della memoria per processo e la temperatura, utilizzando strumenti come NVIDIA Data Center GPU Manager (DCGM).
Implementare l'osservabilità dei dati e dei modelli
I sistemi di AI generativa affidabili richiedono una solida osservabilità di dati e modelli, che inizia con il monitoraggio della pipeline end-to-end.
- Monitora le velocità di importazione dati, i volumi elaborati e le latenze di trasformazione utilizzando servizi come Dataflow.
- Monitora i tassi di successo e di errore dei job all'interno delle pipeline MLOps, incluse le pipeline gestite da Vertex AI Pipelines.
La valutazione continua della qualità dei dati è fondamentale.
- Gestisci e governa i dati utilizzando
Dataplex Universal Catalog:
- Valuta l'accuratezza eseguendo la convalida rispetto ai dati empirici reali o monitorando i tassi di rilevamento degli outlier.
- Monitora l'aggiornamento in base all'età dei dati e alla frequenza degli aggiornamenti rispetto agli SLA.
- Valuta la completezza monitorando le percentuali di valori nulli e i tassi di compilazione dei campi obbligatori.
- Garantisci la validità e la coerenza tramite controlli di aderenza allo schema e duplicazione.
- Rileva in modo proattivo le anomalie utilizzando gli avvisi di Cloud Monitoring e tramite una derivazione dei dati chiara per la tracciabilità.
- Per i sistemi RAG, esamina la pertinenza del contesto recuperato e la fondatezza (attribuzione alla fonte) delle risposte.
- Monitora il throughput delle query del database vettoriale.
Le metriche chiave di osservabilità del modello includono i conteggi dei token di input e output e i tassi di errore specifici del modello, ad esempio allucinazioni o errori di risoluzione delle query. Per monitorare queste metriche, utilizza Model Monitoring.
- Monitora costantemente i punteggi di tossicità dell'output e le valutazioni del feedback degli utenti.
- Automatizza la valutazione degli output del modello in base a criteri definiti utilizzando Gen AI evaluation service.
- Garantisci prestazioni costanti monitorando sistematicamente la deriva dei dati e dei concetti con metriche complete del tasso di errore.
Per monitorare le metriche del modello, puoi utilizzare TensorBoard o MLflow. Per l'analisi e la profilazione approfondite per risolvere i problemi di prestazioni, puoi utilizzare PyTorch XLA profiling o NVIDIA Nsight.
Collaboratori
Autori:
- Rick (Rugui) Chen | AI Infrastructure Field Solutions Architect
- Stef Ruinard | Generative AI Field Solutions Architect
Altri collaboratori:
- Filipe Gracio, PhD | Customer Engineer, AI/ML Specialist
- Hossein Sarshar | AI Infrastructure Field Solution Architect
- Jose Andrade | Customer Engineer, SRE Specialist
- Kumar Dhanagopal | Sviluppatore di soluzioni cross-prodotto
- Laura Hyatt | Customer Engineer, FSI
- Olivier Martin | AI Infrastructure Field Solution Architect
- Radhika Kanakam | Program Lead, Google Cloud Well-Architected Framework
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 i costi in modo proattivo, 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
- Ottimizzare l'allocazione delle risorse
- Applica le pratiche di gestione e governance dei dati
- Automatizza e semplifica con MLOps
- Utilizzare servizi gestiti e modelli preaddestrati
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 del cliente ed efficienza. Coinvolgi gli stakeholder per comprendere le priorità aziendali. Definisci obiettivi di AI e ML che siano specifici, misurabili, raggiungibili, pertinenti e con una scadenza (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 su efficienza e opportunità di 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 le dashboard di 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 e i risultati dei 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 la sezione 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 commerciali e misura il ROI.
Per convalidare le ipotesi di ROI, inizia con progetti pilota e utilizza il seguente ciclo di ottimizzazione iterativo:
- Monitora continuamente e analizza i dati: monitora i KPI e i costi per identificare deviazioni e opportunità di ottimizzazione.
- Apportare modifiche basate sui dati: ottimizza strategie, modelli, infrastruttura e allocazione delle risorse in base agli approfondimenti sui dati.
- 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.
- Crea un ciclo di feedback: esamina il rendimento, i costi e il valore con gli stakeholder per ottimizzare continuamente e pianificare i 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 gli 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 saperne di più, consulta Scegliere una gerarchia delle risorse per la tua 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.
Utilizzare gli strumenti correlati alla fatturazione
- 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 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à di AI e ML specifiche, 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 workload 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 provisioning eccessivo (in cui le risorse non vengono utilizzate completamente) e di provisioning insufficiente (in cui le risorse sono insufficienti). L'overprovisioning 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 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 workload AI e ML in Google Cloud, devi ottimizzare l'allocazione delle risorse. Per aiutarti a evitare spese inutili e assicurarti 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 |
|
Inferenza |
|
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 workload corrente.
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 Jupyter Notebook 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:
- 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 Scopri il vero costo dell'AI aziendale su Google Cloud.
- 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.
- 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.
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 delle prestazioni, puoi utilizzare la console Vertex AI.
- Per raccogliere e analizzare metriche sulle prestazioni dettagliate, 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.
Analizza i costi: confronta il costo e le prestazioni di ogni configurazione per identificare l'opzione più conveniente.
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.
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 e prevenire costosi tempi di inattività o il degrado delle prestazioni.
- Riapprendimento del modello: Vertex AI Pipelines semplifica i processi di riaddestramento dei modelli periodicamente 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 solido framework di governance dei dati:
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.
- Per organizzare i dati, utilizza le astrazioni del Catalogo universale Dataplex e configura lake e zone di dati logici.
- Per amministrare l'accesso a data lake e zone, utilizza Google Gruppi e i ruoli di Dataplex Universal Catalog.
- Per semplificare i processi di qualità dei dati, attiva la qualità dei dati automatica.
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 la rilevabilità 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 di 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:
- Opzioni di database come Cloud SQL, Spanner, AlloyDB per PostgreSQL, Firestore, e BigQuery. La scelta dipende dai tuoi requisiti, ad esempio la latenza di accesso in scrittura (statica o dinamica), il volume di dati (alto o basso) e il formato dei dati (strutturati, non strutturati o semistrutturati). Per ulteriori informazioni, vedi Google Cloud database.
- Data lake come Cloud Storage con BigLake.
- Dataplex Universal Catalog per la governance dei dati tra le varie origini.
- Piattaforme di streaming di eventi come Pub/Sub, Dataflow, o Apache Kafka.
- API esterne.
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 ML. 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 apportate 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 saperne di più, 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 dei modelli, 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 workflow ML complessi composti da più passaggi e dipendenze. Puoi definire ogni passaggio come un'attività in container separata, il che ti aiuta a gestire e scalare facilmente le singole attività. |
|
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 riusabilità 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 del modello 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:
- Ottimizzazione di Vertex AI per eseguire il fine-tuning supervisionato di Gemini, Imagen e altri modelli.
- Addestramento Vertex AI o Ray su Vertex AI per l'addestramento distribuito personalizzato.
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 blocchi note per l'esplorazione e gli esperimenti
Gli ambienti notebook sono fondamentali per una sperimentazione di ML conveniente. 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 fare quanto segue:
- 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 notevolmente 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:
- Modelli Google come la famiglia di modelli Gemini e Imagen per la generazione di immagini.
- Modelli open source come Gemma e Llama.
- Modelli di terze parti di partner come Anthropic e Mistral AI.
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 ti aiuta ad 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 etichettato. Questo approccio semplifica la gestione dell'infrastruttura sottostante e lo sforzo di sviluppo necessario 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 vantaggi significativi in termini di costi e maggiore efficienza.
Riduci l'overhead operativo
Per ridurre la complessità e i costi 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:
- Isaac Lo | AI Business Development Manager
- Anastasia Prokaeva | Field Solutions Architect, AI generativa
- Amy Southwood | Technical Solutions Consultant, Data Analytics & AI
Altri collaboratori:
- Filipe Gracio, PhD | Customer Engineer, AI/ML Specialist
- Kumar Dhanagopal | Sviluppatore di soluzioni cross-prodotto
- Marwan Al Shawi | Partner Customer Engineer
- Nicolas Pintaux | Customer Engineer, specialista in modernizzazione delle applicazioni
Prospettiva AI e ML: ottimizzazione del rendimento
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 decisioni per la tua organizzazione. Il rendimento di questi sistemi può influire direttamente sui fattori aziendali 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 consigli 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 del modello, i parametri e la strategia di addestramento. Quando prendi queste decisioni, considera l'intero ciclo di vita dei sistemi di AI e ML e il loro ambiente di deployment. Ad esempio, gli LLM di grandi dimensioni possono 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 serving. È 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 ed energie 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 aziendali 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 workload: concentra i tuoi sforzi di ottimizzazione delle prestazioni sui requisiti unici dei tuoi workload 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.
Collegare le metriche sul rendimento alle scelte di progettazione e configurazione
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:
- Benjamin Sadik | Customer Engineer specializzato in AI e ML
- Filipe Gracio, PhD | Customer Engineer, AI/ML Specialist
Altri collaboratori:
- Kumar Dhanagopal | Sviluppatore di soluzioni cross-prodotto
- Marwan Al Shawi | Partner Customer Engineer
- Zach Seils | Specialista di networking