Всем привет! С вами команда бенчмарка MERA, мы рады анонсировать долгожданное обновление и рассказать, что нового в нашем проекте.

В прошлом году Альянс в сфере искусственного интеллекта представил сообществу независимую площадку для оценки больших языковых моделей — MERA. Мы выпустили первую версию с текстовыми задачами и опубликовали методологию бенчмарка в академической статье. С этой работой мы выступили в августе на ACL-2024 в Бангкоке (ранг A* в рейтинге конференций в области вычислительной техники ICORE), ведущей международной конференции по обработке естественного языка. С момента релиза бенчмарка мы получили свыше 1000 сабмитов от более чем 100 пользователей сайта. Мы получили обратную связь, учли критику и предложения от участников NLP-сообщества и выпускаем новую версию текстовой модальности бенчмарка MERA.

Встречайте релиз MERA v.1.2.0 ?:

  • новый динамический лидерборд и свыше 50 моделей на нём;

  • обновлённая кодовая база замеров;

  • усовершенствованная система промптов и улучшенные датасеты;

  • поддержка API и долгожданные замеры моделей от OpenAI =).

Погнали!


Как устроена MERA в первой версии?

Для начала вспомним, как ранее происходила оценка на бенчмарке. Немного погрузимся в теорию и кодовую базу проекта. 

Всего задач в бенчмарке было 21, из которых 17 задач — основные, из них складывался финальный результат и рейтинг. Все ответы на тесты основных задач скрыты. Плюс дополнительные задачи, так называемые диагностические, с публичными открытыми вариантами ответа. Все задачи бенчмарка инструктивные, а замеры делались в формате zero-shot и few-shot.

​​Для подготовки сабмита на MERA участникам предстояло прогнать свою модель в фиксированном сетапе, который занимает в среднем, в зависимости от размера модели и используемых видеокарт, от 6 часов. В результате участник получал ответы своей модели и автоматические логи, по которым затем можно проверить, правильно ли участник запустил код, не мухлевал ли и на каких карточках и версиях библиотек он это делал. Далее результаты необходимо прислать на сайт и заполнить форму. После чего в личном кабинете можно увидеть результаты.

Кодовая база

Для удобства замеров кодовая база бенчмарка создавалась на базе фреймворка lm-evaluation-harness. Первый релиз MERA поддерживал версию 0.3.0.

Оценка производилась в форматах zero-shot / few-shot с фиксированным набором шотов (для каждой задачи выбрано конкретное количество шотов) и параметрами. Для каждой задачи в модель подавался либо только пример с инструкцией (zero-shot), либо несколько примеров (few-shot) из публичной части датасета, автоматически добавляемые внутрь инструкции.

Кодовая база подразумевала две стратегии оценки:

  • для задач, где есть фиксированные варианты ответов (например, ABCD или 1/2), выбирается вариант с самым большим log-likelihood, который выдает модель (то есть на вход подается полная строка с инструкцией, на выходе — вероятности этих фиксированных вариантов, из которых выбирается лучший). Это позволяет надёжно оценивать именно способности модели, а не определенный формат вывода. Это также дает возможность более честно оценивать слабые модели (размером поменьше), так как ограничивает их в генерации до короткого ответа. Возможность замерять через log-likelihood является стандартным способом замеров для открытых моделей.

  • для задач, где ответ однозначный, но не фиксированный, использовалась жадная генерация (greedy generation) до заданного критерия остановки (подаётся строка и генерируется ответ). Далее проверяется полное соответствие (exact match) этого ответа с правильным ответом.

Промпты. База промптов и выбор few-shots — наиболее интересный и дискуссионный вопрос, так как ответ генеративных моделей в значительной степени зависит от промпта. Один и тот же промпт может давать хорошие результаты с одной моделью и значительно худшие — с другой. Чтобы избежать этой ситуации, мы выбрали следующий подход: 1) для каждой задачи мы готовим набор разнообразных промптов, 2) полученные промпты равномерно распределяются по тестовому датасету. Далее считается среднее по всем промптам. Таким образом, мы снижаем зависимость итоговой оценки моделей от выбора формулировок промптов, и бенчмарк не превращается в хакатон по промпт-инжинирингу.

