Infrastruttura per un'applicazione di AI generativa compatibile con RAG che utilizza Vertex AI e Vector Search

Last reviewed 2024-12-06 UTC

Questo documento fornisce un'architettura di riferimento che puoi utilizzare per progettare l'infrastruttura di un'applicazione di AI generativa con Retrieval-Augmented Generation (RAG) utilizzando Vector Search. Ricerca di vettori è un servizio Google Cloud completamente gestito che fornisce un'infrastruttura di pubblicazione ottimizzata per la corrispondenza di similarità vettoriale su larga scala.

Il pubblico di destinazione di questo documento include architetti, sviluppatori e amministratori di applicazioni di IA generativa. Il documento presuppone una conoscenza di base dei concetti di IA, machine learning (ML) e modelli linguistici di grandi dimensioni (LLM). Questo documento non fornisce indicazioni su come progettare e sviluppare un'applicazione di AI generativa.

Architettura

Il seguente diagramma mostra una visione di alto livello dell'architettura presentata in questo documento:

Una visualizzazione di alto livello dei flussi di importazione e pubblicazione dei dati nell'architettura.

L'architettura nel diagramma precedente ha due sottosistemi: importazione e pubblicazione dei dati.

  • Il sottosistema di importazione dei dati importa i dati caricati da origini esterne. Il sottosistema prepara i dati per la RAG e interagisce con Vertex AI per generare incorporamenti per i dati importati e per creare e aggiornare l'indice vettoriale.
  • Il sottosistema di pubblicazione contiene i servizi frontend e backend dell'applicazione di IA generativa.
    • Il servizio frontend gestisce il flusso di query e risposta con gli utenti dell'applicazione e inoltra le query al servizio di backend.
    • Il servizio di backend utilizza Vertex AI per generare incorporamenti delle query, eseguire ricerche di somiglianza vettoriale e applicare filtri di sicurezza e istruzioni di sistema dell'IA responsabile.

Il seguente diagramma mostra una visualizzazione dettagliata dell'architettura:

Una visualizzazione dettagliata dei flussi di importazione e pubblicazione dei dati nell'architettura.

Le sezioni seguenti descrivono il flusso di dati all'interno di ogni sottosistema del diagramma di architettura precedente.

Sottosistema di importazione dati

Il sottosistema di importazione dei dati importa i dati da origini esterne e li prepara per il RAG. Di seguito sono riportati i passaggi del flusso di importazione e preparazione dei dati:

  1. I dati vengono caricati da origini esterne in un bucket Cloud Storage. Le origini esterne possono essere applicazioni, database o servizi di streaming.
  2. Quando i dati vengono caricati su Cloud Storage, un messaggio viene pubblicato in un argomento Pub/Sub.
  3. Quando l'argomento Pub/Sub riceve un messaggio, attiva un job Cloud Run.
  4. Il job Cloud Run analizza i dati non elaborati, li formatta come richiesto e li suddivide in blocchi.
  5. Il job Cloud Run utilizza l' API Vertex AI Embeddings per creare embedding dei chunk utilizzando un modello di embedding specificato. Vertex AI supporta i modelli di embedding di testo e multimodali.
  6. Il job Cloud Run crea un indice Vector Search degli embedding e poi lo esegue.

Quando vengono importati nuovi dati, vengono eseguiti i passaggi precedenti per i nuovi dati e l'indice viene aggiornato utilizzando gli aggiornamenti in streaming.

Quando il sottosistema di pubblicazione elabora le richieste degli utenti, utilizza l'indice Vector Search per la ricerca di similarità vettoriale. La sezione successiva descrive il flusso di pubblicazione.

Sottosistema di pubblicazione

