Открыть таблицу лидеров LLM Полное погружение в DROP

Лидеры LLM Погружение в DROP - Полный обзор

Недавно в Open LLM Leaderboard появилось три новых бенчмарка: Winogrande, GSM8k и DROP, которые использовали оригинальные реализации, воспроизведенные в рамках EleutherAI Harness. При первом взгляде на результаты DROP мы заметили нечто странное: подавляющее большинство моделей набирали менее 10 из 100 возможных баллов по показателю f1-меры! Мы решили провести глубокое исследование и выяснить, что происходит. Присоединяйтесь к нам, чтобы узнать, что мы обнаружили!

Начальные наблюдения

DROP (Discrete Reasoning Over Paragraphs) – это оценка, в рамках которой модели должны извлекать актуальную информацию из текстовых параграфов на английском языке и выполнять дискретные логические операции над этой информацией (например, сортировка или подсчет элементов для получения правильного ответа, см. таблицу ниже для примеров). Используются метрики f1-меры и точного соответствия.

Мы добавили эту оценку в Open LLM Leaderboard три недели назад и обратили внимание, что показатели f1-меры у предварительно обученных моделей следуют неожиданному тренду: когда мы строим график DROP в зависимости от среднего значения результатов (ARC, HellaSwag, TruthfulQA и MMLU), получаемого на лидерборде, который является своеобразным показателем общей производительности модели, можно было ожидать, что результаты DROP будут с ним коррелировать (лучшие модели демонстрируют лучшую производительность). Однако это подтвердилось только в некоторых случаях, а у остальных результаты DROP были очень низкими, менее 10 баллов.

Вопросы нормализации

Продолжая наше исследование, мы заметили, что шаг нормализации, возможно, не работает должным образом: в некоторых случаях этот шаг нормализации игнорировал правильные числовые ответы, когда они следовали непосредственно за символом пробела (например, перевод строки). Давайте рассмотрим пример с генерацией 10\n\nПассаж: Перепись населения 2011 года составила 1 001 360 человек, а золотой ответ 10.

Процесс нормализации происходит в несколько этапов для генерации и золотого ответа:

  1. Разделение по разделителям |, - или .. Начальная последовательность генерации 10\n\nПассаж не содержит таких разделителей, поэтому после этого этапа она рассматривается как единое целое.
  2. Удаление знаков препинания. Первый токен становится 10\n\nПассаж (символ : удаляется).
  3. Приведение чисел к одному формату. Любая строка, которую можно преобразовать в число с плавающей точкой, рассматривается как число, преобразуется в число с плавающей точкой, а затем возвращается обратно в строку. 10\n\nПассаж остается без изменений, так как его нельзя преобразовать в число с плавающей точкой, в то время как золотой ответ 10 становится 10,0.
  4. Другие этапы Следует множество других этапов нормализации (удаление артиклей, удаление других пробельных символов и т.д.), и наш исходный пример преобразуется в 10 пассаж 2011,0 перепись населения 1001360,0.

Однако общий балл не вычисляется на основе этой строки, а на основе набора извлеченных из нее слов (bag of words, BOW), в данном случае {'перепись', 'населения', 'пассаж', '2011,0', '1001360,0', '10'}, который сравнивается с набором слов из золотого ответа, также прошедшего вышеописанную нормализацию, {10,0}. Как видите, они не пересекаются, хотя модель угадала правильный ответ!

Итак, если число следует за любым пробельным символом, который не является обычным пробелом, оно не будет пройдено через этап нормализации чисел и не совпадет со золотым ответом, если последний также является числом! Эта первая проблема, вероятно, серьезно повлияла на вычисление результатов, но, очевидно, это не было единственным фактором, приводившим к низким показателям DROP. Мы решили провести более детальное исследование.

Глубже в результаты

