FollowIR
1.0.0
模型/数据链接|安装|用途 |排行榜 |引用 |
FollowIR 论文的官方存储库:评估和教学信息检索模型以遵循指令。官方评估可以通过安装mteb
库并通过零(或仅几)行代码更改来评估您的 MTEB 兼容模型来完成!
二进制 | 描述 |
---|---|
关注IR-7B | 7B 参数模型,根据查询和指令对文档进行重新排序。它是根据 Mistral-7B 在以下数据集上进行微调的 |
跟随IR-火车 | 用于训练 FollowIR-7B 的数据集。它由 TREC 指令和查询以及 GPT 生成的已过滤的合成文档组成。 |
关注IR-train-raw | 上述训练集的预过滤版本。这没有用于模型训练,因为一些 GPT 生成的数据不正确。 |
您还可以找到单独的带注释的测试数据(Robust04、Core17 和 News21),尽管该格式最适合与 MTEB 的评估代码一起使用。
如果您想重现论文中的实验,可以使用以下代码:
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
如果您的模型与SentenceTransformer
兼容并且不需要特殊标记来连接查询和指令,您可以简单地使用以下一行命令:
mteb -m $MODEL_NAME -t $DATASET
对于{Robust04InstructionRetrieval, Core17InstructionRetrieval, News21InstructionRetrieval}
中的每个数据集
如果您有双编码器模型,但想要做一些不同于简单地将指令附加到带有空格的查询的操作,您可以扩展DenseRetrievalExactSearch
并检查 kwargs 中的instructions
。请参阅(请参阅 models/base_sentence_transformers/ 作为小修改的起点,并参阅 models/e5/ 作为较大修改的示例)。
重新排序器现已添加到 MTEB!如果您使用重排序模型,则需要扩展DenseRetrievalExactSearch
类并定义__init__
和predict
函数(有关各种重排序示例,请参阅模型/重排序部分)。您的预测函数应该接受input_to_rerank
,它将是以下形式的元组:
# 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 ))
您的predict
函数应该使用这些并返回一个包含每个元组项的分数的列表。
如果您发现代码、数据或模型有用,请随意引用:
@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 }
}