Questo documento fornisce un'architettura di riferimento che puoi utilizzare per progettare l'infrastruttura per un'applicazione di AI generativa con Retrieval-Augmented Generation (RAG) utilizzando Vector Search. Vector Search è 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 AI generativa. Il documento presuppone una comprensione di base dei concetti di AI, 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:
L'architettura nel diagramma precedente ha due sottosistemi: importazione dati e pubblicazione.
- Il sottosistema di importazione dei dati importa i dati caricati da fonti esterne. Il sottosistema prepara i dati per 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 di frontend e backend dell'applicazione di AI generativa.
- Il servizio frontend gestisce il flusso di query-risposta con gli utenti dell'applicazione e inoltra le query alservizio di backendd.
- Il servizio di backend utilizza Vertex AI per generare incorporamenti di query, eseguire ricerche di similarità vettoriale e applicare filtri di sicurezza e istruzioni di sistema dell'AI responsabile.
Il seguente diagramma mostra una visualizzazione dettagliata dell'architettura:
Le sezioni seguenti descrivono il flusso di dati all'interno di ogni sottosistema del diagramma dell'architettura precedente.
Sottosistema di importazione dati
Il sottosistema di importazione dati importa i dati da origini esterne e li prepara per RAG. Di seguito sono riportati i passaggi del flusso di preparazione e importazione dei dati:
- I dati vengono caricati da origini esterne a un bucket Cloud Storage. Le origini esterne potrebbero essere applicazioni, database o servizi di streaming.
- Quando i dati vengono caricati in Cloud Storage, un messaggio viene pubblicato in un argomento Pub/Sub.
- Quando l'argomento Pub/Sub riceve un messaggio, attiva una funzione Cloud Run.
- La funzione Cloud Run analizza i dati non elaborati, li formatta come richiesto e li divide in blocchi.
- La funzione utilizza l' API Vertex AI Embeddings per creare embedding dei chunk utilizzando un modello di embedding specificato. Vertex AI supporta modelli di embedding di testo e multimodali.
- La funzione crea quindi un indice Vector Search degli embedding e lo esegue il deployment.
Quando vengono inseriti nuovi dati, i passaggi precedenti vengono eseguiti 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 AI generativa e i suoi utenti. Di seguito sono riportati i passaggi del flusso di pubblicazione:
- 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 AI generativa.
- Il servizio frontend inoltra la query dell'utente a un servizio Cloud Run backend.
- Il servizio di backend elabora la query nel seguente modo:
- Converte la query in incorporamenti utilizzando lo stesso modello e gli stessi parametri di incorporamento che il sottosistema di importazione dati utilizza per generare gli incorporamenti dei dati importati.
- Recupera i dati di grounding pertinenti eseguendo una ricerca di similarità vettoriale per gli incorporamenti della query nell'indice Vector Search.
- Crea un prompt aumentato combinando la query originale con i dati di base.
- Invia il prompt aumentato a un LLM di cui è stato eseguito il deployment su Vertex AI.
- L'LLM genera una risposta.
- Per ogni prompt, Vertex AI applica i filtri di sicurezza dell'AI responsabile che hai configurato, quindi invia la risposta filtrata e i punteggi di sicurezza dell'AI al servizio di backend Cloud Run.
- L'applicazione invia la risposta all'utente tramite il servizio Cloud Run frontend.
Puoi archiviare e visualizzare i log dell'attività di query-risposta in Cloud Logging e puoi configurare il monitoraggio basato sui log utilizzando Cloud Monitoring. Puoi anche caricare le risposte generate in BigQuery per l'analisi offline.
L'ottimizzatore di prompt di Vertex AI ti aiuta a migliorare i prompt su larga scala, sia durante la progettazione iniziale che per la regolazione continua. Lo strumento di ottimizzazione 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 che specificano gli ingegneri ML e un insieme di istruzioni di sistema ottimizzate che puoi prendere in considerazione.
Prodotti utilizzati
Questa architettura di riferimento utilizza i seguenti prodotti Google Cloud :
- Vertex AI: una piattaforma ML che ti consente di addestrare ed eseguire il deployment di modelli ML e applicazioni AI e personalizzare LLM da utilizzare in applicazioni basate sull'AI.
- Vector Search: un servizio di corrispondenza della somiglianza vettoriale che ti consente di archiviare, indicizzare e cercare dati semanticamente simili o correlati.
- Cloud Run: una piattaforma di computing serverless che ti consente di eseguire container direttamente sull'infrastruttura scalabile di Google.
- Funzioni Cloud Run: una piattaforma di computing serverless che ti consente di eseguire funzioni con un unico scopo direttamente in Google Cloud.
- 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 di Google Cloude vengono replicati in più località per la ridondanza.
- Pub/Sub: un servizio di messaggistica asincrono e scalabile che disaccoppia 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 della tua 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 AI generativa compatibili con RAG.
Suggerimenti personalizzati sui prodotti
Un sito di acquisti online potrebbe utilizzare un chatbot basato su LLM per aiutare i clienti a trovare prodotti o a ricevere assistenza per gli acquisti. Le domande di un utente possono essere arricchite utilizzando i dati storici sul comportamento di acquisto dell'utente e sui modelli di interazione con il sito web. I dati potrebbero includere recensioni e feedback degli utenti archiviati in un datastore non strutturato o metriche correlate alla ricerca archiviate in un data warehouse di analisi web. La domanda aumentata può essere elaborata dall'LLM per generare risposte personalizzate che l'utente potrebbe trovare più interessanti e coinvolgenti.
Sistemi di assistenza clinica
I medici negli ospedali devono analizzare e diagnosticare rapidamente le condizioni di salute di un paziente per prendere decisioni in merito alle cure e ai farmaci appropriati. Un'applicazione di AI generativa che utilizza un 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 sulle cartelle cliniche storiche dei pazienti contestualizzando i prompt dei medici con i dati del database delle cartelle cliniche elettroniche (EHR) dell'ospedale o di una knowledge base esterna come PubMed.
Ricerca giuridica efficiente
La ricerca giuridica basata sull'AI generativa consente agli avvocati di interrogare rapidamente grandi volumi di leggi e giurisprudenza per identificare precedenti giuridici pertinenti o riassumere concetti giuridici complessi. I risultati di questa ricerca possono essere migliorati integrando i prompt di un avvocato con i dati recuperati dal corpus proprietario di contratti, comunicazioni legali passate e registri interni dello studio legale. Questo approccio di progettazione garantisce che le risposte generate siano pertinenti al settore legale in cui è specializzato l'avvocato.
Alternative di progettazione
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à di vector store 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 utilizzando Vertex AI e AlloyDB per PostgreSQL.
Se vuoi creare ed eseguire il deployment rapidamente di applicazioni di AI generativa compatibili con RAG utilizzando strumenti e modelli open source Ray, Hugging Face e LangChain, consulta Infrastruttura per un'applicazione di AI generativa compatibile con RAG utilizzando GKE e Cloud SQL.
Opzioni di hosting delle applicazioni
Nell'architettura mostrata in questo documento, Cloud Run è l'host per l'applicazione di AI generativa e il trattamento dei dati. Cloud Run è una piattaforma di applicazioni completamente gestita e incentrata sugli sviluppatori. Se hai bisogno di una maggiore flessibilità di configurazione e controllo dell'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 compromessi tra flessibilità di configurazione e impegno di gestione. Con l'opzione serverless Cloud Run, esegui il deployment dell'applicazione in un ambiente preconfigurato che richiede uno sforzo di gestione minimo. Con le VM di Compute Engine e i container GKE, sei responsabile della gestione delle risorse di calcolo sottostanti, ma hai maggiore flessibilità e controllo della configurazione. Per saperne di più sulla scelta di un servizio di hosting di applicazioni appropriato, consulta i seguenti documenti:
- La mia app è adatta a Cloud Run?
- Seleziona un ambiente di runtime del container gestito
- Hosting di applicazioni su Google Cloud
Altre opzioni
Per informazioni su altre opzioni di infrastruttura, modelli supportati e tecniche di grounding che puoi utilizzare per le applicazioni di AI generativa in Google Cloud, consulta Scegliere modelli e infrastruttura per la tua applicazione di AI generativa.
Note sul layout
Questa sezione descrive i fattori di progettazione, le best practice e i consigli di progettazione da prendere in considerazione quando utilizzi questa architettura di riferimento per sviluppare una topologia che soddisfi i tuoi requisiti specifici di sicurezza, affidabilità, costi e prestazioni.
Le indicazioni in questa sezione non sono esaustive. A seconda dei requisiti specifici della tua applicazione e dei prodotti e delle funzionalità di terze parti che utilizzi, potrebbero esserci ulteriori fattori di progettazione e compromessi da prendere in considerazione. Google Cloud
Sicurezza, conformità e privacy
Questa sezione descrive le considerazioni e i consigli di progettazione per progettare una topologia in Google Cloud che soddisfi i requisiti di sicurezza e conformità dei tuoi carichi di lavoro.
Prodotto | Considerazioni e consigli sulla progettazione |
---|---|
Vertex AI |
Controlli di sicurezza: Vertex AI supporta Google Cloud controlli di sicurezza che puoi utilizzare per soddisfare i tuoi requisiti di residenza dei dati, crittografia dei dati, sicurezza di rete e trasparenza degli accessi. Per ulteriori informazioni, vedi Controlli di sicurezza per Vertex AI e Controlli di sicurezza per l'AI generativa. Accesso al modello: puoi configurare le norme dell'organizzazione per limitare il tipo e le versioni di LLM che possono essere utilizzati in un progetto Google Cloud . Per saperne di più, vedi Controllare l'accesso ai modelli di Model Garden. Responsabilità condivisa: Vertex AI protegge l'infrastruttura sottostante e fornisce strumenti e controlli di sicurezza per aiutarti a proteggere dati, codice e modelli. Per ulteriori informazioni, consulta 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 di log. Per maggiori informazioni, guarda questo video: Proteggere i dati sensibili nelle app di AI. |
Cloud Run |
Sicurezza Ingress (servizio frontend): per controllare l'accesso esterno all'applicazione, disattiva l'URL run.app predefinito del servizio Cloud Run frontend e configura un bilanciatore del carico delle applicazioni esterno regionale. Oltre a bilanciare il carico del traffico in entrata verso l'applicazione, il bilanciatore del carico gestisce i certificati SSL. Per una maggiore protezione, puoi utilizzare i criteri di sicurezza di Google Cloud Armor per fornire il filtro delle richieste, la protezione dagli attacchi DDoS e limitazione di frequenza per il servizio.
Sicurezza in entrata (servizio di backend): il
servizio Cloud Run per il backend dell'applicazione in
questa architettura non ha bisogno dell'accesso da internet. Per assicurarti
che solo i client interni possano accedere al servizio, imposta il
parametro Crittografia dei dati: per impostazione predefinita, Cloud Run cripta i dati utilizzando un Google-owned and Google-managed encryption key. Per proteggere i tuoi container utilizzando una chiave che controlli, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK). Per saperne di più, vedi Utilizzo delle chiavi di crittografia gestite dal cliente. Sicurezza delle immagini container: per garantire che venga eseguito il deployment solo delle immagini container autorizzate 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 container di Cloud Run vengono eseguite all'interno della regione che selezioni. 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 le chiavi CMEK o le tue chiavi che gestisci utilizzando un metodo di gestione esterno come le chiavi di crittografia fornite dal cliente (CSEK). Per saperne di più, 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 saperne di più, 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 Sensitive Data Protection per scoprire, classificare e anonimizzare i dati. Per ulteriori informazioni, consulta Utilizzo di Sensitive Data Protection con Cloud Storage. Controllo di rete: per mitigare 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 all'interno delle regioni che specifichi. |
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 di chiavi CMEK per la crittografia dei messaggi a livello di applicazione. Per saperne di più, 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 criteri di archiviazione dei messaggi. |
Cloud Logging |
Audit delle attività amministrative: la registrazione delle attività amministrative è abilitata per impostazione predefinita per tutti i servizi Google Cloud 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 . Audit log per l'accesso ai dati: il logging degli eventi di accesso ai dati è abilitato 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:
Sicurezza dei dati di log: Google non accede ai dati in Cloud Logging né li utilizza. Residenza dei dati: per soddisfare i requisiti di residenza dei dati, puoi configurare Cloud Logging in modo che memorizzi i dati di log nella regione che specifichi. Per ulteriori informazioni, vedi Regionalizzare i log. |
Tutti i prodotti nell'architettura |
Mitiga il rischio di esfiltrazione di dati: per ridurre il rischio di esfiltrazione di dati, crea un perimetro Controlli di servizio VPC attorno all'infrastruttura. I Controlli di servizio VPC supportano 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 suggerimenti che possono aiutarti a ottimizzare ulteriormente la sicurezza delle tue risorse cloud. Esamina i consigli e applicali in modo appropriato per il tuo ambiente. Per saperne di più, vedi Trovare i 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 AI e ML in Google Cloud, consulta le seguenti risorse:
- (Blog) Introduzione al Secure AI Framework di Google
- (Documentazione) Prospettiva di sicurezza di AI e ML nel Google Cloud Well-Architected Framework
- (Documentazione) Responsabilità condivisa di Vertex AI
- (White paper) AI generativa, privacy e Google Cloud
- (Video) Proteggere i dati sensibili nelle app di AI
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 sulla progettazione |
---|---|
Ricerca vettoriale |
Scalabilità delle query: per assicurarti che l'indice Vector Search possa gestire gli aumenti del carico di query, puoi configurare la scalabilità automatica per l'endpoint indice. Quando il carico delle query aumenta, il numero di nodi viene aumentato automaticamente fino al massimo specificato. Per ulteriori informazioni, vedi Attivare la scalabilità automatica. |
Cloud Run |
Robustezza 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. In caso di interruzione della zona, Cloud Run continua a essere eseguito e i dati non vengono persi. Se si verifica un'interruzione della regione, Cloud Run smette di funzionare finché Google non risolve l'interruzione. |
Cloud Storage | Disponibilità dei dati: puoi creare bucket Cloud Storage in uno dei tre tipi di località: regionale, doppia regione o multiregionale. 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 bucket dual-region o multiregionali, in cui i dati vengono replicati in modo asincrono tra le regioni. |
Pub/Sub |
Controllo della velocità: per evitare errori durante i periodi di picchi transitori nel traffico di messaggi, puoi limitare la velocità di 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 di richiesta di nuovi tentativi in base alle tue esigenze. Per maggiori informazioni, consulta la sezione Riprovare le richieste. |
BigQuery | Robustezza alle interruzioni dell'infrastruttura: i dati che carichi in BigQuery vengono archiviati in modo sincrono in due zone all'interno della regione specificata. Questa ridondanza contribuisce a garantire che i dati non vengano persi in caso di interruzione della zona. Per ulteriori informazioni sulle funzionalità di affidabilità in BigQuery, vedi Comprendere l'affidabilità. |
Tutti i prodotti nell'architettura | Ottimizzazione post-deployment: dopo aver eseguito il deployment dell'applicazione in Google Cloud, utilizza il servizio Active Assist per ricevere suggerimenti per ottimizzare ulteriormente l'affidabilità delle risorse cloud. Esamina i consigli e applicali in base al tuo ambiente. Per saperne di più, vedi Trovare i suggerimenti nell'hub dei suggerimenti. |
Per principi e consigli di affidabilità specifici per i workload AI e ML, consulta Prospettiva AI e ML: affidabilità nel framework Well-Architected.
Ottimizzazione dei costi
Questa sezione fornisce indicazioni per ottimizzare il costo di configurazione e gestione di una topologia Google Cloud che crei utilizzando questa architettura di riferimento.
Prodotto | Considerazioni e consigli sulla progettazione |
---|---|
Ricerca vettoriale |
La fatturazione di Vector Search dipende dalle dimensioni dell'indice, dalle query al secondo (QPS) e dal numero e dal tipo di macchina dei nodi utilizzati per l'endpoint dell'indice. Per i carichi di lavoro con QPS elevato, il raggruppamento delle query può contribuire a ridurre i costi. Per informazioni su come stimare il costo di Vector Search, consulta Esempi sui prezzi di Vector Search. Per migliorare l'utilizzo dei nodi di calcolo su cui è implementato 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 minimo specificato. Per ulteriori informazioni, vedi Attivare la scalabilità automatica. |
Cloud Run |
Quando crei servizi Cloud Run, specifichi la quantità di memoria e CPU da allocare all'istanza di container. Per controllare i costi, inizia con le allocazioni predefinite (minime) di CPU e memoria. Per migliorare le prestazioni, puoi aumentare l'allocazione configurando il limite di CPU e il limite di memoria. Per saperne di più, consulta la seguente documentazione: Se riesci a prevedere i requisiti di CPU e memoria dei tuoi servizi Cloud Run, puoi risparmiare denaro ottenendo sconti per l'utilizzo impegnato. Per saperne di più, consulta la pagina 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 dati, scegli una classe di archiviazione appropriata. Quando scegli la classe di archiviazione, tieni conto dei requisiti di conservazione dei dati e della 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, è possibile eseguire il downgrade automatico degli oggetti a una classe di archiviazione a costi inferiori o eliminarli in base alle condizioni che hai impostato. |
Cloud Logging |
Per controllare il costo di archiviazione dei log, puoi:
|
BigQuery | BigQuery ti consente di stimare il costo delle query prima di eseguirle. Per ottimizzare i costi delle query, devi ottimizzare l'archiviazione e il calcolo delle query. Per ulteriori informazioni, vedi Stimare e controllare i costi. |
Tutti i prodotti nell'architettura | Dopo aver eseguito il deployment dell'applicazione in Google Cloud, utilizza il servizio Active Assist per ricevere suggerimenti per ottimizzare ulteriormente il costo delle tue risorse cloud. Esamina i consigli e applicali in base al tuo ambiente. Per saperne di più, vedi Trovare i suggerimenti nell'hub dei suggerimenti. |
Per stimare il costo delle tue risorse Google Cloud , utilizza il Google Cloud Calcolatore prezzi.
Per principi e consigli di ottimizzazione dei costi specifici per i carichi di lavoro di AI e ML, consulta Prospettiva AI e ML: ottimizzazione dei costi nel framework Well-Architected.
Ottimizzazione delle prestazioni
Questa sezione descrive le considerazioni e i consigli di progettazione per progettare una topologia in Google Cloud che soddisfi i requisiti di rendimento dei tuoi carichi di lavoro.
Prodotto | Considerazioni e consigli sulla progettazione |
---|---|
Ricerca vettoriale |
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, ti consigliamo una dimensione dello shard elevata. Per ulteriori informazioni, consulta Parametri di configurazione che influiscono sulle prestazioni. Quando configuri la capacità di calcolo dei nodi su cui viene implementato l'indice di ricerca vettoriale, 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 ricerca per l'indice Vertex Search in base
ai tuoi requisiti di prestazioni, disponibilità e costi delle query.
Ad esempio, il parametro Un indice aggiornato contribuisce a migliorare l'accuratezza delle risposte generate. Puoi aggiornare l'indice di Vector Search utilizzando aggiornamenti batch o in streaming. Gli aggiornamenti in modalità di flusso consentono di eseguire query quasi in tempo reale sui dati aggiornati. Per ulteriori informazioni, vedi Aggiornare e ricompilare un indice attivo. |
Cloud Run |
Per impostazione predefinita, a ogni istanza di container Cloud Run vengono allocate 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 alle istanze vengono fatturate a un prezzo inferiore. Per ulteriori indicazioni sull'ottimizzazione del rendimento, consulta 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 blocchi vengono caricati in parallelo in Cloud Storage e poi i dati vengono ricomposti 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ù veloci delle normali operazioni di caricamento. Tuttavia, questa strategia presenta alcune limitazioni e implicazioni in termini di costi. Per ulteriori informazioni, vedi 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 quali la contesa degli slot e la quota di shuffle insufficiente. Per maggiori informazioni, consulta Ottenere approfondimenti sul rendimento delle query. Dopo aver risolto i problemi identificati tramite gli approfondimenti sulle prestazioni delle query, puoi ottimizzare ulteriormente le query utilizzando tecniche come la riduzione del volume di dati di input e output. Per maggiori informazioni, vedi Ottimizzazione del calcolo delle query. |
Tutti i prodotti nell'architettura | Dopo aver eseguito il deployment dell'applicazione in Google Cloud, utilizza il servizio Active Assist per ricevere suggerimenti per ottimizzare ulteriormente il rendimento delle risorse cloud. Esamina i consigli e applicali in base al tuo ambiente. Per saperne di più, vedi Trovare i suggerimenti nell'hub dei suggerimenti. |
Per principi e consigli di ottimizzazione delle prestazioni specifici per i carichi di lavoro di AI e ML, consulta Prospettiva AI e ML: ottimizzazione delle prestazioni nel Well-Architected Framework.
Deployment
Per eseguire il deployment di una topologia basata su questa architettura di riferimento, puoi scaricare e utilizzare la configurazione di esempio di Terraform disponibile in un repository su GitHub. Segui le istruzioni riportate nel file README del repository. Il codice campione non è destinato ai casi d'uso di produzione.
Passaggi successivi
- Scegliere modelli e infrastruttura per la tua applicazione di AI generativa
- Infrastruttura per un'applicazione di AI generativa compatibile con RAG utilizzando Vertex AI e AlloyDB per PostgreSQL
- Infrastruttura per un'applicazione di AI generativa compatibile con RAG utilizzando GKE e Cloud SQL
- Per una panoramica dei principi e dei consigli architetturali specifici per i workload di AI e ML in Google Cloud, consulta la prospettiva AI e ML nel framework Well-Architected.
- Per ulteriori architetture di riferimento, diagrammi e best practice, esplora il Cloud Architecture Center.
Collaboratori
Autore: Kumar Dhanagopal | Sviluppatore di soluzioni cross-product
Altri collaboratori:
- Assaf Namer | Principal Cloud Security Architect
- Deepak Michael | Networking Specialist Customer Engineer
- Divam Anand | Responsabile della strategia e delle operazioni di prodotto
- Eran Lewis | Senior Product Manager
- Jerome Simms | Director, Product Management
- Katie McLaughlin | Senior Developer Relations Engineer
- Mark Schlagenhauf | Technical Writer, Networking
- Megan O'Keefe | Head of Industry Compete, Cloud Platform Evaluations Team
- Nicholas McNamara | Product and Commercialization Strategy Principal
- Preston Holmes | Outbound Product Manager - App Acceleration
- Rob Edwards | Technology Practice Lead, DevOps
- Victor Moreno | Product Manager, Cloud Networking
- Wietse Venema | Developer Relations Engineer