Какие есть ограничения у первой версии бенчмарка?

  • Поддержка кодовой базы. В 2024 году оригинальный фреймворк lm-evaluation-harness обновился до v.0.4.0. Так как мы используем данную кодовую базу, мы наследуем её обновления. Чтобы идти в ногу со временем и отвечать запросам пользователей, мы обновляем кодовую базу и вносим свои правки в этот международный проект, чтобы бенчмарк MERA был совместим с актуальной версией библиотеки. Тем самым есть поддержка международного open-source сообщества, с одной стороны, но и зависимость от неё — с другой.

  • Ограничение замеров через API. Кодовая база подразумевает наличие log-likelihood для части датасетов для замеров. Увы, не все API их предоставляют, поэтому не все модели можно замерить кодовой базой. Это основная причина, почему GPT4 или YandexGPT не представлены на первой версии лидерборда.

    • NB! Решение всех задач через генерацию может занизить результаты из-за того, что модель, отвечая правильно, может незначительно ошибиться с форматом. Классическая дилемма: бенчмарк проверяет способности модели или нам важно проверять, что модель четко следует инструкциям? Кажется, и то, и другое важно в зависимости от моделей и кейсов использования.

  • Нет разделения на SFT и pre-train модели. В первой версии MERA мы публиковали на лидерборде результаты для моделей всех возможных типов. Это хорошо с точки зрения свободы для пользователя и привлечения к бенчмарку сообщества, но плохо методологически. Для фундаментальных моделей такой замер интересен и очень сложен — мы видим, что у многих моделей качество по некоторым задачам на уровне рандома. Для моделей, которые дообучены через т. н. supervised fine-tuning (SFT), качество выше, но такие модели больше подвержены зависимости от количества фьюшотов и промптов. SFT могут быть дообучены как на инструкциях, так и на обычных текстах. Всё уникально, и хочется сравнивать свою модель с такой же по типу.

    • Фундаментальные модели и дообученные на инструкции по-разному реагируют на промпты. Для последних важна чёткость инструкции и формализация вывода ответа, также часто важно соответствие инструкции тому формату и подходу к формулированию, которому модель учили, иначе результаты могут быть занижены. В первой же версии в промпт базу закладывалось разнообразие промптов, часть из них была умышленно с четким описанием вывода, часть — без. Таким образом, мы получали среднюю оценку для разных способов формирования промпта. Однако такой способ замера потенциально ведёт к ухудшению результатов SFT-моделей.

    • SFT-модели специальным образом дообучены — как в API, так и в опенсорсных моделях есть специальные систем-промпты, с которыми учится модель, и они существуют во всевозможных форматах. Их разнообразие невозможно заранее учесть, также фреймворк lm-evaluation-harness не имел до недавнего времени поддержки системных промптов и вызова API. В связи с этим замеры первой версии бенчмарка проходили для SFT-моделей с выключенными системными промптами, что позволяло обеспечить равноправный замер для всех моделей.

! Выводы: наш первый релиз методологически полноценно отрабатывает замеры для фундаментальных моделей. Хоть методология и переносима на дообученные на инструкции модели, бенчмарк не в полной мере учитывал их особенности, а значит, замеры SFT-моделей в первой версии бенчмарка представлены с некоторой погрешностью. Наше стремление преодолеть эти ограничения и легло в основу MERA версии 1.2.0!

Что вошло в обновление?

! Прежде всего, внимание, мы переехали!
У MERA теперь есть организация в GitHub и отдельный аккаунт в HuggingFace. Пожалуйста, не ходите по старым ссылкам, обновления и дальнейшее развитие бренда MERA будет происходить в новых аккаунтах.

Обновление датасетов

  • В новом релизе текстового домена бенчмарка MERA под именем ruMMLU выложен полный переведённый с английского публичный датасет в таком же формате, как оригинальный. Теперь на сайте есть возможность мериться по этому датасету отдельно. Так как ответы открытые, то данный датасет расположен в разделе «Открытых/Диагностических» задач.

    Мы также с нуля сделали новый закрытый датасет по формату и методологии оригинального MMLU. Домены заложены как в оригинальном MMLU, но вопросы были созданы экспертами с нуля и адаптированы под реалии русского языка. Этот датасет получил название Massive Multitask Russian AMplified Understudy (MaMuRAMu). Обновлённый закрытый тест MaMuRaMu входит в основные задачи, по которым считается рейтинг, по нему также теперь на сайте представлена разбивка и сравнение моделей по доменам, а не только по средней доменной оценке.

  • Во избежание путаницы с публичными и закрытыми данными, аналогично предыдущему сету мы разделили датасет ruHumanEval на два. Закрытый датасет, который был создан для MERA c нуля, называется ruCodeEval. Датасет, переведённый с оригинала, — ruHumanEval, и по нему можно получить общий результат и посмотреть сравнение по моделям в разделе «Открытых/Диагностических» задач.

  • Мы выпустили новую расширенную версию датасета ruTiE. В закрытом тесте теперь 9 диалогов и считается среднее по всем текстовым диалогам.

