Как стать автором
Обновить

Как я обошел современные GPT модели с помощью GPT2-small на задачах рассуждения

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров4.3K

Не так давно я уже писал статью по такому необычному явлению, как гроккинг - отложенная генерализация. Если долго тренировать модель на наборе данных, то тестовая точность достигнет 100% и модель станет безошибочно решать задачу. Звучит круто! Но вот проблема - никто до сих пор не мог применить гроккинг на задачах из реального мира, а мы это сделали и сейчас публикуемся на крупнейшей МЛ конференции. Если интересно, как мы этого достигли, то прошу под кат.

 
 

Привет! Меня зовут Роман и я сейчас получаю Ph.D. в Мюнхене. Одной из тем моей кандидатской является память и гроккинг. Последняя статья как раз посвящена этому необычному явлению, с ней мы проходим на большую конференцию и боремся за первое место в Paper of The Day - ваша поддержка будет незаменима.

Гроккинг

Представим, что мы собрали данные для ИИ-калькулятора. Например, 500 примеров вида: 2 × 3 = 6, 4 × 2 = 8 и так далее. Мы обучили модель на этих данных и теперь проверяем её работу на новых примерах, которых она раньше не видела: 10 × 10 = 100, 10 × 11 = 110. Если модель верно справляется с такой задачей, значит, она успешно обобщает полученные знания. Если же модель не дала ни одного правильного ответа, то обобщения не произошло — скорее всего, модель просто «запомнила» тренировочный набор данных.

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

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

Однако далеко не всегда возможно или рационально расширять выборку миллионами новых примеров или применять жёсткую регуляризацию — да и не всегда эти подходы дают желаемый результат. Возникает естественный вопрос: существуют ли альтернативные пути достижения качественного обобщения? Именно здесь и проявляет себя феномен «гроккинга», предлагающий совершенно иной подход к обобщению моделей.

Гроккинг— это феномен отложенного обобщения модели на небольших наборах данных.

Метрики на тренировочной и тестовой выборке для задачи модульного деления. Модель через 100 итерацией достигает 100%, и лишь через 1 миллион итераций достигает такого же результата на тестовой.
Метрики на тренировочной и тестовой выборке для задачи модульного деления. Модель через 100 итерацией достигает 100%, и лишь через 1 миллион итераций достигает такого же результата на тестовой.

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

Если интересно узнать больше, то я написал целую статью вместе с практикой - можете сами попробовать пронаблюдать гроккинг.

Почему гроккинг не применяли на реальных данных?

Помимо упомянутой неэффективности, существует и другая проблема. Несмотря на то, что в некоторых исследованиях удалось добиться существенного ускорения гроккинга, остаётся вопрос о его универсальности: гроккинг проявляется далеко не на всех задачах. Более того, до сих пор нет чёткого понимания того, какие именно условия, помимо продолжительного обучения, необходимы для того, чтобы этот феномен вообще возник.

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

Например, у нас есть атомарные факты:

Атомарные факты – это простые, неделимые утверждения, которые не зависят от других фактов.

  • Миша женат на Свете

  • Света дружит с Викой

Отсюда можно получить выведенные факт:

Выведенные факты - Это факты, которые получаются путём логической комбинации из других фактов

  • подруга жены Миши — Вика.

Задача композиции
Задача композиции

Обратите внимание на важную деталь: мы специально не упоминали Свету напрямую в формулировке вопроса, иначе задача композиции превратилась бы из двухшаговой в одношаговую. В такой задаче модели необходимо выполнить сразу несколько шагов логических рассуждений, чтобы найти конечный ответ.

Например, вопрос звучит так:

  • Кто подруга жены Мишы?

Модели необходимо проделать два шага рассуждений:

  • Понять, на ком женат Миша (Света)

  • Найти с кем дружит Света (Вика)

Так вот, в задачах рассуждения для появления гроккинга необходимо иметь определенный коэффициент выведенных фактов к атомарным. Для этого набора данных он был 3.6, то есть понимаете, что выведенных фактов по сравнению с атомарными должно быть в 3.6 раза больше! Как мы понимаем, в реальном мире такое очень редко встречается.

Чтобы лучше понять, насколько все плохо, можем посмотреть вместе на типичные данные для обучения LLM: википедия. Откройте любую страницу и посчитайте, сколько на одной странице атомарных фактов и выведенных. У меня получилось 1000 атомарных фактов к 12 выведенным на случайной странице. Как мы далеки от нашего коэффициента!

