Un punto di vista diverso: modelli di embedding ottimizzati per il recupero
Nei moderni sistemi di recupero dati, gli utenti spesso richiedono più di un solo risultato da una query; si aspettano molteplici risultati pertinenti ordinati in base al contesto della query. Questa aspettativa presenta sfide per i modelli di embedding tradizionali, che in genere si concentrano su relazioni binarie. Recentemente, al SF Unstructured Data Meetup, Robertson Taylor, solutions architect presso Marqo, ha presentato il Generalized Contrastive Learning (GCL). Questo approccio va oltre gli abbinamenti binari integrando consapevolezza del ranking e della query nel processo di addestramento del modello.
Robertson che parla all'Unstructured Data Meetup di agosto a SF
Questo blog esplorerà gli insight chiave della presentazione di Robertson e dimostrerà come GCL possa essere integrato con Milvus, un importante database vettoriale, per creare sistemi ottimizzati di Retrieval-Augmented Generation (RAG). Sebbene Marqo offra soluzioni di archiviazione e recupero vettoriale, questo blog si concentrerà su come gli utenti di Milvus possano sfruttare i modelli GCL perfezionati con Marqtune, una piattaforma di fine-tuning di Marqo, per potenziare le proprie capacità di recupero.
Per comprendere meglio come GCL affronti queste sfide, esaminiamo innanzitutto i limiti dei modelli di embedding tradizionali, come CLIP.
Guarda il replay dell'intervento di Robertson su YouTube.
Modelli di embedding e i loro limiti
I modelli di embedding tradizionali, come CLIP (Contrastive Language-Image Pretraining), sono ampiamente utilizzati per attività come la ricerca di immagini. Questi modelli sono progettati per minimizzare la distanza tra elementi abbinati, come una didascalia e un'immagine. Sebbene questo approccio funzioni bene per relazioni semplici e binarie, fatica a soddisfare le esigenze più complesse dei sistemi di recupero che richiedono risultati multimodali ordinati.
Robertson ha iniziato la sua presentazione affrontando diverse sfide associate ai modelli esistenti:
Relazioni binarie: modelli come CLIP apprendono da coppie di testo e immagini, il che li rende efficienti per attività specifiche ma inadeguati quando si tratta di ordinare più risultati in base alle query degli utenti.
Mancanza di consapevolezza del ranking e della query: molti modelli di embedding trattano tutte le query allo stesso modo, senza adeguare i risultati in base al comportamento degli utenti o ai dati di interazione.
Capacità multimodali limitate: la maggior parte dei modelli eccelle nel lavorare con testo o immagini, ma fatica a combinare efficacemente questi tipi di dati.
Combinazione cross-field inefficace: i modelli esistenti spesso non riescono a combinare efficacemente informazioni provenienti da più campi, ad es. titolo, descrizione e recensioni, in un'unica rappresentazione vettoriale.
Questi limiti significano che, sebbene i modelli tradizionali funzionino adeguatamente in ambienti controllati, spesso risultano insufficienti negli scenari reali in cui ranking e capacità multimodali sono fondamentali.
Per illustrare come i modelli CLIP vengono tipicamente addestrati, esaminiamo il seguente diagramma:
Figura 1: Come viene addestrato CLIP
CLIP utilizza un’architettura a due torri con un codificatore di testo e un codificatore di immagini. Il modello viene addestrato a minimizzare la distanza tra coppie positive (testo e immagine corrispondenti) e a massimizzare la distanza tra tutte le altre coppie. Sebbene questo approccio sia efficace per determinate attività, non tiene conto delle complessità degli scenari di recupero nel mondo reale. È qui che entra in gioco GCL.
Generalized Contrastive Learning (GCL): Una soluzione per l’ottimizzazione del recupero
Per affrontare i limiti dei modelli tradizionali, Marqo ha introdotto il Generalized Contrastive Learning (GCL). Questo approccio potenzia i modelli di embedding incorporando la consapevolezza del ranking e la consapevolezza della query nel processo di addestramento, il che migliora significativamente la pertinenza e il ranking dei risultati di recupero.
GCL affronta queste sfide attraverso diverse innovazioni chiave:
Consapevolezza del ranking: GCL risolve questo problema incorporando i dati di interazione degli utenti, come clic e azioni di aggiunta al carrello, nel processo di addestramento. Ciò consente al modello di imparare a classificare i risultati in base alle preferenze degli utenti.
Consapevolezza della query: Invece di trattare tutte le query allo stesso modo, GCL perfeziona gli embedding per tenere conto del contesto di una query. Ad esempio, quando un utente cerca una fotocamera SLR, GCL considera se la query proviene da un fotografo professionista alla ricerca di attrezzatura di fascia alta o da un consumatore alla ricerca di un modello entry-level. Questa consapevolezza della query consente al sistema di restituire risultati più pertinenti.
Capacità multimodali: GCL supporta il recupero multimodale consentendo al sistema di incorporare e recuperare sia testo sia immagini in modo unificato. Ad esempio, in un contesto di e-commerce, GCL può combinare titoli di prodotto, descrizioni, recensioni e immagini in un unico vettore, fornendo risultati di ricerca più pertinenti.
Combinazione cross-field: GCL consente al modello di combinare efficacemente informazioni provenienti da più campi in un’unica rappresentazione vettoriale, migliorando la qualità complessiva dei risultati di ricerca.
Comprensione intramodale: Incorporando vari campi di testo durante l’addestramento, GCL migliora la capacità del modello di gestire più efficacemente query da testo a testo.
Per illustrare come funziona GCL, esaminiamo il seguente diagramma che mostra il processo di ottimizzazione del recupero multimodale utilizzando GCL:
Figura 2: Processo di ottimizzazione del recupero multimodale utilizzando GCL
Il sistema inizia acquisendo le interazioni degli utenti, come i clic sui risultati di ricerca. Queste interazioni vengono poi aggregate per creare un punteggio per ciascuna coppia query-risultato. Le query vengono utilizzate per addestrare il modello per migliori prestazioni di recupero, mentre i punteggi aggregati vengono utilizzati per ponderare l’importanza dei diversi risultati durante l’addestramento. Il modello viene quindi addestrato utilizzando questi dati ponderati, incorporando sia le informazioni della query sia i punteggi di interazione degli utenti. Infine, il modello addestrato viene valutato utilizzando nuove query e punteggi per valutarne le prestazioni.
Questo processo consente al modello di apprendere dal comportamento reale degli utenti e di ottimizzarsi per scenari di recupero effettivi, anziché limitarsi a minimizzare le distanze tra coppie predefinite. Ora che abbiamo visto come GCL risolve le sfide chiave nell’ottimizzazione del recupero, esploriamo come può essere perfezionato per attività specifiche e applicazioni nel mondo reale.
Fine-tuning delle attività con GCL
GCL è versatile e può essere utilizzato per perfezionare i modelli per varie attività in stile recupero oltre alla ricerca di base. L’immagine seguente illustra alcune di queste attività:
Figura 3: Esempi di attività di fine-tuning con GCL
Esploriamo ciascuna di queste attività di fine-tuning in maggior dettaglio:
Miglioramento della ricerca di base
GCL migliora il tradizionale recupero query-documento incorporando i dati di interazione degli utenti. Ciò significa che quando un utente cerca un termine, il modello non si limita ad abbinare parole chiave, ma considera anche come gli utenti hanno interagito in passato con query e risultati simili. Per esempio, se molti utenti che hanno cercato un laptop leggero hanno cliccato sugli ultrabook, il modello impara a posizionare più in alto gli ultrabook per questa query, anche se il termine ultrabook non è menzionato esplicitamente.
Raccomandazioni avanzate
GCL abilita raccomandazioni sia query-documento sia documento-documento. Questo duplice approccio consente suggerimenti di prodotti più sfumati e contestuali. Nelle raccomandazioni query-documento, GCL può suggerire prodotti in base alla query di ricerca di un utente, tenendo conto non solo dei termini della query ma anche dei pattern di comportamento degli utenti. Per le raccomandazioni documento-documento, GCL può identificare prodotti correlati in base a somiglianze nelle caratteristiche, nei pattern di interazione degli utenti o nella rilevanza contestuale, anche quando gli articoli non sono apertamente simili.
Risoluzione delle entità e deduplicazione
Le capacità di corrispondenza documento-documento di GCL lo rendono potente per attività di risoluzione delle entità e deduplicazione. Può identificare articoli simili o identici all'interno di un dataset, anche quando ci sono lievi variazioni nel modo in cui gli articoli sono descritti o categorizzati. Questo è particolarmente utile nell'e-commerce per identificare inserzioni di prodotti duplicate o nei progetti di integrazione dei dati in cui la stessa entità potrebbe essere rappresentata in modo diverso attraverso più fonti di dati.
Ricerca condizionale
Questa funzionalità consente a GCL di incorporare informazioni contestuali nel processo di ricerca. Per esempio, una ricerca di giacche invernali produce risultati diversi in base alla posizione dell'utente (ad es., pesanti piumini per climi freddi, giacche più leggere per inverni più miti). GCL impara ad adattare i propri risultati in base a questi fattori condizionali, fornendo esiti di ricerca più pertinenti e personalizzati per contesti o marketplace specifici.
Ricerca personalizzata
GCL porta la personalizzazione un passo oltre, tenendo conto del contesto specifico dell'utente, come la cronologia di navigazione, gli articoli nel carrello attuale o il comportamento di acquisto passato. Questo consente risultati di ricerca altamente personalizzati che si allineano agli interessi e alle esigenze attuali dell'utente. Per esempio, se un utente ha esplorato attrezzatura fotografica di fascia alta, una ricerca di un treppiede ****potrebbe dare priorità a opzioni di livello professionale rispetto ad alternative economiche.
Classificazione e mappatura della tassonomia
GCL può essere applicato ad attività di classificazione, come la categorizzazione automatica dei prodotti in una tassonomia predefinita. Questo è particolarmente utile per grandi piattaforme di e-commerce o sistemi di gestione dei contenuti in cui la categorizzazione manuale richiederebbe molto tempo e sarebbe soggetta a errori. GCL può apprendere dalle categorizzazioni esistenti e dalle interazioni degli utenti per prendere decisioni intelligenti su come classificare nuovi articoli, garantendo coerenza e migliorando l'organizzazione complessiva di grandi dataset.
Queste attività di fine-tuning rendono GCL altamente adattabile a varie sfide di recupero. Vediamo come GCL viene applicato in scenari reali.
Applicazioni reali di GCL
Robertson ha condiviso diversi esempi di come GCL viene utilizzato per risolvere problemi reali. Un caso notevole riguardava una piattaforma di e-commerce che inizialmente aveva implementato una soluzione di ricerca vettoriale di base utilizzando un modello pronto all'uso. Tuttavia, la piattaforma ha registrato un brusco calo dei tassi di aggiunta al carrello e del coinvolgimento complessivo, poiché il sistema non forniva risultati pertinenti.
Dopo l’integrazione di GCL, la piattaforma ha registrato miglioramenti significativi. I prodotti più allineati alle preferenze degli utenti sono stati posizionati più in alto, portando a un maggiore coinvolgimento e a un aumento delle vendite. La piattaforma è stata in grado di sfruttare dati non strutturati come recensioni degli utenti e immagini dei prodotti per migliorare la pertinenza dei risultati di ricerca. Incorporando dati dalle interazioni degli utenti, come clic e comportamento d’acquisto, la piattaforma ha potenziato la propria capacità di fornire risultati di ricerca personalizzati e ordinati.
Nel dominio della ricerca accademica, GCL ha migliorato il recupero di articoli di ricerca pertinenti incorporando nel processo di ricerca metadati come dettagli sugli autori e citazioni. Ciò non solo ha accelerato il processo di ricerca, ma ha anche aumentato la pertinenza dei risultati, rendendo il sistema più efficace per i ricercatori che navigano in grandi database.
Vediamo ora come GCL incorpora tecniche avanzate per migliorare ulteriormente le prestazioni negli ambienti di produzione.
Tecniche avanzate in GCL
Robertson ha accennato a diverse tecniche avanzate che possono migliorare ulteriormente le prestazioni dei modelli GCL. Queste includono metodi di training consapevoli della produzione, come il troncamento e la binarizzazione degli embedding.
Figura 4: Troncamento e binarizzazione degli embedding
Il training consapevole del troncamento consente la creazione di embedding Matryoshka, che possono ridurre la dimensione degli embedding di 2-4 volte senza perdita di fedeltà. Il modello impara a creare rappresentazioni significative di varie dimensioni da un singolo modello. Imparare a binarizzare è un’altra tecnica che consente riduzioni significative nello storage e nella latenza con una perdita minima di fedeltà, apprendendo embedding che sono solo 0 o 1. Queste tecniche sono particolarmente preziose negli ambienti di produzione, dove i costi di storage e la velocità di recupero sono fattori critici.
GCL supporta anche la creazione di embedding condizionali, che consentono un controllo più sfumato sui risultati di ricerca
Figura 5: Embedding condizionali
Utilizzando prefissi o dichiarazioni condizionali nelle query, il modello può imparare ad adattare i propri risultati in base a condizioni specifiche. Ad esempio, USA Marketplace: fotocamera SLR potrebbe produrre risultati diversi rispetto a UK Marketplace: fotocamera SLR. Gli embedding condizionali possono anche essere utilizzati per influenzare lo stile o la qualità dei risultati, in modo simile a come funzionano i prompt nei modelli di generazione di immagini.
Queste tecniche avanzate non solo migliorano gli aspetti tecnici di GCL, ma portano anche a miglioramenti delle prestazioni nelle attività di recupero del mondo reale. Vediamo come si comportano i modelli addestrati con GCL rispetto agli approcci tradizionali.
Miglioramenti delle prestazioni con GCL
L’utilizzo di GCL migliora le prestazioni in diversi scenari. Diamo un’occhiata ad alcuni di quelli condivisi da Robertson:
Figura 6: Confronto delle prestazioni tra modelli di embedding addestrati con GCL e altri
Le prestazioni in-domain hanno mostrato un aumento di 6 volte nell’NDCG (Normalized Discounted Cumulative Gain) rispetto ai modelli pre-addestrati. Per query nuove non viste durante il training, GCL ha comunque superato i modelli pre-addestrati di quasi 3 volte. Quando applicato a nuovi dataset non visti durante il training, GCL ha mantenuto il proprio vantaggio prestazionale. Anche negli scenari zero-shot, GCL ha mostrato miglioramenti nell’NDCG rispetto ai modelli tradizionali. Questi risultati dimostrano la robustezza e la generalizzabilità di GCL in vari scenari di recupero.
Con miglioramenti così significativi nell’efficacia del retrieval, soprattutto in scenari nuovi e zero-shot, GCL è destinato a ridefinire le prestazioni nei sistemi di retrieval. Ora vediamo come puoi portare questi vantaggi nelle tue applicazioni RAG sfruttando GCL con Milvus.
Sfruttare GCL con Milvus per applicazioni RAG
Sebbene Marqo fornisca una soluzione completa per il retrieval basato su embedding, molte organizzazioni si affidano già a Milvus per le proprie esigenze di database vettoriale. Se stai usando Milvus o prevedi di integrarlo nella tua infrastruttura dati, puoi comunque beneficiare dei modelli fine-tuned con GCL nelle tue applicazioni di Retrieval-Augmented Generation (RAG).
Ecco come puoi integrare GCL con Milvus per RAG:
Fine-tuning con Marqtune: Usa Marqtune, la piattaforma di fine-tuning di Marqo, per applicare GCL a modelli pre-trained. Questo processo ottimizza il modello per le tue specifiche attività di retrieval.
Download del modello fine-tuned: Dopo il fine-tuning, scarica il modello ottimizzato da Marqtune.
Integrazione con Milvus: Usa il modello fine-tuned per generare embedding, che possono poi essere archiviati e ricercati in Milvus.
Retrieval efficiente: Sfrutta le capacità ottimizzate di Milvus per il retrieval vettoriale su larga scala e ad alta velocità. Quando combinato con gli embedding query-aware di GCL, Milvus può classificare e restituire in modo efficiente risultati pertinenti, anche in dataset complessi e multimodali.
Scalabilità: Man mano che il tuo dataset cresce, Milvus può gestire le crescenti esigenze di archiviazione e ricerca di miliardi di embedding, assicurando che le prestazioni rimangano costanti.
Con la potenza combinata di GCL e Milvus, i sistemi retrieval-augmented possono ottenere scalabilità e prestazioni impressionanti. Ma cosa rende Milvus una scelta così ideale per queste applicazioni?
Perché scegliere Milvus per il tuo sistema RAG potenziato da GCL?
Quando si implementa un sistema di Retrieval-Augmented Generation (RAG) usando modelli fine-tuned con Generalized Contrastive Learning (GCL), scegliere il database vettoriale giusto è fondamentale. Milvus si distingue come una scelta eccellente grazie alle sue funzionalità robuste e alle tecnologie avanzate. Esploriamo perché Milvus è particolarmente adatto a gestire embedding generati da GCL e ad alimentare applicazioni RAG efficienti.
Funzionalità chiave di Milvus
Supporto multi-tenancy: Milvus consente a più utenti o applicazioni di lavorare sullo stesso sistema senza interferire tra loro. Questa funzionalità offre un accesso ai dati sicuro e isolato, rendendolo ideale per ambienti enterprise in cui diversi team o progetti possono avere bisogno di usare la stessa istanza Milvus. Nel contesto dei sistemi RAG potenziati da GCL, puoi eseguire più attività di retrieval per diversi dipartimenti o casi d’uso su un singolo deployment Milvus, mantenendo separazione dei dati e sicurezza.
Architettura scalabile ed elastica: Progettato per gestire esigenze di dati in crescita, Milvus si adatta automaticamente alla domanda. Questo garantisce che le prestazioni rimangano ottimali man mano che il volume dei dati aumenta. Questa scalabilità è cruciale per le applicazioni RAG, che spesso gestiscono collezioni di documenti in rapida espansione. Man mano che esegui il fine-tuning di più modelli con GCL e generi più embedding, Milvus può accomodare senza sforzo la crescita senza compromettere velocità o efficienza del retrieval.
Supporto per indici diversificati: Milvus supporta molteplici tipi di indici, inclusi HNSW (Hierarchical Navigable Small World), PQ (Product Quantization), Binary e DiskANN. Questa varietà ti consente di scegliere il tipo di indice più appropriato per il tuo caso d’uso specifico, bilanciando velocità di ricerca, accuratezza ed efficienza di archiviazione. Ad esempio, HNSW potrebbe essere ideale per ricerche ad alta velocità negli embedding generati da GCL, mentre PQ potrebbe essere utilizzato per un’archiviazione più compatta di grandi set di embedding.
Consistenza regolabile: Milvus consente di regolare i livelli di consistenza per i tuoi dati, permettendo un equilibrio tra prestazioni e accuratezza dei dati in base alle esigenze della tua applicazione. Nel contesto dei sistemi RAG, questa funzionalità è particolarmente utile. Potresti dare priorità alla velocità di ricerca per applicazioni in tempo reale, oppure optare per una consistenza più forte in scenari in cui l'accuratezza dei dati è fondamentale, come nelle applicazioni finanziarie o mediche.
Calcolo accelerato dall'hardware: Ottimizzato per sfruttare hardware come le GPU, Milvus offre un'elaborazione più rapida ed efficiente per attività ad alta intensità di risorse. Questo è particolarmente vantaggioso quando si lavora con modelli GCL, che possono essere computazionalmente impegnativi. L'accelerazione hardware garantisce che, anche man mano che il tuo database di embedding cresce, i tempi di recupero rimangano rapidi, mantenendo la reattività del tuo sistema RAG.
Tecnologie avanzate che alimentano Milvus
Tipi di calcolo flessibili: Milvus è ottimizzato per vari ambienti hardware, inclusi AVX512 (Advanced Vector Extensions), Neon per SIMD (Single Instruction, Multiple Data) e accelerazione GPU. Questa flessibilità consente a Milvus di sfruttare efficacemente hardware ad alte prestazioni, offrendo elaborazione rapida e scalabilità conveniente. Per i sistemi RAG potenziati da GCL, questo significa che puoi scegliere il tipo di calcolo più adatto in base all'hardware disponibile e ai requisiti di prestazioni.
Funzionalità di ricerca versatili: Milvus supporta un'ampia gamma di metodi di ricerca, tra cui top-K ANN (Approximate Nearest Neighbors), range ANN e ricerche filtrate. Questi diversi tipi di ricerca ti consentono di adattare la funzionalità di recupero alle tue esigenze specifiche. Ad esempio, top-K ANN potrebbe essere utilizzato per trovare i documenti più rilevanti per un determinato embedding di query, mentre le ricerche filtrate potrebbero combinare la similarità semantica con filtri sui metadati per recuperi più precisi.
Tecniche avanzate di indicizzazione: Con il supporto per 15 diversi tipi di indicizzazione, Milvus offre flessibilità nel modo in cui i dati vengono archiviati e cercati. Ciò include tecniche avanzate come HNSW per ricerche ad alta velocità e DiskANN per gestire dataset enormi. La scelta corretta dell'indice può influire significativamente sulle prestazioni del tuo sistema RAG, consentendoti di ottimizzare per la velocità di ricerca o per l'efficienza della memoria, a seconda delle tue priorità.
Flessibilità di linguaggi e API: Milvus fornisce supporto per più linguaggi di programmazione, tra cui Python, Java, Go e Node.js. Questa versatilità rende semplice integrare Milvus negli stack tecnologici esistenti e consente agli sviluppatori di lavorare con i linguaggi che preferiscono. Per i sistemi RAG, questo significa che puoi incorporare Milvus senza soluzione di continuità nella tua codebase esistente, indipendentemente dal linguaggio in cui è costruita.
Gestione robusta dei dati: Milvus offre funzionalità sofisticate di gestione dei dati, tra cui gestione di collection e partition. Questo consente un'organizzazione e un recupero efficienti di dataset di embedding su larga scala. Per i sistemi RAG potenziati da GCL, puoi strutturare i tuoi embedding in collection logiche (ad es., per tipo di documento o dominio) e partition, consentendo ricerche più mirate ed efficienti.
Data la sua architettura robusta e le sue capacità avanzate, Milvus fornisce l'infrastruttura ideale per sfruttare modelli potenziati da GCL nei sistemi retrieval-augmented.
Conclusione
Robertson ha fatto un ottimo lavoro nel mostrare come il Generalized Contrastive Learning (GCL) migliori il retrieval introducendo consapevolezza del ranking e della query, migliorando la pertinenza e il posizionamento dei risultati. Questo approccio va oltre i tradizionali modelli binari, rendendolo altamente efficace per applicazioni come l'e-commerce e la ricerca accademica.
Abbiamo anche visto come Milvus supporti ulteriormente questi progressi con la sua architettura scalabile e la gestione efficiente degli embedding, consentendo un retrieval ad alta velocità e prestazioni ottimizzate per dataset complessi e multimodali. Insieme, GCL e Milvus offrono una soluzione robusta per costruire sistemi di nuova generazione basati su retrieval-augmented.
Continua a leggere

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.

Zilliz Cloud Update: Smarter Autoscaling for Cost Savings, Stronger Compliance with Audit Logs, and More
What's new in Zilliz Cloud? Smarter autoscaling with scale-down, audit logs GA, enhanced SSO, and Milvus 2.6 in Private Preview.

Our Journey to 35K+ GitHub Stars: The Real Story of Building Milvus from Scratch
Join us in celebrating Milvus, the vector database that hit 35.5K stars on GitHub. Discover our story and how we’re making AI solutions easier for developers.


