قاعدة كود لتروماي وخارجها.
لقد قمنا بتحميل بعض نقاط التفتيش إلى Huggingface Hub.
| نموذج | وصف | وصلة |
|---|---|---|
| retromae | مسبقًا على ويكيبيديا و bookcorpus | shitao/retromae |
| retromae_msmarco | مسبقًا على ممر MsMarco | shitao/retromae_msmarco |
| retromae_msmarco_finetune | Finetune the Retromae_Msmarco على بيانات ممر MsMarco | shitao/retromae_msmarco_finetune |
| retromae_msmarco_distill | Finetune the Retromae_msmarco على بيانات ممر MsMarco عن طريق تقليل اختلاف KL مع الشفرات المتقاطعة | shitao/retromae_msmarco_distill |
| retromae_beir | Finetune The Retromae على بيانات ممر Msmarco لـ Beir (استخدم السلبيات الرسمية التي قدمتها بير) | shitao/retromae_beir |
يمكنك تحميلها بسهولة باستخدام سلاسل المعرف. على سبيل المثال:
from transformers import AutoModel
model = AutoModel . from_pretrained ( 'Shitao/RetroMAE' )يمكن أن توفر Retromae تهيئة قوية للمسترد الكثيف ؛ بعد ضبطها مع البيانات في مجال في المناطق ، يؤدي ذلك إلى أداء استرجاع عالي الجودة خاضع للإشراف في السيناريو المقابل. علاوة على ذلك ، فإنه يحسن إلى حد كبير قابلية نقل النموذج الذي تم تدريبه مسبقًا ، مما يساعد على يؤدي إلى عروض صفرية متفوقة على مجموعات البيانات خارج المجال.
| نموذج | MRR@10 | استدعاء@1000 |
|---|---|---|
| بيرت | 0.346 | 0.964 |
| retromae | 0.382 | 0.981 |
| نموذج | MRR@10 | استدعاء@1000 |
|---|---|---|
| Cocondenser | 0.382 | 0.984 |
| retromae | 0.393 | 0.985 |
| retromae (التقطير) | 0.416 | 0.988 |
| نموذج | AVG NDCG@10 (18 مجموعة بيانات) |
|---|---|
| بيرت | 0.371 |
| مكثف | 0.407 |
| retromae | 0.452 |
| retromae v2 | 0.491 |
git clone https://github.com/staoxiao/RetroMAE.git
cd RetroMAE
pip install .
للتنمية ، قم بالتثبيت على أنه قابل للتحرير:
pip install -e .
يتضمن هذا الريبو وظيفتين: ما قبل التدريب و Finetune. أولاً ، قم بتدريب Retromae على مجموعة البيانات العامة (أو مجموعة بيانات المصب) مع فقدان نمذجة لغة القناع. ثم Finetune retromae على مجموعة بيانات المصب مع فقدان التباين. لتحقيق أداء أفضل ، يمكنك أيضًا أن تتأثر بالعودة إلى التقطير في الدرجات التي يوفرها المشفر المتقاطع. سير عمل مفصل يرجى الرجوع إلى أمثلةنا.
torchrun --nproc_per_node 8
-m pretrain.run
--output_dir {path to save ckpt}
--data_dir {your data}
--do_train True
--model_name_or_path bert-base-uncased
--pretrain_method {retromae or dupmae}
torchrun --nproc_per_node 8
-m bi_encoder.run
--output_dir {path to save ckpt}
--model_name_or_path Shitao/RetroMAE
--do_train
--corpus_file ./data/BertTokenizer_data/corpus
--train_query_file ./data/BertTokenizer_data/train_query
--train_qrels ./data/BertTokenizer_data/train_qrels.txt
--neg_file ./data/train_negs.tsv
إذا وجدت عملنا مفيدًا ، فيرجى التفكير في الاستشهاد بنا:
@inproceedings{RetroMAE,
title={RetroMAE: Pre-Training Retrieval-oriented Language Models Via Masked Auto-Encoder},
author={Shitao Xiao, Zheng Liu, Yingxia Shao, Zhao Cao},
url={https://arxiv.org/abs/2205.12035},
booktitle ={EMNLP},
year={2022},
}