Это репозиторий, где вы можете найти Modernbert, наши эксперименты по привлечению BERT в современность посредством как изменений в архитектуре, так и масштабирования.
Этот репозиторий заметно вводит Flexbert, наш модульный подход к строительным блокам Encoder и в значительной степени опирается на файлы конфигурации .yaml для создания моделей. Кодовая база основана на Мозаикберте, и, в частности, нездоровая вилка, привлекающая к нему Flash Attect 2, в соответствии с условиями своей лицензии Apache 2.0. Мы выражаем благодарность MosaicML за начало работы по модернизации кодеров!
Этот Readme очень обнаженные и до сих пор строится. Это улучшится с большей воспроизводимостью и документацией в новом году, поскольку мы готовимся к большему количеству кодировщиков после выпуска Modernbert. На данный момент мы в основном с нетерпением ждем возможности увидеть, что люди строят с? модель контрольных точек).
Для получения более подробной информации о том, что приносит этот репозиторий, мы рекомендуем прочитать наш в блоге релиз для обзора высокого уровня и нашего препринта ARXIV для получения дополнительной технической информации.
Весь код, используемый в этом репозитории, является кодом, используемым в рамках наших экспериментов как для предварительного обучения, так и для оценки клея, не существует неубедительного секретного обучающего соуса.
Это исследовательский репозиторий для Modernbert, сфокусированный на предварительном обучении и оценке. Если вы ищете версию HuggingFace, предназначенную для интеграции с любым общим трубопроводом, отправляйтесь в коллекцию Modernbert на Huggingface
Modernbert - это сотрудничество между ответом.ai, Lighton и друзьями.
Мы полностью задокументировали среду, используемую для обучения Modernbert, которая может быть установлена на машине, оснащенной графическим процессором, со следующими командами:
conda env create -f environment.yaml
# if the conda environment errors out set channel priority to flexible:
# conda config --set channel_priority flexible
conda activate bert24
# if using H100s clone and build flash attention 3
# git clone https://github.com/Dao-AILab/flash-attention.git
# cd flash-attention/hopper
# python setup.py install
# install flash attention 2 (model uses FA3+FA2 or just FA2 if FA3 isn't supported)
pip install " flash_attn==2.6.3 " --no-build-isolation
# or download a precompiled wheel from https://github.com/Dao-AILab/flash-attention/releases/tag/v2.6.3
# or limit the number of parallel compilation jobs
# MAX_JOBS=8 pip install "flash_attn==2.6.3" --no-build-isolation Обучение сильно использует структуру композитора. Все обучение настроено с помощью файлов YAML, из которых вы можете найти примеры в папке yamls . Мы настоятельно рекомендуем вам проверить один из примеров YAML, такого как yamls/main/flex-bert-rope-base.yaml , чтобы изучить параметры конфигурации.
Оценки клея для модели Modernbert, обученной этим репозиторию, могут быть проведены с помощью run_evals.py , предоставляя ее с контрольной точкой и тренировочной конфигурацией. Чтобы оценить модели, не являющиеся модернбертом, вы должны использовать glue.py в сочетании с немного другим обучающим YAML, из которого вы можете найти примеры в папке yamls/finetuning .
В подпапке examples содержится сценарии для обучения моделей поиска, как плотные модели на основе трансформаторов предложений, так и модели Colbert через библиотеку Pylate:
examples/train_pylate.py : код шаблона для обучения модели Colbert на основе Modernbert с Pylate.examples/train_st.py : код шаблона для обучения плотной модели поиска на основе Modernbert с трансформаторами предложений.examples/evaluate_pylate.py : код шаблона для оценки модели Colbert на основе Modernbert с Pylate.examples/evaluate_st.py : код шаблона для оценки плотной модели поиска на основе современного базы. Если вы используете Modernbert в своей работе, будь то выпущенные модели, промежуточные контрольно -пропускные пункты (выпуск ожидают) или этот учебный репозиторий, пожалуйста, цитируйте:
@misc { modernbert ,
title = { Smarter, Better, Faster, Longer: A Modern Bidirectional Encoder for Fast, Memory Efficient, and Long Context Finetuning and Inference } ,
author = { Benjamin Warner and Antoine Chaffin and Benjamin Clavié and Orion Weller and Oskar Hallström and Said Taghadouini and Alexis Gallagher and Raja Biswas and Faisal Ladhak and Tom Aarsen and Nathan Cooper and Griffin Adams and Jeremy Howard and Iacopo Poli } ,
year = { 2024 } ,
eprint = { 2412.13663 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.CL } ,
url = { https://arxiv.org/abs/2412.13663 } ,
}