(Слева) График тестовой метрики от соотношения выведенных / атомарных фактов. Можно заметить, что если соотношения 3.6 (то есть на 1 атомарный факт приходится 3.6 выведенных), то сходимость не наступает. В целом, чем выше соотношение, тем быстрее сходимость. (Справа) График тестовой метрики в зависимости от размера набора данных - 2, 5 и 10 тысяч.
(Слева) График тестовой метрики от соотношения выведенных / атомарных фактов. Можно заметить, что если соотношения 3.6 (то есть на 1 атомарный факт приходится 3.6 выведенных), то сходимость не наступает. В целом, чем выше соотношение, тем быстрее сходимость. (Справа) График тестовой метрики в зависимости от размера набора данных - 2, 5 и 10 тысяч.

Работает ли это на реальных задачах?

Именно таким вопросом я задался и решил попробовать применить данных подход к датасету 2WikiMultiHopQA. Он составлен из страниц википедии и содержит n-шаговые рассуждения. Всего там 4 разных задачи:

  • Сравнение

  • Композиция

  • Умозаключение

  • Связующее сравнение

Для простоты, возьмем только первые два набора задач. Вот некоторые примеры из них:

Сравнение

Атомарные факты:

  • Страна Лувра – Франция

  • Страна Эльфевой Башни – Франция

Соответственно, вопрос, который мы задаем модели будет:

  • Находится ли Музей Лува и Эйфелева Башня в одной стране?

Композиция

Атомарные факты:

  • Режиссёр фильма «Месье Такси» — Андре Юнебель

  • Андре Юнебель умер в Ницце

Соответственно, вопрос, который мы задаем модели будет:

  • Где умер режиссёр фильма «Месье Такси»?

Даже в подготовленном датасете у нас коэффициент атомарных к выведенным фактам всего 0.5! То есть на каждый вопрос у нас два атомарных факта.

Что делать? Коэффициент необходимо поднять выше 3.6, чтобы модель смогла научиться решать подобные задачи! Мы решили это сделать с помощью генерации синтетических данных.

С задачей сравнения генерация проста – факты можно между собой сравнивать сколько угодно, если это логически возможно: возраст, места, время – это можно сравнивать внутри группы, но не между собой. Тут все относительно просто и правила не такие сложные, но вот с композицией все куда неоднозначнее.

Изначально набор данных из википедии выглядит примерно так:

И какие новые выведенные факты тут можно придумать, если атомарные факты не связаны?
И какие новые выведенные факты тут можно придумать, если атомарные факты не связаны?

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

Отправили Питера Джексона на 150 лет в прошлое. Зато это позволило нам сгенерировать больше выведенных фактов и достичь необходимого коэффициента.
Отправили Питера Джексона на 150 лет в прошлое. Зато это позволило нам сгенерировать больше выведенных фактов и достичь необходимого коэффициента.

С одной стороны, данный подход приведет к галлюцинациям при использовании, но на данном этапе нас интересует сама возможность использования такого подхода. В теории, можно сгенерировать достоверных данные, минимизируя риск таких галлюцинаций.

Тестировали мы данные только на реальных данных – не трогая сгенерированные атомарные и выведенные факты.

Более подробный алгоритм синтеза данных и параметры тренировки вы можете посмотреть в нашей статье.

Мы использовали GPT-4o-mini, чтобы преобразовать сгенерированные данные из формата графа в нормальный текст. Несмотря на все наши усилия, модель не всегда устойчиво справляется с задачей , что приводит к ошибкам: где-то выведенные факты не имеют атомарных, где-то наоборот, а где-то коэффициент меньше, чем мы ожидаем.

Результаты

Для наших экспериментов мы использовали GPT2-small без предобучения (~124 млн. параметров) и тренировали ее исключительно на имеющихся атомарных и выведенных фактах, используя 1xA100 в течение 200.000 эпох с батчем 512. Каждый эксперимент занимает примерно 12 часов. И еще один момент, прежде чем мы перейдем к результатам:

В нашем исследовании мы различаем структурированные и неструктурированные атомарные данные:

В случае структурированных данных мы убрали весь лишний текст и оставили только фактическую информацию в чистом виде, например:

  • Страна Лувра – Франция

В случае неструктурированных данных мы использовали оригинальные абзацы из Википедии без дополнительной обработки, где информация часто подаётся неявно, с большим количеством деталей и контекста. Например:

  • Лувр — один из старейших музеев с богатой историей коллекционирования художественных и исторических реликвий Франции, начиная со времён...

Давайте разберем получившиеся графики по одному.

