이것은 ModernBert를 찾을 수있는 저장소입니다. 우리의 실험은 아키텍처 변경과 스케일링을 통해 Bert를 현대성으로 가져 오는 실험입니다.
이 저장소는 인코더 빌딩 블록에 대한 모듈 식 접근 방식 인 Flexbert를 눈에 띄게 소개하고 .yaml 구성 파일에 크게 의존하여 모델을 빌드합니다. Codebase는 Mosaicbert를 기반으로하며, 특히 Apache 2.0 라이센스의 조건에 따라 Flash주의를 가져 오는 Flash주의를 가져옵니다. 현대화 인코더에 대한 작업을 시작한 Mosaicml에게 감사의 말을 전합니다!
이 readme는 매우 맨손이며 여전히 건설 중입니다. Modernbert가 출시 된 후 더 많은 인코더 니스를 준비하면서 새해에는 더 많은 재현성과 문서화로 향상 될 것입니다. 지금은 사람들이 주로 사람들이 무엇을 만들고 있는지 기대하고 있습니까? 모델 검문소).
이 저장소가 제공하는 내용에 대한 자세한 내용은 릴리스 블로그 게시물을 읽고 높은 수준의 개요와 ARXIV Preprint를 읽는 것이 좋습니다.
이 저장소에 사용 된 모든 코드는 사전 훈련 및 접착제 평가를위한 실험의 일부로 사용되는 코드이며, 비밀 비밀 훈련 소스는 없습니다.
이것은 사전 훈련 및 평가에 중점을 둔 ModernBert의 연구 저장소입니다. 공통 파이프 라인과 통합하도록 설계된 Huggingface 버전을 찾고 있다면 Huggingface의 Modernbert 컬렉션으로 가십시오.
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 과 같은 예제 중 하나를 확인하는 것이 좋습니다.
이 저장소로 훈련 된 ModernBert 모델에 대한 접착제 평가는 체크 포인트 및 교육 구성을 제공하여 run_evals.py 통해 실행할 수 있습니다. 비 현대식 모델을 평가하려면 약간 다른 교육 Yaml과 함께 glue.py yamls/finetuning 합니다.
examples 하위 폴더에는 문장 변압기를 기반으로 한 조밀 한 모델과 Pylate 라이브러리를 통해 콜버트 모델을 기반으로 한 고밀도 모델을 훈련하기위한 스크립트가 포함되어 있습니다.
examples/train_pylate.py : Pylate로 Modernbert 기반 Colbert 모델을 훈련시키는 보일러 플레이트 코드.examples/train_st.py : 문장 변압기와 함께 ModernBert 기반 조밀 한 검색 모델을 훈련시키는 보일러 플레이트 코드.examples/evaluate_pylate.py : Pylate를 사용하여 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 } ,
}