Il sottosistema di pubblicazione gestisce il flusso di query-risposta tra l'applicazione di IA generativa e i suoi utenti. Di seguito sono riportati i passaggi del flusso di pubblicazione:

  1. Un utente invia una query in linguaggio naturale a un servizio Cloud Run che fornisce un'interfaccia frontend (ad esempio un chatbot) per l'applicazione di IA generativa.
  2. Il servizio frontend inoltra la query dell'utente a un servizio Cloud Run backend.
  3. Il servizio di backend elabora la query nel seguente modo:
    1. Converte la query in embedding utilizzando lo stesso modello e gli stessi parametri di embedding utilizzati dal sottosistema di importazione dei dati per generare gli embedding dei dati importati.
    2. Recupera i dati di ancoraggio pertinenti eseguendo una ricerca di somiglianza vettoriale per gli embedding delle query nell'indice di Vector Search.
    3. Costruisce un prompt aumentato combinando la query originale con i dati di ancoraggio.
    4. Invia il prompt aumentato a un modello LLM di cui è stato eseguito il deployment su Vertex AI.
  4. L'LLM genera una risposta.
  5. Per ogni prompt, Vertex AI applica i filtri di sicurezza dell'IA responsabile che hai configurato e poi invia la risposta filtrata e i punteggi di sicurezza dell'IA al servizio di backend Cloud Run.
  6. L'applicazione invia la risposta all'utente tramite il servizio frontend Cloud Run.

Puoi archiviare e visualizzare i log dell'attività di query e risposta in Cloud Logging e puoi configurare il monitoraggio basato sui log utilizzando Cloud Monitoring. Puoi anche caricare le risposte generate in BigQuery per le analisi offline.

L'ottimizzatore dei prompt di Vertex AI ti aiuta a migliorare i prompt su larga scala, sia durante la progettazione iniziale dei prompt sia per la loro ottimizzazione continua. L'ottimizzatore dei prompt valuta la risposta del modello a un insieme di prompt di esempio forniti dagli ingegneri ML. L'output della valutazione include le risposte del modello ai prompt di esempio, i punteggi per le metriche specificate dagli ingegneri ML e un insieme di istruzioni di sistema ottimizzate che puoi prendere in considerazione.

Prodotti utilizzati

Questa architettura di riferimento utilizza i seguenti Google Cloud prodotti:

  • Vertex AI: una piattaforma ML che ti consente di addestrare ed eseguire il deployment di modelli ML e applicazioni IA e personalizzare LLM da utilizzare nelle applicazioni basate sull'IA.
  • Ricerca vettoriale: un servizio di ricerca di corrispondenze per somiglianza vettoriale che consente di archiviare, indicizzare e cercare dati semanticamente simili o correlati.
  • Cloud Run: una piattaforma di calcolo serverless che ti consente di eseguire container direttamente sull'infrastruttura scalabile di Google.
  • Cloud Storage: uno spazio di archiviazione di oggetti a basso costo e senza limiti per diversi tipi di dati. I dati sono accessibili dall'interno e dall'esterno Google Cloude vengono replicati in più località per garantire la ridondanza.
  • Pub/Sub: un servizio di messaggistica asincrono e scalabile che consente di disaccoppiare i servizi che producono messaggi da quelli che li elaborano.
  • Cloud Logging: un sistema di gestione dei log in tempo reale con archiviazione, ricerca, analisi e avvisi.
  • Cloud Monitoring: un servizio che offre visibilità su prestazioni, disponibilità e integrità delle tue applicazioni e dell'infrastruttura.
  • BigQuery: un data warehouse aziendale che ti aiuta a gestire e analizzare i dati con funzionalità integrate come machine learning, analisi geospaziale e business intelligence.

Casi d'uso

La RAG è una tecnica efficace per migliorare la qualità dell'output generato da un LLM. Questa sezione fornisce esempi di casi d'uso per i quali puoi utilizzare applicazioni di IA generativa compatibili con RAG.

Suggerimenti personalizzati sui prodotti

