En 2018, Google a lancé BERT qui a révolutionné le NLP, bien avant la vague actuelle des LLM. Même aujourd'hui, de nombreux Small Language Models sont basés sur BERT. En décembre 2024, ModernBERT applique les enseignements tirés des développements récents des LLM à ces modèles plus petits. Les points clés ? Une meilleure efficacité des paramètres, la compréhension du code et la gestion des longs contextes.
Dans cet article, nous allons comparer ModernBERT à deux modèles que nous connaissons parfaitement : jina-XLM-RoBERTa (le socle multilingue de jina-embeddings-v3) et RoBERTa-large. Examinons chaque modèle :
- ModernBERT (déc. 2024) est un SLM récemment publié, développé en collaboration par Answer.AI, LightOn et HuggingFace. Il utilise des optimisations modernes comme RoPE pour une fenêtre de contexte de 8 192 tokens et des couches GeGLU, améliorant les performances tout en maintenant l'efficacité.
jina-XLM-RoBERTa(sept. 2024) est un modèle d'embedding de texte multilingue basé sur leXLM-RoBERTade Meta. Alors que leXLM-RoBERTaoriginal amélioreRoBERTaen utilisant le grand dataset multilingue XLM,jina-XLM-RoBERTava plus loin avec l'entraînement sur contexte étendu, l'implémentation de RoPE, et le support de FlashAttention-2. Ce modèle sert de base à jina-embeddings-v3.RoBERTa-large(juillet 2019) développé par Meta, est une version améliorée de BERT avec 355 millions de paramètres. Grâce à un entraînement prolongé, des datasets plus importants et des innovations comme le masquage dynamique, il a obtenu des résultats impressionnants sur des benchmarks clés comme GLUE, SQuAD, et RACE. Cela le rend adapté à diverses tâches NLP, de la classification de texte aux questions-réponses.
En comparant ces modèles selon trois aspects fondamentaux, nous visons à mettre en évidence les choix de conception efficaces de ModernBERT pour les développeurs de modèles et à identifier des insights clés pour le développement des futurs modèles de type BERT. Nous partagerons également nos apprentissages du développement de jina-embeddings-v3 et discuterons des améliorations prévues pour jina-embeddings-v4 et jina-reranker-v3.
tagL'efficacité des paramètres de ModernBERT
Examinons d'abord l'approche de ModernBERT concernant l'efficacité des paramètres - il intègre plusieurs insights clés des développements récents des LLM. ModernBERT s'appuie sur trois stratégies principales : une architecture plus profonde mais plus fine, une taille de vocabulaire contrôlée, et une mise à l'échelle progressive du modèle partant de modèles plus petits.
tagArchitecture profonde et fine
ModernBERT-large va plus profond avec 28 couches, alors que jina-XLM-RoBERTa et RoBERTa-large en ont 24. Mais voici la partie intéressante - il égale RoBERTa-large en nombre de paramètres malgré ces couches supplémentaires. jina-XLM-RoBERTa nécessite plus de paramètres car il gère 89 langues, tandis que les deux autres se concentrent uniquement sur l'anglais.
La majorité des paramètres d'un transformer provient des couches d'attention et entièrement connectées. ModernBERT reste compétitif en termes de taille en étant plus "fin" - il utilise 2 624 unités cachées sur 28 couches, comparé aux 4 096 unités de RoBERTa-large sur 24 couches. Cette configuration plus "profonde" mais plus fine leur permet d'atteindre leurs objectifs de performance sans gonfler le modèle.
| 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 |
Cette approche s'aligne avec la recherche MobileLLM de Meta, qui a découvert que pour les petits modèles, la profondeur est plus importante que la largeur pour capturer des motifs complexes et améliorer les performances. Essentiellement, la capacité de traiter l'information à travers plus de couches transformer s'avère plus précieuse que d'avoir des couches plus larges pour le traitement parallèle.
Examinons les données sur les performances de cette architecture profonde et fine.
| 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 |
Prenons jina-XLM-RoBERTa - il s'appuie sur l'architecture peu profonde et large de RoBERTa-large mais augmente le vocabulaire de 50K à 250K tokens et s'entraîne sur plus de données. Pourtant ModernBERT le surpasse légèrement, suggérant que le changement architectural fait une réelle différence en termes d'efficacité.
tagLa taille du vocabulaire est importante
Regardons d'abord comment les paramètres de vocabulaire sont comptés dans les transformers. Pour tout transformer, paramètres de vocabulaire = nombre de tokens distincts × taille cachée. Prenons jina-XLM-RoBERTa : avec 250K tokens et 1 024 dimensions, il nécessite 256M paramètres juste pour l'encodage du vocabulaire - avant même de gérer les tâches linguistiques réelles !
1,112,064 × 1,024 = 1 B paramètres juste pour la conversion des tokens. Bien que les grands LLM (plus de 100B paramètres) puissent gérer cette surcharge, c'est une contrainte sérieuse pour les modèles plus petits. C'est exactement pourquoi nous utilisons des tokenizers comme BPE, qui fusionnent efficacement les points de code UTF-8 communs en tokens uniques.Mais voici le point important : les poids du vocabulaire ne contribuent pas aux mécanismes d'attention - ce sont juste des tables de consultation. Pour les SLM travaillant avec des budgets de paramètres fixes, un vocabulaire plus large signifie moins de paramètres disponibles pour les couches d'attention, qui effectuent le véritable traitement du langage. Cela explique pourquoi ModernBERT-large monolingue anglais surpasse le multilingue jina-XLM-RoBERTa malgré sa plus petite taille - jina-XLM-RoBERTa alloue plus de paramètres (47 %) pour prendre en charge plusieurs langues. Le vocabulaire ciblé de ModernBERT améliore non seulement les performances mais accélère aussi l'inférence, le rendant particulièrement efficace pour les applications aux ressources limitées.
Donc si nous regardons maintenant uniquement les paramètres du modèle principal (en excluant les poids du vocabulaire), ModernBERT dispose en réalité de plus de puissance de calcul que ses pairs : ModernBERT consacre 19 % de paramètres en plus à la modélisation réelle du langage que jina-XLM-RoBERTa et 15 % de plus que RoBERTa-large !
| Spécifications du modèle | ModernBERT-large | jina-XLM-RoBERTa |
RoBERTa-large |
|---|---|---|---|
| Support des langues | Anglais uniquement | 89 langues | Anglais uniquement |
| Taille du vocabulaire | 50,4K | 250K | 50,3K |
| Paramètres totaux | 400M | 550M | 355M |
| Paramètres du vocabulaire | 51M | 256M | 51M |
| Ratio des paramètres du vocabulaire | 13 % | 47 % | 14 % |
| Paramètres du modèle principal | 349M | 294M | 304M |
tagMise à l'échelle du modèle par "Weight Tiling"
En construisant le backbone jina-BERT-v2, nous avons constaté que l'entraînement des SLM à partir de zéro était gourmand en ressources et complexe. ModernBERT résout ce problème avec une approche d'initialisation intelligente appelée weight tiling - essentiellement en initialisant ModernBERT-large à partir des poids de sa version base plus petite.
Cette technique n'est pas entièrement nouvelle - elle s'appuie sur le travail de DeepMind avec Gopher et apparaît aussi dans les modèles Phi-2 de Microsoft. Mais son application ici est particulièrement efficace pour résoudre le goulot d'étranglement de l'entraînement des SLM.
Cette stratégie d'initialisation donne à ModernBERT-large un avantage significatif - au lieu de partir de zéro, il exploite les motifs pré-appris de sa version plus petite. Elle s'est révélée particulièrement efficace pour la mise à l'échelle des modèles de langage de cette taille.
Nous constatons qu'un modèle initialisé à chaud se remet rapidement d'une perte initiale élevée (due aux paramètres ajoutés) pour atteindre une perte très proche de celle du modèle de base. Nous sommes capables d'étendre 417M paramètres par plus de 3× en taille tout en maintenant des performances supérieures à un modèle équivalent entraîné à partir de zéro jusqu'à convergence, ce qui implique que les gains n'étaient pas limités au début de l'entraînement. Cependant, pour des tailles plus importantes, les gains relatifs obtenus à la convergence diminuent, en particulier avec les extensions en largeur.
L'enroulement cyclique des poids n'est pas qu'une commodité - il s'aligne bien avec la façon dont les matrices d'attention présentent naturellement des motifs périodiques. La recherche de Gopher montre que cette approche excelle particulièrement pour les SLM (moins de 9B paramètres), bien que les avantages commencent à s'estomper lorsqu'on passe à des modèles plus grands.
tagModélisation du code par ModernBERT
ModernBERT apporte une approche spécialisée à la compréhension du code avec son tokenizer optimisé pour le code et ses données d'entraînement. Cet ajustement fin pour le traitement du code se révèle payant tant dans les tâches de compréhension que de recherche.
Nous avons effectué un benchmark en utilisant le corpus jina-embeddings-v2-code, comparant trois modèles comme backbones : ModernBERT, jina-XLM-RoBERTa, et RoBERTa-large. Le test ? CodeSearchNet - faire correspondre des descriptions textuelles à des extraits de code. ModernBERT a surpassé les deux alternatives sur tous les points.
jina-XLM-RoBERTa ni RoBERTa-large n'ont été exposés aux langages de programmation pendant l'entraînement. Pendant ce temps, ModernBERT-large s'est entraîné sur deux billions de tokens, incluant une quantité substantielle de code. Cette exposition à la syntaxe et aux motifs de programmation lui donne un net avantage dans les tâches liées au code. jina-XLM-RoBERTa devance légèrement RoBERTa-large, probablement en raison de ses données d'entraînement multilingues plus importantes - même architecture, plus d'exposition. Néanmoins, les deux sont largement dépassés par ModernBERT-large.| Tâche | 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 |
| Avg. | 0.743 | 0.721 | 0.708 |
tagL'avantage du Tokenizer
Examinons pourquoi ModernBERT gère si bien le code - il utilise le tokenizer OLMo, qui a été spécifiquement entraîné sur du code, plutôt que les tokenizers BERT/RoBERTa standard.
Un tokenizer découpe le texte UTF-8 en tokens qui sont mappés en vecteurs - c'est ce que le modèle traite réellement. Pendant l'entraînement, il apprend à combiner les séquences de caractères fréquentes en tokens uniques. La différence ? Un tokenizer standard pourrait découper init en in + it, ignorant le contexte de programmation. Mais le tokenizer de ModernBERT, conscient du code, le comprend sans le découper.
Voici où ça devient intéressant avec la gestion des espaces : ModernBERT préserve les espaces en début de ligne Python comme des tokens uniques et différencie 4 vs 8 espaces - crucial pour la structure du code. Pendant ce temps, jina-XLM-RoBERTa réduit tous les espaces continus en un seul _, et RoBERTa-large traite chaque espace comme son propre token. Cela signifie que l'encodeur de ModernBERT reçoit une entrée plus propre et plus significative lors du traitement du code, tandis que les autres travaillent avec des tokens fragmentés et moins cohérents.
tagGestion du contexte long par ModernBERT
ModernBERT a fait des progrès significatifs dans le traitement des textes longs, grâce à son vaste corpus d'entraînement (300B tokens avec des échantillons de 8 192 tokens) et des techniques avancées comme l'attention globale et locale combinée.
Pour évaluer les capacités de gestion des documents longs, nous avons utilisé le dataset MLDR - un benchmark complet de textes longs couvrant 13 langues. Comme ModernBERT ne prend actuellement en charge que l'anglais, nous nous sommes concentrés sur le sous-ensemble anglais de MLDR pour comparer ModernBERT à jina-XLM-RoBERTa. Bien que ces deux modèles puissent gérer des entrées de 8K tokens, RoBERTa-large a été exclu de ce benchmark en raison de sa limite de 512 tokens, insuffisante pour l'analyse de textes longs.
| ModernBERT-large | jina-XLM-RoBERTa |
|
|---|---|---|
| MLDR-en | 0.351 | 0.290 |
La performance supérieure de ModernBERT n'est pas seulement due à son entraînement extensif sur des textes longs - c'est largement grâce à sa combinaison innovante de mécanismes d'attention globale et locale. Contrairement à jina-XLM-RoBERTa, qui applique une attention globale coûteuse en calcul à chaque couche, ModernBERT adopte une approche plus efficace. Il alterne entre l'attention globale (utilisée tous les trois couches avec un theta de 160 000) et l'attention locale (utilisant une fenêtre glissante de 128 tokens avec un theta de 100 000). Cette stratégie hybride maintient une performance élevée tout en réduisant considérablement le temps d'entraînement.
Dans ModernBERT, chaque troisième couche utilise une attention globale avec un RoPE theta de 160 000 et les couches restantes utilisent une fenêtre glissante locale de 128 tokens avec un RoPE theta de 10 000. —— ModernBERT
tagLa leçon amère ?
La loi d'échelle et la leçon amère suggèrent que les améliorations majeures de performance proviennent principalement de l'augmentation du nombre de paramètres et des données d'entraînement. Ce principe a guidé notre approche d'expansion du corpus et d'utilisation de LoRA pour les adaptations spécifiques aux tâches.
Cependant, le succès de ModernBERT a révélé que nous avions sous-estimé le pouvoir de l'optimisation architecturale. Il démontre que les SLM peuvent atteindre des résultats exceptionnels grâce à une meilleure efficacité données-modèle, sans nécessairement augmenter les paramètres. Un récent rapport technique sur Stella Embeddings renforce cette conclusion, indiquant que les méthodes actuelles d'entraînement des modèles d'embedding peuvent être améliorées sans augmenter la taille du corpus ou du modèle.
jina-embeddings-v2. Ce graphique a été créé en sélectionnant les 100 meilleurs modèles d'embedding du classement MTEB, excluant ceux sans information de taille, typiquement les modèles propriétaires ou à code source fermé. Les soumissions identifiées comme du trolling évident ont également été filtrées.À l'avenir, nous anticipons des coûts de calcul plus faibles et des tailles de modèles plus petites à mesure que nous acquérons une compréhension plus approfondie de l'utilisation des données et mettons en œuvre les techniques de ModernBERT. À court terme, nous pouvons mettre en œuvre les améliorations simples décrites dans l'article ModernBERT - en particulier l'intégration de plus de données liées au code et l'adoption d'un tokenizer adapté au code. Des changements plus complexes, comme le passage à une architecture profonde et fine ou l'amorçage de grands modèles à partir de plus petits, nécessiteront de construire des modèles de base à partir de zéro - une initiative à moyen terme.
Bien que l'efficacité de ModernBERT soit remarquable, sa limitation au texte seul indique des défis futurs. Alors que les modèles d'embedding multimodaux gagnent en popularité, notre prochain défi est de développer des modèles de recherche fondamentaux plus intelligents, plus rapides et plus capables qui peuvent gérer les entrées pour des applications multimodales. Ces applications exigent des fenêtres de contexte encore plus longues - un défi d'efficacité qui reste à résoudre.
tagConclusion
Tout au long de cet article, nous avons exploré comment ModernBERT fait progresser les modèles de la famille BERT grâce à trois innovations clés : son architecture profonde et fine, son tokenizer optimisé et sa mise à l'échelle efficace utilisant le weight tiling. Ces améliorations permettent à ModernBERT de fournir des performances exceptionnelles dans une taille relativement compacte, surpassant à la fois RoBERTa-large et jina-XLM-RoBERTa dans diverses tâches. ModernBERT démontre que les améliorations architecturales peuvent avoir plus d'importance que la taille des paramètres, ouvrant la voie à des modèles plus efficaces. Son utilisation réussie du weight tiling montre comment la mise à l'échelle progressive peut réduire les coûts d'entraînement tout en préservant ou même en améliorant les performances. De plus, son vocabulaire compact et ses optimisations ciblées suggèrent des opportunités croissantes pour les SLM spécialisés dans des environnements aux ressources limitées.







