Кодовая база для ретромеров и за его пределами.
Мы загрузили несколько контрольно -пропускных пунктов в концентратор Huggingface.
| Модель | Описание | Связь |
|---|---|---|
| Ретромеры | Предварительно ощущение в Википедии и BookCorpus | Ширао/Ретромеры |
| Retromae_msmarco | Предварительно ощущается на проходе MSMARCO | Shitao/Retromae_msmarco |
| Retromae_msmarco_finetune | Finetune the retromae_msmarco в данных прохода MSMarco | Witao/retromae_msmarco_finetune |
| Retromae_msmarco_distill | Finetune the retromae_msmarco на данных прохода MSMarco, минимизируя KL-дивергенцию с поперечным кодером | Chitao/retromae_msmarco_distill |
| Retromae_beir | Finetune The Retromae на данных прохода MSMARCO для BEIR (используйте официальные негативы, предоставленные BEIR) | Chitao/retromae_beir |
Вы можете легко загрузить их, используя строки идентификатора. Например:
from transformers import AutoModel
model = AutoModel . from_pretrained ( 'Shitao/RetroMAE' )Retromae может обеспечить сильную инициализацию плотного ретривера; После тонкой настройки данных в области домена это дает высококачественную производительность поиска надзора в соответствующем сценарии. Кроме того, это существенно улучшает переносимость предварительно обученной модели, что помогает привести к превосходным показателям нулевого выстрела в наборах данных вне доменов.
| Модель | MRR@10 | Вспомните@1000 |
|---|---|---|
| Берт | 0,346 | 0,964 |
| Ретромеры | 0,382 | 0,981 |
| Модель | MRR@10 | Вспомните@1000 |
|---|---|---|
| Cocondenser | 0,382 | 0,984 |
| Ретромеры | 0,393 | 0,985 |
| Retromae (дистилляция) | 0,416 | 0,988 |
| Модель | Avg ndcg@10 (18 наборов данных) |
|---|---|
| Берт | 0,371 |
| Конденсатор | 0,407 |
| Ретромеры | 0,452 |
| Retromae v2 | 0,491 |
git clone https://github.com/staoxiao/RetroMAE.git
cd RetroMAE
pip install .
Для разработки установите как редактируемое:
pip install -e .
Это репо включает две функции: предварительный и финал. Во -первых, тренируйте ретромеры на наборе данных общего (или набора данных вниз по течению) с потерей моделирования языка маски. Затем Finetune The 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},
}