Enlaces de modelo/datos | Instalación | Uso | Tabla de clasificación | Citando |
Repositorio oficial del artículo FollowIR: Evaluación y enseñanza de modelos de recuperación de información para seguir instrucciones. La evaluación oficial se puede realizar instalando la biblioteca mteb
y evaluando su modelo compatible con MTEB con cero (o solo unas pocas) líneas de cambios de código.
Binario | Descripción |
---|---|
SeguirIR-7B | Modelo de parámetros 7B que documenta la reclasificación dada una consulta e instrucciones. Está ajustado desde Mistral-7B en los conjuntos de datos siguientes |
Seguir el tren IR | El conjunto de datos utilizado para entrenar FollowIR-7B. Consta de instrucciones y consultas TREC y documentos sintéticos generados por GPT que han sido filtrados. |
SeguirIR-train-raw | La versión prefiltrada del tren establecido arriba. Esto no se utilizó en el entrenamiento del modelo porque algunos datos generados por GPT son incorrectos. |
También puede encontrar los datos de prueba individuales anotados (Robust04, Core17 y News21), aunque el formato se utiliza mejor con el código de evaluación de MTEB.
Si desea reproducir los experimentos en el artículo, puede utilizar el siguiente código:
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 su modelo es compatible SentenceTransformer
y no requiere tokens especiales para concatenar la consulta y las instrucciones, simplemente puede usar el siguiente comando de una línea:
mteb -m $MODEL_NAME -t $DATASET
para cada uno de los conjuntos de datos en {Robust04InstructionRetrieval, Core17InstructionRetrieval, News21InstructionRetrieval}
Si tiene un modelo bicodificador pero desea hacer algo diferente a simplemente agregar la instrucción a la consulta con un espacio, puede extender DenseRetrievalExactSearch
y buscar instructions
en kwargs. Ver (ver modelos/base_sentence_transformers/ como punto de partida para pequeñas modificaciones y modelos/e5/ para un ejemplo con modificaciones más grandes).
¡Ahora se han agregado reclasificadores a MTEB! Si está utilizando un modelo de reclasificación, deberá ampliar la clase DenseRetrievalExactSearch
y definir una función __init__
y predict
(consulte la sección de modelos/reclasificadores para ver una variedad de ejemplos de reclasificación). Su función de predicción debería incluir input_to_rerank
, que será una tupla de la forma:
# 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 ))
Su función predict
debería utilizarlos y devolver una lista que contenga una puntuación para cada elemento de tupla.
Si el código, los datos o el modelo le resultaron útiles, no dude en citarlos:
@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 }
}