Unverified Commit 091aaf6f authored by Svetlana Karimova's avatar Svetlana Karimova Committed by GitHub
Browse files

feat: Add LIBRA benchmark for long-context evaluation (#2943)



* Feat: add LIBRA benchmark

* Feat: add dataset filter to LIBRA

* Fix: formatting through pre-commit and main tasks README

* Fix: resolve conflict

* Fix: dataset name to real

* Fix: delete unnececcary datasets and correct dependency

---------
Co-authored-by: default avatarBaber Abbasi <92168766+baberabb@users.noreply.github.com>
parent 250a04ec
...@@ -85,6 +85,7 @@ ...@@ -85,6 +85,7 @@
| [lambada_multilingual_stablelm](lambada_multilingual_stablelm/README.md) | Multilingual LAMBADA dataset. Users should prefer evaluating on this version of the multilingual dataset instead of on `lambada_multilingual`. | German, English, Spanish, French, Italian, Dutch, Portuguese | | [lambada_multilingual_stablelm](lambada_multilingual_stablelm/README.md) | Multilingual LAMBADA dataset. Users should prefer evaluating on this version of the multilingual dataset instead of on `lambada_multilingual`. | German, English, Spanish, French, Italian, Dutch, Portuguese |
| [leaderboard](leaderboard/README.md) | Task group used by Hugging Face's [Open LLM Leaderboard v2](https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard). Those tasks are static and will not change through time | English | | [leaderboard](leaderboard/README.md) | Task group used by Hugging Face's [Open LLM Leaderboard v2](https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard). Those tasks are static and will not change through time | English |
| [lingoly](lingoly/README.md) | Challenging logical reasoning benchmark in low-resource languages with controls for memorization | English, Multilingual | | [lingoly](lingoly/README.md) | Challenging logical reasoning benchmark in low-resource languages with controls for memorization | English, Multilingual |
| [libra](libra/README.md) | Evaluates long-context understanding in Russian across four complexity levels | Russian (MT) |
| [logiqa](logiqa/README.md) | Logical reasoning tasks requiring advanced inference and deduction. | English, Chinese | | [logiqa](logiqa/README.md) | Logical reasoning tasks requiring advanced inference and deduction. | English, Chinese |
| [logiqa2](logiqa2/README.md) | Large-scale logical reasoning dataset adapted from the Chinese Civil Service Examination. | English, Chinese | | [logiqa2](logiqa2/README.md) | Large-scale logical reasoning dataset adapted from the Chinese Civil Service Examination. | English, Chinese |
| [mastermind](mastermind/README.md) | Reasoning benchmark based on the board game of Mastermind. | English | | [mastermind](mastermind/README.md) | Reasoning benchmark based on the board game of Mastermind. | English |
......
# Task-name
### Paper
Title: `LIBRA: Long Input Benchmark for Russian Analysis`
Abstract: `Datasets for proper evaluation of long-context understanding in Russian. For the Russian language LIBRA comprises 21 adapted datasets to study the LLM's abilities to understand long texts thoroughly. The tests are divided into four complexity groups and allow the evaluation of models across various context lengths ranging from 4k up to 128k tokens.`
Homepage: `https://huggingface.co/datasets/ai-forever/LIBRA`
### Citation
```
@misc{churin2024longinputbenchmarkrussian,
title={Long Input Benchmark for Russian Analysis},
author={Igor Churin and Murat Apishev and Maria Tikhonova and Denis Shevelev and Aydar Bulatov and Yuri Kuratov and Sergei Averkiev and Alena Fenogenova},
year={2024},
eprint={2408.02439},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2408.02439},
}
```
### Groups, Tags, and Tasks
#### Groups
* `libra_simple_information_retrieval`
* `libra_question_answering_and_multiple_choice`
* `libra_multi_hop_question_answering`
* `libra_complex_reasoning_and_mathematical_problems`
#### Tags
* `libra`
#### Tasks
* `passkey`
* `passkey_with_librusec`
* `matreshka_yes_no`
* `matreshka_names`
* `librusec_history`
* `ru_trec`
* `ru_sci_abstract_retrieval`
* `ru_sci_fi`
* `ru_quality`
* `ru_tpo`
* `ru_babilong_qa1`
* `ru_babilong_qa2`
* `ru_babilong_qa3`
* `ru_babilong_qa4`
* `ru_babilong_qa5`
* `long_context_multiq`
* `librusec_mhqa`
* `ru_2wikimultihopqa`
* `ru_sci_passage_count`
* `ru_qasper`
* `ru_gsm100`
# Variants
Usage (**all with `--apply_chat_template`**):
```
lm_eval --model hf --model_args pretrained=EleutherAI/gpt-j-6B --tasks libra_simple_information_retrieval --device cpu --apply_chat_template --log_samples --output_path test_libra_simple_information_retrieval
```
### Checklist
For adding novel benchmarks/datasets to the library:
* [ ] Is the task an existing benchmark in the literature?
* [ ] Have you referenced the original paper that introduced the task?
* [ ] If yes, does the original paper provide a reference implementation? If so, have you checked against the reference implementation and documented how to run such a test?
If other tasks on this dataset are already supported:
* [ ] Is the "Main" variant of this task clearly denoted?
* [ ] Have you provided a short sentence in a README on what each new variant adds / evaluates?
* [ ] Have you noted which, if any, published evaluation setups are matched by this variant?
group: libra_complex_reasoning_and_mathematical_problems
group_alias: Complex Reasoning and Mathematical Problems
task:
- ru_sci_passage_count
- ru_qasper
- ru_gsm100
group: libra_multi_hop_question_answering
group_alias: Multi-hop Question Answering
task:
- ru_babilong_qa1
- ru_babilong_qa2
- ru_babilong_qa3
- ru_babilong_qa4
- ru_babilong_qa5
- long_context_multiq
- librusec_mhqa
- ru_2wikimultihopqa
group: libra_question_answering_and_multiple_choice
group_alias: Question Answering and Multiple Choice
task:
- matreshka_yes_no
- matreshka_names
- librusec_history
- ru_sci_abstract_retrieval
- ru_quality
group: libra_simple_information_retrieval
group_alias: Simple Information Retrieval
task:
- passkey
- passkey_with_librusec
dataset_path: ai-forever/LIBRA
custom_dataset: !function utils.filter_dataset_by_page_lengths
test_split: test
output_type: generate_until
doc_to_target: positive_outputs
process_results: !function utils.process_results
tag:
- libra
task: librusec_history
task_alias: LibrusecHistory
dataset_name: librusec_history
dataset_kwargs:
dataset_name: librusec_history
include: _template_yaml
doc_to_text: 'Тебе предоставляется длинный текст, в котором нужно найти ответ на вопрос.
{{context}}
Найди ответ в тексте на следующий вопрос.
Вопрос:{{input}}
Ответ:'
generation_kwargs:
do_sample: false
temperature: 0.0
max_gen_toks: 32
metric_list:
- metric: libra_score
aggregation: !function utils.aggregate_results_em
higher_is_better: true
weight_by_size: true
metadata:
version: 0.0
tag:
- libra
task: librusec_mhqa
task_alias: LibrusecMHQA
dataset_name: librusec_mhqa
dataset_kwargs:
dataset_name: librusec_mhqa
include: _template_yaml
doc_to_text: 'Тебе предоставляется длинный текст, в котором нужно найти ответ на вопрос.
{{context}}
Найди ответ в тексте на следующий вопрос.
Вопрос:{{input}}
Ответ:'
generation_kwargs:
do_sample: false
temperature: 0.0
max_gen_toks: 32
metric_list:
- metric: libra_score
aggregation: !function utils.aggregate_results_em
higher_is_better: true
weight_by_size: true
metadata:
version: 0.0
tag:
- libra
task: long_context_multiq
task_alias: LongContextMultiQ
dataset_name: long_context_multiq
dataset_kwargs:
dataset_name: long_context_multiq
include: _template_yaml
doc_to_text: 'Тебе предоставляется длинный текст, в котором нужно найти ответ на вопрос.
{{context}}
Найди ответ в тексте на следующий вопрос.
Вопрос:{{input}}
Ответ:'
generation_kwargs:
do_sample: false
temperature: 0.0
max_gen_toks: 32
metric_list:
- metric: libra_score
aggregation: !function utils.aggregate_results_em
higher_is_better: true
weight_by_size: true
metadata:
version: 0.0
tag:
- libra
task: matreshka_names
task_alias: MatreshkaNames
dataset_name: matreshka_names
dataset_kwargs:
dataset_name: matreshka_names
include: _template_yaml
doc_to_text: 'Тебе предоставляются несколько диалогов. Запомни имена людей и темы,
на которые они говорили.
{{context}}
В ответе укажи только имя собеседника, который говорил на тему из следующего вопроса.
Вопрос:{{input}}
Ответ:'
generation_kwargs:
do_sample: false
temperature: 0.0
max_gen_toks: 16
metric_list:
- metric: libra_score
aggregation: !function utils.aggregate_results_em
higher_is_better: true
weight_by_size: true
metadata:
version: 0.0
tag:
- libra
task: matreshka_yes_no
task_alias: MatreshkaYesNo
dataset_name: matreshka_yes_no
dataset_kwargs:
dataset_name: matreshka_yes_no
include: _template_yaml
doc_to_text: 'Тебе предоставляются несколько диалогов. Запомни названия тем, на которые
говорили собеседники.
{{context}}
В ответе тебе нужно указать только ''Да'', если такая тема была, и ''Нет'', если
такой темы не было в диалогах.
Вопрос:{{input}}
Ответ:'
generation_kwargs:
do_sample: false
temperature: 0.0
max_gen_toks: 4
metric_list:
- metric: libra_score
aggregation: !function utils.aggregate_results_em
higher_is_better: true
weight_by_size: true
metadata:
version: 0.0
tag:
- libra
task: passkey
task_alias: Passkey
dataset_name: passkey
dataset_kwargs:
dataset_name: passkey
include: _template_yaml
doc_to_text: 'Тебе предоставляется длинный текст, в котором содержится ключ доступа.
Запомни только ключ доступа.
{{context}}
В ответе нужно указать только ключ доступа.
Вопрос:{{input}}
Ответ:'
generation_kwargs:
do_sample: false
temperature: 0.0
max_gen_toks: 16
metric_list:
- metric: libra_score
aggregation: !function utils.aggregate_results_em
higher_is_better: true
weight_by_size: true
metadata:
version: 0.0
tag:
- libra
task: passkey_with_librusec
task_alias: PasskeyWithLibrusec
dataset_name: passkey_with_librusec
dataset_kwargs:
dataset_name: passkey_with_librusec
include: _template_yaml
doc_to_text: 'Тебе предоставляется длинный текст, в котором содержится ключ доступа.
Запомни только ключ доступа.
{{context}}
В ответе нужно указать только ключ доступа.
Вопрос:{{input}}
Ответ:'
generation_kwargs:
do_sample: false
temperature: 0.0
max_gen_toks: 16
metric_list:
- metric: libra_score
aggregation: !function utils.aggregate_results_em
higher_is_better: true
weight_by_size: true
metadata:
version: 0.0
tag:
- libra
task: ru_2wikimultihopqa
task_alias: ru2WikiMultihopQA
dataset_name: ru_2wikimultihopqa
dataset_kwargs:
dataset_name: ru_2wikimultihopqa
include: _template_yaml
doc_to_text: 'Ответь на вопрос, основываясь на приведенных отрывках.
{{context}}
Ответь коротко на вопрос, основываясь на приведенных отрывках.
Вопрос:{{input}}
Ответ:'
generation_kwargs:
do_sample: false
temperature: 0.0
max_gen_toks: 32
metric_list:
- metric: libra_score
aggregation: !function utils.aggregate_results_em
higher_is_better: true
weight_by_size: true
metadata:
version: 0.0
tag:
- libra
task: ru_babilong_qa1
task_alias: ruBABILongQA1
dataset_name: ru_babilong_qa1
dataset_kwargs:
dataset_name: ru_babilong_qa1
include: _template_yaml
doc_to_text: 'Я даю тебе контекст с фактами о местоположении разных людей. Тебе нужно
ответить на вопрос, основываясь только на информации, полученной из фактов. Если
человек находился в разных местах, используй последнее местоположение для ответа
на вопрос.
{{context}}
Ответь на вопрос как можно более кратко.
Вопрос: {{input}}
Ответ:'
generation_kwargs:
do_sample: false
temperature: 0.0
max_gen_toks: 16
metric_list:
- metric: libra_score
aggregation: !function utils.aggregate_results_em
higher_is_better: true
weight_by_size: true
metadata:
version: 0.0
tag:
- libra
task: ru_babilong_qa2
task_alias: ruBABILongQA2
dataset_name: ru_babilong_qa2
dataset_kwargs:
dataset_name: ru_babilong_qa2
include: _template_yaml
doc_to_text: 'Я даю тебе контекст с фактами о местоположении и действиях разных людей.
Тебе нужно ответить на вопрос, основываясь только на фактической информации. Если
человек взял предмет в одном месте и отправился в другое место, этот предмет также
находится во втором месте. Если человек оставил предмет в первом месте и перешел
во второе место, предмет остается в первом месте.
{{context}}
Ответь на вопрос одним словом.
Вопрос: {{input}}
Ответ:'
generation_kwargs:
do_sample: false
temperature: 0.0
max_gen_toks: 16
metric_list:
- metric: libra_score
aggregation: !function utils.aggregate_results_em
higher_is_better: true
weight_by_size: true
metadata:
version: 0.0
tag:
- libra
task: ru_babilong_qa3
task_alias: ruBABILongQA3
dataset_name: ru_babilong_qa3
dataset_kwargs:
dataset_name: ru_babilong_qa3
include: _template_yaml
doc_to_text: 'Я даю тебе контекст с фактами о местоположении и действиях разных людей.
Тебе нужно ответить на вопрос, основываясь только на фактической информации. Если
человек взял предмет в одном месте и отправился в другое место, этот предмет также
находится во втором месте. Если человек оставил предмет в первом метсе и перешел
во второе место, предмет остается в первом месте.
{{context}}
Ответь на вопрос как можно более кратко.
Вопрос: {{input}}
Ответ:'
generation_kwargs:
do_sample: false
temperature: 0.0
max_gen_toks: 16
metric_list:
- metric: libra_score
aggregation: !function utils.aggregate_results_em
higher_is_better: true
weight_by_size: true
metadata:
version: 0.0
tag:
- libra
task: ru_babilong_qa4
task_alias: ruBABILongQA4
dataset_name: ru_babilong_qa4
dataset_kwargs:
dataset_name: ru_babilong_qa4
include: _template_yaml
doc_to_text: 'Я даю тебе контекст с фактами о местоположении и действиях разных людей.
Тебе нужно ответить на вопрос, основываясь только на фактической информации.
{{context}}
Ответь на вопрос как можно более кратко.
Вопрос: {{input}}
Ответ:'
generation_kwargs:
do_sample: false
temperature: 0.0
max_gen_toks: 16
metric_list:
- metric: libra_score
aggregation: !function utils.aggregate_results_em
higher_is_better: true
weight_by_size: true
metadata:
version: 0.0
tag:
- libra
task: ru_babilong_qa5
task_alias: ruBABILongQA5
dataset_name: ru_babilong_qa5
dataset_kwargs:
dataset_name: ru_babilong_qa5
include: _template_yaml
doc_to_text: 'Я даю тебе контекст с фактами о местоположении и действиях разных людей.
Тебе нужно ответить на вопрос, основываясь только на фактической информации.
{{context}}
Ответь на вопрос как можно более кратко.
Вопрос: {{input}}
Ответ:'
generation_kwargs:
do_sample: false
temperature: 0.0
max_gen_toks: 16
metric_list:
- metric: libra_score
aggregation: !function utils.aggregate_results_em
higher_is_better: true
weight_by_size: true
metadata:
version: 0.0
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment