Ini adalah repositori tempat Anda dapat menemukan Modernbert, eksperimen kami untuk membawa Bert ke modernitas melalui perubahan arsitektur dan penskalaan.
Repositori ini secara jelas memperkenalkan Flexbert, pendekatan modular kami untuk membungkus blok building encoder, dan sangat bergantung pada file konfigurasi .YAML untuk membangun model. Basis kode dibangun di atas Mosaicbert, dan khususnya garpu yang belum pernah ada yang membawa perhatian 2 ke dalamnya, di bawah ketentuan lisensi Apache 2.0 -nya. Kami menyampaikan terima kasih kami kepada MOSAICML untuk memulai pekerjaan pada modernisasi encoder!
Readme ini sangat barebone dan masih sedang dibangun. Ini akan membaik dengan lebih banyak reproduktifitas dan dokumentasi di Tahun Baru, karena kami bersiap untuk lebih banyak encoder yang lebih baik setelah rilis pra-liburan Modernbert. Untuk saat ini, kami kebanyakan berharap untuk melihat apa yang dibangun orang dengan? model pos pemeriksaan).
Untuk detail lebih lanjut tentang apa yang dibawa repositori ini, kami sarankan membaca posting blog rilis kami untuk tinjauan tingkat tinggi, dan pracetak ARXIV kami untuk detail teknis lebih lanjut.
Semua kode yang digunakan dalam repositori ini adalah kode yang digunakan sebagai bagian dari percobaan kami untuk evaluasi pra-pelatihan dan lem, tidak ada saus pelatihan rahasia yang tidak berkomitmen.
Ini adalah repositori penelitian untuk Modernbert, yang berfokus pada pra-pelatihan dan evaluasi. Jika Anda mencari versi Huggingface, yang dirancang untuk berintegrasi dengan pipa umum, silakan kunjungi koleksi Modernbert di Huggingface
Modernbert adalah kolaborasi antara jawaban.ai, Lightton, dan teman -teman.
Kami telah sepenuhnya mendokumentasikan lingkungan yang digunakan untuk melatih Modernbert, yang dapat dipasang pada mesin yang dilengkapi GPU dengan perintah berikut:
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 Pelatihan memanfaatkan kerangka kerja komposer. Semua pelatihan dikonfigurasi melalui file YAML, yang dapat Anda temukan contoh di folder yamls . Kami sangat mendorong Anda untuk memeriksa salah satu contoh YAMLS, seperti yamls/main/flex-bert-rope-base.yaml , untuk mengeksplorasi opsi konfigurasi.
Evaluasi lem untuk model modernbert yang dilatih dengan repositori ini dapat dijalankan dengan via run_evals.py , dengan menyediakannya dengan pos pemeriksaan dan konfigurasi pelatihan. Untuk mengevaluasi model non-modernbert, yamls/finetuning harus menggunakan glue.py
examples subfolder berisi skrip untuk model pengambilan pelatihan, kedua model padat berdasarkan transformator kalimat dan model Colbert melalui pustaka pylate:
examples/train_pylate.py : Kode boilerplate untuk melatih model Colbert berbasis modern dengan pylate.examples/train_st.py : Kode boilerplate untuk melatih model pengambilan padat berbasis modern dengan transformator kalimat.examples/evaluate_pylate.py : Kode boilerplate untuk mengevaluasi model Colbert berbasis modern dengan pylate.examples/evaluate_st.py : Kode boilerplate untuk mengevaluasi model pengambilan padat berbasis modern dengan transformator kalimat. Jika Anda menggunakan Modernbert dalam karya Anda, baik itu model yang dirilis, pos pemeriksaan menengah (rilis tertunda) atau repositori pelatihan ini, silakan kutip:
@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 } ,
}