Un sito di shopping online potrebbe utilizzare un chatbot basato su LLM per aiutare i clienti a trovare prodotti o ricevere assistenza in merito agli acquisti. Le domande di un utente possono essere migliorate utilizzando i dati storici sul suo comportamento di acquisto e sui modelli di interazione con il sito web. I dati potrebbero includere recensioni e feedback degli utenti archiviati in un archivio dati non strutturato o metriche correlate alla ricerca archiviate in un data warehouse di analisi web. La domanda aumentata può essere quindi elaborata dall'LLM per generare risposte personalizzate che l'utente potrebbe trovare più accattivanti e convincenti.

Sistemi di assistenza clinica

I medici degli ospedali devono analizzare e diagnosticare rapidamente le condizioni di salute di un paziente per prendere decisioni in merito a cure e farmaci appropriati. Un'applicazione di AI generativa che utilizza un modello LLM medico come Med-PaLM può essere utilizzata per assistere i medici nella procedura di diagnosi clinica. Le risposte generate dall'applicazione possono essere basate sui record storici dei pazienti contestualizzando le richieste dei medici con i dati del database della cartella clinica elettronica (EHR) dell'ospedale o di una knowledge base esterna come PubMed.

La ricerca legale basata sull'IA generativa consente agli avvocati di eseguire rapidamente query su grandi volumi di statuti e giurisprudenza per identificare precedenti legali pertinenti o riassumere concetti legali complessi. Il risultato di questa ricerca può essere migliorato integrando le richieste di un avvocato con i dati recuperati dal corpus proprietario di contratti, comunicazioni legali passate e registrazioni interne dei casi dello studio legale. Questo approccio di progettazione garantisce che le risposte generate siano pertinenti al dominio legale in cui l'avvocato è specializzato.

Alternative di design

Questa sezione presenta approcci di progettazione alternativi che puoi prendere in considerazione per la tua applicazione di AI generativa compatibile con RAG in Google Cloud.

Alternative all'infrastruttura AI

Se vuoi sfruttare le funzionalità dello spazio vettoriale di un database Google Cloud completamente gestito come AlloyDB per PostgreSQL o Cloud SQL per la tua applicazione RAG, consulta Infrastruttura per un'applicazione di AI generativa compatibile con RAG che utilizza Vertex AI e AlloyDB per PostgreSQL.

Se vuoi creare ed eseguire rapidamente il deployment di applicazioni di AI generativa compatibili con RAG utilizzando gli strumenti e i modelli open source Ray, Hugging Face e LangChain, consulta Infrastruttura per un'applicazione di AI generativa compatibile con RAG che utilizza Google Kubernetes Engine (GKE).

Opzioni di hosting delle applicazioni

Nell'architettura mostrata in questo documento, Cloud Run è l'host per i servizi di applicazione di AI generativa e per il job di elaborazione dei dati. Cloud Run è una piattaforma per le applicazioni completamente gestita e incentrata sugli sviluppatori. Se hai bisogno di una maggiore flessibilità di configurazione e di un maggiore controllo sull'infrastruttura di calcolo, puoi eseguire il deployment dell'applicazione nei cluster GKE o nelle VM Compute Engine.

La decisione di utilizzare Cloud Run, GKE o Compute Engine come host dell'applicazione comporta dei compromessi tra flessibilità di configurazione e impegno di gestione. Con l'opzione Cloud Run serverless, esegui il deployment della tua applicazione in un ambiente preconfigurato che richiede uno sforzo di gestione minimo. Con le VM Compute Engine e i container GKE, hai la responsabilità di gestire le risorse di calcolo sottostanti, ma hai maggiore flessibilità e controllo sulla configurazione. Per ulteriori informazioni sulla scelta di un servizio di hosting di applicazioni appropriato, consulta i seguenti documenti:

Altre opzioni

Per informazioni su altre opzioni di infrastruttura, modelli supportati e tecniche di ancoraggio che puoi utilizzare per le applicazioni di IA generativa inGoogle Cloud, consulta Scegliere modelli e infrastruttura per l'applicazione di IA generativa.

