Condividi tramite


Database vettoriali per .NET + intelligenza artificiale

I database vettoriali sono progettati per archiviare e gestire incorporamenti, Le embedding sono rappresentazioni numeriche di dati non numerici che mantengono il significato semantico. È possibile vettorizzare parole, documenti, immagini, audio e altri tipi di dati. Usare gli incorporamenti per consentire a un modello di intelligenza artificiale di comprendere il significato degli input in modo che possa eseguire confronti e trasformazioni, ad esempio riepilogare il testo, trovare dati contestualmente correlati o creare immagini da descrizioni di testo.

È possibile, ad esempio, usare un database vettoriale per eseguire le azioni seguenti:

  • Identificare immagini, documenti e canzoni simili in base ai relativi contenuti, temi, valutazioni e stili.
  • Identificare prodotti simili in base alle relative caratteristiche e funzionalità e ai rispettivi gruppi utenti.
  • Consigliare contenuti, prodotti o servizi in base alle preferenze utente.
  • Identificare le migliori opzioni potenziali per soddisfare requisiti complessi da un ampio pool di scelte.
  • Identificare anomalie dei dati o attività fraudolente diverse dai criteri normali o predominanti.

I database vettoriali offrono funzionalità di ricerca vettoriale in grado di trovare elementi simili in base alle caratteristiche dei dati anziché cercando corrispondenze esatte in un campo di proprietà. La ricerca vettoriale funziona analizzando le rappresentazioni vettoriali dei dati creati usando un modello di incorporamento di intelligenza artificiale, ad esempio i modelli di incorporamento di Azure OpenAI. Il processo di ricerca misura la distanza tra i vettori di dati e il vettore di query. I vettori di dati più vicini al vettore di query sono quelli che risultano più simili dal punto di vista semantico.

Alcuni servizi come Azure Cosmos DB for MongoDB vCore offrono funzionalità di ricerca vettoriale nativa per i dati. Altri database, invece, possono essere migliorati con la ricerca vettoriale indicizzando i dati archiviati mediante un servizio come Azure AI Search, che consente di analizzare e indicizzare i dati per offrire funzionalità di ricerca vettoriale.

Flussi di lavoro di ricerca vettoriale con .NET e OpenAI

I database vettoriali e le relative funzionalità di ricerca sono particolarmente utili in flussi di lavoro basati sul modello RAG con Azure OpenAI. Questo modello consente di aumentare il modello di intelligenza artificiale con conoscenze semantiche aggiuntive sui dati. Un flusso di lavoro di intelligenza artificiale comune che usa i database vettoriali include questi passaggi:

  1. Creare incorporamenti per i dati usando un modello di incorporamento OpenAI.
  2. Archiviare e indicizzare gli incorporamenti in un database vettoriale o in un servizio di ricerca.
  3. Convertire in incorporamenti le richieste utente provenienti dall'applicazione.
  4. Esegui una ricerca vettoriale nei tuoi dati, confrontando l'embedding del prompt dell'utente con gli embedding nel tuo database.
  5. Usare un modello linguistico come GPT-4o per assemblare un completamento intuitivo dai risultati della ricerca vettoriale.

Consultare l'esercitazione Implementare Azure OpenAI con RAG usando la ricerca vettoriale in un'app .NET per un esempio pratico di questo flusso.

Altri vantaggi del modello RAG includono:

  • Capacità di generare risposte contestualmente pertinenti e accurate alle richieste degli utenti da modelli di intelligenza artificiale.
  • Superare i limiti dei token LLM: la ricerca vettoriale del database fa il lavoro pesante.
  • Riduzione dei costi derivanti dall'ottimizzazione frequente dei dati aggiornati.