! Датасеты BPS и SimpleAr из основных задач мы перенесли в открытые. Наши эксперименты показали, что практически все SFT-модели на всех оцениваемых разнообразных промптах показывают качество на этих задачах близкое к 100. Подобные задачи слишком простые для современных инструктивных моделей, поэтому мы перенесли эти датасеты в публичные: ими можно пользоваться, как некоторым sanity check для проверки своей модели.

NB! В новой версии 15 основных задач, из которых строится рейтинг, и 8 открытых публичных датасетов.

Обновление кодовой базы и системы промптов

Кодовая база и способ оценки
Полностью обновилась кодовая база проекта:

  1. Обновление оригинального lm-evaluation-harness, синхронизация нашего кода с оригинальным фреймворком. Для облегчения будущих обновлений фреймворк используется как сабмодуль в репозитории. Для совместимости с нововведениями из lm-evaluation-harness все задачи представлены в новом yaml-формате и добавлена возможность получения метрик локально на открытых (не участвующих в рейтинге) частях датасетов. Скрипт упаковки сабмита для отправки на сайт сразу упаковывает в архив и логи, необходимые для попадания на публичный лидерборд.

  2. Два способа оценки. В новом релизе бенчмарк позволяет замерять в двух форматах: используя log-likelihood или через генерации (те задачи, которые ранее обрабатывались только через log-likelihood). То есть замеры теперь доступны потенциально и для API. В генеративных вариантах multiple-choice задач (которые раньше замерялись только через log-likelihood) добавлена пост-обработка генераций моделей. Из генерации регулярным выражением достается первое отдельно стоящее число, буква или слово в зависимости от типа задачи.

  3. Поддержка API. Теперь есть возможность замерять по API модели, для этого необходимо только добавить в кодовую базу поддержку вашей модели. Инструкцию от авторов lm-evaluation-harness по добавлению API в фреймворк можно прочесть здесь.

  4. Поддержка Chat Template и систем промптов. Что это такое?
    Chat Template — это алгоритм, который принимает список словарей вида
    [{“role”: “system”, “content”: “брат, помоги решить задачу”}, {“role”: “user”, “content”: “сколько будет 2+2”}] и выдаёт строку на вход модели.

    Cистем промпт — это инструкция для модели.

    Она помещается в {“role”: “system”, “content”: “СИСТЕМНЫЙ ПРОМПТ”}.
    Через эти два понятия можно учитывать то, как дообучалась инструктивная модель. Следовательно, там, где разработчик сам замеряет или сообщает о том, как происходил замер, результаты с Chat Template и системным промптом будут выше, чем без них.

    Обратите внимание также на Multi-turn режим в HuggingFace для моделей ассистентов. Благодаря ему составление промпта с фьюшотами видоизменяется и может быть критичным для оценки модели (например, оценка для семейства моделей Llama работает без режима Multi-turn некорректно).

Промпты. Мы подробно изучили, как влияют на разнообразные модели промпты и число фьюшотов. Про это исследование мы расскажем отдельно в будущих публикациях. Сейчас важно, что на основе исследования мы переписали базу промптов.

Промпты теперь адаптированы под инструктивные модели, во всех прописан формат вывода и проведены эксперименты, не ломают ли промпты оценки. По результатам исследований количество шотов также было пересмотрено и у всех основных задач теперь 0-1 в зависимости от сложности задачи. Буста или просадки результатов для всех типов моделей (включая претрейн) при увеличении промптов статистически значимых не выявлено.

UX сайта

  • Лидерборд в новой версии даёт возможности динамически настраивать вывод рейтинга по фильтрам. Теперь можно выбирать по характеристикам и типам модели, по способу генерации, учитывать включение chat template при замере, выбрать конкретный датасет из всего множества. Больше гибкости для просмотра результатов и чёткое разделение разных типов моделей и задач.

  • Учёт логов и заполнение формы сабмита стали значительно удобнее. Мы ушли от необходимости каждый раз в случае публичного замера высылать логи файлов организаторам. Вы заливаете один ZIP-архив, в котором и результаты, и логи для прогонов, а формочка сабмита расставляет теги для воспроизводимости.

  • Добавили скачивание результатов рейтинга по фильтрам в формате Json/CSV.

  • Предоставили пользователям возможность посмотреть и сравниться с другими моделями по внутренним категориям у датасетов (особенно актуально для ruMMLU и MaMuRaMu ;)).

  • Теперь есть возможность замерить в личном кабинете n задач, не обязательно прогонять весь бенчмарк.

