Base de código para retranspostos e além.
Carregamos alguns pontos de verificação para o HUGGINGFACE HUB.
| Modelo | Descrição | Link |
|---|---|---|
| Retomae | Pré-triia na Wikipedia e Bookcorpus | Shitao/retromae |
| Retromae_msmarco | Pré-triilizado na passagem do MSMARCO | Shitao/retromae_msmarco |
| Retomae_msmarco_fineTune | Finetune the retromeae_msmarco nos dados de passagem do msmarco | Shitao/retromae_msmarco_finetune |
| Retomae_msmarco_distill | Finetune the retromeae_msmarco nos dados de passagem do msmarco, minimizando a digniver de KL com o codificador cruzado | Shitao/retromae_msmarco_distill |
| Retromae_beir | Finetune os retromas nos dados de passagem do MSMARCO para Beir (use os negativos oficiais fornecidos pela Beir) | Shitao/retromae_beir |
Você pode carregá -los facilmente usando as seqüências de identificador. Por exemplo:
from transformers import AutoModel
model = AutoModel . from_pretrained ( 'Shitao/RetroMAE' )Os retrominantes podem fornecer uma forte inicialização do denso retriever; Depois de ajustar os dados no domínio, ele gera um desempenho de recuperação supervisionado de alta qualidade no cenário correspondente. Além disso, melhora substancialmente a transferibilidade do modelo pré-treinado, o que ajuda a resultar em performances superiores de tiro zero nos conjuntos de dados fora do domínio.
| Modelo | MRR@10 | Lembre -se@1000 |
|---|---|---|
| Bert | 0,346 | 0,964 |
| Retomae | 0,382 | 0,981 |
| Modelo | MRR@10 | Lembre -se@1000 |
|---|---|---|
| Cocondenser | 0,382 | 0,984 |
| Retomae | 0,393 | 0,985 |
| Retomae (destilação) | 0,416 | 0,988 |
| Modelo | AVG NDCG@10 (18 conjuntos de dados) |
|---|---|
| Bert | 0,371 |
| Condensador | 0,407 |
| Retomae | 0,452 |
| RETROMAE V2 | 0,491 |
git clone https://github.com/staoxiao/RetroMAE.git
cd RetroMAE
pip install .
Para desenvolvimento, instale como editável:
pip install -e .
Este repositório inclui duas funções: pré-trep e Finetune. Em primeiro lugar, treine os retromas no conjunto de dados geral (ou no conjunto de dados a jusante) com perda de modelagem de idiomas de máscara. Em seguida, o Finetune os retromas no conjunto de dados a jusante com perda contrastiva. Para alcançar um melhor desempenho, você também pode definir os retromase por destilação das pontuações fornecidas pelo codificador cruzado. Fluxo de trabalho detalhado Consulte nossos exemplos.
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
Se você achar útil nosso trabalho, considere nos citar:
@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},
}