AlloyDB AI è un'estensione avanzata di AlloyDB per PostgreSQL, progettata per integrare l'elaborazione vettoriale ad alte prestazioni direttamente nel database relazionale di livello aziendale. Consente agli sviluppatori di creare applicazioni sofisticate e intelligenti che comprendono il significato semantico dei dati in formati strutturati e non strutturati. Unendo le funzionalità SQL alla tecnologia di ricerca vettoriale all'avanguardia, AlloyDB AI fornisce una piattaforma singola e pronta per l'AI per i workflow di gestione dei dati e RAG (Retrieval Augmented Generation), eliminando la necessità di eseguire il deployment e gestire un database vettoriale separato.
Architettura e prestazioni di base
AlloyDB utilizza l'estensione pgvector di PostgreSQL per la funzionalità vettoriale. Supporta il popolare indice HNSW, nonché l'indice Scalable Nearest Neighbors (ScaNN), un algoritmo di ricerca vettoriale all'avanguardia derivato da anni di ricerca sulla Ricerca Google. Questa integrazione profonda nell'ambiente PostgreSQL consente operazioni ad alta velocità compatibili con pgvector e query semantiche avanzate.
Prestazioni dell'indice ScaNN
L'indice ScaNN offre vantaggi di velocità sostanziali rispetto all'indice HNSW (Hierarchical Navigable Small Worlds) PostgreSQL standard, fornendo operazioni vettoriali rapide necessarie per carichi di lavoro di AI impegnativi:
| Operazione | Miglioramento delle prestazioni (rispetto all'indice HNSW PostgreSQL standard) | Funzionalità |
|---|---|---|
| Creazione dell'indice | Fino a 10 volte più veloce | Creazione parallela dell'indice |
| Query di ricerca vettoriale | Fino a 4 volte più veloce | Manutenzione automatica degli indici |
| Query di ricerca vettoriale filtrate | Fino a 10 volte più veloce | Osservabilità di livello aziendale |
Filtro adattivo e ottimizzazione delle query
L'indice ScaNN è profondamente integrato con il pianificatore di query PostgreSQL per garantire prestazioni ottimali per le query ibride che coinvolgono sia la somiglianza vettoriale sia i filtri di metadati strutturati standard.
- Filtro adattivo:questo meccanismo garantisce prestazioni ottimali quando vengono utilizzati contemporaneamente filtri, join e indici vettoriali. Funziona osservando le statistiche di esecuzione delle query in fase di runtime, apprendendo la selettività dei filtri e modificando in modo adattivo il piano di esecuzione per determinare l'ordine più efficiente di applicazione dei filtri e della ricerca vettoriale.
- Filtro in linea:specifico dell'algoritmo ScaNN, il filtro in linea è una strategia di ottimizzazione che esegue la ricerca vettoriale e la valutazione del filtro dei metadati in tandem. Sfrutta gli indici PostgreSQL secondari (come B-tree, GIN o GiST) per creare un elenco ristretto (bitmap) di righe che soddisfano i criteri di filtro. La scansione vettoriale successiva calcola le distanze solo per i vettori contenuti in questo insieme prefiltrato, riducendo drasticamente il sovraccarico di calcolo, soprattutto quando i filtri sono moderatamente selettivi.
Integrazione perfetta con Vertex AI
AlloyDB AI è progettato per l'integrazione integrata con l'ecosistema Vertex AI, consentendo la trasformazione e l'arricchimento dei dati direttamente all'interno del database utilizzando SQL.
Generazione automatica di incorporamenti
La piattaforma supporta la generazione automatica di incorporamenti utilizzando l'estensione google_ml_integration. Questa funzionalità consente di convertire i dati operativi (testo, immagini e video) in incorporamenti vettoriali utilizzando i modelli Vertex AI, ad esempio text-embedding-005.
- Registrazione del modello:i modelli Vertex AI (incorporamento e generativi) vengono registrati nel database utilizzando la procedura
google_ml.create_model. - Colonne virtuali:gli embedding possono essere generati e salvati automaticamente in una colonna generata utilizzando la funzione
embedding(), garantendo che i dati vettoriali rimangano sincronizzati con i dati della colonna di origine:
ALTER TABLE my_table
ADD COLUMN embedding vector(768)
GENERATED ALWAYS AS (embedding('text-embedding-005', source_column)) STORED;
Query e arricchimento con l'AI generativa
Con gli embedding vettoriali archiviati, gli sviluppatori possono eseguire ricerche semantiche sofisticate utilizzando l'operatore di similarità vettoriale (<=>) in SQL standard. Inoltre, i risultati di queste ricerche possono essere passati direttamente a modelli di AI generativa, come gemini-2.0-flash-001, utilizzando funzioni come google_ml.generate_content per l'arricchimento delle query basato su RAG e la generazione di output di facile utilizzo.