In un'era dominata dai dati e dalla potenza dell'intelligenza artificiale, l'accuratezza e la pertinenza delle informazioni recuperate sono fondamentali. I sistemi moderni di ricerca vettoriale e di Generazione Aumentata da Recupero (RAG) si affidano a modelli di embedding per interpretare il significato del testo e fornire risultati pertinenti. Tuttavia, i modelli pre-addestrati e pronti all'uso spesso non sono ottimizzati per le sfumature specifiche di un determinato dominio aziendale. È qui che il fine-tuning (o affinamento) entra in gioco come una strategia potente per elevare le prestazioni.
Affianare un modello di embedding su dati specifici del dominio può migliorare significativamente la precisione della ricerca vettoriale e della Generazione Aumentata da Recupero (RAG). Databricks offre una piattaforma intuitiva e robusta che semplifica il processo di affinamento, distribuzione e valutazione di questi modelli. Sfruttando dati sintetici, è possibile ottimizzare il recupero per il proprio caso d'uso specifico senza la necessità di onerose etichettature manuali.
L'importanza di questo approccio è evidente: se il vostro sistema di ricerca vettoriale o RAG non restituisce i risultati migliori, il fine-tuning di un modello di embedding rappresenta un metodo semplice ma estremamente efficace per migliorare le prestazioni. Che si tratti di documenti finanziari complessi, basi di conoscenza interne o documentazione di codice, l'affinamento può portare a risultati di ricerca più pertinenti e a risposte LLM (Large Language Model) a valle di qualità superiore.
Abbiamo condotto un'indagine approfondita, affinando e testando due modelli di embedding su tre diversi set di dati aziendali. I risultati hanno rivelato miglioramenti sostanziali nelle metriche di recupero (Recall@10) e nelle prestazioni RAG a valle. Questo significa che l'affinamento può trasformare la precisione dei sistemi di intelligenza artificiale senza richiedere etichettature manuali, ma utilizzando semplicemente i dati esistenti. Se siete pronti a esplorare i benefici del fine-tuning degli embedding, Databricks offre una soluzione di riferimento per iniziare. La piattaforma facilita la ricerca vettoriale, la RAG, il reranking e, naturalmente, il fine-tuning degli embedding. Per maggiori informazioni, non esitate a contattare il vostro responsabile di account Databricks o l'architetto di soluzioni.
I modelli di embedding e il loro ruolo
I modelli di embedding sono il cuore pulsante dei moderni sistemi di ricerca vettoriale e RAG. La loro funzione primaria è quella di trasformare il testo in vettori numerici (embedding), consentendo ai sistemi di trovare contenuti pertinenti basandosi sul significato semantico piuttosto che su semplici corrispondenze di parole chiave. Tuttavia, come accennato, i modelli pronti all'uso non sono sempre ottimizzati per il vostro dominio specifico; è proprio qui che l'affinamento si rivela cruciale.
I vantaggi del fine-tuning dei modelli di embedding
Il fine-tuning di un modello di embedding su dati specifici del dominio apporta benefici sotto molteplici aspetti:
- Migliora la pertinenza: I risultati della ricerca sono più allineati con le intenzioni dell'utente, poiché il modello impara le specificità del linguaggio e dei concetti del vostro dominio.
- Riduce gli errori: Una migliore pertinenza nel recupero si traduce in meno "allucinazioni" da parte dei LLM a valle, che ricevono contesti più precisi.
- Consente il multi-query: Migliora la capacità del sistema di recuperare risultati pertinenti anche per query complesse o a più intenti.
- Migliora la capacità di generalizzazione: Le integrazioni diventano più efficaci nel gestire la terminologia specifica del dominio, gli acronimi e i gerghi, anche per testi che non sono stati visti direttamente durante l'addestramento.
In questo articolo, abbiamo dimostrato che il fine-tuning di un modello di embedding è un metodo altamente efficace per migliorare le prestazioni di recupero e RAG per casi d'uso aziendali specifici e orientati al compito.
La nostra ricerca: metodologia e risultati
Per la nostra analisi, abbiamo affinato due modelli di embedding open-source, gte-large-en-v1.5 ed e5-mistral-7b-instruct, su dati sintetici. Questi modelli sono stati poi valutati su tre set di dati provenienti dalla nostra Domain Intelligence Benchmark Suite (DIBS): FinanceBench, ManufactQA e Databricks DocsQA. Infine, i risultati sono stati confrontati con quelli del modello API di OpenAI, text-embedding-3-large.
Dopo aver confrontato le prestazioni su questi tre set di dati, abbiamo osservato che l'affinamento degli embedding migliora la precisione su due di essi. Come illustrato nella Figura 1, per FinanceBench e ManufactQA, gli embedding affinati hanno superato le loro versioni di base, battendo in alcuni casi anche il modello API di OpenAI (rappresentato in grigio chiaro). Tuttavia, per Databricks DocsQA, la precisione di text-embedding-3-large di OpenAI ha superato tutti i modelli affinati. Questo risultato potrebbe essere dovuto al fatto che il modello di OpenAI è stato probabilmente addestrato su una vasta quantità di documentazione pubblica di Databricks, conferendogli un vantaggio intrinseco in questo specifico dominio. Questo evidenzia che, sebbene l'affinamento possa essere estremamente efficace, la sua efficacia dipende fortemente dal set di dati di addestramento e dal compito di valutazione.
Confronto con il reranking
Successivamente, abbiamo confrontato i risultati ottenuti con quelli del reranking basato su API, utilizzando voyageai/rerank-1 (Figura 2). Un reranker tipicamente prende i primi k risultati recuperati da un modello di embedding, riordina questi risultati per pertinenza rispetto alla query di ricerca e quindi restituisce i primi k risultati riordinati (nel nostro caso k=30 seguito da k=10). Questa metodologia funziona perché i reranker sono generalmente modelli più grandi e potenti rispetto ai modelli di embedding e sono in grado di modellare l'interazione tra la query e il documento in modo più espressivo.
L'uso di reranker comporta generalmente una latenza di inferenza e un costo aggiuntivi per query rispetto ai modelli di embedding. Tuttavia, possono essere utilizzati con database vettoriali esistenti e, in alcuni casi, possono essere più convenienti rispetto alla re-integrazione completa dei dati con un modello di embedding più recente. La decisione di utilizzare un reranker dipende dalle specificità del vostro dominio e dai requisiti di latenza/costo.
Impatto sulla precisione RAG
Per FinanceBench, un recupero migliorato si è tradotto direttamente in una migliore precisione RAG quando combinato con GPT-4o (per maggiori dettagli si veda l'appendice). Tuttavia, nei domini in cui il recupero era già robusto, come Databricks DocsQA, l'affinamento non ha apportato miglioramenti significativi, sottolineando che l'affinamento funziona al meglio quando il recupero è chiaramente il collo di bottiglia principale.
Dettagli tecnici: generazione dati, fine-tuning ed valutazione
Ecco alcuni dettagli più tecnici sulla nostra metodologia di generazione di dati sintetici, affinamento e valutazione.
Modelli di embedding utilizzati
Abbiamo affinato due modelli di embedding open-source:
- gte-large-en-v1.5
- e5-mistral-7b-instruct
Questi sono stati poi confrontati con text-embedding-3-large di OpenAI.
Dataset di valutazione
Abbiamo valutato tutti i modelli sui seguenti set di dati della nostra Domain Intelligence Benchmark Suite (DIBS):
- FinanceBench
- ManufactQA
- Databricks DocsQA
Metrica principale di recupero
Per misurare le prestazioni di recupero, abbiamo utilizzato il Recall@10. Questa metrica indica se il documento corretto è presente tra i primi 10 documenti recuperati dal sistema.
Il benchmark MTEB e le nostre sfide
Il benchmark assoluto per la qualità dei modelli di embedding è il MTEB, che include task di recupero come BEIR e molte altre attività non correlate al recupero. Sebbene modelli come gte-large-en-v1.5 ed e5-mistral-7b-instruct abbiano ottenuto buoni risultati su MTEB, eravamo curiosi di vedere come si sarebbero comportati nei nostri specifici task aziendali interni.
Generazione di dati sintetici per il fine-tuning
Abbiamo addestrato modelli distinti su dati sintetici adattati a ciascuno dei benchmark sopra menzionati:
- FinanceBench: Dati generati da documenti finanziari.
- ManufactQA: Dati generati da documentazione di produzione.
- Databricks DocsQA: Dati generati da documentazione interna di Databricks.
Per generare il set di addestramento per ogni dominio, abbiamo preso documenti esistenti e generato query di esempio basate sul contenuto di ogni documento utilizzando LLM come Llama 3 405B. Le query sintetiche sono state poi filtrate per qualità da un LLM-as-a-judge (GPT4o). Le query filtrate e i loro documenti associati sono stati quindi utilizzati come coppie contrastive per il fine-tuning. Per l'addestramento contrastivo, abbiamo utilizzato negativi in batch, ma l'aggiunta di negativi "difficili" (hard negatives) potrebbe migliorare ulteriormente le prestazioni (come discusso nell'appendice).
Piattaforma e strumenti per il fine-tuning
Tutto il fine-tuning è stato condotto utilizzando le librerie open-source mosaicml/composer, mosaicml/llm-foundry e mosaicml/streaming, tutte integrate sulla piattaforma Databricks.
Tabelle e figure
La Tabella 1, che presenta gli stessi dati della Figura 1, fornisce un confronto dettagliato delle prestazioni di gte-large-en-v1.5, e5-mistral-7b-instruct e text-embedding-3-large. Per tutti i set di dati, le query del set di addestramento non erano le stesse di quelle del set di test. Tuttavia, nel caso di Databricks DocsQA (ma non per FinanceBench né ManufactQA), i documenti utilizzati per generare query sintetiche erano gli stessi utilizzati nel set di valutazione. L'obiettivo del nostro studio è migliorare il recupero su task e domini specifici (in contrapposizione a un modello di embedding generalizzabile in zero-shot); siamo convinti di aver raggiunto tale obiettivo.
Approcci alternativi per migliorare la ricerca vettoriale e RAG
Il fine-tuning degli embedding è solo uno degli approcci per migliorare le prestazioni della ricerca vettoriale e del RAG; di seguito elenchiamo alcune strategie aggiuntive:
- Costruzione e curatela dei dati (Data Construction & Curation): Assicurarsi che la base di conoscenza sia completa, di alta qualità, priva di ridondanze e ben strutturata.
- Integrazioni multimodali: Combinare testo, immagini e altri tipi di media per un recupero più ricco e contestualizzato.
- Miglioramento del modello di reranking: Utilizzare modelli più potenti o affinare i reranker esistenti per riordinare in modo più efficace i risultati iniziali della ricerca.
- Prompt engineering/Context-Aware RAG: Ottimizzare la formulazione delle query e l'integrazione del contesto per il Large Language Model (LLM) per ottenere risposte migliori.
- Architetture RAG avanzate: Esplorare tecniche come il recupero ibrido, la compressione del contesto o il self-correcting RAG per architetture più sofisticate.
Sfrutta il fine-tuning di Databricks
Il fine-tuning degli embedding può rappresentare un guadagno facile e significativo per migliorare il recupero e il RAG nei vostri sistemi di intelligenza artificiale. Su Databricks, potete:
- Affina il tuo modello di embedding: Personalizza i modelli di embedding per adattarli perfettamente ai tuoi dati e al tuo dominio.
- Valuta le prestazioni RAG: Misura l'efficacia del tuo sistema RAG con metriche chiare e affidabili.
- Distribuire il tuo modello personalizzato: Rendi i tuoi modelli di embedding affinati disponibili per l'inferenza e l'uso in produzione.
Pronto a provare? Abbiamo creato una soluzione di riferimento per facilitare il fine-tuning — contatta il tuo responsabile di account Databricks o il tuo architetto di soluzioni per accedervi.