Note sul layout

Questa sezione descrive i fattori di progettazione, le best practice e i consigli di progettazione che devi prendere in considerazione quando utilizzi questa architettura di riferimento per sviluppare una topologia che soddisfi i tuoi requisiti specifici per sicurezza, affidabilità, costi e prestazioni.

Le indicazioni contenute in questa sezione non sono esaustive. A seconda dei requisiti specifici della tua applicazione e dei prodotti e delle funzionalità Google Cloud di terze parti Google Cloud che utilizzi, potresti dover prendere in considerazione ulteriori fattori di progettazione e compromessi.

Sicurezza, conformità e privacy

Questa sezione descrive considerazioni e consigli di progettazione per progettare una Google Cloud topologia che soddisfi i requisiti di sicurezza e conformità dei carichi di lavoro.

Prodotto Considerazioni e consigli di progettazione
Vertex AI

Controlli di sicurezza: Vertex AI supporta Google Cloud controlli di sicurezza che puoi utilizzare per soddisfare i tuoi requisiti relativi a residenza dei dati, crittografia dei dati, sicurezza della rete e trasparenza degli accessi. Per ulteriori informazioni, consulta Controlli di sicurezza per Vertex AI e Controlli di sicurezza per l'IA generativa.

Accesso ai modelli: puoi configurare i criteri dell'organizzazione per limitare il tipo e le versioni dei modelli LLM che possono essere utilizzati in un Google Cloud progetto. Per saperne di più, vedi Controllare l'accesso ai modelli di Model Garden.

Responsabilità condivisa: Vertex AI protegge l'infrastruttura di base e fornisce strumenti e controlli di sicurezza per aiutarti a proteggere i tuoi dati, il tuo codice e i tuoi modelli. Per ulteriori informazioni, consulta la sezione Responsabilità condivisa di Vertex AI.

Protezione dei dati: utilizza l'API Cloud Data Loss Prevention per scoprire e anonimizzare i dati sensibili, come le informazioni che consentono l'identificazione personale (PII), nei prompt e nelle risposte e nei dati dei log. Per maggiori informazioni, guarda questo video: Protezione dei dati sensibili nelle AI IA.

Cloud Run

Sicurezza di Ingress (servizio frontend): per controllare l'accesso esterno all'applicazione, disattiva l'URL run.app predefinito del servizio frontend Cloud Run e configura un bilanciatore del carico delle applicazioni esterno a livello di regione. Oltre a bilanciare il carico del traffico in entrata verso l'applicazione, il bilanciatore del carico gestisce la gestione dei certificati SSL. Per una protezione aggiuntiva, puoi utilizzare i criteri di sicurezza di Google Cloud Armor per fornire il filtraggio delle richieste, la protezione DDoS e il limite di velocità per il servizio.

Sicurezza in entrata (servizio di backend): il servizio Cloud Run per il backend dell'applicazione in questa architettura non ha bisogno di accedere da internet. Per assicurarti che solo i client interni possano accedere al servizio, imposta il parammetro ingress su internal. Per maggiori informazioni, consulta Limitare il traffico in entrata per Cloud Run.

Crittografia dei dati: per impostazione predefinita, Cloud Run cripta i dati utilizzando un Google-owned and Google-managed encryption key. Per proteggere i tuoi contenitori utilizzando una chiave che controlli, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK). Per ulteriori informazioni, consulta Utilizzare le chiavi di crittografia gestite dal cliente.

Sicurezza delle immagini container: per garantire che venga eseguito il deployment solo delle immagini container autorizzate nei job e nei servizi Cloud Run, puoi utilizzare Autorizzazione binaria.

Residenza dei dati: Cloud Run ti aiuta a soddisfare i requisiti di residenza dei dati. Le istanze dei container Cloud Run vengono eseguite nella regione selezionata.

Per ulteriori indicazioni sulla sicurezza dei container, consulta Suggerimenti generali per lo sviluppo di Cloud Run.

