هذا هو المستودع حيث يمكنك العثور على Modernbert ، وتجاربنا لإحضار Bert إلى الحداثة عبر كل من التغييرات في الهندسة المعمارية والتوسيع.
يقدم هذا المستودع بشكل ملحوظ Flexbert ، ونهجنا المعياري في لبنات إنشاء تشفير ، ويعتمد بشكل كبير على ملفات تكوين. yaml لبناء النماذج. تعتمد قاعدة الشفرة على Mosaicbert ، وتحديداً الشوكة غير المقلدة التي تجلب لها الاهتمام 2 ، بموجب شروط ترخيص Apache 2.0. نقدم شكرنا إلى Mosaicml لبدء العمل على تحديث المشفرين!
هذه القراءة هي عارية للغاية ولا تزال قيد الإنشاء. سوف يتحسن مع مزيد من التكاثر والتوثيق في العام الجديد ، حيث نرغب في الحصول على مزيد من الحالات المشفرة بعد إصدار Modernbert ما قبل الأحداث. في الوقت الحالي ، نتطلع في الغالب إلى رؤية ما يبنيه الناس؟ نقاط التفتيش النموذج).
لمزيد من التفاصيل حول ما يجلبه هذا المستودع ، نوصي بقراءة منشور مدونة الإصدار الخاص بنا للحصول على نظرة عامة عالية المستوى ، و Arxiv preprint للحصول على مزيد من التفاصيل الفنية.
جميع التعليمات البرمجية المستخدمة في هذا المستودع هي الكود المستخدم كجزء من تجاربنا لكل من تقييمات ما قبل التدريب والغراء ، لا توجد صلصة تدريب سرية غير ملتزم بها.
هذا هو مستودع الأبحاث لـ Modernbert ، الذي يركز على ما قبل التدريب والتقييمات. إذا كنت تبحث عن إصدار Huggingface ، المصمم للتكامل مع أي خط أنابيب مشترك ، فيرجى التوجه إلى مجموعة Modernbert على Luggingface
Modernbert هو تعاون بين الإجابة.
لقد قمنا بتوثيق البيئة المستخدمة بالكامل لتدريب Modernbert ، والتي يمكن تثبيتها على جهاز مجهز GPU مع الأوامر التالية:
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 . نحن نشجعك بشدة على الاطلاع على أحد الأمثلة على Yamls ، مثل yamls/main/flex-bert-rope-base.yaml ، لاستكشاف خيارات التكوين.
يمكن تشغيل تقييمات الغراء لنموذج Modernbert المدرب على هذا المستودع عبر run_evals.py ، من خلال تزويده بنقطة تفتيش وتكوين تدريب. لتقييم النماذج غير الحديثة ، يجب عليك استخدام glue.py بالتزامن مع YAML التدريب مختلف قليلاً ، والتي يمكنك العثور عليها أمثلة في مجلد yamls/finetuning .
examples على المجلد الفرعي يحتوي على برامج نصية لتدريب نماذج استرجاع التدريب ، وكلا النماذج الكثيفة التي تعتمد على محولات الجملة ونماذج كولبيرت عبر مكتبة بيلات:
examples/train_pylate.py : رمز Boilerplate لتدريب طراز كولبيرت مقره Modernbert مع Pylate.examples/train_st.py : رمز BoilerPlate لتدريب نموذج استرجاع كثيف مقره Modernbert مع محولات الجملة.examples/evaluate_pylate.py : رمز BoilerPlate لتقييم نموذج كولبيرت المستند إلى Modernbert مع Pylate.examples/evaluate_st.py : رمز BoilerPlate لتقييم نموذج استرجاع كثيف قائم على Modernbert مع محولات الجملة. إذا كنت تستخدم 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 } ,
}