ModernBERT — новое поколение двунаправленного кодировщика, сочетающее в себе обработку длинных последовательностей, понимание кода и эффективные вычисления. 🌟
Введение 📜
BERT был выпущен в 2018 году, но он до сих пор широко используется. Фактически, это вторая по популярности модель на Hugging Face Hub с ежемесячными загрузками более 68 миллионов раз! 🚀 Это связано с тем, что его архитектура, предназначенная только для кодирования, делает его идеальным для множества реальных задач, таких как:
-
Поиск (например, RAG)
-
Классификация (например, модерация контента)
-
Извлечение объектов (например, для обеспечения конфиденциальности и соответствия требованиям)
Наконец, спустя 6 лет, у нас есть замена! 🎉 ModernBERT. Это новое семейство моделей, которое превосходит BERT и его аналоги как по скорости, так и по точности. 🚀
ModernBERT опирается на десятки достижений в области больших языковых моделей (LLM) последних лет и применяет их к моделям в стиле BERT, включая обновления архитектуры и процесса обучения. 🧠
Помимо того, что ModernBERT работает быстрее и точнее, он также увеличивает длину контекста до 8 тыс. токенов (по сравнению с 512 для большинства кодировщиков) и является первой моделью, предназначенной только для кодировщиков, которая включает большое количество кодов в свои обучающие данные. 💻
Эти возможности открывают новые области приложений, ранее недоступные через открытую модель, такие как:
-
Крупномасштабный поиск кода
-
Новые возможности IDE
-
Новые конвейеры поиска, основанные на извлечении полнотекста, а не небольших фрагментов
Но чтобы объяснить, чем именно мы занимаемся, давайте сделаем шаг назад и посмотрим, откуда мы пришли. 🔍
Мы ожидаем, что ModernBERT станет новым стандартом во многих приложениях, где сейчас используются модели только для кодировщиков, например, в конвейерах RAG (генерация с расширенным поиском) и рекомендательных системах. 📊
Только модель декодера 🤖
Недавние громкие разработки в области LLM были сосредоточены на таких моделях, как GPT, Claude, Llama, Mistral и DeepSeek. Это модели только для декодера или генеративные модели. Их способность генерировать контент, похожий на человеческий, привела к появлению новых удивительных областей применения GenAI, таких как генеративное искусство и интерактивный чат. 🎨💬
Эти привлекательные приложения привлекли значительные инвестиции, профинансировали бурные исследования и привели к быстрому технологическому прогрессу. По сути, мы перенесли эти достижения обратно на модель только для кодировщиков. 🚀
Почему? Потому что для многих практических приложений требуется оптимизированная и мощная модель! И это не обязательно должна быть генеративная модель. 💡
Грубо говоря, модели, основанные только на декодерах, слишком велики, слишком медленны, слишком запатентованы и слишком дороги для многих задач. Учтите, что исходный GPT-1 представлял собой модель со 117 миллионами параметров. Для сравнения, модель Llama 3.1 имеет 405 миллиардов параметров, а ее технический отчет описывает методы синтеза данных и управления, которые слишком сложны и дороги для воспроизведения большинством компаний. 💸
Таким образом, чтобы использовать такую модель, как ChatGPT, вам нужно заплатить комиссию и подождать несколько секунд, чтобы получить ответ API от тяжелого сервера, который вы не можете контролировать. ⏳
Конечно, неограниченные возможности этих огромных генеративных моделей означают, что вы можете с неохотой использовать их для негенеративных или дискриминативных задач, таких как классификация. Это потому, что вы можете описать задачу классификации простым языком, а затем… просто позволить модели выполнить классификацию. Но хотя этот рабочий процесс отлично подходит для прототипирования, как только вы приступите к серийному производству, вам не захочется платить цену прототипа. 💼
Помешательство на популярности GenAI затмило возможности моделей, предназначенных только для кодеров. Это основа реальной языковой обработки, и эти модели фактически используются во многих научных и коммерческих приложениях для таких рабочих нагрузок. 🧑💻
Только модель кодера 🛠️
Выходные данные модели только для кодировщика представляют собой список чисел (вектор внедрения). Можно сказать, что вместо ответа текстом модель кодировщика кодирует свой «ответ» в этой сжатой числовой форме. Этот вектор представляет собой сжатое представление входных данных модели, поэтому модели, предназначенные только для кодировщиков, иногда называют моделями представления. 📊
Хотя модели только для декодера (например, GPT) могут выполнять работу моделей только для кодировщиков (например, BERT), они ограничены ключевым ограничением: поскольку они являются генеративными моделями, им математически «не разрешено» «заглядывать» за токен. Они могут только смотреть назад. В этом отличие от моделей, предназначенных только для кодировщиков, которые обучены просматривать вперед и назад (в двунаправленном направлении) для каждого токена. Они созданы для этого, что делает их очень эффективными при выполнении работы. 🚀
По сути, передовые модели, такие как O1 от OpenAI, похожи на Ferrari SF-23. Это явно триумф инженерной мысли, созданный для победы в гонках, поэтому мы о нем и говорим. Но для замены шины нужна специальная ремонтная бригада, а купить ее самостоятельно не получится. Для сравнения модель BERT выглядит как Honda Civic. Это также триумф инженерной мысли, но более тонкий, поскольку он спроектирован так, чтобы быть доступным, экономичным, надежным и очень полезным. Поэтому они абсолютно везде. 🚗
🚀 Ускоряем ваш кодер
Поддержка генеративных моделей 🤝
Один из способов понять популярность моделей представления (только для кодировщиков) — это отметить, как их часто комбинируют с моделями, предназначенными только для декодеров, для создания безопасной и эффективной системы.
Очевидный пример – RAG. Вместо того, чтобы полагаться на знания, которые LLM обучила параметрам модели, система использует хранилище документов для предоставления LLM информации, соответствующей запросу. Но, конечно, это только откладывает проблему. Если LLM не знает, какие документы имеют отношение к запросу, то системе нужен какой-то другой процесс для выбора этих документов? Для этого требуется модель, которая была бы достаточно быстрой и дешевой, чтобы ее можно было использовать для кодирования больших объемов информации, необходимой для того, чтобы сделать LLM полезным. Обычно эта модель представляет собой модель только для кодера, например BERT. 📚
Другим примером является контролируемая архитектура, в которой можно использовать дешевые классификаторы, чтобы гарантировать, что сгенерированный текст не нарушает требования безопасности контента. 🔒
Короче говоря, всякий раз, когда вы видите в развертывании модель только для декодера, существует разумная вероятность того, что модель только для кодера также является частью системы. Но обратное неверно. 🔄
Системы на основе кодировщиков 🌐
До GPT рекомендации по контенту существовали в социальных сетях и на таких платформах, как Netflix. Таргетинг рекламы осуществляется на этих площадках, в поиске и других местах. Существуют также классификации контента, такие как обнаружение спама и обнаружение злоупотреблений. Эти системы построены не на генеративных моделях, а на репрезентативных моделях, таких как модели только для кодировщиков. Все эти системы до сих пор существуют и действуют в огромных масштабах. Представьте себе, сколько рекламы таргетируется каждую секунду по всему миру! 🌍
Загрузки: на HuggingFace RoBERTa, ведущая модель на основе BERT, имеет больше загрузок, чем 10 самых популярных LLM на HuggingFace вместе взятых. Фактически, модель, использующая только кодировщик, в настоящее время обеспечивает более 1 миллиарда ежемесячных загрузок, что почти в три раза превышает 397 миллионов ежемесячных загрузок модели, использующей только декодер. Фактически, категория моделей с маской заполнения, состоящая из «базовых моделей» только для кодировщиков, таких как ModernBERT, готовых к тонкой настройке для других последующих приложений, является наиболее загружаемой категорией моделей из всех категорий моделей. 📥
Стоимость вывода: вышеизложенное показывает, что в расчете на каждый вывод модели только для кодировщиков требуют гораздо больше выводов в год, чем модели только для декодера или генеративные модели. Интересным примером является FineWeb-Edu, где фильтрацию качества на основе модели необходимо выполнить для более чем 15 триллионов токенов. Команда FineWeb-Edu решила использовать модель Llama-3-70b-Instruct, предназначенную только для декодера, для создания аннотаций и использовать точно настроенную модель на основе BERT для выполнения большей части фильтрации. Эта фильтрация заняла 6000 часов H100 на общую сумму 60 000 долларов США при цене точки вывода HuggingFace 10 долларов США в час. С другой стороны, даже при использовании самого дешевого варианта Google Gemini Flash и его низкой стоимости вывода в размере 0,075 доллара США за миллион токенов передача 15 триллионов токенов в популярную модель только для декодера обойдется более чем в миллион долларов! 💸
Производительность 🚀
Обзор 📊
На рисунке 1 представлены результаты точности модели ModernBERT и ряда других моделей при выполнении различных задач, измеренные с использованием стандартных академических тестов. 📈 Данные демонстрируют, что ModernBERT показывает превосходящие результаты в большинстве рассмотренных категорий, что делает ее универсальной моделью для задач, основанных на архитектуре кодировщика. 🏆
![Преемник BERT: ModernBERT - 1 Table_1](https://www.pvsm.ru/images/2025/02/09/preemnik-BERT-ModernBERT.png)
Модель DeBERTaV3 долгое время являлась эталоном в соревнованиях по обработке естественного языка (NLP), в частности на платформе Kaggle. 🥇 Однако, ModernBERT не только стала первой моделью базового размера, превзошедшей DeBERTaV3 в бенчмарке GLUE, но и демонстрирует значительно меньшее потребление памяти, составляющее менее 1/5 от объема, требуемого DeBERTa. 💾
Модель ModernBERT характеризуется высокой скоростью работы. ⏩ В частности, она демонстрирует двукратное увеличение скорости по сравнению с DeBERTa, а в типичных сценариях использования с входными данными смешанной длины, ускорение может достигать четырехкратного. 🚀 Скорость обработки длинного контекста также существенно выше, почти в три раза, чем у других высокопроизводительных моделей, таких как NomicBERT и GTE-en-MLM. 🏎️
Длина контекста модели ModernBERT достигает 8192 токенов, что более чем в 16 раз превышает возможности большинства существующих моделей-кодировщиков. 📏 Это свойство играет ключевую роль в конвейерах Retrieval-Augmented Generation (RAG), где ограниченный контекст может приводить к фрагментации информации и затруднять семантическое понимание. 🧩 ModernBERT также эффективно интегрируется с методом извлечения длинного контекста ColBERT, демонстрируя превосходство над другими моделями длинного контекста на 9 процентных пунктов. 📊 Примечательно, что данная модель, обладающая высокой скоростью обучения и адаптированная для задач сравнения с другими базовыми моделями, превосходит даже широко используемые модели поиска в задачах, требующих обработки длинного контекста. 🎯
Модель ModernBERT демонстрирует уникальные возможности в задачах поиска кода. 💻 В настоящее время отсутствуют аналогичные модели-кодировщики, обученные на сопоставимом объеме данных, содержащих код. 📚 В качестве примера можно привести набор данных StackOverflow-QA (SQA), представляющий собой гибридный ресурс, сочетающий код и естественный язык. 🌐 В этом наборе данных, благодаря специализированному пониманию кода и способности обрабатывать длинный контекст, ModernBERT является одной из немногих моделей, достигших результата выше 80 баллов. 🎉
Указанные функциональные возможности ModernBERT открывают перспективы для создания целого ряда новых приложений. 🌟 В качестве примера можно рассмотреть интеграцию с интеллектуальной интегрированной средой разработки (IDE), которая осуществляет индексацию всей кодовой базы предприятия, используя возможности ModernBERT для быстрого и точного извлечения релевантного кода с учетом длинного контекста из различных репозиториев. 🔍 Другим примером может служить сервис чат-бота для кода, способный предоставлять описание функциональности приложения, агрегируя информацию из множества отдельных проектов. 🤖
В сравнении с базовыми моделями, ModernBERT демонстрирует более высокую эффективность в трех ключевых категориях задач: поиск, понимание естественного языка и поиск кода. 🔎 В области понимания естественного языка модель несколько уступает DeBERTaV3, однако значительно превосходит ее по скорости. ⚡ Важно отметить, что ModernBERT, как и любая базовая модель, изначально предназначена для задачи маскированного языкового моделирования. 🎭 Для выполнения других задач требуется дополнительная тонкая настройка модели. 🛠️
В сравнении с передовыми моделями, ModernBERT демонстрирует сопоставимые или превосходящие результаты в большинстве задач. 📈 Кроме того, ModernBERT превосходит большинство моделей по скорости обработки и способен обрабатывать входные последовательности длиной до 8192 токенов, что значительно превышает возможности базовых моделей. 🚀
Эффективность ⚡
На рисунке 2 представлены данные об эффективности использования памяти (максимальный размер пакета, BS) и скорости вывода (тысячи токенов в секунду) для ModernBERT и ряда других моделей-декодеров, протестированных на графическом процессоре NVIDIA RTX 4090. 📊 В первую очередь следует отметить, что анализ эффективности проводился на широко доступных графических процессорах потребительского класса, а не на новейшем и труднодоступном оборудовании. 💻 Это обусловлено тем, что разработка ModernBERT ориентирована на практическую применимость и полезность, а не на создание исключительно рекламного продукта. 🎯
![Преемник BERT: ModernBERT - 2 Table_2](https://www.pvsm.ru/images/2025/02/09/preemnik-BERT-ModernBERT-2.png)
В соответствии с принципом практической направленности, разработчики ModernBERT стремились обеспечить ее применимость в реальных приложениях, а не только в условиях лабораторных тестов. 🧪 Традиционно, тестирование моделей часто проводится в оптимальных условиях, например, при максимальной длине контекста, что отражено в столбце «фиксированные» в таблице. 📏 Однако, в реальных сценариях размеры входных данных варьируются, поэтому особое внимание было уделено оптимизации производительности в условиях переменной длины входных данных, что отражено в столбце «переменная». 🔄 Данные показывают, что ModernBERT демонстрирует значительно более высокую скорость работы по сравнению с другими моделями при обработке входных данных переменной длины. 🚀
ModernBERT демонстрирует скорость, в 2-3 раза превышающую скорость ближайшей конкурирующей модели при обработке длинных контекстных входных данных, которые, вероятно, будут играть ключевую роль в наиболее перспективных приложениях будущего. 🌟 С точки зрения практической реализации, ModernBERT не требует установки дополнительных сложных зависимостей, за исключением широко распространенной библиотеки Flash Attention. 📚
Эффективность ModernBERT позволяет использовать увеличенный размер пакета данных по сравнению с большинством других моделей, что обеспечивает возможность эффективного применения на графических процессорах с меньшей вычислительной мощностью и стоимостью. 💰 В частности, высокая эффективность базовой версии модели открывает перспективы для разработки новых приложений, которые могут быть развернуты непосредственно в браузерах, на мобильных телефонах и других устройствах. 📱
Почему ModernBERT, ну, современный? 🤔
Представленные выше данные демонстрируют необходимость уделения большего внимания моделям-кодировщикам. 🧠 Несмотря на свою значимость, архитектура кодировщика развивалась менее интенсивно по сравнению с архитектурой декодировщика, особенно после появления модели BERT в 2018 году. 📅
Примечательно, что после появления модели RoBERTa, дальнейшее развитие кодировщиков не привело к общему улучшению (так называемому "улучшению по Парето") без каких-либо компромиссов. 📉 Например, модель DeBERTaV3 демонстрирует более высокую производительность в бенчмарке GLUE и задачах классификации, однако уступает в эффективности и задачах поиска. 🔍 Аналогично, другие модели, такие как AlBERT и GTE-en-MLM, улучшают отдельные аспекты исходных моделей BERT и RoBERTa, но проигрывают в других. 🎲
Тем не менее, с момента появления первых моделей BERT и RoBERTa, в области разработки языковых моделей был достигнут значительный прогресс. 🚀 В частности, в сфере моделей-декодировщиков, в отличие от кодировщиков, наблюдается тенденция к "улучшению по Парето", когда новые модели превосходят предыдущие по всем ключевым параметрам. 📈 Совершенствование моделей является результатом как научных исследований, так и инженерных усилий. 🛠️
Таким образом, основной целью проекта ModernBERT является интеграция современных инженерных подходов в разработку моделей-кодировщиков. 🎯 Это достигается за счет реализации следующих трех ключевых принципов:
-
Использование современной архитектуры Transformer. 🤖
-
Приоритетное внимание к эффективности. ⚡
-
Применение современных методов масштабирования данных и расширение источников данных. 📊
Встречайте нового Трансформера, который ничем не отличается от старого Трансформера 🤖
Архитектура Transformer стала доминирующей и в настоящее время используется в подавляющем большинстве современных моделей. 🌍 Важно отметить, что существует множество вариаций архитектуры Transformer. 🔄 Общим принципом для всех них является концепция, что механизм внимания играет ключевую роль, и дальнейшие улучшения строятся вокруг оптимизации этого механизма. 🎯
ModernBERT основан на архитектуре Transformer++ (разработанной Mamba), которая впервые была применена в серии моделей Llama2. 🦙 В частности, в ModernBERT произведена замена ряда компонентов архитектуры BERT на их усовершенствованные аналоги, а именно:
-
Замена традиционной позиционной кодировки на ротационное позиционное встраивание (RoPE), что обеспечивает улучшенное понимание относительных позиций между токенами и возможность масштабирования на более длинные последовательности. 🔄
-
Замена слоя MLP на слой GeGLU и усовершенствование функции активации GeLU, используемой в исходной модели BERT. 🧠
-
Упрощение архитектуры за счет исключения избыточных параметров смещения, что позволяет более эффективно использовать вычислительные ресурсы. 💻
-
Добавление дополнительного слоя нормализации после встраивания, что способствует стабилизации процесса обучения. 📊
Повышение эффективности
Как отмечалось ранее, модели-кодировщики, включая ModernBERT, не обладают характеристиками, сопоставимыми с высокопроизводительными моделями. 🏎️ Однако это не означает, что они не способны демонстрировать высокую скорость работы. ⏩ В большинстве практических сценариев, аналогично тому, как обычный автомобиль используется для повседневных поездок по шоссе, ожидается, что надежная модель-кодировщик будет эффективно справляться с задачами обработки данных в рамках установленных требований к производительности. 🚗
Действительно, в рассмотренных сценариях использования скорость обработки данных играет ключевую роль. ⏱️ Модели-кодировщики особенно востребованы в задачах, связанных с обработкой больших объемов информации, где даже незначительное увеличение скорости может привести к существенному повышению общей производительности. 📈 В ситуациях, когда модель-кодировщик работает на центральном процессоре (CPU), эффективность становится еще более важным фактором для обеспечения приемлемого времени выполнения. ⚙️
В соответствии с общепринятой практикой научных исследований, в разработке ModernBERT использовались достижения предшествующих работ, в частности, преимущества, предоставляемые оптимизацией скорости Flash Attention 2. 🚀 Повышение эффективности ModernBERT достигается за счет реализации следующих трех ключевых компонентов:
-
Применение механизма чередования внимания для повышения эффективности обработки. 🔄
-
Использование методов отмены заполнения и упаковки последовательностей для снижения вычислительных затрат. 📦
-
Разработка архитектуры модели с учетом аппаратных особенностей для оптимизации использования вычислительного оборудования. 💻
Апгрейд вашего Honda Civic для трека 🏎️
Мы уже говорили об этом: кодировщики — это не Ferrari, и ModernBERT — не исключение. Однако это не значит, что он не может работать быстро. Когда вы выезжаете на шоссе, вы обычно не выходите и не меняете свою машину на гоночную, а скорее ожидаете, что ваша повседневная, надежная машина будет комфортно преодолевать предел скорости. 🚗
Фактически, для всех случаев использования, которые мы упомянули выше, скорость имеет решающее значение. Кодеры очень популярны в тех случаях, когда необходимо обрабатывать большие объемы данных, где даже небольшие приращения скорости могут быстро накапливаться или где задержка очень важна, например, RAG. Во многих случаях кодер даже работает на процессоре, и эффективность еще более важна, если мы хотим получить результаты в разумные сроки. ⏱️
Как и в большинстве других исследований, мы опираемся на плечи гигантов и извлекаем выгоду из улучшений скорости Flash Attention 2. Наше повышение эффективности основано на трех ключевых компонентах:
-
Чередование внимания для повышения эффективности обработки
-
Отмена заполнения и упаковки последовательностей для сокращения вычислительных затрат
-
Разработка моделей с учетом аппаратного обеспечения для максимального использования оборудования
Глобальное и местное внимание 🌍
Одной из наиболее эффективных особенностей ModernBERT является попеременное внимание, в отличие от исключительно глобального. Технически это означает, что механизм внимания модели обращает внимание на полный ввод только каждые 3 слоя (глобальное внимание), в то время как остальные уровни используют скользящее окно, в котором каждый токен обращает внимание лишь на 128 ближайших к себе токенов (локальное внимание). Поскольку вычислительная сложность внимания резко возрастает с каждым дополнительным токеном, это позволяет ModernBERT обрабатывать длинные входные последовательности быстрее, чем любая другая модель. ⚡
Концептуально причина такой эффективности весьма проста: представьте, что вы читаете книгу. Нужно ли вам полностью осознавать весь сюжет каждого предложения, чтобы понять большую часть (глобальное внимание)? Или достаточно осведомленности о текущей главе (локальное внимание), если вы периодически пересматриваете ее значение для основного сюжета (глобальное внимание)? В подавляющем большинстве случаев верно последнее. 📚
Распаковка и упаковка последовательности 📦
Еще одним ключевым механизмом, повышающим эффективность ModernBERT, является использование методов удаления заполнения и упаковки последовательностей.
Для обработки нескольких последовательностей в одном пакете модели-кодировщики требуют, чтобы все последовательности имели одинаковую длину для обеспечения параллельных вычислений. Традиционно для этого используется заполнение: определяется самая длинная последовательность, и к остальным последовательностям добавляются бессмысленные токены (токены заполнения) для выравнивания длины. 🧩
Хотя заполнение позволяет решить проблему, это решение не является оптимальным: значительная часть вычислительных ресурсов тратится на обработку токенов заполнения, которые не несут семантической нагрузки. 💡
В отличие от заполнения, упаковка последовательностей («распаковка») позволяет избежать неэффективных вычислений на токенах заполнения, а количество значимых токенов становится более однородным в разных пакетах. При использовании маскирования можно обрабатывать образцы по отдельности. 🎯
Удаление заполнения эффективно решает эту проблему: вместо хранения токенов заполнения они удаляются, и последовательности объединяются в мини-пакеты размером в 1, что позволяет избежать ненужных вычислений. При использовании Flash Attention реализация удаления заполнения выполняется еще быстрее, чем предыдущие подходы, которые в значительной степени полагались на распаковку и повторное заполнение последовательности при ее прохождении через модель. Это достигается за счет собственной реализации распаковки, основанной на последних достижениях в поддержке RoPE Flash Attention. Такой подход позволяет ModernBERT удалить заполнение последовательности однократно и при необходимости повторно заполнить ее после обработки, что делает модель на 10–20 % быстрее по сравнению с предыдущими методами. ⚡
Для дальнейшего ускорения предварительного обучения в модели эффективно используется удаление заполнения в сочетании с упаковкой последовательностей. Упаковка последовательностей является логичным следующим шагом: поскольку входные данные объединяются в последовательность, а графические процессоры эффективно выполняют распараллеливание, необходимо максимизировать вычислительную эффективность, получаемую от одного прямого прохода модели. Для этого применяется жадный алгоритм, который группирует отдельные последовательности в объединенные последовательности, длина которых максимально приближена к максимальной входной длине модели. 🧠
Обратите внимание на аппаратное обеспечение 💻
Наконец, третьим аспектом эффективности ModernBERT является учет аппаратного обеспечения.
При разработке архитектуры модели учитывались два вывода из предыдущих исследований:
-
Глубина и ширина слоев. Исследования показывают, что более глубокие модели с более узкими слоями, как правило, демонстрируют лучшую производительность, чем менее глубокие модели с более широкими слоями. Однако увеличение глубины модели имеет и обратную сторону: чем глубже модель, тем меньше возможностей для распараллеливания, и, следовательно, при том же количестве параметров она работает медленнее.
-
Аппаратная эффективность. Для достижения максимальной производительности необходимо, чтобы размеры модели соответствовали возможностям и ограничениям целевого графического процессора, причем разные модели графических процессоров имеют различные ограничения.
Оптимального решения, которое обеспечивало бы одинаково высокую производительность модели на различных графических процессорах, не существует. Однако существуют полезные рекомендации, например, «Примеры совместного проектирования архитектуры модели с аппаратным обеспечением», в которых подробно описана оптимизация архитектуры модели для конкретных графических процессоров. В качестве эвристического подхода предлагается расширить эти рекомендации для различных групп графических процессоров, соблюдая при этом определенный набор ограничений. Логично, что первым шагом является определение этих ограничений, которые в данном случае включают:
-
Определение целевых графических процессоров как распространенных моделей для вывода (RTX 3090/4090, A10, T4, L4).
-
Определение приблизительных размеров целевой модели: от 130 до 150 миллионов параметров для ModernBERT-Base и от 350 до 420 параметров для ModernBERT-Large.
-
Обеспечение соответствия окончательного размера встраивания размерам исходной модели BERT (768 для базовой, 1024 для большой) для максимальной обратной совместимости.
-
Установление общих ограничений производительности для групп графических процессоров.
Далее были протестированы различные архитектуры моделей с использованием ограниченного поиска по сетке, варьируя количество и ширину слоев. После определения наиболее эффективных конфигураций было подтверждено соответствие эвристического подхода фактической производительности графических процессоров, и был выбран окончательный вариант архитектуры модели. 🛠️
Еще одной важной областью, в которой кодировщики имеют потенциал для улучшения, являются обучающие данные. Часто под этим подразумевается только объем обучающих данных, но это не совсем так. Предыдущие модели-кодировщики, такие как DeBERTaV3, обучались достаточно долго и, возможно, даже превысили порог в триллион токенов! 📚
Проблема заключается в разнообразии обучающих данных: многие более ранние модели обучались на ограниченных наборах данных, часто состоящих из Википедии и Викикниг. Эти наборы данных преимущественно представляют собой текстовую модальность и содержат только высококачественный естественный текст. 📖
В отличие от них, ModernBERT обучается на данных из разнообразных англоязычных источников, включая веб-документы, код и научные статьи. Общий объем обучающих данных составляет 2 триллиона токенов, большинство из которых являются уникальными, а не повторяются 20–40 раз, как в случае с предыдущими кодировщиками. 📊
Результат такого подхода очевиден: среди всех существующих программных кодировщиков с открытым исходным кодом ModernBERT выделяется в решении задач, связанных с программированием. Особый интерес представляет потенциал использования этой модели для улучшения инструментов помощи в программировании. 💻
Процесс 🛠️
Мы придерживаемся методики обучения, использованной для исходной модели BERT, с некоторыми незначительными улучшениями, вдохновленными последующими исследованиями. В частности, мы отказались от цели прогнозирования следующего предложения, так как было установлено, что ее добавление создает излишнюю нагрузку без заметного улучшения результатов. Кроме того, мы изменили долю маскируемых токенов, увеличив ее с 15% до 30%. 📈
Обучение обеих моделей осуществляется в три этапа, обеспечивающих всестороннюю подготовку. Первоначально модели обучаются на 1,7 триллиона токенов при длине последовательности 1024. Затем следует этап адаптации к длинному контексту, в ходе которого обучение продолжается на 250 миллиардах токенов с длиной последовательности 8192. При этом, для сохранения вычислительной стабильности, общее количество токенов, обрабатываемых в каждом пакете, остается относительно постоянным за счет пропорционального уменьшения размера пакета. На заключительном этапе проводится «отжиг» на 50 миллиардах токенов, отобранных с применением различных стратегий, для достижения оптимального баланса преимуществ длинного контекста, как это подчеркнуто в исследовании ProLong. 🧠
Такой трехэтапный подход к обучению гарантирует высокую эффективность модели в разнообразных задачах, что подтверждается ее результатами: ModernBERT демонстрирует конкурентоспособность в задачах, требующих обработки длинного контекста, и при этом не уступает в производительности при работе с короткими контекстами. 📊
…но есть и еще одно важное преимущество: на первых двух этапах, после завершения фазы прогрева, обучение ведется с постоянной скоростью. Снижение скорости обучения применяется только на последних 50 миллиардах токенов, в соответствии с трапециевидной схемой (или схемой «разминка-стабилизация-спад»). Более того, вдохновляясь подходом Pythia, мы намеренно удаляем каждую промежуточную контрольную точку, созданную в стабильных фазах обучения. Это решение продиктовано стремлением поддержать будущие исследования и практические применения: любой исследователь или разработчик может возобновить обучение с любой из предоставленных контрольных точек перед фазой спада и выполнить дообучение на специализированных данных, соответствующих его конкретным задачам! 🚀
Ноу-хау – ключ к успеху! 🧠
Если вы внимательно следите за ходом изложения, то, вероятно, уже предвидите: для дальнейшего ускорения процесса обучения мы, разумеется, применяем ряд эффективных техник. В частности, в нашем арсенале имеются две ключевые методики.
Начнем с первой, достаточно распространенной: поскольку начальный этап обучения связан с тонкой настройкой случайных весов, мы используем стратегию постепенного увеличения размера пакета. На начальном этапе мы работаем с малым размером пакета, чтобы обеспечить более частое обновление весов модели при обработке заданного объема данных. Затем, по мере обучения, мы плавно увеличиваем размер пакета до целевого значения. Такой подход существенно ускоряет первоначальный этап обучения, когда модель активно усваивает фундаментальные языковые закономерности. 📚
Вторая техника, напротив, является менее тривиальной: инициализация весов для моделей увеличенного размера посредством «мозаичного» подхода, вдохновленного серией моделей Microsoft Phi. В основе этого метода лежит простая, но важная идея: зачем инициализировать веса ModernBERT-large случайными значениями, если уже существует высококачественный (позволим себе такую оценку) набор весов ModernBERT-base? 🧩
Практический опыт показывает, что использование весов базовой модели ModernBERT в качестве отправной точки для ModernBERT-large обеспечивает более эффективное обучение, чем случайная инициализация. Кроме того, этот метод удачно сочетается со стратегией постепенного увеличения размера пакета, что в совокупности позволяет добиться значительного ускорения начального этапа обучения. ⚡
В заключение 🎯
В данной публикации мы представили ModernBERT – новое семейство современных, компактных и высокопроизводительных моделей, разработанных с архитектурой, ориентированной исключительно на кодирование. ModernBERT представляет собой долгожданное обновление парадигмы BERT. 🚀
Скрытый текст
🔥Не пропустите важные обновления и углубленные материалы!🔥
Хотите быть в курсе самых свежих обзоров и исследований в мире ML и AI? Переходите по ссылкам ниже, чтобы получить доступ к эксклюзивному контенту:
📌 Все обзоры также доступны в нашем Telegram канале TheWeeklyBrief📢
📌 Более подробный обзор с математической формализацией и программным кодом ждет вас в нашем репозитории Weekly-arXiv-ML-AI-Research-Review 👩💻📂✨
Не упустите шанс глубже погрузиться в мир технологий! 🚀
Автор: Verbasik