NB! Дизайн сайта бенчмарка и личный кабинет ещё будут меняться в течение года. Следите за обновлениями. Мы будем рады обратной связи по тому, что вам как участникам неудобно/хочется поправить/сделать более функциональным.

Как теперь читать лидерборд и как он соотносится со старым

Мы замерили более 100 разных моделей, запущенных в едином сетапе на одних и тех же картах и фиксированных значениях инференса.
NB! Напомним, что для загрузки сабмита на бенчмарк и дальнейшего попадания на лидерборд необходимо соблюдать фиксированные параметры запуска, количества шотов и ровно такие же промпты для задач.

Теперь можно посмотреть лидерборд в разных разрезах: только по проприетарным или открытым моделям, по претрейнам или SFT, с систем-промптом или без, по генеративной оценке или через log-likelihood.

Какие закономерности можно увидеть?

Разница между результатами в log-likelihood и генеративном формате различается в среднем на 1 процент для всех доступных моделей, что в рамках погрешности. 

! Мы советуем замерять претрейн модели всё-таки в формате log-likelihood, а SFT модели и API — в формате полностью генеративном.

ChatTemplate — это новое понятие в системе оценки для SFT моделей, которое поддерживается HuggingFace. Будьте осторожны, наши замеры показывают, что неправильное написание ChatTemplate или режима Multi-turn с фьюшотами сильно роняет качество моделей.

! Аккуратно прописывайте и проверяйте SFT-контракт вашей модели при замере своей модели и проверяйте чужие.

Наиболее интересными нам показались результаты моделей от OpenAI. В ходе замеров мы выявили, что если не указывать специальным образом системный промпт (напомню, что мы его не знаем, так как модель проприетарная), то можно заметить, что модель не всегда слушает инструкции и очень развернуто отвечает на вопрос, даже когда от нее требуется краткий ответ. Стилизованный развернутый ответ нравится пользователям, но на бенчмарках сложно вытащить конкретный ответ и добиться точного следования инструкции от моделей GPT4 и ChatGPT. Ещё сложнее выудить конкретный ответ из задач по субдомену код. Поэтому мы дополнительно вносили в системный промпт уточнения по формату ответов, иначе по кодовым задачам модель получала низкие результаты.

! Если инструкции для заданий в MERA фиксированные бенчмарком, то системный промпт общий для модели для всех задач разрешается. Мы рекомендуем обязательно его указывать для получения более корректных результатов, особенно если ваша модель училась с выравниванием (alignment).

Среди открытых моделей мы видим, что на текущий момент Qwen и Llama 3 занимают высокие позиции. Среди русскоязычных моделей на лидерборде на данный момент представлены GigaChat от Сбера и T-lite модели от Т-Банк. За счёт того, что можно выбрать отдельные домены, борд теперь позволяет прицельно посмотреть, в чём ваша модель лучше или хуже по конкретному домену (в частности, наиболее репрезентативный по доменам датасет MaMuRaMu). Так скажем, модель GigaChat лучше показывает себя в домене юриспруденция, а модели T-lite лучше справляются с вопросами по анатомии.

! Используйте лидерборд как возможность проанализировать результаты модели и сравнить её в разных доменах, размерах и навыках. Это в первую очередь помощь всем коллегам, кто занимается исследованиями и развитием моделей, чем арена и поле для корпоративных битв.

Заключение

Мы рады выпустить обновление независимого бенчмарка MERA. Новая версия — это ответ на ваши комментарии и предложения по развитию. Мы будем рады участию хабр-сообщества в дальнейшем развитии проекта и вашей обратной связи о MERA версии 1.2.0: новым датасетам, пулл-реквестам в кодовую базу и другим апдейтам. И, конечно, всей командой порадуемся появлению ваших моделей на нашем новом динамическом лидерборде!

Следующая эпик-цель и milestone для проекта — дополнение бенчмарка мультимодальными задачами. Мы готовим методологию оценки изображений, аудио- и видеомодальностей. Если у вас есть сложные релевантные датасеты, на которых вы бы хотели замеряться — напишите нам. Проект открытый, мы будем рады коллаборациям!

Присоединяйтесь к нам в создании новых датасетов и замеряйте свои модели на нашем бенчмарке <3

Полезные ссылки и материалы проекта:

Обратную связь по бенчмарку мы будем рады получить по почте mera@a-ai.ru, а предложения по улучшению кода и бенчмарков — в нашем официальном репозитории в issues и через pull requests.

Комментарии (3)