(a) Точность на задаче структурированного сравнения (OOD-тест). На графике сравниваются две версии модели GPT2-small: оригинальная и «грокнутая» (т.е. та, которая обучалась с расширенным набором данных и достигла феномена гроккинга). Мы видим, что точность на внераспределительных (OOD, out-of-distribution) данных поначалу практически одинаковая и быстро достигает 100%. Но затем появляется заметная разница: «грокнутая» модель продолжает улучшать свои результаты со временем, в отличие от оригинальной версии, у которой точность стагнирует.

(b) Кривые обучения для задачи структурированного сравнения (IID и OOD). Здесь мы наблюдаем, что поведение на IID (In-Distribution) и OOD выборках очень схоже: после того, как модель достигает 100% точности на тренировочной выборке, точность на тестовой продолжает постепенно расти.

(c) Задача структурированной композиции. В этой задаче модель показывает почти идеальную точность на ID (In-Distribution) данных, однако точность на OOD данных остаётся на исходном низком уровне и не улучшается. Это значит, что модель не смогла обобщить навык композиции на данные, которых она не видела в тренировочных цепочках.

(d) Кривые обучения для задачи неструктурированного сравнения. Здесь использовались полные абзацы из Википедии без предварительной обработки. Из-за сложности таких данных её способности к обобщению на OOD-данные сильно ограничены, хотя точность на ID-данных при этом всё равно существенно улучшается со временем.

Наш подход работает! Точность «грокнутой» версии GPT2-small в целом заметно выше оригинальной и продолжает улучшаться даже после достижения 100% точности на тренировочных выборках. Для задач с структурированными данными результаты отличные практически везде, за исключением композиционных OOD-задач. Для неструктурированных данных (полные абзацы из Википедии) проблемы остаются заметными именно в OOD-тестах на сравнение.

У вас, наверное, остался вопрос: что такое OOD и ID?

ID (In-Distribution) – набор вопросов, для которых модель видела и атомарные факты, и примеры их использования во время тренировки.

Нет, это не значит, что модель видела вопросы из теста. Она видела, другие комбинации на основе атомарных фактов. Условно, Питер Джексон и его жена "ушли" в тестовую выборку, но вопрос про Питер Джексона и его снятый фильм - в тренировочную.

OOD (Out-of-distribution) – набор вопросов, для которых модель видела только атомарные факты во время тренировки.

Метрики для разных моделей на двух наборах данных. Проблема с GPT-4o и o1-mini, как и вообще с любыми другими моделями, они все обучались на википедии, поэтому тут сложно отделять тестовые данные от нетестовых, но, несмотря на это, на некоторых задачах гроккнутая версия GPT2 побеждает всех и достигает до 100% точности.
Метрики для разных моделей на двух наборах данных. Проблема с GPT-4o и o1-mini, как и вообще с любыми другими моделями, они все обучались на википедии, поэтому тут сложно отделять тестовые данные от нетестовых, но, несмотря на это, на некоторых задачах гроккнутая версия GPT2 побеждает всех и достигает до 100% точности.

Выводы

Несмотря на то, что нам удалось подтвердить реальность и работоспособность феномена гроккинга на реальных наборах данных, перед нами ещё остаётся немало вызовов. Среди наиболее острых проблем:

  • Сложность работы с неструктурированными данными:
    Модель гораздо хуже справляется с задачами, где информация подаётся в виде полных абзацев без чёткой структуры.

  • Проблемы обобщения на некоторых OOD-тестах:
    Несмотря на успехи на использованных комбинациях фактов, модель в задачи композиции не может обобщить знания на OOD данных. (Почему так происходит написано тут)

Почему так происходит? У нас есть несколько предположений:

  • В неструктурированных данных атомарные факты «размазаны» по тексту и окружены большим количеством шума, что затрудняет выделение эффективных логических схем.

  • Из-за появления новых сложных данных первоначального коэффициента (выведенных фактов к атомарным), равного 3.6, уже недостаточно. Возможно, нам понадобится генерировать ещё больше данных, чтобы обеспечить стабильность гроккинга.

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

Хотите помочь моей статье?

Боремся за второе место в рубрике Paper of The Day. Если вы хотите поддержать проект и меня в частности, то оставьте голос на Hugging Face, Спасибо!

👉 Оставить свой голос 👈

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

Также приглашаю вас в мой Telegram-канал! Там я регулярно публикую материалы про искусственный интеллект, результаты своих исследований и экспериментов, а также иногда пишу о стартапах и технологиях, связанных с ИИ.

До встречи!

Теги:
Хабы:
+24
Комментарии6

Публикации

Работа

Data Scientist
48 вакансий

Ближайшие события