นี่คือพื้นที่เก็บข้อมูลที่คุณสามารถค้นหา Modernbert การทดลองของเราเพื่อนำ Bert เข้าสู่ความทันสมัยผ่านการเปลี่ยนแปลงสถาปัตยกรรมและการปรับขนาด
ที่เก็บนี้แนะนำ Flexbert วิธีการแบบแยกส่วนของเราในการเข้ารหัสบล็อกการสร้างและต้องอาศัยไฟล์การกำหนดค่า. YAML อย่างมากในการสร้างโมเดล Codebase สร้างขึ้นบน Mosaicbert และโดยเฉพาะส้อมที่ไม่ได้รับการยกให้ความสนใจของ Flash 2 ภายใต้เงื่อนไขของใบอนุญาต Apache 2.0 เราขอขอบคุณ MosaicML สำหรับการเริ่มต้นงานเกี่ยวกับการเข้ารหัสที่ทันสมัย!
readme นี้เป็นกระดูกที่เปลือยเปล่ามากและยังอยู่ระหว่างการก่อสร้าง มันจะดีขึ้นด้วยความสามารถในการทำซ้ำและเอกสารเพิ่มเติมในปีใหม่ในขณะที่เราพร้อมสำหรับการเข้ารหัสที่มากขึ้นหลังจากการเปิดตัว Modernbert ก่อนวันหยุด สำหรับตอนนี้เราส่วนใหญ่รอคอยที่จะเห็นสิ่งที่ผู้คนสร้างด้วย? จุดตรวจของรุ่น)
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับสิ่งที่ที่เก็บนี้นำมาเราขอแนะนำให้อ่านโพสต์บล็อกรีลีสของเราสำหรับภาพรวมระดับสูงและการพิมพ์ล่วงหน้าของเราสำหรับรายละเอียดทางเทคนิคเพิ่มเติม
รหัสทั้งหมดที่ใช้ในที่เก็บนี้เป็นรหัสที่ใช้เป็นส่วนหนึ่งของการทดลองของเราสำหรับการประเมินทั้งก่อนการฝึกอบรมและกาวไม่มีซอสฝึกอบรมลับที่ไม่มีข้อผูกมัด
นี่คือพื้นที่เก็บข้อมูลการวิจัยสำหรับ Modernbert โดยมุ่งเน้นไปที่การฝึกอบรมก่อนและการประเมินผล หากคุณกำลังมองหาเวอร์ชัน HuggingFace ที่ออกแบบมาเพื่อรวมเข้ากับไปป์ไลน์ทั่วไปโปรดไปที่ Modernbert Collection บน HuggingFace
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 เช่น yamls/main/flex-bert-rope-base.yaml เพื่อสำรวจตัวเลือกการกำหนดค่า
การประเมินกาวสำหรับโมเดิร์นเบิร์ตโมเดลที่ได้รับการฝึกฝนกับที่เก็บนี้สามารถวิ่งได้ด้วย Via run_evals.py โดยการให้จุดตรวจและการฝึกอบรม ในการประเมินโมเดลที่ไม่ใช่ Modernbert คุณควรใช้ glue.py ร่วมกับการฝึกอบรมที่แตกต่างกันเล็กน้อยซึ่งคุณสามารถค้นหาตัวอย่างในโฟลเดอร์ yamls/finetuning
โฟลเดอร์ย่อย examples มีสคริปต์สำหรับการฝึกอบรมแบบจำลองการฝึกอบรมทั้งแบบจำลองที่หนาแน่นขึ้นอยู่กับหม้อแปลงประโยคและรุ่น Colbert ผ่านห้องสมุด Pylate:
examples/train_pylate.py : รหัสหม้อต้มเพื่อฝึกอบรม Colbert ที่ใช้ Modernbert ด้วย pylateexamples/train_st.py : รหัสหม้อต้มเพื่อฝึกอบรมแบบจำลองการดึงข้อมูลหนาแน่นตาม Modernbert พร้อมหม้อแปลงประโยคexamples/evaluate_pylate.py : รหัสหม้อต้มเพื่อประเมินโมเดล Colbert ที่ใช้ Modernbert ด้วย pylateexamples/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 } ,
}