Cosa sono gli Embedding Vettoriali e i Database Vettoriali?

Perché Rememberizer è più di un semplice database o motore di ricerca per parole chiave.

Rememberizer utilizza gli embeddings vettoriali nei database vettoriali per consentire ricerche di somiglianza semantica all'interno delle fonti di conoscenza dell'utente. Questo è un modo fondamentalmente più avanzato e sfumato di recupero delle informazioni rispetto alla semplice ricerca di parole chiave nei contenuti attraverso un motore di ricerca o un database.

Uno Spazio multidimensionale

Nella loro forma più avanzata (come utilizzato da Rememberizer) gli embeddings vettoriali sono creati da modelli di linguaggio con architetture simili ai LLMs (Large Language Models) che sottostanno ai modelli gpt di OpenAI e al servizio ChatGPT così come ai modelli/servizi di Google (Gemini), Anthropic (Claude), Facebook (LLama 2) e altri. Per questo motivo è naturale usare gli embeddings vettoriali per scoprire la conoscenza rilevante da includere nel contesto dei prompt del modello AI. Le tecnologie sono complementari e in qualche modo equivalenti. Per questo motivo la maggior parte dei fornitori di LLM come servizio produrranno anche embeddings vettoriali come servizio (ad esempio: un blog di Together AI o un altro blog di OpenAI).

Come appare un embedding vettoriale? Considera una coordinata (x,y) in due dimensioni. Se rappresenta una linea dall'origine a questo punto, possiamo pensarla come una linea con una direzione, in altre parole un vettore in due dimensioni. Nel nostro contesto, un embedding vettoriale sarà una lista di qualcosa come 768 numeri che rappresenta un vettore in uno spazio a 768 dimensioni. In ultima analisi, questa lista di numeri può rappresentare pesi tra zero e uno in un modello Transformer che definisce il significato in una frase come "Un fulmine a ciel sereno". Questa è fondamentalmente la stessa rappresentazione del significato utilizzata in GPT-4 per esempio. Di conseguenza, possiamo aspettarci che un buon embedding vettoriale permetta la stessa brillante apparente comprensione che vediamo nei moderni modelli di linguaggio AI.

È importante notare che gli embeddings vettoriali possono essere utilizzati per rappresentare non solo il testo, ma anche altri tipi di dati come immagini o suoni. E con un modello adeguatamente addestrato si può confrontare tra media, in modo che un embedding vettoriale su un blocco di testo possa essere confrontato con un'immagine, o viceversa. Oggi Rememberizer permette ricerche solo nel componente testuale dei documenti e della conoscenza dell'utente. Ma le ricerche da testo a immagine e da immagine a testo sono nel nostro piano. Google utilizza gli embeddings vettoriali per alimentare la loro ricerca del testo (text-to-text) e anche la loro ricerca delle immagini (text-to-image) (reference). Facebook ha contemplato l'utilizzo di embeddings per la ricerca nel loro social network (reference). Snapchat utilizza gli embeddings vettoriali per capire il contesto e servire la giusta pubblicità al giusto utilizzatore nel momento giusto (reference).

Per capire profondamente come gli embeddings vettoriali e i database vettoriali funzionano, si parte con la panoramica da Huggin Face. Pinecone (un database di embeddings vettoriali come servizio) ha una buona panoramica così.

Un'altra ottima fonte per capire la ricerca e la conoscenza nei vettori è il paper di Meta/Facebook e il codice per la libreria FAISS. "FAISS: A Library for Efficient Similarity Search and Clustering of Dense Vectors" di Johnson, Douze, and Jégou (2017): FAISS fornisce una panoramica completa di una libreria progettata per la ricerca di somiglianza e il clustering di vettori densi in modo efficiente. Discute metodi per ottimizzare i processi di indicizzazione e ricerca nei database vettoriali di grande scala, compresi quelli basati su Quantization di Prodotto. Il miglior posto per saperne di più su questo è la documentazione insieme al codice su Github.

Considerate anche il documento di giugno 2017 che ha dato inizio alla rivoluzione genAI (generative artificial intelligence), "Attention Is All You Need" (reference) che introduce l'architettura Transformer dietro i modelli GPT e tutti i LLMs che seguono da OpenAI, Google, Meta (Facebook), Nvidia, Microsoft, IBM, Anthropic, Mistral, Salesforce, xAI (Elon Musk), Stability AI, Cohere, e molti altre fonti aperte. Considerate anche, "Approximate Nearest Neighbors: Towards Removing the Curse of Dimensionality" (reference 1998, reference 2010). Questi documenti discutono la teoria dietro la ricerca del vicino più prossimo approssimato (ANN) in spazi ad alta dimensione, un concetto fondamentale nei database vettoriali per recuperare efficientemente elementi simili.

Una cosa interessante su questi modelli basati su Transformer è che più dati usavano, più grandi (più parametri) erano, migliore era la loro comprensione e le loro capacità. OpenAI ha notato per la prima volta questa potenzialità quando ha addestrato il loro modello GPT-2. Realizzando questo potenziale, hanno immediatamente smesso di essere un ente no-profit orientato all'open-source e sono diventati una società a fini di lucro a codice chiuso concentrata sulla produzione di GPT-3, GPT-4 e il suo famoso front end, ChatGPT. È interessante notare che Google possiede il brevetto su questa tecnologia -- erano i loro ricercatori dietro ai Transformer e Attention Is All You Need (reference). ChatGPT differisce un po' sulla mia caratterizzazione, scrivendo che "Il racconto della transizione di OpenAI da un'entità no-profit orientata all'open-source a un'entità a fini di lucro a codice chiuso semplifica un'evoluzione complessa. La svolta di OpenAI ha incluso una attenzione alla sicurezza e allo sviluppo responsabile di AI insieme ad aspetti di commercializzazione. Vale la pena notare che, sebbene OpenAI abbia privilegiato lo sviluppo di tecnologia proprietaria come GPT-3 ed oltre, continua a interagire con la comunità della ricerca tramite pubblicazioni e collaborazioni."

I modelli linguistici BERT si basano su Transformers e sono spesso utilizzati nei motori avanzati di embedding vettoriali. Questo è stato introdotto nel documento del 2018 "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding" (reference). BERT (Bidirectional Encoder Representations from Transformers) ha segnato un importante cambiamento verso modelli pre-addestrati che possono essere perfezionati per un'ampia gamma di compiti NLP. Il suo uso innovativo di addestramento bidirezionale e architettura transformer ha stabilito nuovi standard per le prestazioni del modello su numerosi benchmark. Metodi innovativi precedenti per la creazione di embeddings vettoriali sono stati introdotti da GloVe (2014, Stanford), Word2Vec (2013, Google). "GloVe: Global Vectors for Word Representation" (reference): Il paper GloVe (Global Vectors) ha proposto un nuovo modello globale di regressione log-bilineare per l'apprendimento non supervisionato delle rappresentazioni delle parole, combinando i benefici dei due principali approcci all'embedding: la fattorizzazione globale della matrice e i metodi locali delle finestre di contesto. "Efficient Estimation of Word Representations in Vector Space" (reference): Questo paper ha introdotto Word2Vec, un approccio rivoluzionario alla generazione di embeddings di parole. I modelli Word2Vec, tra cui i modelli Continuous Bag of Words (CBOW) e Skip-Gram, sono cruciali nell'evoluzione degli embeddings di parole.

Last updated