Связи между моделью и данными | Установка | Использование | Таблица лидеров | Цитирование |
Официальный репозиторий статьи FollowIR: Оценка и обучение моделей поиска информации следованию инструкциям. Официальную оценку можно провести, установив библиотеку mteb
и оценив свою совместимую с MTEB модель с нулевым (или всего несколькими) изменениями кода!
Двоичный | Описание |
---|---|
СледуйIR-7B | Модель параметров 7B, которая выполняет переранжирование документов с учетом запроса и инструкций. Он доработан от Мистраля-7Б на датасетах ниже. |
Следовать за ИК-поездом | Набор данных, используемый для обучения FollowIR-7B. Он состоит из инструкций и запросов TREC, а также отфильтрованных синтетических документов, созданных GPT. |
FollowIR-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
и проверить наличие instructions
в kwargs. См. (см. 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 }
}