В 2018 году Google выпустил BERT, что стало переломным моментом для NLP, задолго до нынешней волны LLM. Даже сейчас множество Small Language Models построены на основе BERT. В декабре 2024 года ModernBERT берет все, что мы узнали из недавних разработок LLM, и применяет это к этим меньшим моделям. Ключевые изменения? Лучшая эффективность параметров, понимание кода и обработка длинного контекста.
В этой статье мы разберем, как ModernBERT сравнивается с двумя моделями, которые мы знаем вдоль и поперек: jina-XLM-RoBERTa
(многоязычная основа jina-embeddings-v3) и RoBERTa-large
. Давайте рассмотрим каждую модель:
- ModernBERT (декабрь 2024) — недавно выпущенная SLM, разработанная совместно Answer.AI, LightOn и HuggingFace. Она использует современные оптимизации, такие как RoPE для контекстного окна в 8 192 токена и слои GeGLU, повышая производительность при сохранении эффективности.
jina-XLM-RoBERTa
(сентябрь 2024) — это многоязычная модель текстовых эмбеддингов на основеXLM-RoBERTa
от Meta. В то время как оригинальнаяXLM-RoBERTa
улучшаетRoBERTa
с помощью большого многоязычного набора данных XLM,jina-XLM-RoBERTa
идет дальше с расширенным контекстным обучением, реализацией RoPE и поддержкой FlashAttention-2. Эта модель служит основой для jina-embeddings-v3.RoBERTa-large
(июль 2019), разработанная Meta, является улучшенной версией BERT с 355 миллионами параметров. Благодаря расширенному обучению, большим наборам данных и инновациям, таким как динамическое маскирование, она достигла впечатляющих результатов в ключевых бенчмарках, включая GLUE, SQuAD и RACE. Это делает ее подходящей для различных задач NLP от классификации текста до ответов на вопросы.
Сравнивая эти модели по трем основным аспектам, мы стремимся подчеркнуть эффективные проектные решения ModernBERT для разработчиков моделей и определить ключевые идеи разработки для будущих моделей типа BERT. Мы также поделимся нашим опытом разработки jina-embeddings-v3 и обсудим планируемые улучшения для jina-embeddings-v4 и jina-reranker-v3
.
tagЭффективность параметров ModernBERT
Давайте сначала рассмотрим подход ModernBERT к эффективности параметров — он включает несколько ключевых идей из недавних разработок LLM. ModernBERT использует три основные стратегии: более глубокую, но более тонкую архитектуру, контролируемый размер словаря и прогрессивное масштабирование модели, начиная с меньших моделей.
tagГлубокая и тонкая архитектура
ModernBERT-large становится глубже с 28 слоями, в то время как jina-XLM-RoBERTa
и RoBERTa-large
работают с 24. Но вот что интересно — она соответствует RoBERTa-large
по количеству параметров, несмотря на эти дополнительные слои. jina-XLM-RoBERTa
требует больше параметров, поскольку обрабатывает 89 языков, в то время как другие две фокусируются только на английском.
Большинство параметров трансформера приходится на слои внимания и полносвязные слои. ModernBERT остается конкурентоспособной по размеру, становясь "тоньше" — они используют 2 624 скрытых единицы в 28 слоях, по сравнению с 4 096 единицами в 24 слоях у RoBERTa-large. Эта более "глубокая", но тонкая настройка позволяет им достигать целевых показателей производительности без раздувания модели.
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 |
Этот подход согласуется с исследованием Meta MobileLLM, которое обнаружило, что для меньших моделей глубина важнее ширины, когда речь идет о захвате сложных паттернов и повышении производительности. По сути, способность обрабатывать информацию через большее количество слоев трансформера оказывается более ценной, чем наличие более широких слоев для параллельной обработки.
Давайте посмотрим на данные о том, как работает эта глубокая и тонкая архитектура.
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 |
Возьмем jina-XLM-RoBERTa
— она основывается на мелкой и широкой архитектуре RoBERTa-large
, но увеличивает словарь с 50K до 250K токенов и обучается на большем количестве данных. Тем не менее, ModernBERT все равно превосходит ее, что говорит о том, что архитектурное изменение действительно влияет на эффективность.
tagРазмер словаря имеет значение
Сначала давайте посмотрим, как считаются параметры словаря в трансформерах. Для любого трансформера параметры словаря = количество различных токенов × размер скрытого состояния
. Возьмем jina-XLM-RoBERTa
: с 250K токенов и 1 024 измерениями ей требуется 256M параметров только для кодирования словаря — до обработки каких-либо фактических языковых задач!
1,112,064 × 1,024 = 1 B
только для преобразования токенов. Хотя более крупные LLM (100B+ параметров) могут справиться с этими накладными расходами, для меньших моделей это серьезное ограничение. Именно поэтому мы используем токенизаторы вроде BPE, которые эффективно объединяют часто встречающиеся кодовые точки UTF-8 в единые токены.Но вот в чем дело: веса словаря не участвуют в механизмах внимания - это просто таблицы поиска. Для SLM, работающих с фиксированным бюджетом параметров, больший словарь означает меньше параметров для слоев внимания, которые выполняют фактическую обработку языка. Это объясняет, почему англоязычный ModernBERT-large превосходит многоязычный jina-XLM-RoBERTa
, несмотря на меньший размер - jina-XLM-RoBERTa
выделяет больше параметров (47%!) для поддержки нескольких языков. Сфокусированный словарь ModernBERT не только улучшает производительность, но и ускоряет вывод, что делает его особенно эффективным для приложений с ограниченными ресурсами.
Если посмотреть только на основные параметры модели (исключая веса словаря), ModernBERT фактически обладает большей вычислительной мощностью, чем его аналоги: ModernBERT выделяет на 19% больше параметров для фактического языкового моделирования, чем jina-XLM-RoBERTa
, и на 15% больше, чем RoBERTa-large
!
Характеристики модели | ModernBERT-large | jina-XLM-RoBERTa |
RoBERTa-large |
---|---|---|---|
Поддержка языков | Только английский | 89 языков | Только английский |
Размер словаря | 50.4K | 250K | 50.3K |
Всего параметров | 400M | 550M | 355M |
Параметры словаря | 51M | 256M | 51M |
Доля параметров словаря | 13% | 47% | 14% |
Основные параметры модели | 349M | 294M | 304M |
tagМасштабирование модели с помощью "Weight Tiling"
При создании базовой модели jina-BERT-v2
мы обнаружили, что обучение SLM с нуля требует много ресурсов и сложно. ModernBERT решает эту проблему с помощью умного подхода к инициализации, называемого weight tiling - по сути, загружая ModernBERT-large из весов его меньшей базовой версии.
Эта техника не совсем нова - она основана на работе DeepMind с Gopher и также присутствует в моделях Microsoft Phi-2. Но ее применение здесь особенно эффективно для решения проблемы узкого места при обучении SLM.
Эта стратегия инициализации дает ModernBERT-large значительное преимущество - вместо холодного старта с нуля он использует предварительно изученные паттерны из своего меньшего аналога. Это оказалось особенно эффективным для масштабирования языковых моделей в этом диапазоне размеров.
Мы обнаружили, что модель с теплым стартом быстро восстанавливается после высокой начальной потери (из-за добавленных параметров) до потери, близкой к базовой модели. Нам удалось расширить 417M параметров более чем в 3 раза по размеру и сохранить производительность выше, чем у эквивалентной свежей модели, обученной с нуля до сходимости, что подразумевает, что выигрыш не ограничивался началом обучения. Однако при больших размерах относительные выигрыши при сходимости уменьшаются, особенно при расширении ширины.
Циклическое обертывание весов - это не просто удобство, оно хорошо согласуется с тем, как матрицы внимания естественным образом проявляют периодические паттерны. Исследование Gopher показывает, что этот подход действительно блистает для SLM (менее 9B параметров), хотя преимущества начинают уменьшаться при переходе к более крупным моделям.
tagМоделирование кода в ModernBERT
ModernBERT предлагает специализированный подход к пониманию кода с помощью оптимизированного для кода токенизатора и обучающих данных. Эта точная настройка для обработки кода окупается как в задачах понимания, так и в задачах поиска.
Мы провели тестирование с использованием корпуса jina-embeddings-v2-code
, сравнивая три модели в качестве основы: ModernBERT
, jina-XLM-RoBERTa
и RoBERTa-large
. Тест? CodeSearchNet - сопоставление текстовых описаний с фрагментами кода. ModernBERT превзошел обе альтернативы по всем показателям.
jina-XLM-RoBERTa
ни RoBERTa-large
не видели языков программирования во время обучения. Между тем, ModernBERT-large обучался на двух триллионах токенов, включая значительное количество кода. Этот опыт работы с синтаксисом и паттернами программирования дает ему явное преимущество в задачах, связанных с кодом. jina-XLM-RoBERTa
немного опережает RoBERTa-large
, вероятно, благодаря большему объему многоязычных обучающих данных - та же архитектура, больше опыта. Тем не менее, обе значительно отстают от ModernBERT-large.Задача | 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 |
tagПреимущество токенизатора
Давайте разберемся, почему ModernBERT так хорошо справляется с кодом - он использует токенизатор OLMo, который был специально обучен на коде, в отличие от стандартных токенизаторов BERT/RoBERTa.
Токенизатор разбивает UTF-8 текст на токены, которые затем отображаются в векторы - именно с ними работает модель. В процессе обучения он учится объединять часто встречающиеся последовательности символов в отдельные токены. В чем разница? Стандартный токенизатор может разбить init
на in
+ it
, упуская программный контекст. Но токенизатор ModernBERT, понимающий код, обрабатывает его целиком.
Интересный момент в обработке пробелов: ModernBERT сохраняет начальные пробелы Python как отдельные токены и различает 4 и 8 пробелов - что критически важно для структуры кода. В то же время, jina-XLM-RoBERTa
объединяет все последовательные пробелы в один _
, а RoBERTa-large обрабатывает каждый пробел как отдельный токен. Это означает, что энкодер ModernBERT получает более чистый и осмысленный ввод при обработке кода, в то время как другие работают с фрагментированными, менее связными токенами.
tagОбработка длинного контекста в ModernBERT
ModernBERT достиг значительных успехов в обработке длинных текстов благодаря обширному обучающему корпусу (300 млрд токенов с образцами по 8192 токена) и продвинутым методам, таким как комбинация глобального и локального внимания.
Для оценки возможностей обработки длинных документов мы использовали датасет MLDR - комплексный бенчмарк длинных текстов на 13 языках. Поскольку ModernBERT в настоящее время поддерживает только английский язык, мы сосредоточились на английской части MLDR для сравнения ModernBERT с jina-XLM-RoBERTa
. Хотя обе эти модели могут обрабатывать входные данные размером 8 тыс. токенов, RoBERTa-large
была исключена из этого бенчмарка из-за ограничения в 512 токенов, что недостаточно для анализа длинных текстов.
ModernBERT-large | jina-XLM-RoBERTa |
|
---|---|---|
MLDR-en | 0.351 | 0.290 |
Превосходная производительность ModernBERT обусловлена не только обширным обучением на длинных текстах - во многом это заслуга инновационной комбинации механизмов глобального и локального внимания. В отличие от jina-XLM-RoBERTa
, которая применяет вычислительно затратное глобальное внимание к каждому слою, ModernBERT использует более эффективный подход. Он чередует глобальное внимание (используется каждый третий слой с theta
160 000) и локальное внимание (использует скользящее окно в 128 токенов с theta
100 000). Эта гибридная стратегия поддерживает высокую производительность при значительном сокращении времени обучения.
В ModernBERT каждый третий слой использует глобальное внимание с RoPE theta 160 000, а остальные слои используют локальное скользящее окно внимания размером 128 токенов с RoPE theta 10 000. —— ModernBERT
tagГорький урок?
Закон масштабирования и горький урок предполагают, что основные улучшения производительности происходят в первую очередь за счет увеличения количества параметров и обучающих данных. Этот принцип определил наш подход к расширению корпуса и использованию LoRA для адаптации к конкретным задачам.
Однако успех ModernBERT показал, что мы недооценили силу архитектурной оптимизации. Он демонстрирует, что SLM могут достигать исключительных результатов за счет лучшей эффективности использования данных и модели, не обязательно увеличивая количество параметров. Недавний технический отчет Stella Embeddings подтверждает этот вывод, указывая, что текущие методы обучения моделей эмбеддингов можно улучшить без увеличения размера корпуса или модели.
jina-embeddings-v2
. Этот график был создан путем выбора топ-100 моделей эмбеддинга из рейтинга MTEB, исключая те, для которых отсутствует информация о размере, обычно закрытые или проприетарные модели. Также были отфильтрованы заявки, определенные как очевидный троллинг.В дальнейшем мы ожидаем снижения вычислительных затрат и уменьшения размеров моделей по мере того, как мы получаем более глубокое понимание использования данных и внедряем методы ModernBERT. В краткосрочной перспективе мы можем реализовать простые улучшения, описанные в статье о ModernBERT - в частности, интеграцию большего количества данных, связанных с кодом, и принятие токенизатора, дружественного к коду. Более сложные изменения, такие как переход к глубокой и тонкой архитектуре или начальная загрузка больших моделей из меньших, потребуют создания базовых моделей с нуля - это более среднесрочная инициатива.
Хотя эффективность ModernBERT впечатляет, его ограничение только текстом указывает на будущие вызовы. По мере роста популярности мультимодальных моделей эмбеддинга наша следующая задача - разработка более умных, быстрых и способных поисковых базовых моделей, которые могут обрабатывать входные данные для мультимодальных приложений. Эти приложения требуют еще более длинных окон контекста - проблема эффективности, которую еще предстоит решить.
tagЗаключение
В этой статье мы рассмотрели, как ModernBERT продвигает модели семейства BERT через три ключевые инновации: его глубокую и тонкую архитектуру, оптимизированный токенизатор и эффективное масштабирование с использованием тайлинга весов. Эти улучшения позволяют ModernBERT демонстрировать выдающуюся производительность при относительно компактном размере, превосходя как RoBERTa-large
, так и jina-XLM-RoBERTa
в различных задачах. ModernBERT демонстрирует, что архитектурные улучшения могут быть важнее размера параметров, открывая двери для более эффективных моделей. Его успешное использование тайлинга весов показывает, как прогрессивное масштабирование может снизить затраты на обучение при сохранении или даже повышении производительности. Кроме того, его компактный словарь и целевые оптимизации указывают на растущие возможности для специализированных SLM в условиях ограниченных ресурсов.