Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La ricerca di similarità vettoriale (VSS) è una capacità comune nelle applicazioni intelligenti basate sull'IA. Puoi utilizzare Azure Managed Redis come database vettoriale a bassa latenza combinandolo con modelli di embedding, come Azure OpenAI, per Retrieval-Augmented Generation (RAG), cache semantica, raccomandazione, ricerca e altri scenari di IA.
Questo articolo introduce gli embedding vettoriali, la ricerca di similarità vettoriale e come Azure Managed Redis possa memorizzare e cercare vettori utilizzando il modulo RediSearch.
Per tutorial e applicazioni di esempio che utilizzano Azure Managed Redis con Azure OpenAI, consulta le seguenti risorse:
Ambito della disponibilità
Le funzionalità di ricerca vettoriale in Redis richiedono lo stack Redis, in particolare il modulo RediSearch. In Azure Managed Redis, RediSearch è disponibile come modulo gestito che devi abilitare quando crei la cache.
La tabella seguente mostra la disponibilità RediSearch per i livelli Azure Managed Redis.
| livello Azure Managed Redis | Supporto RediSearch |
|---|---|
| Memory Optimized | Sì |
| Balanced | Sì |
| Compute Optimized | Sì |
| Ottimizzato per Flash | NO |
Importante
Non puoi aggiungere moduli a un'istanza Azure Managed Redis dopo che è stata creata. Se prevedi di usare la ricerca vettoriale, abilita il modulo RediSearch durante il provisioning.
Pianifica un'istanza Azure Managed Redis per la ricerca vettoriale
Prima di creare un'istanza Azure Managed Redis per la ricerca vettoriale, pianifica la configurazione della cache e il modello dati. Durante il provisioning devi scegliere alcune opzioni, inclusi moduli e politiche di clustering.
Per carichi di lavoro di ricerca vettoriale:
- Abilita il modulo RediSearch quando crei l'istanza Azure Managed Redis.
- Usa il criterio di clustering Enterprise. RediSearch richiede una politica di clustering aziendale.
- Usa la
NoEvictionpolitica di sfratto quando RediSearch è abilitato. - Scegli un livello supportato in memoria: Memory Optimized, Balanced, o Compute Optimized.
- Dimensiona la cache sia per i dati vettoriali che per l'overhead dell'indice.
- Memorizza i metadati con vettori, come ID documento, titolo, URL sorgente, categoria, timestamp, tenant ID o campi di controllo accesso, così le query possono filtrare i risultati e restituire informazioni sorgente.
- Usa TLS per le connessioni dei client e considera l'autenticazione Microsoft Entra dove supportata dal tuo client.
- Per i carichi di produzione, prendi in considerazione collegamento privato, l'alta disponibilità e la diagnostica.
Azure Managed Redis gestisce le versioni disponibili dei moduli per il servizio. Non puoi caricare manualmente i moduli o aggiornare manualmente le versioni dei moduli.
Per ulteriori informazioni, consulta Usa moduli Redis con Azure Managed Redis, Azure Managed Redis architecture e Quickstart: Create an Azure Managed Redis instance.
Che cosa sono gli incorporamenti vettoriali?
Gli embedding vettoriali sono rappresentazioni numeriche di dati, come parole, documenti, immagini o prodotti, in uno spazio vettoriale ad alta dimensione. Gli embedding catturano le relazioni semantiche in modo da permettere alle applicazioni di confrontare i dati matematicamente.
Ad esempio, le parole basketball e baseball hanno tipicamente embedding più simili tra loro di quanto ciascuna delle due parole non lo sia rispetto a rainforest, perché il modello colloca concetti semanticamente correlati vicini tra loro nello spazio vettoriale.
Diversi modelli di machine learning generano embedding in modo differente. Per ottenere i migliori risultati, si utilizza un modello di embedding in modo coerente per un dato indice vettoriale. Lo schema dell'indice, le dimensioni dei vettori e la metrica della distanza dovrebbero corrispondere al modello di embedding utilizzato per generare i vettori.
Confronto tra vettori
Puoi confrontare i vettori usando metriche di distanza o di similarità. Le metriche comuni includono:
- La similarità del coseno, che confronta l'angolo tra i vettori.
- Distanza euclidea, che misura la distanza in linea retta nello spazio vettoriale.
- Prodotto interno, che alcuni scenari di embedding e ranking usano comunemente.
La metrica corretta dipende dal modello di embedding e da come i vettori vengono normalizzati. Per molti scenari di incorporamento di testo, la somiglianza coseno è una scelta comune.
Generazione di incorporamenti
Molti modelli di Machine Learning supportano le API di incorporamento. Per un esempio di come creare embedding vettoriali usando Azure OpenAI, vedi Impara come generare embedding con Azure OpenAI.
Che cos'è un database vettoriale?
Un database vettoriale memorizza, indicizza, recupera e confronta vettori ad alta dimensione. I database vettoriali sono progettati per restituire vettori simili con bassa latenza e alto throughput.
Puoi utilizzare Azure Managed Redis come database vettoriale memorizzando embedding nelle strutture dati Redis e indicizzandoli usando RediSearch.
Memorizzazione vettoriale e metadati
In Redis, puoi memorizzare vettori in hash o documenti JSON. Memorizza metadati utili con ogni vettore, come ID documento, titolo, URL sorgente, categoria, timestamp, tenant ID o campi di controllo accesso.
I metadati rendono la ricerca vettoriale più utile perché le applicazioni possono filtrare i risultati prima o durante la ricerca vettoriale. Per le applicazioni RAG, i metadati possono anche essere restituiti con i risultati di ricerca per supportare citazioni e grounding delle sorgenti.
Indice e metodi di ricerca
I database vettoriali utilizzano indici per rendere la ricerca efficiente. RediSearch supporta approcci comuni di indicizzazione vettoriale, tra cui:
- FLAT - Un indice esatto di forza bruta. FLAT può essere utile per dataset o carichi di lavoro più piccoli che richiedono una ricerca esaustiva.
- HNSW - Un indice approssimativo del vicino più prossimo basato su grafi gerarchici navigabili di piccoli mondi. HNSW è spesso utilizzato per dataset più ampi dove una latenza più bassa è più importante della precisione esaustiva.
I metodi di ricerca più comuni includono:
-
K-vicini più prossimi (KNN) - Restituisce i vettori più simili in cima.
K - Vicini più prossimi approssimati (ANN) - Scambia una certa precisione per una latenza inferiore e un costo di calcolo ridotti.
Funzionalità di ricerca
I database vettoriali eseguono ricerche confrontando un vettore di query con vettori indicizzati e restituendo i risultati più simili. Molte applicazioni utilizzano anche la ricerca ibrida, dove i filtri di metadati restringono l'insieme dei candidati prima o durante il confronto vettoriale.
Ad esempio, una query di raccomandazione di prodotto potrebbe cercare solo prodotti in una categoria specifica, oppure un'applicazione RAG potrebbe cercare solo documenti a cui l'utente attuale può accedere.
Scenari di chiavi di ricerca vettoriale
La ricerca di similarità vettoriale può essere utilizzata in molti modelli applicativi, tra cui:
- Domande e Risposte semantiche. Crea un chatbot che risponda alle domande tramite i tuoi dati. I documenti possono essere bloccati, incorporati, memorizzati in Azure Managed Redis e recuperati tramite somiglianza vettoriale prima di essere riassunti da un grande modello linguistico.
- Recupero documenti. Usa gli embeddings per fornire una ricerca semantica nei documenti quando la ricerca per parole chiave non è sufficiente.
- Consiglio su un prodotto. Trova prodotti o servizi simili in base all'attività di navigazione, alla cronologia degli acquisti o alle descrizioni dei prodotti.
- Ricerca visiva. Cerca prodotti o immagini che siano visivamente simili a un'immagine inviata.
- Memorizzazione nella cache semantica. Ridurre il costo e la latenza degli LLM memorizzando le completazioni e riutilizzando le risposte memorizzate quando un nuovo prompt è semanticamente simile a un prompt precedente.
- Memoria di conversazioni LLM. Memorizza informazioni a breve termine, come i recenti turni di conversazione, e informazioni a lungo termine, come riepiloghi persistenti, preferenze dell'utente o informazioni fattuali, sotto forma di embedding che le applicazioni possono recuperare per le risposte future.
Perché scegliere Azure Managed Redis per memorizzare e cercare vettori?
Azure Managed Redis è utile per carichi di lavoro di ricerca vettoriale che richiedono accesso a bassa latenza vicino ai dati dell'applicazione, ai dati della cache, allo stato delle sessioni o alla memoria conversazionale. Poiché Redis è comunemente utilizzato per pattern applicativi ad alte prestazioni, Azure Managed Redis può supportare la ricerca vettoriale e servire anche casi d'uso adiacenti come cache, limitazione di velocità, memorizzazione delle sessioni, cache semantica e memoria agente.
Molti framework di IA e applicazioni includono integrazioni Redis, tra cui:
- Microsoft Agent Framework Redis Provider
- Kernel semantico Redis Connector
- Integrazioni di Redis con LangChain
- LamaIndex Redis Vector Store
Azure Managed Redis utilizza il modulo RediSearch per supportare funzionalità di ricerca vettoriale come:
- Metriche di distanza comuni, tra cui
L2,COSINE, eIP. - Ricerca KNN con
FLATeHNSWindici vettoriali. - Archiviazione vettoriale in strutture dati hash o JSON.
- Domande principali K.
- Query per intervalli vettoriali.
- Ricerca ibrida con funzionalità di query come:
- Filtraggio geospaziale.
- Filtri numerici e di testo.
- Prefisso e corrispondenza approssimativa.
- Abbinamento fonetico.
- Query booleane.
Quali sono le mie altre opzioni per memorizzare e cercare vettori?
Azure offre molteplici servizi per l'archiviazione e la ricerca vettoriale. La scelta migliore dipende dal carico di lavoro.
| Service | Considera quando |
|---|---|
| Azure Redis gestito | Hai bisogno di una ricerca vettoriale a bassa latenza vicino alla cache dell'applicazione, allo stato della sessione, alla cache semantica o ai pattern di memoria LLM. |
| Ricerca di intelligenza artificiale di Azure | Hai bisogno di un servizio basato sulla ricerca per indicizzazione documentale, ricerca ibrida, ottimizzazione della rilevanza e scenari di recupero aziendale. |
| Azure Cosmos DB | Vuoi la ricerca vettoriale insieme ai dati NoSQL operativi. |
| Database di Azure per PostgreSQL - Server flessibile | Vuoi la ricerca vettoriale in PostgreSQL usando pgvector insieme ai dati relazionali. |
Contenuti correlati
Il modo migliore per iniziare con embeddings e ricerca vettoriale è provarlo da solo.