Cloud Storage

Crittografia dei dati: per impostazione predefinita, i dati archiviati in Cloud Storage vengono criptati utilizzando Google-owned and Google-managed encryption keys. Se necessario, puoi utilizzare CMEK o le tue chiavi che gestisci utilizzando un metodo di gestione esterno come le chiavi di crittografia fornite dal cliente (CSEK). Per ulteriori informazioni, consulta Opzioni di crittografia dei dati.

Controllo dell'accesso: Cloud Storage supporta due metodi per controllare l'accesso degli utenti ai bucket e agli oggetti: Identity and Access Management (IAM) ed elenchi di controllo dell'accesso (ACL). Nella maggior parte dei casi, ti consigliamo di utilizzare IAM, che ti consente di concedere autorizzazioni a livello di bucket e progetto. Per ulteriori informazioni, consulta Panoramica del controllo dell'accesso.

Protezione dei dati: i dati caricati nel sottosistema di importazione dati tramite Cloud Storage potrebbero includere dati sensibili. Per proteggere questi dati, puoi utilizzare la protezione dei dati sensibili per rilevarli, classificarli e anonimizzarli. Per ulteriori informazioni, consulta Utilizzare la protezione dei dati sensibili con Cloud Storage.

Controllo della rete: per ridurre il rischio di esfiltrazione di dati da Cloud Storage, puoi creare un perimetro di servizio utilizzando i Controlli di servizio VPC.

Residenza dei dati: Cloud Storage ti aiuta a soddisfare i requisiti di residenza dei dati. I dati vengono archiviati o replicati nelle regioni specificate.

Pub/Sub

Crittografia dei dati: per impostazione predefinita, Pub/Sub cripta tutti i messaggi, sia at-rest sia in transito, utilizzando Google-owned and Google-managed encryption keys. Pub/Sub supporta l'utilizzo delle chiavi CMEK per la crittografia dei messaggi a livello di applicazione. Per ulteriori informazioni, consulta Configurare la crittografia dei messaggi.

Residenza dei dati: se hai requisiti di residenza dei dati, per assicurarti che i dati dei messaggi vengano archiviati in posizioni specifiche, puoi configurare i criteri di archiviazione dei messaggi.

Cloud Logging

Controllo delle attività amministrative: la registrazione delle attività amministrative è abilitata per impostazione predefinita per tutti i Google Cloud servizi utilizzati in questa architettura di riferimento. Puoi accedere ai log tramite Cloud Logging e utilizzarli per monitorare le chiamate API o altre azioni che modificano la configurazione o i metadati delle risorse Google Cloud .

Controllo dell'accesso ai dati: la registrazione degli eventi di accesso ai dati è abilitata per impostazione predefinita per BigQuery. Per gli altri servizi utilizzati in questa architettura, puoi attivare i log di controllo dell'accesso ai dati. Puoi utilizzare questi log per monitorare quanto segue:

  • Chiamate API che leggono la configurazione o i metadati delle risorse.
  • Richieste dell'utente di creare, modificare o leggere i dati delle risorse forniti dall'utente.

Sicurezza dei dati di log: Google non accede ai dati di Cloud Logging né li utilizza.

Residenza dei dati: per contribuire a soddisfare i requisiti di residenza dei dati, puoi configurare Cloud Logging in modo da archiviare i dati di log nella regione specificata. Per ulteriori informazioni, vedi Eseguire la regionalizzazione dei log.

Tutti i prodotti dell'architettura

Mitiga il rischio di esfiltrazione di dati: per ridurre il rischio di esfiltrazione di dati, crea un perimetro di Controlli di servizio VPC attorno all'infrastruttura. Controlli di servizio VPC supporta tutti i servizi utilizzati in questa architettura di riferimento.

