モデル/データリンク |インストール |使い方 |リーダーボード |引用 |
論文「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
互換性があり、クエリと命令を連結するための特別なトークンを必要としない場合は、次の 1 行コマンドを使用するだけで済みます。
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 }
}