Database vettoriali per sistemi di embedding

Introduzione agli Embeddings con l'API di OpenAI

Emmanuel Pire

Senior Software Engineer, DataCamp

Limiti dell'approccio attuale

  • Caricare tutti gli embedding in memoria (1536 float ~ 13 kB/embedding)
  • Ricalcolare gli embedding per ogni nuova query
  • Calcolare le distanze coseno per ogni embedding e ordinare è lento e scala linearmente

Schema che mostra come i documenti e la query vengono incorporati a ogni richiesta senza soluzione di storage.

Introduzione agli Embeddings con l'API di OpenAI

Database vettoriali

  • I documenti incorporati vengono archiviati e interrogati dal database vettoriale

Schema che mostra l’uso di un database vettoriale per archiviare gli embedding dei documenti e restituire risultati basati su una query incorporata.

Introduzione agli Embeddings con l'API di OpenAI

 

Database NoSQL
  • Struttura più flessibile che consente query più rapide

Esempi di schemi NoSQL: key:value, documenti e grafi.

 

Database SQL/Relazionali
  • Dati strutturati in tabelle, righe e colonne

Tabelle con colonne e righe in un database SQL, o relazionale.

Introduzione agli Embeddings con l'API di OpenAI

Cosa archiviare

 

  • Embedding
  • Testi sorgente
  • Metadati
    • ID e riferimenti
    • Dati aggiuntivi utili per filtrare i risultati

 

Suggerimento: non salvare il testo sorgente come metadato!

Icona di un database vettoriale.

Introduzione agli Embeddings con l'API di OpenAI

Il panorama dei database vettoriali

Molte tra le soluzioni di database vettoriali più diffuse, ordinate per closed source o open source e per specializzazione.

1 Crediti immagine: Yingjun Wu
Introduzione agli Embeddings con l'API di OpenAI

Qual è la soluzione migliore?

 

  • Gestione del database:
    • Gestito → più costoso ma riduce il lavoro
    • Autogestito → più economico ma richiede tempo e competenze
  • Open source o commerciale?
    • Open source → flessibile e conveniente
    • Commerciale → supporto migliore, più funzionalità e compliance

 

  • Modelli di dati: il tipo di dato suggerisce un certo tipo di database?
  • Funzionalità specifiche: il caso d’uso richiede funzioni particolari, es. storage multimodale?

Logo di Chroma.

Introduzione agli Embeddings con l'API di OpenAI

Passiamo alla pratica !

Introduzione agli Embeddings con l'API di OpenAI

Preparing Video For Download...