Ottimizzazione post-deployment: dopo aver eseguito il deployment dell'applicazione in Google Cloud, utilizza il servizio Active Assist per ricevere consigli che possono aiutarti a ottimizzare ulteriormente la sicurezza delle tue risorse cloud. Esamina i consigli e applicali in base alle esigenze del tuo ambiente. Per ulteriori informazioni, consulta Trovare consigli nell'hub dei suggerimenti.

Controllo dell'accesso: segui il principio del privilegio minimo per ogni servizio cloud.

Per indicazioni generali sulla sicurezza per i deployment di IA e ML in Google Cloud, consulta le seguenti risorse:

Affidabilità

Questa sezione descrive considerazioni e consigli di progettazione per creare e gestire un'infrastruttura affidabile per il tuo deployment in Google Cloud.

Prodotto Considerazioni e consigli di progettazione
Vector Search

Scalabilità delle query: per assicurarti che l'indice Vector Search possa gestire gli aumenti del carico delle query, puoi configurare la scalabilità automatica per l'endpoint dell'indice. Quando il carico delle query aumenta, il numero di nodi viene aumentato automaticamente fino al numero massimo specificato. Per ulteriori informazioni, consulta Attivare la scalabilità automatica.

Cloud Run

Resistenza alle interruzioni dell'infrastruttura: Cloud Run è un servizio regionale. I dati vengono archiviati in modo sincrono in più zone all'interno di una regione. Il traffico viene bilanciato automaticamente tra le zone. Se si verifica un'interruzione del servizio in una zona, Cloud Run continua a funzionare e i dati non vengono persi. Se si verifica un'interruzione del servizio in una regione, Cloud Run smette di funzionare fino a quando Google non risolve il problema.

Gestione degli errori: i singoli job o le singole attività Cloud Run potrebbero non riuscire. Per gestire questi errori, puoi utilizzare i tentativi di esecuzione di attività e i checkpoint. Per ulteriori informazioni, consulta le best practice per i tentativi di ripetizione e i checkpoint dei job.

Cloud Storage Disponibilità dei dati: puoi creare bucket Cloud Storage in uno dei tre tipi di località: regionale, doppia regione o multiregione. I dati archiviati nei bucket regionali vengono replicati in modo sincrono in più zone all'interno di una regione. Per una maggiore disponibilità, puoi utilizzare i bucket a due o più regioni, in cui i dati vengono replicati in modo asincrono tra le regioni.
Pub/Sub

Controllo della frequenza: per evitare errori durante i periodi di picchi temporanei nel traffico dei messaggi, puoi limitare la frequenza delle richieste di pubblicazione configurando il controllo del flusso nelle impostazioni del publisher.

Gestione degli errori: per gestire i tentativi di pubblicazione non riusciti, modifica le variabili retry-request in base alle necessità. Per ulteriori informazioni, consulta la sezione Riprovare le richieste.

BigQuery Resistenza alle interruzioni dell'infrastruttura: i dati caricati in BigQuery vengono archiviati in modo sincrono in due zone all'interno della regione specificata. Questa ridondanza contribuisce a garantire che i dati non vadano persi in caso di interruzione del servizio in una zona. Per ulteriori informazioni sulle funzionalità di affidabilità in BigQuery, consulta Informazioni sull'affidabilità.
Tutti i prodotti dell'architettura Ottimizzazione post-deployment: dopo aver eseguito il deployment dell'applicazione in Google Cloud, utilizza il servizio Active Assist per ricevere consigli per ottimizzare ulteriormente l'affidabilità delle risorse cloud. Esamina i consigli e applicali come appropriato per il tuo ambiente. Per saperne di più, vedi Trovare consigli nell'hub dei suggerimenti.

Per principi e consigli sull'affidabilità specifici per i workload di AI e ML, consulta Punto di vista AI e ML: affidabilità nel framework di architettura.

Ottimizzazione dei costi

Questa sezione fornisce indicazioni per ottimizzare il costo della configurazione e del funzionamento di una Google Cloud topologia creata utilizzando questa architettura di riferimento.