Продолжая наше исследование, наши коллеги из Zeno присоединились к нам и провели более подробное исследование результатов, рассмотрев 5 моделей, которые наиболее точно отражали проблемы, обнаруженные в показателях DROP: falcon-180B и mistral-7B показали худшую производительность по сравнению с ожидаемой, Yi-34B и tigerbot-70B показали очень хорошие результаты на DROP, коррелирующие с их средними показателями, а facebook/xglm-7.5B оказалась посередине.

Если хотите, можете попробовать анализировать результаты в проекте Zeno, вот ссылка!

Команда Zeno обнаружила еще две обеспокоивающие особенности:

  1. Ни одна модель не получила правильный результат на числовых ответах с плавающей запятой
  2. Модели высокого качества, которые генерируют длинные ответы, на самом деле имеют более низкий f1-балл

На данном этапе мы полагали, что оба случая неудач на самом деле вызваны одним и тем же корневым фактором: использование символа . в качестве стоп-слова (для завершения генерации):

  1. Ответы с плавающей запятой систематически прерываются до завершения генерации
  2. Модели более высокого качества, которые пытаются соответствовать формату промпта с небольшим количеством примеров, будут генерировать Ответ\n\nРазумный промпт для следующего вопроса. и прекращать генерацию только после разумного продолжения промпта, следующего за фактическим ответом на первом . В результате генерируется слишком много слов и получается плохой f1-балл.

Мы предположили, что оба этих проблемы можно решить, используя символ \n вместо символа . в качестве стоп-слова для завершения генерации.

Изменение символа завершения генерации

Итак, мы решили попробовать! Мы исследовали использование символа \n в качестве символа завершения генерации в доступных результатах. Мы разделили сгенерированный ответ на первом символе \n, если он был присутствовал, и заново вычислили баллы. Обратите внимание, что это только приближенный правильный результат, так как это не исправит ответы, которые были обрезаны слишком рано на символе . (например, ответы с плавающей запятой), но это также не даст нечестного преимущества какой-либо модели, так как все они страдали от этой проблемы. Однако это лучшее, что мы могли сделать, не запуская модели заново (так как мы хотели держать сообщество в курсе как можно скорее).

Полученные нами результаты были следующими – разделение на символе \n коррелирует очень хорошо с другими оценками и, следовательно, с общей производительностью.

Итак, что дальше?

Быстрые расчеты показывают, что повторный запуск полной оценки всех моделей будет довольно дорогим (полное обновление заняло 8 лет работы GPU, и большая часть времени была затрачена на DROP), поэтому мы оценили, сколько будет стоить только повторный запуск неудачных примеров.

В 10% случаев правильный ответ является числом с плавающей запятой (например, 12,25) и предсказания модели начинаются с правильного начала (для нашего примера – 12), но обрываются на символе . – такие предсказания могли бы быть правильными, если бы генерация продолжалась. Для них обязательно нужно будет повторно запустить модели! Наша оценка не учитывает предложения, которые заканчиваются числом, которое возможно было обрезано (40% других генераций), а также любые предсказания, испорченные нормализацией.

Чтобы получить правильные результаты, нам придется повторно запустить более 50% примеров, это огромное количество времени GPU! Нам необходимо быть уверенными, что теперь реализация будет правильной.

Обсудив это с фантастической командой EleutherAI (как на GitHub, так и внутренне), которая направляла нас по коду и помогала в наших исследованиях, стало ясно, что реализация LM Eval Harness следует официальному коду DROP очень строго: необходимо разработать новую версию оценки эталона! Поэтому мы приняли решение удалить DROP из Open LLM Leaderboard до создания новой версии.

Одно изыватся из этого исследования – ценность в том, чтобы у многих членов сообщества совместно исследовать эталон, чтобы обнаружить ошибки, которые ранее не замечались. Здесь вновь проявляется сила открытого исследования, сообщества и разработки в открытом доступе, так как позволяет прозрачно исследовать корневую причину проблемы, которая существует уже несколько лет на эталоне.

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

Большое спасибо многим участникам сообщества, которые указали на проблемы с баллами по DROP, а также огромное спасибо командам EleutherAI Harness и Zeno за их большую помощь в решении этой проблемы.