これは、モダンバートを見つけることができるリポジトリです。これは、アーキテクチャの変更とスケーリングの両方を介して、バートを現代性に導く実験です。
このリポジトリは、エンコーダービルディングブロックに対するモジュール式アプローチであるFlexbertを顕著に導入し、モデルを構築するために.yaml構成ファイルに大きく依存しています。コードベースは、Mosaicbert、特にApache 2.0ライセンスの条件の下で、Flashの注意2をもたらすマージーフォークに基づいています。近代化エンコーダーの作業を開始してくれたMoSaicMLに感謝します!
このReadmeは非常に裸の骨であり、まだ建設中です。モダンバートのリリース後、より多くのエンコーダーの素晴らしさを準備するため、新年の再現性とドキュメントにより改善されます。今のところ、私たちは人々が何を築いているのかを見るのを主に楽しみにしていますか?モデルチェックポイント)。
このリポジトリがもたらすものの詳細については、高レベルの概要については、リリースブログ投稿を読むことをお勧めします。
このリポジトリで使用されるすべてのコードは、トレーニング前評価と接着剤評価の両方で実験の一部として使用されるコードであり、珍しい秘密のトレーニングソースはありません。
これは、モダンバートの研究リポジトリであり、トレーニング前と評価に焦点を当てています。一般的なパイプラインと統合するように設計されたHuggingfaceバージョンを探している場合は、HuggingfaceのModernbert Collectionにアクセスしてください
ModernBertは、Answer.ai、Lighton、およびFriendsのコラボレーションです。
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/main/flex-bert-rope-base.yamlなどのYamlsの例の1つをチェックすることを強くお勧めします。
このリポジトリでトレーニングされたModernBertモデルの接着剤評価は、チェックポイントとトレーニング構成を提供することにより、 run_evals.py経由で実行できます。 Modernbert以外のモデルを評価するには、 glue.pyを使用して、わずかに異なるトレーニングYAMLと組み合わせて使用する必要があります。Yamls yamls/finetuningフォルダーで例を見つけることができます。
サブフォルダーのexamples 、検索モデルをトレーニングするためのスクリプトが含まれています。どちらも、ピレートライブラリを介した文化変圧器とコルバートモデルの両方に基づいて密なモデルです。
examples/train_pylate.py :Pylateを使用してModernbertベースのColbertモデルをトレーニングするためのボイラープレートコード。examples/train_st.py :Modernbertベースの高密度検索モデルを文化器変圧器でトレーニングするためのボイラープレートコード。examples/evaluate_pylate.py使用したModernbertベースのColbertモデルを評価するためのボイラープレートコード。examples/evaluate_st.py :ボイラープレートコードは、文化器の変圧器を使用した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 } ,
}