Prodotto Considerazioni e consigli di progettazione
Vector Search

La fatturazione di Vector Search dipende dalle dimensioni dell'indice, dalle query al secondo (QPS) e dal numero e dal tipo di macchine dei nodi utilizzati per l'endpoint dell'indice. Per i carichi di lavoro con un numero elevato di query al secondo (QPS), l'esecuzione delle query in batch può contribuire a ridurre i costi. Per informazioni su come stimare il costo di Vector Search, consulta gli esempi di prezzi di Vector Search.

Per migliorare l'utilizzo dei nodi di calcolo su cui è disegnato l'indice Vector Search, puoi configurare la scalabilità automatica per l'endpoint dell'indice. Quando la domanda è bassa, il numero di nodi viene ridotto automaticamente al numero minimo specificato. Per maggiori informazioni, consulta Attivare la scalabilità automatica.

Cloud Run

Quando crei job e servizi Cloud Run, specifichi la quantità di memoria e CPU da allocare all'istanza del contenitore. Per controllare i costi, inizia con le allocazioni di CPU e memoria predefinite (minime). Per migliorare le prestazioni, puoi aumentare l'allocazione configurando il limite della CPU e il limite di memoria. Per ulteriori informazioni, consulta la seguente documentazione:

Se puoi prevedere i requisiti di CPU e memoria dei tuoi job e servizi Cloud Run, puoi risparmiare usufruendo di sconti per l'utilizzo previsto. Per saperne di più, consulta gli sconti per impegno di utilizzo di Cloud Run.

Cloud Storage Per il bucket Cloud Storage che utilizzi per caricare i dati nel sottosistema di importazione dei dati, scegli una classe di archiviazione appropriata. Quando scegli la classe di archiviazione, tieni conto dei requisiti di conservazione dei dati e di frequenza di accesso dei tuoi carichi di lavoro. Ad esempio, per controllare i costi di archiviazione, puoi scegliere la classe Standard e utilizzare Gestione del ciclo di vita degli oggetti. In questo modo, viene attivato il downgrade automatico degli oggetti a una classe di archiviazione con costi inferiori o l'eliminazione degli oggetti in base alle condizioni impostate.
Cloud Logging

Per controllare il costo della memorizzazione dei log, puoi:

BigQuery BigQuery ti consente di stimare il costo delle query prima di eseguirle. Per ottimizzare i costi delle query, devi ottimizzare lo spazio di archiviazione e il calcolo delle query. Per ulteriori informazioni, consulta Stimare e controllare i costi.
Tutti i prodotti dell'architettura Dopo aver eseguito il deployment dell'applicazione in Google Cloud, utilizza il servizio Active Assist per ricevere consigli per ottimizzare ulteriormente il costo delle tue risorse cloud. Esamina i consigli e applicali come appropriato per il tuo ambiente. Per saperne di più, consulta Trovare consigli nell'hub di suggerimenti.

Per stimare il costo delle tue Google Cloud risorse, utilizza il Google Cloud Calcolatore prezzi.

Per i principi e i suggerimenti di ottimizzazione dei costi specifici per i carichi di lavoro di AI e ML, consulta Punto di vista IA e ML: ottimizzazione dei costi nel framework di architettura.

Ottimizzazione delle prestazioni

Questa sezione descrive considerazioni e consigli di progettazione per progettare una topology in Google Cloud che soddisfi i requisiti di prestazioni dei tuoi carichi di lavoro.

Prodotto Considerazioni e consigli di progettazione
Vector Search

Quando crei l'indice, imposta le dimensioni dello shard, il tipo di misura della distanza e il numero di incorporamenti per ogni nodo foglia in base ai tuoi requisiti di rendimento. Ad esempio, se la tua applicazione è estremamente sensibile alla variabilità della latenza, consigliamo una dimensione dello shard grande. Per ulteriori informazioni, consulta Parametri di configurazione che influiscono sul rendimento.

