Prospettiva AI e ML: affidabilità

Last reviewed 2025-08-07 UTC

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 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.

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 e plan.
  • 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).
    • Per i controlli della qualità dei dati su larga scala basati su SQL, utilizza servizi di elaborazione scalabili come BigQuery.
    • Per la convalida programmatica complessa dei dati in streaming o batch, utilizza Dataflow.
  • 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:
    1. Instrada un piccolo sottoinsieme del traffico di produzione a una nuova versione del modello.
    2. Monitora costantemente le prestazioni e i tassi di errore tramite le metriche.
    3. Dimostrare che il modello è affidabile.
    4. Implementa la versione per tutto il traffico.
  • Esegui test A/B degli agenti AI:
    1. Esegui il deployment di due versioni diverse del modello-agente o di modelli completamente diversi sullo stesso endpoint.
    2. Suddividi il traffico tra i deployment.
    3. 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 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:

Altri collaboratori: