Liens modèle/données | Installation | Utilisation | Classement | Citer |
Dépôt officiel de l'article FollowIR : Évaluer et enseigner les modèles de recherche d'informations à suivre les instructions. Une évaluation officielle peut être effectuée en installant la bibliothèque mteb
et en évaluant votre modèle compatible MTEB avec zéro (ou seulement quelques) lignes de modifications de code !
Binaire | Description |
---|---|
SuivreIR-7B | Modèle de paramètres 7B qui documente le reclassement à partir d'une requête et d'instructions. Il est affiné depuis Mistral-7B sur les jeux de données ci-dessous |
SuivreIR-train | L'ensemble de données utilisé pour entraîner FollowIR-7B. Il se compose d'instructions et de requêtes TREC et de documents synthétiques générés par GPT qui ont été filtrés. |
SuivreIR-train-raw | La version pré-filtrée du train ci-dessus. Cela n'a pas été utilisé dans la formation du modèle, car certaines données générées par GPT sont incorrectes. |
Vous pouvez également trouver les données de test annotées individuelles (Robust04, Core17 et News21), bien que le format soit mieux utilisé avec le code d'évaluation de MTEB.
Si vous souhaitez reproduire les expériences dans l'article, vous pouvez utiliser le code suivant :
git clone https://github.com/orionw/FollowIR.git
cd FollowIR/
conda create -n followir python=3.9 -y
conda activate followir
pip install -r requirements.txt
bash launch_all_jobs.sh
Si votre modèle est compatible SentenceTransformer
et ne nécessite aucun jeton spécial pour concaténer la requête et les instructions, vous pouvez simplement utiliser la commande suivante sur une ligne :
mteb -m $MODEL_NAME -t $DATASET
pour chacun des ensembles de données dans {Robust04InstructionRetrieval, Core17InstructionRetrieval, News21InstructionRetrieval}
Si vous disposez d'un modèle bi-encodeur mais que vous souhaitez faire quelque chose de différent que simplement ajouter l'instruction à la requête avec un espace, vous pouvez étendre DenseRetrievalExactSearch
et rechercher instructions
dans kwargs. Voir (voir models/base_sentence_transformers/ comme point de départ pour de petites modifications et models/e5/ pour un exemple avec des modifications plus importantes).
Les rerankers ont maintenant été ajoutés à MTEB ! Si vous utilisez un modèle de reranker, vous devrez étendre la classe DenseRetrievalExactSearch
et définir une fonction __init__
et predict
(voir la section modèles/rerankers pour une variété d'exemples de reranker). Votre fonction de prévision doit prendre input_to_rerank
qui sera un tuple de la forme :
# if there are no instructions, instructions will be a list of Nones
# Instructions will be present for all of the FollowIR datasets
queries , passages , instructions = list ( zip ( * input_to_rerank ))
Votre fonction predict
doit les utiliser et renvoyer une liste contenant un score pour chaque élément de tuple.
Si vous avez trouvé le code, les données ou le modèle utiles, libre de citer :
@misc { weller2024followir ,
title = { FollowIR: Evaluating and Teaching Information Retrieval Models to Follow Instructions } ,
author = { Orion Weller and Benjamin Chang and Sean MacAvaney and Kyle Lo and Arman Cohan and Benjamin Van Durme and Dawn Lawrie and Luca Soldaini } ,
year = { 2024 } ,
eprint = { 2403.15246 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.IR }
}