Sfruttare i modelli di embedding per la ricerca basata sull'IA
Man mano che l’IA continua a evolversi, il modo in cui cerchiamo e recuperiamo informazioni si è trasformato, in particolare quando si ha a che fare con grandi quantità di dati non strutturati. I metodi di ricerca tradizionali basati su parole chiave faticano a gestire la complessità dei dataset moderni, soprattutto quando si tratta di comprendere significato e contesto. È qui che entrano in gioco i modelli di embedding e gli embedding vettoriali, consentendo ai sistemi di cogliere le relazioni tra parole, immagini e altri tipi di dati.
In un recente Unstructured Data Meetup, Aamir Shakir, Co-Founder di Mixedbread, ha condiviso approfondimenti su come costruire e addestrare modelli di embedding per creare sistemi di IA ad alte prestazioni, in particolare Retrieval Augmented Generation (RAG) su larga scala. In questo blog, riepilogheremo i punti chiave del suo intervento ed esploreremo il ruolo dei modelli di embedding nell’alimentare sistemi di ricerca avanzati. Tratteremo anche tecniche per addestrare, scalare e archiviare in modo efficiente gli embedding, incluso l’uso di metodi di compressione e database vettoriali come Milvus e Zilliz Cloud (il Milvus gestito).
Aamir Shakir parla all’Unstructured Data Meetup di SF di agosto
Se vuoi saperne di più su questo argomento, ti consigliamo di guardare l’intervento di Aamir su YouTube.
Cosa sono i modelli di embedding e perché sono importanti per i dati non strutturati?
In un mondo guidato dai dati, le organizzazioni sono sommerse da enormi quantità di dati non strutturati: log, documenti interni, audio, video e altro ancora. Estrarre insight significativi da dati così diversi può essere una sfida significativa. È qui che entrano in gioco i modelli di embedding e gli embedding vettoriali.
I modelli di embedding sono un tipo di modello di machine learning progettato per trasformare dati non strutturati in rappresentazioni numeriche e proiettarli in uno spazio ad alta dimensionalità. Queste rappresentazioni sono chiamate embedding vettoriali. Catturano le relazioni e i significati all’interno dei dati, consentendo ai computer di comprenderli, elaborarli e analizzarli in modo più efficace. Più questi vettori sono vicini nello spazio vettoriale, più sono semanticamente simili.
I modelli di embedding sono strumenti fondamentali in un’ampia gamma di attività, dall’elaborazione del linguaggio naturale (NLP) alla computer vision e oltre.
Comprensione semantica
I modelli di embedding codificano il significato di parole, frasi o documenti in vettori, catturandone le relazioni semantiche. Rappresentando i dati in questo modo, questi modelli permettono alle macchine di comprendere contesto e significato, abilitando attività più sofisticate come risposta a domande, traduzione e riassunto.
Capacità multilingue e multimodali
I modelli di embedding avanzati possono gestire più lingue e tipi di dati (modalità) come testo, immagini e audio. Questa capacità consente il confronto e il recupero di informazioni tra lingue o formati di dati diversi. Ad esempio, un singolo modello potrebbe recuperare contenuti simili tra testo e immagini oppure tradurre e allineare testi in più lingue, il tutto all’interno dello stesso spazio vettoriale.
Trasferibilità
I modelli di embedding pre-addestrati possono spesso essere adattati (tramite tecniche come il fine-tuning) per diversi task downstream. Invece di addestrare un modello da zero, puoi sfruttare un modello pre-addestrato e modificarlo per task specifici, risparmiando tempo e risorse computazionali. Questa trasferibilità rende i modelli di embedding altamente efficienti per costruire applicazioni di IA, sia per la classificazione, sia per i sistemi di raccomandazione, sia per altri casi d’uso.
Problemi degli approcci di ricerca classici
Prima dell’ascesa degli embedding, per il recupero delle informazioni venivano utilizzati metodi di ricerca tradizionali come term frequency-inverse document frequency (TF-IDF) o il matching basato su parole chiave. Tuttavia, questi approcci funzionano bene per casi d’uso semplici, ma non riescono a catturare le relazioni semantiche tra le parole. Presentano inoltre limitazioni significative quando si tratta di rispondere alle esigenze informative più complesse di oggi. Esistono diverse limitazioni:
Difficoltà con l’ambiguità
Una delle principali sfide dei metodi tradizionali è la loro difficoltà nel gestire l’ambiguità.
Le parole con più significati (polisemia) e parole diverse con lo stesso significato (sinonimia) mettono alla prova i metodi tradizionali e portano a risultati inaccurati. Considera la parola “bank.” Una ricerca di “bank” potrebbe restituire risultati su istituzioni finanziarie quando, in realtà, l’utente stava cercando informazioni sulle rive dei fiumi.
Gli embedding risolvono questo problema considerando il contesto in cui compare una parola. La parola “bank” in ambito finanziario avrà una rappresentazione vettoriale diversa da “bank” nel contesto della natura. Questo aiuta i sistemi di ricerca a restituire risultati che non sono solo pertinenti, ma anche contestualmente accurati.
Rappresentazioni fisse
Un’altra limitazione dei metodi tradizionali è l’uso di rappresentazioni fisse per parole o documenti. Queste rappresentazioni non cambiano in base ai diversi contesti nel tempo, il che può limitarne l’uso nel recupero dinamico delle informazioni.
Scalabilità limitata
I metodi tradizionali faticano a mantenere prestazioni ed efficienza man mano che i dati diventano più grandi e complessi, soprattutto quando si tratta di task di recupero delle informazioni su scala web. D’altra parte, i sistemi di ricerca semantica che gestiscono embedding vettoriali sono progettati per scalare. Una volta che i dati sono convertiti in vettori e archiviati in un database vettoriale come Milvus, anche dati vettoriali su scala di miliardi possono essere gestiti efficacemente e utilizzati per un recupero rapido e accurato. Questo rende gli embedding importanti per sistemi come i sistemi di raccomandazione e RAG.
Queste limitazioni mostrano la necessità degli embedding nella costruzione di moderni sistemi di ricerca in grado di comprendere e recuperare contenuti pertinenti usando il significato anziché le parole chiave.
Modelli di embedding e loro problemi di generalizzazione
I modelli di embedding sono diventati una pietra angolare nelle applicazioni di IA, da RAG ai sistemi di raccomandazione e oltre. Sebbene questi modelli siano molto efficaci nel codificare i dati e facilitare task come ricerca e classificazione, non sono privi di limitazioni, in particolare quando si tratta di generalizzazione.
Gestione dei termini out-of-vocabulary (OOV): Molti modelli di embedding hanno un vocabolario fisso, il che causa problemi quando incontrano nuove parole che non facevano parte dei dati di addestramento.
Prestazioni sulla long tail: Sebbene i modelli di embedding di solito funzionino bene con parole e concetti comuni, potrebbero incontrare difficoltà con termini altamente specifici.
Specificità del dominio: I modelli di embedding addestrati su dati provenienti da un dominio possono avere prestazioni scarse quando applicati a un dominio diverso. Questa limitazione è dovuta al fatto che gli embedding contengono i pattern statistici dei dati di addestramento, che potrebbero non essere efficaci per nuovi tipi di dati. I modelli di embedding, quindi, di solito richiedono un fine-tuning su dati specifici del dominio per raggiungere le migliori prestazioni.
Bias negli embedding: I modelli di embedding sono anche sensibili ai bias. Sono addestrati su dataset grandi, talvolta non curati. Di conseguenza, possono assorbire erroneamente i bias sociali presenti nei dati.
Variazioni contestuali: I modelli di embedding statici assegnano lo stesso vettore a una parola indipendentemente dal contesto. Questo può essere un problema per parole che possono avere più di un significato.
Come costruire e addestrare un modello di embedding all'avanguardia
Costruire un modello di embedding di alta qualità, specialmente per sistemi complessi come RAG, richiede un approccio ponderato per garantire scalabilità, accuratezza ed efficienza. I modelli di embedding sono tipicamente costruiti utilizzando reti neurali, e la qualità degli embedding che generano dipende fortemente dal processo di addestramento. Per raggiungere prestazioni all'avanguardia (SOTA), è necessario seguire diversi passaggi chiave:
Pretraining su dataset grandi e diversificati
Un primo passo fondamentale nella costruzione di un modello di embedding robusto è il pretraining su dataset grandi e diversificati. Questo pretraining espone il modello a un'ampia gamma di pattern, strutture e contesti linguistici, consentendogli di apprendere caratteristiche generalizzabili che possono essere applicate a vari task downstream. L'idea è fornire al modello una comprensione ampia dei dati, permettendogli di funzionare bene non solo su input familiari, ma anche su dati nuovi e mai visti.
Esistono diversi tipi di embedding, tra cui:
Word embeddings sono vettori densi a bassa dimensionalità che proiettano le parole in uno spazio vettoriale continuo. Sono utili per catturare relazioni semantiche e sintattiche.
Conceptual embeddings sono rappresentazioni vettoriali di concetti in uno spazio semantico che catturano le loro relazioni e attributi, spesso provenienti da knowledge graph su larga scala.
Contextual embeddings sono rappresentazioni dinamiche delle parole generate da modelli come BERT e GPT. Considerano il contesto circostante di ogni parola in una frase per produrre embedding sensibili al contesto.
La seguente illustrazione ti aiuterà a comprendere il processo di addestramento dei modelli di embedding:
Fase di addestramento del modello di embedding
Tokenization scompone i dati di input in unità più piccole (token), come parole o sottoparole, creando un vocabolario per il modello. Il vocabolario è un insieme di token unici che il modello userà per comprendere e rappresentare i dati durante l'addestramento.
Inizializzazione degli embedding inizializza una matrice in cui un vettore di embedding rappresenta ogni token nel dataset. Questa matrice riassume le relazioni e i significati tra i token, con vettori che tipicamente variano da 50 a 1.000 dimensioni.
Addestramento regola i parametri del modello per minimizzare la distanza tra parole semanticamente simili e massimizzare la distanza tra parole dissimili.
Fine-tuning per l'ottimizzazione specifica del task
Dopo il pretraining, il fine-tuning è importante per ottimizzare il modello per compiti specifici. Ad esempio, se il sistema RAG viene utilizzato in un contesto legale, eseguiamo il fine-tuning del modello di embedding su documenti legali. In questo modo, gli embedding mantengono il vocabolario specifico del dominio, migliorando le prestazioni del sistema RAG. Durante questa fase, eseguiamo anche il fine-tuning del modello per gestire dati strutturati e dati non strutturati adatti a compiti di ricerca multimodale e multilingue.
Archiviazione degli embedding vettoriali su larga scala
Man mano che i modelli di embedding diventano più avanzati, i vettori che producono possono diventare sempre più complessi. Sebbene la complessità del modello non significhi sempre vettori a dimensionalità più elevata, i modelli più grandi spesso generano embedding con rappresentazioni più dettagliate, talvolta arrivando a migliaia di dimensioni. Ciò presenta sfide sia in termini di archiviazione sia di recupero, soprattutto quando si lavora con dataset di grandi dimensioni o applicazioni in tempo reale.
Per affrontare queste sfide, sono fondamentali metodi efficienti di archiviazione e recupero. Tecniche come i database vettoriali, la ricerca approximate nearest neighbor (ANN) e strutture di indicizzazione ottimizzate sono comunemente utilizzate per garantire che gli embedding possano essere recuperati rapidamente senza sacrificare le prestazioni. Inoltre, anche le tecniche di compressione sono essenziali per ridurre la dimensione di questi vettori ad alta dimensionalità senza perderne il significato semantico.
Database vettoriali
I database vettoriali come Milvus e Zilliz Cloud (la versione gestita di Milvus), sono progettati specificamente per gestire e recuperare in modo efficiente dati non strutturati sotto forma di embedding vettoriali. Milvus è un database vettoriale open-source ottimizzato per archiviare e cercare vettori su scala enorme. Utilizza ricerche approximate nearest neighbor (ANN) per recuperare rapidamente embedding pertinenti, anche quando si lavora con database che contengono miliardi di vettori. Zilliz Cloud offre funzionalità più avanzate in un servizio gestito, riducendo il carico operativo della gestione di database vettoriali su larga scala.
Tecniche di compressione
Sebbene gli embedding possano essere archiviati direttamente nei database vettoriali, archiviarli su larga scala può essere costoso. È qui che le tecniche di compressione risultano utili. L’idea principale alla base della compressione è ridurre i requisiti di memoria e migliorare la velocità delle query. Un tipo è la quantizzazione binaria, e l’altro è la quantizzazione scalare.
La quantizzazione binaria riduce ogni caratteristica di un dato embedding a una cifra binaria, mentre la quantizzazione scalare riduce la dimensione complessiva delle dimensioni a un tipo di dato più piccolo, come un float a 2 byte o un intero a 1 byte.
Ad esempio, se un’immagine è rappresentata da tre caratteristiche distinte, dove ciascuna caratteristica contiene un valore nell’intervallo di un’unità di archiviazione FLOAT-32, eseguire la quantizzazione binaria su questo vettore comporterebbe che ciascuna delle tre caratteristiche fosse rappresentata indipendentemente da una singola cifra binaria. Pertanto, il vettore contenente tre valori FLOAT-32 verrebbe trasformato in un vettore di tre cifre binarie, come [1, 0, 1].
Comprensione della quantizzazione binaria
La quantizzazione binaria è altamente efficace per condurre ricerche vettoriali su grandi dataset grazie ai suoi calcoli efficienti e meno complessi. Nel caso di Milvus e dei vettori binari, Milvus utilizza la distanza di Hamming come metrica di similarità. Questa metrica può calcolare rapidamente la distanza tra due vettori binari memorizzati. Ecco un esempio di come funziona il metodo della distanza di Hamming.
Come funziona il metodo della distanza di Hamming
Ora useremo la tecnica di quantizzazione scalare per convertire gli embedding float32 in formato int8. Questo approccio mappa l'intervallo continuo di valori float32 su un insieme discreto di 256 valori int8 distinti, compresi tra -127 e 127.
Per eseguire la quantizzazione scalare:
Calcolare l'intervallo: Determinare i valori minimo e massimo per ciascuna dimensione dell'embedding.
Determinare il passo di quantizzazione: Calcolare la dimensione del passo necessaria per distribuire uniformemente i valori float32 sull'intervallo int8.
Quantizzare: Arrotondare ciascun valore float32 al valore int8 più vicino usando la dimensione del passo calcolata.
Valori da -1.0 a 1.0 in valori int8 discreti
Con la quantizzazione scalare a int8, riduciamo la precisione degli embedding float32 originali in modo che ogni valore sia rappresentato con un intero a 8 bit (4 volte più piccolo), diminuendo così la quantità di memoria necessaria per memorizzarli, cercando al contempo di preservare quante più informazioni possibile.
L'economia della compressione
Riepilogo
I modelli di embedding—che forniscono un approccio flessibile, scalabile e semanticamente ricco al recupero delle informazioni—stanno contribuendo a definire la direzione della ricerca per similarità. Dal miglioramento del clustering e del bi-text mining alla possibilità di ricerca multimodale e multilingue, gli embedding offrono molte opportunità che i metodi tradizionali non possono raggiungere.
La creazione di modelli di embedding all'avanguardia per sistemi RAG di alta qualità richiede un'attenta attenzione al pretraining, al fine-tuning e alla scalabilità. Zilliz Cloud e Milvus aiutano a gestire gli embedding su larga scala e a creare sistemi di ricerca neurale più intelligenti e reattivi.
Ulteriori risorse
Continua a leggere

Introducing Functions and Model Inference on Zilliz Cloud: Automatic Embedding and Reranking with Hosted Models
Zilliz Cloud Functions auto-generate embeddings via OpenAI, Voyage AI, Cohere, or Zilliz Hosted Models. Built-in reranking — just insert text and search.

The AWS Outage Was a Wake-Up Call for Vector Database Cross-Region Disaster Recovery
Zilliz Cloud Had the Answer Before the Crisis. Zilliz Cloud is the world's first vector database with native cross-region disaster recovery.

Vector Databases vs. Hierarchical Databases
Use a vector database for AI-powered similarity search; use a hierarchical database for organizing data in parent-child relationships with efficient top-down access patterns.



