ai-forever / MERA

MERA (Multimodal Evaluation for Russian-language Architectures) is a new open benchmark for the Russian language for evaluating fundamental models.
MIT License
49 stars 8 forks source link

empty value rummlu #3

Closed mizinovmv closed 5 months ago

mizinovmv commented 7 months ago

Добрый день!

Не расcчитывается метрика для задачи rummlu.

mmv@mmv:~/dev/mera/MERA/lm-evaluation-harness$ python3 ./main.py --model hf-causal-experimental --model_args pretrained=mistralai/Mistral-7B-v0.1,dtype=auto,use_accelerate=True,max_memory_per_gpu=20GB,max_length=4096 --output_base_path="$PWD/mera_results/Mistral-7B-v0.1_defaults" --batch_size=4 --write_out --tasks rummlu --num_fewshot=5 --output_path="$PWD/mera_results/Mistral-7B-v0.1_defaults/rummlu_result.json" --device cuda --limit 50

Selected Tasks: ['rummlu']

параметр --inference: Task Version Metric Value Stderr
rummlu 0 metric 0 ± 0

без параметра --inference: Traceback (most recent call last): File "/home/mmv/dev/mera/MERA/lm-evaluation-harness/./main.py", line 126, in main() File "/home/mmv/dev/mera/MERA/lm-evaluation-harness/./main.py", line 84, in main results = evaluator.simple_evaluate( File "/home/mmv/dev/mera/MERA/lm-evaluation-harness/lm_eval/utils.py", line 238, in _wrapper return fn(*args, *kwargs) File "/home/mmv/dev/mera/MERA/lm-evaluation-harness/lm_eval/evaluator.py", line 197, in simple_evaluate results = evaluate( File "/home/mmv/dev/mera/MERA/lm-evaluation-harness/lm_eval/utils.py", line 238, in _wrapper return fn(args, kwargs) File "/home/mmv/dev/mera/MERA/lm-evaluation-harness/lm_eval/evaluator.py", line 980, in evaluate results[task_name][metric + "_stderr"] = stderr(items) File "/home/mmv/dev/mera/MERA/lm-evaluation-harness/lm_eval/metrics.py", line 25, in mean_stderr return sample_stddev(arr) / math.sqrt(len(arr)) File "/home/mmv/dev/mera/MERA/lm-evaluation-harness/lm_eval/metrics.py", line 21, in sample_stddev return math.sqrt(sum([(x - mu) 2 for x in arr]) / (len(arr) - 1)) ZeroDivisionError: float division by zero

LSinev commented 7 months ago

Спасибо.

без параметра --inference

Это ожидаемое поведение. У задачи/таски/сета не предоставлено правильных ответов (проводится закрытый тест). Получить результат можно по шагам из корневого README https://github.com/ai-forever/MERA/tree/main#submit-to-mera.

Не расcчитывается метрика параметр --inference

Тоже ожидаемое поведение. В описании параметров main.py https://github.com/ai-forever/MERA/tree/main/lm-evaluation-harness#notes-on-mainpy-settings об этом рассказано: ...score result 0 will be reported.

Если есть желание, можете внести предложения (или даже pull request), где описать момент с отсутствием публичных правильных ответов, чтобы не возникало соответствующих ожиданий.

razikov commented 5 months ago

Здравствуйте! А почему рассматриваете вариант, что нужно описание, чтобы не формировалось таких ожиданий? Может лучше сделать флаг, который изменит поведение и посчитает метрику на открытой части данных и удовлетворит ожидания? Я тоже хотел получить хоть какие-то цифры в единой системе координат по русскому языку. Круто что вы добавили мистраль с ламой на доску, но я, например, хочу посмотреть на openchat в сравнение и на ряд других моделей доступных в открытом доступе. Я не их автор, поэтому публиковать к вам я их не пойду. Дойдут ли авторы так же неизвестно. Возможность получить публично доступные и повторяемые цифры в родительской либе очень ценна.

LSinev commented 5 months ago

сделать флаг, который изменит поведение и посчитает метрику на открытой части данных

Чтобы эта мысль не пропала в обсуждениях не связанного с ней issue, рекомендую завести её в виде feature request в рамках нового issue с описанием мотивации, там, может быть, и состоится потом обсуждение плюсов и минусов.

получить хоть какие-то цифры в единой системе координат по русскому языку

Цифры получаются и без публичного выноса на лидерборд в рамках сабмитов, отправляемых на сайт, где автоматика обсчитывает и выдает числа в ответ на присланный архив с содержимым в нужном формате. Чтобы сделать их публичными, придется прислать на почту ещё и логи дополнительные (в обычном документированном случае собираются и упаковываются в архив в рамках вызова bash скрипта).