TL;DR: L'ottimizzazione fine di un modello di embedding sui dati in-domain può migliorare significativamente la ricerca vettoriale e l'accuratezza della generazione aumentata dal recupero (RAG). Con Databricks, è facile ottimizzare, distribuire e valutare i modelli di embedding per ottimizzare il recupero per il tuo caso d'uso specifico, sfruttando i dati sintetici senza etichettatura manuale.
Perché è importante: se il tuo sistema di ricerca vettoriale o RAG non sta recuperando i risultati migliori, l'ottimizzazione fine di un modello di embedding è un modo semplice ma efficace per migliorare le prestazioni. Che tu abbia a che fare con documenti finanziari, knowledge base o documentazione di codice interno, l'ottimizzazione fine può fornirti risultati di ricerca più pertinenti e risposte LLM downstream migliori.
Cosa abbiamo scoperto: abbiamo ottimizzato e testato due modelli di embedding su tre set di dati aziendali e abbiamo riscontrato importanti miglioramenti nelle metriche di recupero (Recall@10) e nelle prestazioni RAG downstream. Ciò significa che l'ottimizzazione fine può cambiare radicalmente l'accuratezza senza richiedere l'etichettatura manuale, sfruttando solo i dati esistenti.
Vuoi provare l'ottimizzazione fine dell'embedding? Forniamo una soluzione di riferimento per aiutarti a iniziare. Databricks semplifica la ricerca vettoriale, RAG, il reranking e l'ottimizzazione fine dell'embedding. Contatta il tuo Account Executive o Solutions Architect di Databricks per maggiori informazioni.
I modelli di embedding alimentano i moderni sistemi di ricerca vettoriale e RAG. Un modello di embedding trasforma il testo in vettori, rendendo possibile trovare contenuti pertinenti in base al significato piuttosto che solo alle parole chiave. Tuttavia, i modelli standard non sono sempre ottimizzati per il tuo dominio specifico: ecco dove entra in gioco l'ottimizzazione fine.
L'ottimizzazione fine di un modello di embedding su dati specifici del dominio aiuta in diversi modi:
In questo post del blog, mostriamo che l'ottimizzazione fine di un modello di embedding è un modo efficace per migliorare il recupero e le prestazioni RAG per casi d'uso aziendali specifici per attività.
Abbiamo ottimizzato due modelli di embedding (gte-large-en-v1.5 e e5-mistral-7b-instruct) su dati sintetici e li abbiamo valutati su tre set di dati della nostra Domain Intelligence Benchmark Suite (DIBS) (FinanceBench, ManufactQA e Databricks DocsQA). Li abbiamo quindi confrontati con text-embedding-3-large di OpenAI.
Punti chiave:
Dopo aver confrontato tre set di dati, abbiamo scoperto che l'ottimizzazione fine dell'embedding migliora l'accuratezza su due di questi set di dati. La figura 1 mostra che per FinanceBench e ManufactQA, gli embedding ottimizzati hanno superato le loro versioni base, a volte anche battendo il modello API di OpenAI (grigio chiaro). Per Databricks DocsQA, tuttavia, l'accuratezza di text-embedding-3-large di OpenAI supera tutti i modelli ottimizzati. È possibile che ciò sia dovuto al fatto che il modello è stato addestrato sulla documentazione pubblica di Databricks. Ciò dimostra che, sebbene l'ottimizzazione fine possa essere efficace, dipende fortemente dal set di dati di addestramento e dall'attività di valutazione.
Abbiamo quindi confrontato i risultati di cui sopra con il reranking basato su API utilizzando voyageai/rerank-1 (Figura 2). Un reranker in genere prende i primi k risultati recuperati da un modello di embedding, li riordina in base alla pertinenza della query di ricerca e quindi restituisce i primi k riordinati (nel nostro caso k=30 seguito da k=10). Ciò funziona perché i reranker sono in genere modelli più grandi e potenti dei modelli di embedding e modellano anche l'interazione tra la query e il documento in un modo più espressivo.
Quello che abbiamo scoperto è stato:
I reranker di solito comportano una latenza di inferenza per query e un costo aggiuntivi rispetto ai modelli di embedding. Tuttavia, possono essere utilizzati con i database vettoriali esistenti e in alcuni casi possono essere più convenienti rispetto al re-embedding dei dati con un modello di embedding più recente. La scelta di utilizzare o meno un reranker dipende dal tuo dominio e dai tuoi requisiti di latenza/costo.
Per FinanceBench, un recupero migliore si è tradotto direttamente in una migliore accuratezza RAG se combinato con GPT-4o (vedi Appendice). Tuttavia, nei domini in cui il recupero era già forte, come Databricks DocsQA, l'ottimizzazione fine non ha aggiunto molto, evidenziando che l'ottimizzazione fine funziona meglio quando il recupero è un chiaro collo di bottiglia.
Ecco alcuni dei dettagli più tecnici della nostra generazione di dati sintetici, dell'ottimizzazione fine e della valutazione.
Abbiamo ottimizzato due modelli di embedding open source:
Li abbiamo quindi confrontati con text-embedding-3-large di OpenAI.
Abbiamo valutato tutti i modelli sui seguenti set di dati della nostra Domain Intelligence Benchmark Suite (DIBS): FinanceBench, ManufactQA e Databricks DocsQA.
| Set di dati | Descrizione | # Query | # Corpus |
|---|---|---|---|
| FinanceBench | Domande sui documenti SEC 10-K generate da esperti umani. Il recupero viene eseguito su singole pagine da un superset di 360 documenti SEC 10-K. | 150 | 53.399 |
| ManufactQA | Domande e risposte campionate dai forum pubblici di un produttore di dispositivi elettronici. | 6.787 | 6.787 |
| Databricks DocsQA | Domande basate sulla documentazione di Databricks disponibile pubblicamente generata da esperti di Databricks. | 139 | 7.561 |
Riportiamo recall@10 come metrica di recupero principale; questo misura se il documento corretto si trova tra i primi 10 documenti recuperati.
Lo standard di riferimento per la qualità del modello di embedding è il benchmark MTEB, che incorpora attività di recupero come BEIR e molte altre attività non di recupero. Sebbene modelli come gte-large-en-v1.5 ed e5-mistral-7b-instruct funzionino bene su MTEB, eravamo curiosi di vedere come si comportavano nelle nostre attività aziendali interne.
Abbiamo addestrato modelli separati su dati sintetici personalizzati per ciascuno dei benchmark di cui sopra:
| Set di addestramento | Descrizione | # Campioni univoci |
| FinanceBench sintetico | Query generate da 2.400 documenti SEC 10-K | ~6.000 |
| QA Databricks Docs sintetico | Query generate dalla documentazione pubblica di Databricks. | 8.727 |
| ManufactQA | Query generate da PDF di produzione elettronica | 14.220 |
Per generare il set di addestramento per ogni dominio, abbiamo preso i documenti esistenti e generato query di esempio basate sul contenuto di ogni documento utilizzando LLM come Llama 3 405B. Le query sintetiche sono state quindi filtrate per la qualità da un LLM-as-a-judge (GPT4o). Le query filtrate e i relativi documenti sono stati quindi utilizzati come coppie contrastive per l'ottimizzazione fine. Abbiamo utilizzato negativi in batch per l'addestramento contrastivo, ma l'aggiunta di negativi difficili potrebbe migliorare ulteriormente le prestazioni (vedi Appendice).
Abbiamo eseguito ricerche su:
Tutta l'ottimizzazione fine è stata eseguita utilizzando le librerie open source mosaicml/composer, mosaicml/llm-foundry e mosaicml/streaming sulla piattaforma Databricks.
L'ottimizzazione fine è solo un approccio per migliorare la ricerca vettoriale e le prestazioni RAG; di seguito elenchiamo alcuni approcci aggiuntivi.
L'ottimizzazione fine degli embedding può essere una facile vittoria per migliorare il recupero e RAG nei tuoi sistemi di IA. Su Databricks, puoi:
Pronto a provarlo? Abbiamo creato una soluzione di riferimento per semplificare l'ottimizzazione fine: contatta il tuo Account Executive o Solutions Architect di Databricks per ottenere l'accesso.
|
Dimensioni |
FinanceBench Recall@10 |
ManufactQA Recall@10 |
DocsQA Recall@10 |
||||
|
Baseline |
Ottimizzato |
Baseline |
Ottimizzato |
Baseline (Questo post sul blog è stato tradotto utilizzando strumenti basati sull'intelligenza artificiale) Post originale | |||