Codebasis für Retromae und darüber hinaus.
Wir haben einige Kontrollpunkte auf das Huggingface -Hub hochgeladen.
| Modell | Beschreibung | Link |
|---|---|---|
| Retromae | Vor-Trian auf der Wikipedia und des Buchcorpus | Shitao/Retromae |
| Retromae_msmarco | Vor-Trian auf der MSMARCO-Passage | Shitao/retromae_msmarco |
| Retromae_msmarco_finetune | Fintune die Retromae_msmarco in den Daten der MSMARCO -Passage | Shitao/retromae_msmarco_finetune |
| Retromae_msmarco_distill | Finetune die Retromae_msmarco auf den MSMARCO-Durchgangsdaten, indem die KL-Divergenz mit dem Cross-Coder minimiert wird | Shitao/retromae_msmarco_distill |
| Retromae_Beir | Finetune die Retromae auf den MSMARCO -Passage -Daten für BIR (verwenden Sie die von Beir bereitgestellten offiziellen Negative) | Shitao/Retromae_Beir |
Sie können sie einfach mit den Kennzeichen laden. Zum Beispiel:
from transformers import AutoModel
model = AutoModel . from_pretrained ( 'Shitao/RetroMAE' )Retromae kann eine starke Initialisierung des dichten Retrievers liefern; Nach der Feinabstimmung mit In-Domänen-Daten führt es zu einer hochwertigen Überwachung der Abrufleistung im entsprechenden Szenario. Außerdem verbessert es die Übertragbarkeit des vorgebrachten Modells erheblich, was dazu beiträgt, dass überlegene Null-Shot-Auftritte bei außer-domänen-Datensätzen überlegen sind.
| Modell | MRR@10 | Erinnern@1000 |
|---|---|---|
| Bert | 0,346 | 0,964 |
| Retromae | 0,382 | 0,981 |
| Modell | MRR@10 | Erinnern@1000 |
|---|---|---|
| Cocondenser | 0,382 | 0,984 |
| Retromae | 0,393 | 0,985 |
| Retromae (Destillation) | 0,416 | 0,988 |
| Modell | AVG NDCG@10 (18 Datensätze) |
|---|---|
| Bert | 0,371 |
| Kondensator | 0,407 |
| Retromae | 0,452 |
| Retromae v2 | 0,491 |
git clone https://github.com/staoxiao/RetroMAE.git
cd RetroMAE
pip install .
Für die Entwicklung als bearbeitbar installieren:
pip install -e .
Dieses Repo enthält zwei Funktionen: Pre-Train und Finetune. Trainieren Sie zunächst die Retromae im allgemeinen Datensatz (oder nach dem nachgeschalteten Datensatz) mit Maskensprachenmodellierungsverlust. Dann beenden Sie die Retromae auf dem nachgelagerten Datensatz mit kontrastivem Verlust. Um eine bessere Leistung zu erzielen, können Sie die Retromae auch durch Destillation die von Cross-Codher bereitgestellten Bewertungen abschließen. Detaillierter Workflow finden Sie in unseren Beispielen.
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
Wenn Sie unsere Arbeit hilfreich finden, erwägen Sie uns bitte zu zitieren:
@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},
}