Nel 2018, Google ha rilasciato BERT che ha rivoluzionato il campo del NLP, molto prima dell'attuale ondata di LLM. Ancora oggi, molti Small Language Models sono costruiti su BERT. Nel dicembre 2024, ModernBERT applica ciò che abbiamo imparato dai recenti sviluppi degli LLM a questi modelli più piccoli. I punti chiave? Migliore efficienza dei parametri, comprensione del codice e gestione di contesti lunghi.
In questo post, analizzeremo come ModernBERT si confronta con due modelli che conosciamo a fondo: jina-XLM-RoBERTa (la base multilingua dietro jina-embeddings-v3) e RobERTa-large. Esaminiamo ogni modello:
- ModernBERT (dic. 2024) è un SLM di recente rilascio, sviluppato in collaborazione da Answer.AI, LightOn e HuggingFace. Sfrutta ottimizzazioni moderne come RoPE per una finestra di contesto di 8.192 token e layer GeGLU, migliorando le prestazioni mantenendo l'efficienza.
jina-XLM-RoBERTa(sett. 2024) è un modello di embedding testuale multilingue basato suXLM-RoBERTadi Meta. Mentre l'originaleXLM-RoBERTamiglioraRoBERTausando il grande dataset multilingue XLM,jina-XLM-RoBERTava oltre con training su contesti estesi, implementazione RoPE e supporto FlashAttention-2. Questo modello funge da base per jina-embeddings-v3.RoBERTa-large(luglio 2019) sviluppato da Meta, è una versione migliorata di BERT con 355 milioni di parametri. Attraverso training esteso, dataset più grandi e innovazioni come il masking dinamico, ha raggiunto risultati impressionanti su benchmark chiave tra cui GLUE, SQuAD e RACE. Questo lo rende adatto a vari compiti NLP dalla classificazione del testo alle risposte a domande.
Confrontando questi modelli su tre aspetti fondamentali, puntiamo a evidenziare le efficaci scelte progettuali di ModernBERT per altri sviluppatori di modelli e identificare intuizioni chiave di sviluppo per futuri modelli simili a BERT. Condivideremo anche i nostri apprendimenti dallo sviluppo di jina-embeddings-v3 e discuteremo i miglioramenti pianificati per jina-embeddings-v4 e jina-reranker-v3.
tagEfficienza dei Parametri di ModernBERT
Esaminiamo prima l'approccio di ModernBERT all'efficienza dei parametri - sta introducendo diverse intuizioni chiave dai recenti sviluppi LLM. ModernBERT sfrutta tre strategie principali: un'architettura più profonda ma più sottile, dimensione controllata del vocabolario e upscaling progressivo del modello partendo da modelli più piccoli.
tagArchitettura Deep-And-Thin
ModernBERT-large va più in profondità con 28 layer, mentre jina-XLM-RoBERTa e RoBERTa-large ne hanno 24. Ma ecco la parte interessante - pareggia RoBERTa-large nel conteggio dei parametri nonostante quei layer extra. jina-XLM-RoBERTa necessita di più parametri poiché gestisce 89 lingue, mentre gli altri due si concentrano solo sull'inglese.
La maggior parte dei parametri di un transformer proviene dai layer di attention e fully-connected. ModernBERT rimane competitivo nelle dimensioni diventando "più sottile" - utilizza 2.624 unità nascoste su 28 layer, rispetto alle 4.096 unità di RoBERTa-large su 24 layer. Questo setup "più profondo" ma più sottile permette loro di raggiungere i loro obiettivi di prestazioni senza gonfiare il modello.
| ModernBERT-large | jina-XLM-RoBERTa |
RoBERTa-large |
|
|---|---|---|---|
| Parameters | 400M | 550M | 355M |
| Hidden states | 1,024 | 1,024 | 1,024 |
| Intermediate dims | 2,624 | 4,096 | 4,096 |
| Attention heads | 16 | 16 | 16 |
| Layers | 28 | 24 | 24 |
| Vocabulary size | 50,368 | 250,002 | 50,265 |
Questo approccio si allinea con la ricerca MobileLLM di Meta, che ha scoperto che per i modelli più piccoli, la profondità è più importante della larghezza quando si tratta di catturare pattern complessi e guidare le prestazioni. Essenzialmente, la capacità di elaborare informazioni attraverso più layer transformer si rivela più preziosa dell'avere layer più larghi per l'elaborazione parallela.
Diamo un'occhiata ai dati su come si comporta questa architettura deep-and-thin.
| ModernBERT-large | jina-XLM-RoBERTa |
RoBERTa-large |
|
|---|---|---|---|
| STS12 | 72.6 | 72.7 | 68.9 |
| STS13 | 84.9 | 83.9 | 81.0 |
| STS14 | 77.5 | 77.7 | 74.8 |
| STS15 | 84.8 | 85.8 | 84.1 |
| STS16 | 79.4 | 79.6 | 78.6 |
| STS17 | 87.5 | 87.2 | 87.2 |
| TRECCOVID | 61.1 | 59.6 | 49.3 |
| FiQA | 44.4 | 40.0 | 40.7 |
| NFCorpus | 32.6 | 30.6 | 27.9 |
| SciFact | 68.6 | 65.5 | 63.1 |
| Average | 69.3 | 68.2 | 65.6 |
Prendiamo jina-XLM-RoBERTa - si basa sull'architettura shallow-fat di RoBERTa-large ma aumenta il vocabolario da 50K a 250K token e si addestra su più dati. Eppure ModernBERT lo supera comunque, suggerendo che il cambiamento architetturale sta facendo una reale differenza in termini di efficienza.
tagLa Dimensione del Vocabolario è Importante
Prima, vediamo come vengono contati i parametri del vocabolario nei transformer. Per qualsiasi transformer, parametri vocabolario = numero di token distinti × dimensione nascosta. Prendiamo jina-XLM-RoBERTa: con 250K token e 1.024 dimensioni, necessita di 256M parametri solo per la codifica del vocabolario - prima di gestire qualsiasi task linguistico!
1,112,064 × 1,024 = 1 B parametri solo per la conversione dei token. Mentre i LLM più grandi (oltre 100B di parametri) possono gestire questo overhead, è un serio vincolo per i modelli più piccoli. È esattamente per questo che usiamo tokenizer come BPE, che uniscono efficientemente code point UTF-8 comuni in token singoli.Ma ecco il punto: i pesi del vocabolario non contribuiscono ai meccanismi di attenzione - sono solo tabelle di lookup. Per gli SLM che lavorano con budget di parametri fissi, un vocabolario più ampio significa meno parametri disponibili per i layer di attenzione, che eseguono l'effettiva elaborazione del linguaggio. Questo spiega perché ModernBERT-large solo inglese supera le prestazioni del multilingue jina-XLM-RoBERTa nonostante sia più piccolo - jina-XLM-RoBERTa alloca più parametri (47%!) per supportare più lingue. Il vocabolario focalizzato di ModernBERT non solo migliora le prestazioni ma velocizza anche l'inferenza, rendendolo particolarmente efficace per applicazioni con risorse limitate.
Quindi se ora guardiamo solo i parametri del modello core (escludendo i pesi del vocabolario), ModernBERT ha in realtà più potenza computazionale dei suoi pari: ModernBERT dedica il 19% in più di parametri alla vera modellazione del linguaggio rispetto a jina-XLM-RoBERTa e il 15% in più rispetto a RoBERTa-large!
| Specifiche Modello | ModernBERT-large | jina-XLM-RoBERTa |
RoBERTa-large |
|---|---|---|---|
| Supporto Lingue | Solo Inglese | 89 Lingue | Solo Inglese |
| Dimensione Vocabolario | 50,4K | 250K | 50,3K |
| Parametri Totali | 400M | 550M | 355M |
| Parametri Vocabolario | 51M | 256M | 51M |
| Rapporto Parametri Vocabolario | 13% | 47% | 14% |
| Parametri Modello Core | 349M | 294M | 304M |
tagUpscaling del Modello tramite "Weight Tiling"
Nella costruzione del backbone di jina-BERT-v2, abbiamo scoperto che addestrare SLM da zero era dispendioso in termini di risorse e complesso. ModernBERT affronta questo problema con un approccio intelligente di inizializzazione chiamato weight tiling - essenzialmente avviando ModernBERT-large dai pesi della sua versione base più piccola.
Questa tecnica non è del tutto nuova - si basa sul lavoro di DeepMind con Gopher e appare anche nei modelli Phi-2 di Microsoft. Ma la sua applicazione qui è particolarmente efficace per affrontare il collo di bottiglia dell'addestramento SLM.
Questa strategia di inizializzazione dà a ModernBERT-large un vantaggio significativo - invece di partire da zero, sfrutta i pattern pre-appresi dalla sua controparte più piccola. Si è dimostrata particolarmente efficace per scalare i modelli di linguaggio in questo intervallo di dimensioni.
Troviamo che un modello avviato a caldo si riprende rapidamente da una perdita iniziale elevata (dovuta ai parametri aggiunti) fino a una perdita molto vicina a quella del modello base. Siamo in grado di espandere 417M parametri di oltre 3 volte in dimensione e mantenere prestazioni superiori a un equivalente modello nuovo addestrato da zero fino alla convergenza, implicando che i guadagni non erano limitati all'inizio dell'addestramento. Tuttavia, a dimensioni maggiori, i guadagni relativi raggiunti alla convergenza diminuiscono, specialmente con espansioni in larghezza.
L'avvolgimento ciclico dei pesi non è solo una comodità - si allinea bene con il modo in cui le matrici di attenzione mostrano naturalmente pattern periodici. La ricerca di Gopher mostra che questo approccio brilla davvero per gli SLM (meno di 9B parametri), anche se i benefici iniziano a diminuire quando si passa a modelli più grandi.
tagModellazione del Codice di ModernBERT
ModernBERT porta un approccio specializzato alla comprensione del codice con il suo tokenizer ottimizzato per il codice e i dati di addestramento. Questa messa a punto per l'elaborazione del codice si ripaga sia nei compiti di comprensione che di recupero.
Abbiamo eseguito un benchmark usando il corpus jina-embeddings-v2-code, confrontando tre modelli come backbone: ModernBERT, jina-XLM-RoBERTa, e RoBERTa-large. Il test? CodeSearchNet - abbinare descrizioni testuali a frammenti di codice. ModernBERT ha superato entrambe le alternative su tutta la linea.
jina-XLM-RoBERTa né RoBERTa-large hanno visto linguaggi di programmazione durante l'addestramento. Nel frattempo, ModernBERT-large si è addestrato su due trilioni di token, inclusa una quantità sostanziale di codice. Questa esposizione alla sintassi e ai pattern di programmazione gli dà un chiaro vantaggio nei compiti relativi al codice. jina-XLM-RoBERTa supera di poco RoBERTa-large, probabilmente grazie ai suoi dati di addestramento multilingue più ampi - stessa architettura, maggiore esposizione. Tuttavia, entrambi sono significativamente indietro rispetto a ModernBERT-large.| Compito | ModernBERT-large | jina-XLM-RoBERTa |
RoBERTa-large |
|---|---|---|---|
| AdvRetrieval | 0.342 | 0.363 | 0.331 |
| QueryRetrieval.python | 0.521 | 0.530 | 0.525 |
| QueryRetrieval java | 0.679 | 0.633 | 0.644 |
| QueryRetrieval.javascript | 0.755 | 0.768 | 0.732 |
| QueryRetrieval.php | 0.815 | 0.781 | 0.755 |
| QueryRetrieval.ruby | 0.729 | 0.744 | 0.722 |
| QueryRetrieval.go | 0.833 | 0.809 | 0.796 |
| Retrieval.go | 0.778 | 0.750 | 0.759 |
| Retrieval.java | 0.840 | 0.792 | 0.796 |
| Retrieval.javascript | 0.817 | 0.792 | 0.757 |
| Retrieval.php | 0.852 | 0.805 | 0.796 |
| Retrieval.python | 0.849 | 0.816 | 0.787 |
| Retrieval.ruby | 0.849 | 0.796 | 0.803 |
| Media | 0.743 | 0.721 | 0.708 |
tagIl vantaggio del Tokenizer
Analizziamo perché ModernBERT gestisce così bene il codice - utilizza il tokenizer OLMo, specificamente addestrato sul codice, invece dei tokenizer standard BERT/RoBERTa.
Un tokenizer divide il testo UTF-8 in token che vengono mappati in vettori - questi sono ciò che il modello elabora effettivamente. Durante l'addestramento, impara a combinare sequenze di caratteri che si verificano frequentemente in singoli token. La differenza? Un tokenizer standard potrebbe dividere init in in + it, perdendo il contesto di programmazione. Ma il tokenizer di ModernBERT orientato al codice lo comprende senza spezzarlo.
Ecco dove diventa interessante la gestione degli spazi: ModernBERT preserva gli spazi iniziali di Python come token singoli e differenzia tra 4 e 8 spazi - cruciale per la struttura del codice. Nel frattempo, jina-XLM-RoBERTa comprime tutti gli spazi continui in un singolo _, e RoBERTa-large tratta ogni spazio come un token separato. Questo significa che l'encoder di ModernBERT riceve input più puliti e significativi quando elabora il codice, mentre gli altri lavorano con token frammentati e meno coerenti.
tagGestione del contesto lungo di ModernBERT
ModernBERT ha fatto progressi significativi nell'elaborazione di testi lunghi, grazie al suo ampio corpus di addestramento (300B token con campioni da 8.192 token) e tecniche avanzate come l'attenzione combinata globale e locale.
Per valutare le capacità di gestione dei documenti lunghi, abbiamo utilizzato il dataset MLDR - un benchmark completo per testi lunghi che copre 13 lingue. Poiché ModernBERT attualmente supporta solo l'inglese, ci siamo concentrati sul sottoinsieme inglese di MLDR per confrontare ModernBERT con jina-XLM-RoBERTa. Mentre entrambi questi modelli possono gestire input di 8K token, RoBERTa-large è stato escluso da questo benchmark a causa del suo limite di 512 token, insufficiente per l'analisi di testi lunghi.
| ModernBERT-large | jina-XLM-RoBERTa |
|
|---|---|---|
| MLDR-en | 0.351 | 0.290 |
Le prestazioni superiori di ModernBERT non sono dovute solo al suo esteso addestramento su testi lunghi - sono in gran parte dovute alla sua innovativa combinazione di meccanismi di attenzione globale e locale. A differenza di jina-XLM-RoBERTa, che applica un'attenzione globale computazionalmente costosa a ogni livello, ModernBERT adotta un approccio più efficiente. Alterna tra attenzione globale (usata ogni terzo livello con un theta di 160.000) e attenzione locale (usando una finestra scorrevole di 128 token con un theta di 100.000). Questa strategia ibrida mantiene alte prestazioni riducendo drasticamente i tempi di addestramento.
In ModernBERT, ogni terzo livello impiega attenzione globale con un theta RoPE di 160.000 e i livelli rimanenti utilizzano una finestra scorrevole locale di 128 token con un theta RoPE di 10.000. —— ModernBERT
tagLa lezione amara?
La legge di scaling e la lezione amara suggeriscono che i principali miglioramenti delle prestazioni derivano principalmente dall'aumento del numero di parametri e dei dati di addestramento. Questo principio ha guidato il nostro approccio di espandere il corpus e utilizzare LoRA per adattamenti specifici ai task.
Tuttavia, il successo di ModernBERT ha rivelato che abbiamo sottovalutato il potere dell'ottimizzazione architettonica. Dimostra che gli SLM possono raggiungere risultati eccezionali attraverso una migliore efficienza dati-modello, senza necessariamente aumentare i parametri. Un recente report tecnico di Stella Embeddings rafforza questa scoperta, indicando che gli attuali metodi di addestramento dei modelli di embedding possono essere migliorati senza aumentare le dimensioni del corpus o del modello.
jina-embeddings-v2. Questo grafico è stato creato selezionando i primi 100 modelli di embedding dalla classifica MTEB, escludendo quelli senza informazioni sulle dimensioni, tipicamente modelli closed-source o proprietari. Sono state filtrate anche le submission identificate come trolling evidente.Andando avanti, prevediamo costi computazionali inferiori e dimensioni dei modelli più piccole man mano che acquisiamo una comprensione più profonda dell'utilizzo dei dati e implementiamo le tecniche di ModernBERT. Nel breve termine, possiamo implementare i miglioramenti diretti delineati nel paper di ModernBERT - in particolare integrando più dati relativi al codice e adottando un tokenizer ottimizzato per il codice. Cambiamenti più complessi, come il passaggio a un'architettura deep-and-thin o il bootstrapping di modelli grandi da quelli più piccoli, richiederanno la costruzione di modelli backbone da zero - un'iniziativa a medio termine.
Mentre l'efficienza di ModernBERT è notevole, la sua limitazione al solo testo indica sfide future. Con la crescente popolarità dei modelli di embedding multimodali, la nostra prossima sfida è sviluppare modelli di ricerca fondamentali più intelligenti, veloci e capaci che possano gestire input per applicazioni multimodali. Queste applicazioni richiedono finestre di contesto ancora più lunghe - una sfida di efficienza che resta da risolvere.
tagConclusione
In questo post, abbiamo esplorato come ModernBERT fa avanzare i modelli della famiglia BERT attraverso tre innovazioni chiave: la sua architettura deep-and-thin, il tokenizer ottimizzato e lo scaling efficiente utilizzando il weight tiling. Questi miglioramenti permettono a ModernBERT di offrire prestazioni eccezionali in dimensioni relativamente compatte, superando sia RoBERTa-large che jina-XLM-RoBERTa in vari task. ModernBERT dimostra che i miglioramenti architettonici possono contare più delle dimensioni dei parametri, aprendo le porte a modelli più efficienti. Il suo uso efficace del weight tiling mostra come lo scaling progressivo possa ridurre i costi di addestramento mantenendo o addirittura migliorando le prestazioni. Inoltre, il suo vocabolario compatto e le ottimizzazioni mirate suggeriscono crescenti opportunità per SLM specializzati in ambienti con risorse limitate.






