Notizia
Modelli
Prodotti
keyboard_arrow_down
Lettore
Leggi gli URL e cerca sul web per ottenere LLM più approfonditi.
Incorporamenti
Incorporamenti multilingue multimodali di livello mondiale.
Riclassificazione
Recupero neurale di livello mondiale per massimizzare la pertinenza della ricerca.
Ricerca profonda
Cerca, leggi e ragiona finché non trovi la risposta migliore.
Di più
keyboard_arrow_down
Classificatore
Classificazione zero-shot e few-shot per immagini e testo.
Segmentatore
Tagliare il testo lungo in blocchi ed effettuare la tokenizzazione.

Documentazione API
Generazione automatica di codice per il tuo IDE o LLM di Copilot
open_in_new


Azienda
keyboard_arrow_down
Chi siamo
Contatta le vendite
Programma di stagista
Unisciti a noi
open_in_new
Scarica il logo
open_in_new
Termini & Condizioni


Login
login
Perché le Frasi Mescolate Hanno Punteggi del Coseno Sorprendentemente Vicini?
Come la Lunghezza del Testo e l'Ordine delle Parole Influenzano la Similarità degli Embedding?
I modelli più grandi risolvono il problema?
Ordine delle parole e scelta delle parole nel mondo reale
Fine-Tuning dei Modelli di Text Embedding con Dataset Curati
Conclusione
Blog tecnico
dicembre 17, 2024

Gli Embedding di Testo Falliscono nel Catturare l'Ordine delle Parole e Come Risolvere il Problema

I modelli di embedding testuale faticano a catturare sottili sfumature linguistiche come l'ordine delle parole, le relazioni direzionali, le sequenze temporali, le connessioni causali, i confronti e la negazione. Comprendere queste sfide è fondamentale per migliorare le prestazioni del modello.
Bo Wang
Alex C-G
Bo Wang, Alex C-G • 12 minuti letti

Recentemente, Christoph Schuhmann, fondatore di LAION AI ha condiviso un'interessante osservazione sui modelli di text embedding:

Quando le parole all'interno di una frase vengono mescolate in modo casuale, la similarità del coseno tra i loro text embedding rimane sorprendentemente alta rispetto alla frase originale.

Per esempio, consideriamo due frasi: Berlin is the capital of Germany e the Germany Berlin is capital of. Anche se la seconda frase non ha senso, i modelli di text embedding non riescono davvero a distinguerle. Usando jina-embeddings-v3, queste due frasi hanno un punteggio di similarità del coseno di 0,9295.

L'ordine delle parole non è l'unica cosa per cui gli embedding sembrano non essere molto sensibili. Le trasformazioni grammaticali possono cambiare drasticamente il significato di una frase ma avere poco impatto sulla distanza dell'embedding. Per esempio, She ate dinner before watching the movie e She watched the movie before eating dinner hanno una similarità del coseno di 0,9833, nonostante abbiano l'ordine opposto delle azioni.

Anche la negazione è notoriamente difficile da incorporare in modo coerente senza un addestramento speciale — This is a useful model e This is not a useful model appaiono praticamente identiche nello spazio degli embedding. Spesso, sostituire le parole in un testo con altre della stessa classe, come cambiare "today" in "yesterday", o modificare il tempo di un verbo, non modifica gli embedding tanto quanto si potrebbe pensare.

Questo ha serie implicazioni. Consideriamo due query di ricerca: Flight from Berlin to Amsterdam e Flight from Amsterdam to Berlin. Hanno embedding quasi identici, con jina-embeddings-v3 che assegna loro una similarità del coseno di 0,9884. Per un'applicazione del mondo reale come la ricerca di viaggi o la logistica, questa carenza è fatale.

In questo articolo, esaminiamo le sfide che affrontano i modelli di embedding, analizzando le loro persistenti difficoltà con l'ordine e la scelta delle parole. Analizziamo le principali modalità di fallimento attraverso categorie linguistiche—inclusi contesti direzionali, temporali, causali, comparativi e di negazione—mentre esploriamo strategie per migliorare le prestazioni del modello.

tagPerché le Frasi Mescolate Hanno Punteggi del Coseno Sorprendentemente Vicini?

Inizialmente, pensavamo che questo potesse dipendere da come il modello combina i significati delle parole - crea un embedding per ogni parola (6-7 parole in ciascuna delle nostre frasi di esempio sopra) e poi fa una media di questi embedding con il mean pooling. Questo significa che molto poca informazione sull'ordine delle parole è disponibile nell'embedding finale. Una media è la stessa indipendentemente dall'ordine dei valori.

Tuttavia, anche i modelli che utilizzano il CLS pooling (che esamina una speciale prima parola per comprendere l'intera frase e dovrebbe essere più sensibile all'ordine delle parole) hanno lo stesso problema. Per esempio, bge-1.5-base-en dà ancora un punteggio di similarità del coseno di 0,9304 per le frasi Berlin is the capital of Germany e the Germany Berlin is capital of.

Questo indica una limitazione nel modo in cui vengono addestrati i modelli di embedding. Mentre i modelli linguistici inizialmente apprendono la struttura della frase durante il pre-training, sembrano perdere parte di questa comprensione durante l'addestramento contrastivo — il processo che utilizziamo per creare modelli di embedding.

tagCome la Lunghezza del Testo e l'Ordine delle Parole Influenzano la Similarità degli Embedding?

Perché i modelli hanno problemi con l'ordine delle parole in primo luogo? La prima cosa che viene in mente è la lunghezza (in token) del testo. Quando il testo viene inviato alla funzione di codifica, il modello prima genera una lista di embedding dei token (cioè, ogni parola tokenizzata ha un vettore dedicato che rappresenta il suo significato), poi li media.

Per vedere come la lunghezza del testo e l'ordine delle parole influenzano la similarità degli embedding, abbiamo generato un dataset di 180 frasi sintetiche di varie lunghezze, come 3, 5, 10, 15, 20 e 30 token. Abbiamo anche mescolato casualmente i token per formare una variazione di ogni frase:

bwang0911/word-orders-triplet-random-shuffle · Datasets at Hugging Face
We're on a journey to advance and democratize artificial intelligence through open source and open science.

Ecco alcuni esempi:

Lunghezza (token)Frase originaleFrase mescolata
3The cat sleepscat The sleeps
5He drives his car carefullydrives car his carefully He
15The talented musicians performed beautiful classical music at the grand concert hall yesterdayin talented now grand classical yesterday The performed musicians at hall concert the music
30The passionate group of educational experts collaboratively designed and implemented innovative teaching methodologies to improve learning outcomes in diverse classroom environments worldwidegroup teaching through implemented collaboratively outcomes of methodologies across worldwide diverse with passionate and in experts educational classroom for environments now by learning to at improve from innovative The designed

Codificheremo il dataset utilizzando il nostro modello jina-embeddings-v3 e il modello open-source bge-base-en-v1.5, poi calcoleremo la similarità del coseno tra la frase originale e quella mescolata:

Lunghezza (token) Media similarità del coseno Deviazione standard nella similarità del coseno
3 0,947 0,053
5 0,909 0,052
10 0,924 0,031
15 0,918 0,019
20 0,899 0,021
30 0,874 0,025

Ora possiamo generare un box plot, che rende più chiara la tendenza nella similarità del coseno:

Figura 1: Distribuzione della Similarità per Lunghezza della Frase per Frasi Mescolate con jina-embeddings-v3 e bge-base-en-1.5 (non affinato)

Come possiamo vedere, c'è una chiara relazione lineare nella similarità media del coseno degli embedding. Più lungo è il testo, più basso è il punteggio medio di similarità del coseno tra le frasi originali e quelle mescolate casualmente. Questo probabilmente accade a causa dello "spostamento delle parole", ovvero quanto lontano le parole si sono spostate dalle loro posizioni originali dopo il mescolamento casuale. In un testo più breve, ci sono semplicemente meno "slot" in cui un token può essere mescolato quindi non può spostarsi così lontano, mentre un testo più lungo ha un maggior numero di permutazioni possibili e le parole possono spostarsi a una distanza maggiore.

Figura 2: Combinazioni di frasi per numero di parole
💡
Fermiamo la tabella qui, poiché il numero di combinazioni è il fattoriale del numero di parole. Quando arriviamo a trenta parole, otteniamo 265 nonilioni (2.652528598 E+32) di combinazioni.

Come mostrato nella figura sottostante (Similarità del coseno vs Spostamento medio delle parole), più lungo è il testo, maggiore è lo spostamento delle parole:

Figura 3: Similarità del coseno vs Spostamento medio delle parole con dataset di frasi mescolate che mostra la correlazione tra lo spostamento medio delle parole e la dissimilarità del coseno.

Gli embedding dei token dipendono dal contesto locale, cioè dalle parole più vicine ad essi. In un testo breve, riorganizzare le parole non può modificare molto quel contesto. Tuttavia, per un testo più lungo, una parola potrebbe essere spostata molto lontano dal suo contesto originale e questo può modificare notevolmente il suo embedding di token. Di conseguenza, mescolare le parole in un testo più lungo produce un embedding più distante rispetto a uno più breve. La figura sopra mostra che sia per jina-embeddings-v3, usando il mean pooling, sia per bge-base-en-v1.5, usando il CLS pooling, vale la stessa relazione: mescolare testi più lunghi e spostare le parole più lontano risulta in punteggi di similarità più bassi.

tagI modelli più grandi risolvono il problema?

Di solito, quando affrontiamo questo tipo di problema, una tattica comune è semplicemente utilizzare un modello più grande. Ma un modello di embedding testuale più grande può davvero catturare le informazioni sull'ordine delle parole in modo più efficace? Secondo la legge di scala dei modelli di embedding testuale (citata nel nostro post di rilascio di jina-embeddings-v3), i modelli più grandi generalmente forniscono prestazioni migliori:

Figura 4: Legge di scala dei modelli di Embedding, che mostra le prestazioni MTEB in relazione al numero di parametri.

Ma un modello più grande può catturare le informazioni sull'ordine delle parole in modo più efficace? Abbiamo testato tre varianti del modello BGE: bge-small-en-v1.5, bge-base-en-v1.5, e bge-large-en-v1.5, con dimensioni dei parametri rispettivamente di 33 milioni, 110 milioni e 335 milioni.

Useremo le stesse 180 frasi di prima, ma ignoreremo le informazioni sulla lunghezza. Codificheremo sia le frasi originali che le loro permutazioni casuali usando le tre varianti del modello e tracceremo la similarità media del coseno:

Figura 5: Impatto della dimensione del modello sulla sensibilità all'ordine delle parole con dataset di frasi mescolate usando bge-small-en-v1.5, bge-base-en-v1.5, e bge-large-en-v1.5.

Mentre possiamo vedere che i modelli più grandi sono più sensibili alla variazione dell'ordine delle parole, la differenza è piccola. Persino il molto più grande bge-large-en-v1.5 è solo leggermente migliore nel distinguere le frasi mescolate da quelle non mescolate. Altri fattori entrano in gioco nel determinare quanto un modello di embedding sia sensibile ai riordinamenti delle parole, in particolare le differenze nel regime di addestramento. Inoltre, la similarità del coseno è uno strumento molto limitato per misurare la capacità di un modello di fare distinzioni. Tuttavia, possiamo vedere che la dimensione del modello non è un fattore principale. Non possiamo semplicemente rendere il nostro modello più grande e risolvere questo problema.

tagOrdine delle parole e scelta delle parole nel mondo reale

💡
Per gran parte di questo post stiamo usando jina-embeddings-v2 (non il nostro modello più recente, jina-embeddings-v3) poiché v2 è molto più piccolo e quindi più veloce per sperimentare sulle nostre GPU locali, con 137m di parametri contro i 580m di v3.

Come abbiamo menzionato nell'introduzione, l'ordine delle parole non è l'unica sfida per i modelli di embedding. Una sfida più realistica nel mondo reale riguarda la scelta delle parole. Ci sono molti modi per cambiare le parole in una frase — modi che non si riflettono bene negli embedding. Possiamo prendere "Lei è volata da Parigi a Tokyo" e modificarla in "Lei ha guidato da Tokyo a Parigi", e gli embedding rimangono simili. Abbiamo mappato questo attraverso diverse categorie di alterazione:

Categoria Esempio - Sinistra Esempio - Destra Similarità del coseno (jina)
Direzionale Lei è volata da Parigi a Tokyo Lei ha guidato da Tokyo a Parigi 0.9439
Temporale Ha cenato prima di guardare il film Ha guardato il film prima di cenare 0.9833
Causale L'aumento della temperatura ha sciolto la neve La neve che si scioglieva ha raffreddato la temperatura 0.8998
Comparativo Il caffè è più buono del tè Il tè è più buono del caffè 0.9457
Negazione Lui è in piedi vicino al tavolo Lui è in piedi lontano dal tavolo 0.9116
💡
Nota che questi sono casi comuni che abbiamo osservato durante il nostro lavoro e non rappresentano necessariamente una tassonomia completa delle categorie.

La tabella sopra mostra una lista di "casi di fallimento" dove un modello di text embedding non riesce a catturare sottili alterazioni delle parole. Questo è in linea con le nostre aspettative: i modelli di text embedding non hanno la capacità di ragionamento. Per esempio, il modello non comprende la relazione tra "da" e "a". I modelli di text embedding eseguono un matching semantico, con semantica tipicamente catturata a livello di token e poi compressa in un singolo vettore denso dopo il pooling. Al contrario, gli LLM (modelli autoregressivi) addestrati su dataset più grandi, a livello di trilioni di token, stanno iniziando a dimostrare capacità emergenti di ragionamento.

Questo ci ha fatto chiederci: possiamo fare fine-tuning del modello di embedding con apprendimento contrastivo usando triplette per avvicinare la query e il positivo, mentre allontaniamo la query e il negativo?

Figura 6: L'Effetto dell'Apprendimento Contrastivo: Avvicinare Query e Positivo, Allontanare il Negativo.

Per esempio, "Volo da Amsterdam a Berlino" potrebbe essere considerato la coppia negativa di "Volo da Berlino ad Amsterdam". In effetti, nel report tecnico di jina-embeddings-v1 (Michael Guenther, et al.), abbiamo brevemente affrontato questo problema su piccola scala: abbiamo fatto fine-tuning del modello jina-embeddings-v1 su un dataset di negazione di 10.000 esempi generati da large language model.

jinaai/negation-dataset · Datasets at Hugging Face
We're on a journey to advance and democratize artificial intelligence through open source and open science.

I risultati, riportati nel link del report sopra, sono stati promettenti:

Osserviamo che per tutte le dimensioni dei modelli, il fine-tuning sui dati delle triplette (che include il nostro dataset di training sulla negazione) migliora drammaticamente le prestazioni, in particolare sul task HardNegation.
Figura 7: Tabella che mostra i punteggi EasyNegation e HardNegation su diverse dimensioni dei modelli jina-embeddings con training sia a coppie che combinato triplette/coppie.
Figura 8: Confronto delle Prestazioni delle Strategie di Training tra diverse versioni di jina-embeddings.

tagFine-Tuning dei Modelli di Text Embedding con Dataset Curati

Nelle sezioni precedenti, abbiamo esplorato diverse osservazioni chiave riguardo i text embedding:

  1. I testi più brevi sono più soggetti a errori nella cattura dell'ordine delle parole.
  2. Aumentare la dimensione del modello di text embedding non migliora necessariamente la comprensione dell'ordine delle parole.
  3. L'apprendimento contrastivo potrebbe offrire una potenziale soluzione a questi problemi.

Con questo in mente, abbiamo fatto fine-tuning di jina-embeddings-v2-base-en e bge-base-en-1.5 sui nostri dataset di negazione e ordine delle parole (circa 11.000 campioni di training in totale):

bwang0911/word-order-jina · Hugging Face
We're on a journey to advance and democratize artificial intelligence through open source and open science.
bwang0911/word-order-bge · Hugging Face
We're on a journey to advance and democratize artificial intelligence through open source and open science.

Per aiutare a valutare il fine-tuning, abbiamo generato un dataset di 1.000 triplette costituite da una query, un caso positive (pos) e un caso negative (neg):

bwang0911/word-orders-triplet · Datasets at Hugging Face
We're on a journey to advance and democratize artificial intelligence through open source and open science.

Ecco un esempio di riga:

Anchor The river flows from the mountains to the sea
Positive Water travels from mountain peaks to ocean
Negative The river flows from the sea to the mountains

Queste triplette sono progettate per coprire vari casi di fallimento, inclusi cambiamenti di significato direzionali, temporali e causali dovuti a cambiamenti nell'ordine delle parole.

Ora possiamo valutare i modelli su tre diversi set di valutazione:

  1. Il set di 180 frasi sintetiche (viste prima in questo post), mescolate casualmente.
  2. Cinque esempi controllati manualmente (dalla tabella direzionale/causale/ecc. sopra).
  3. 94 triplette curate dal nostro dataset di triplette appena generato.

Ecco la differenza per le frasi mescolate prima e dopo il fine-tuning:

Lunghezza Frase (token) Similarità Coseno Media (jina) Similarità Coseno Media (jina-ft) Similarità Coseno Media (bge) Similarità Coseno Media (bge-ft)
3 0.970 0.927 0.929 0.899
5 0.958 0.910 0.940 0.916
10 0.953 0.890 0.934 0.910
15 0.930 0.830 0.912 0.875
20 0.916 0.815 0.901 0.879
30 0.927 0.819 0.877 0.852

Il risultato sembra chiaro: nonostante il processo di fine-tuning richieda solo cinque minuti, osserviamo un miglioramento drammatico nelle prestazioni sul dataset di frasi mescolate casualmente:

Figura 9: Distribuzione della Similarità per Lunghezza della Frase per Frasi Mescolate con jina-embeddings-v3 e bge-base-en-1.5 (fine-tuned).

Osserviamo anche miglioramenti nei casi direzionali, temporali, causali e comparativi. Il modello mostra un sostanziale miglioramento delle prestazioni riflesso da una diminuzione della similarità del coseno media. Il maggior guadagno di prestazioni si registra nel caso della negazione, grazie al nostro dataset di fine-tuning che contiene 10.000 esempi di training sulla negazione.

Categoria Esempio - Sinistra Esempio - Destra Similarità Coseno Media (jina) Similarità Coseno Media (jina-ft) Similarità Coseno Media (bge) Similarità Coseno Media (bge-ft)
Direzionale She flew from Paris to Tokyo. She drove from Tokyo to Paris 0.9439 0.8650 0.9319 0.8674
Temporale She ate dinner before watching the movie She watched the movie before eating dinner 0.9833 0.9263 0.9683 0.9331
Causale The rising temperature melted the snow The melting snow cooled the temperature 0.8998 0.7937 0.8874 0.8371
Comparativo Coffee tastes better than tea Tea tastes better than coffee 0.9457 0.8759 0.9723 0.9030
Negazione He is standing by the table He is standing far from the table 0.9116 0.4478 0.8329 0.4329

tagConclusione

In questo post, approfondiamo le sfide che i modelli di text embedding affrontano, in particolare la loro difficoltà nel gestire efficacemente l'ordine delle parole. Per semplificare, abbiamo identificato cinque tipi principali di fallimento: Direzionale, Temporale, Causale, Comparativo e Negazione. Questi sono i tipi di query in cui l'ordine delle parole è realmente importante, e se il tuo caso d'uso ne coinvolge qualcuno, è importante conoscere i limiti di questi modelli.

Abbiamo anche condotto un rapido esperimento, espandendo un dataset focalizzato sulla negazione per coprire tutte e cinque le categorie di fallimento. I risultati sono stati promettenti: il fine-tuning con "hard negatives" attentamente selezionati ha reso il modello migliore nel riconoscere quali elementi appartengono insieme e quali no. Detto questo, c'è ancora molto lavoro da fare. I prossimi passi includono l'approfondimento di come la dimensione e la qualità del dataset influenzino le prestazioni.

Categorie:
Blog tecnico
rss_feed
Uffici
location_on
Sunnyvale, California
710 Lakeway Dr, Ste 200, Sunnyvale, CA 94085, Stati Uniti
location_on
Berlino, Germania (sede centrale)
Prinzessinnenstraße 19-20, 10969 Berlino, Germania
location_on
Pechino, Cina
Livello 5, Edificio 6, No.48 Haidian West St. Pechino, Cina
location_on
Shenzen, Cina
402 Piano 4, Fu'an Technology Building, Shenzhen, Cina
Fondazione di ricerca
Lettore
Incorporamenti
Riclassificazione
Ricerca profonda
Classificatore
Segmentatore
Documentazione API
Ottieni la chiave API Jina
Limite di velocità
Stato dell'API
Azienda
Chi siamo
Contatta le vendite
Sala stampa
Programma di stagista
Unisciti a noi
open_in_new
Scarica il logo
open_in_new
Termini
Sicurezza
Termini & Condizioni
Privacy
Gestisci i cookie
email
Jina AI © 2020-2025.