Quando configuri la capacità di calcolo dei nodi su cui viene eseguito il deployment dell'indice Vector Search, tieni conto dei tuoi requisiti di rendimento. Scegli un tipo di macchina appropriato e imposta il numero massimo di nodi in base al carico di query previsto. Per ulteriori informazioni, vedi Impostazioni di deployment che influiscono sulle prestazioni.

Configura i parametri di query per l'indice Vertex Search in base ai tuoi requisiti relativi a prestazioni, disponibilità e costi delle query. Ad esempio, il parametro approximateNeighborsCount specifica il numero di vicini che devono essere recuperati prima che venga eseguito il riordinamento esatto. La riduzione del valore di questo parametro può contribuire a ridurre la latenza e i costi. Per ulteriori informazioni, consulta Impostazioni al momento della query che influiscono sul rendimento.

Un indice aggiornato contribuisce a migliorare l'accuratezza delle risposte generate. Puoi aggiornare l'indice di Vector Search utilizzando gli aggiornamenti in batch o in streaming. Gli aggiornamenti in streaming ti consentono di eseguire query quasi in tempo reale sui dati aggiornati. Per ulteriori informazioni, consulta la sezione Aggiornare e ricreare un indice attivo.

Cloud Run

Per impostazione predefinita, a ogni istanza di container Cloud Run viene assegnata una CPU e 512 MiB di memoria. A seconda dei requisiti di prestazioni, puoi configurare il limite di CPU e il limite di memoria. Per ulteriori informazioni, consulta la seguente documentazione:

Per garantire una latenza ottimale anche dopo un periodo di assenza di traffico, puoi configurare un numero minimo di istanze. Quando queste istanze sono inattive, la CPU e la memoria allocate vengono fatturate a un prezzo inferiore.

Per ulteriori indicazioni sull'ottimizzazione delle prestazioni, consulta i suggerimenti generali per lo sviluppo di Cloud Run.

Cloud Storage Per caricare file di grandi dimensioni, puoi utilizzare un metodo chiamato caricamenti compositi paralleli. Con questa strategia, il file di grandi dimensioni viene suddiviso in blocchi. I chunk vengono caricati su Cloud Storage in parallelo e poi i dati vengono ricompositi nel cloud. Quando la larghezza di banda della rete e la velocità del disco non sono fattori limitanti, i caricamenti compositi paralleli possono essere più rapidi delle normali operazioni di caricamento. Tuttavia, questa strategia presenta alcune limitazioni e implicazioni in termini di costi. Per ulteriori informazioni, consulta Caricamenti compositi paralleli.
BigQuery

BigQuery fornisce un grafico di esecuzione delle query che puoi utilizzare per analizzare le prestazioni delle query e ottenere informazioni sulle prestazioni per problemi come la contesa degli slot e una quota di ordinamento insufficiente. Per maggiori informazioni, consulta Ottenere informazioni sul rendimento delle query.

Dopo aver risolto i problemi identificati tramite gli approfondimenti sul rendimento delle query, puoi ottimizzare ulteriormente le query utilizzando tecniche come la riduzione del volume dei dati di input e output. Per maggiori informazioni, consulta Ottimizzare il calcolo delle query.

Tutti i prodotti dell'architettura Dopo aver eseguito il deployment dell'applicazione in Google Cloud, utilizza il servizio Active Assist per ricevere consigli per ottimizzare ulteriormente il rendimento delle risorse cloud. Esamina i consigli e applicali come appropriato per il tuo ambiente. Per saperne di più, vedi Trovare consigli nell'hub dei suggerimenti.

Per i principi e i consigli di ottimizzazione delle prestazioni specifici per i carichi di lavoro di AI e ML, consulta Punto di vista AI e ML: ottimizzazione delle prestazioni nel framework di architettura.

Passaggi successivi

Collaboratori

Autore: Kumar Dhanagopal | Sviluppatore di soluzioni cross-product

Altri collaboratori: