RLHF. История становления идеи — 2
В прошлой части мы
верхнеуровнево познакомились с общим пайплайном RLHF,
повторили за старшими товарищами аналогию «Шоггота с улыбающимся лицом»,
посмотрели на создание неукротимого монстра (LLM),
упомянули необходимость предобучения на пусть и грязных, но больших данных,
а также успели дополнить технику наивного RL KL-контролем.
В этой части посмотрим на обучение RL сразу поверх предобученной модели. Пробуем создать красивую масочку и натянуть ее на неукротимого монстра.
Глава 3 (RLHF для языка и Offline RL), в которой мы первый раз и пока наивно пробуем применить техники предобучения, KL-контроля и сбора человеческой обратной связи для обучения языковой модели. Задаемся вопросами о сборе человеческой обратной связи, понимаем, что не всякая обратная связь одинаково полезна, а еще опасаемся применять Online RL. (Human-centric Dialog Training via Offline Reinforcement Learning (Jaques et al. 2019))
Глава 4 (Self-play), в которой мы осознаем преимущества и ограничения Offline RL, пробуем обойти негативные стороны Offline и Online RL и имитировать Online RL с помощью техники общения модели самой с собой. (Hierarchical Reinforcement Learning for Open-Domain Dialog (Saleh et al. 2019))
Глава 5 (Reward Model), в которой мы все еще бьемся с ограничениями Offline RL, избегаем Online RL, расширяем пространство доступных вознаграждений с помощью обучения дополнительной модели вознаграждений и еще раз задумываемся о виде человеческой обратной связи для обучения модели вознаграждений. (Deep reinforcement learning from human preferences (Christiano et al. 2017))
Глава 3. RLHF для языка и Offline RL
Jaques et al. 2019, Human-centric Dialog Training via Offline Reinforcement Learning
Как использовать общий подход RL для обучения с использованием человеческой обратной связи?
Когда мы добавляем к аббревиатуре RL еще две буквы HF, это, по факту, означает, что мы заменяем явно заданную функцию вознаграждения (reward function, RF) в пайплайне RL на обратную связь от человека (human feedback, HF), который теперь оценивает качество выбранного агентом действия.
Было:
Стало:
Какой вид обратной связи от человека подойдет для обучения RL агента?
Некоторая интуиция подсказывает нам с самого начала отказаться от идеи сбора простых ручных меток. Они могут оказаться не самой «богатой» и качественной обратной связью: будут ошибочны из-за мискликов, несогласованы между разными разметчиками, для меток сложно подобрать подходящую шкалу оценки, принятую всеми разметчиками, сложно подобрать критерии для такой шкалы и выразить в них все наши пожелания к поведению модели и т.д. Может быть, мы хотим использовать что-то другое? Например, социальную обратную связь? Это весьма богатый сигнал, который люди получают из своего окружения постоянно. Если говорить в контексте сбора обратной связи для обучения автономного домашнего робота, можно попросить человека просмотреть траектории этого робота и пометить их как хорошие или плохие. А можно наблюдать за социальными сигналами человека: языком тела, жестами, тоном голоса. Такие сигналы можно получать непрерывно, в отличие от ручного ввода сигналов, такая обратная связь лучше масштабируется. Получается обучение с человеком в цикле (human-in-the-loop) без дополнительных усилий со стороны человека.
Как собирать такую социальную обратную связь в контексте языковых моделей?
С помощью живого взаимодействия модели с пользователями и оценки сентимента (настроения) ответов человека при общении с моделью в диалоге. Кажется, что так можно понять, когда человек доволен или недоволен общением с ботом, и чем конкретно человек не доволен. Такой диалог естественным и пассивным образом дает подсказки о том, как протекает разговор, что бот делает хорошо, а что плохо.
В рамках разработки самой функции вознаграждения, авторы статьи
1) свели к минимум сбор ручных оценок диалогов человеком, чтобы не нарушать естественное течение разговора
2) сосредоточились на сборе пассивных сигналов из сентиментов (настроения) разговора
3) изучили литературу не только по диалоговым моделям, но и по человеческим разговорам и эмпатии в разговорах, и выработали гипотетический набор сигналов, на которых можно было бы обучаться — (1) умение вызывать положительные эмоции у собеседника, (2) смех, (3) не повторяться, (4) оставаться в теме разговора и (5) задавать вопросы.
Откуда собирать социальную и достаточно разнообразную обратную связь?
Разместить этих агентов в Интернете и дать им возможность общаться с людьми в сети? Но это на самом деле довольно опасно. Мы помним, что может произойти, если модель постоянно обновляется на основе обратной связи, которую она получает от пользователей в сети. Наши агенты могут также очень быстро научиться неуместному поведению (TayTweets, @TayandYou).
Итак, с одной стороны нужно иметь возможность тщательно протестировать модель перед развертыванием, а с другой — мы будто бы не можем постоянно учиться в сети. Так появляется разорванный цикл взаимодействия, где мы не можем исследовать обратную связь непрерывно онлайн. Нужно как-то использовать RL для обучения на статичных данных без возможности непрерывного исследования среды. Эта парадигма называется Offline RL и сама по себе является крайне нетривиальной задачей.
Offline RL
В чем проблема RL без доступа к исследованию среды? В том, что существуют некоторые области пространства среды, которые агент никогда не может посетить, чтобы исследовать и чтобы узнать значение функции вознаграждения в этих областях.
Если в качестве статичных данных доступна некоторая область пространства среды (желтая область на картинке выше), агент никогда не увидит состояние среды в белых областях во время обучения. Но в инференсе, ничто не ограничивает агента от перехода из желтых областей в белые. RL-агент оптимистичен в условиях неопределенности — т.е. он ожидает большего вознаграждения от попадания в неизвестную (белую на картинке выше) область. Поэтому он может переоценить ценность такого перехода, эта переоценка будет также распространяться и на предшествующие действия, что приведет к накоплению неограниченной ошибки в оценке ценности определенных действий и состояний.
Можно попробовать контролировать такой переход из желтых областей в белые области неопределенности с помощью техники копирования самого частого поведения из данных (behavioral cloning, красная линия на картинке выше). Но это не всегда будет являться оптимальной траекторией (на самом деле, на картинке оптимальная траектория проходит по низу карты).
Тут снова на выручку приходит KL-контроль. Только теперь нашим приором будет не модель (как было в главе 2), а сами статические данные и вероятности соответствующих действий из этих данных.
Как и в прошлый раз, KL-контроль помогает победить коллапс мод (mode collapse, коллапс режимов) — эффект, когда модель «застревает» на определенных шаблонах или стилях текста, игнорируя остальную часть возможного пространства ответов. Если вознаграждать модель за количество заданных пользователю вопросов, наивный RL также наивно использует функцию вознаграждения и отклонит модель от естественного языка. С использованием KL-контроля модель остается реалистичной, продолжает использовать естественный язык, но для оптимизации функции вознаграждения становится более дружелюбной, вежливой и поддерживающей (авторы шутят, называя такое поведение модели «канадским»).
В качестве хорошего бонуса авторы смогли подтвердить гипотезу, что оптимизация на основе однозначных бинарных ручных меток оценок диалогов «хорошо/плохо», несмотря на то, что такие метки должны являться хорошим и прямым сигналом мнения людей, масштабируется не так хорошо, как оптимизация на основе неявной социальной обратной связи.
Однако в этой работе также обнаружилась проблема: не смотря на то, что поведение модели, очевидно, стало более дружелюбным и вежливым, это не привело к более высоким оценкам качества разговора по мнению людей. Что происходит?
Это случай, когда обнаруживается некий «налог на выравнивание»? Оптимизируя функцию вознаграждения, модель действительно стала более вежливой, но это не то, что нужно людям на самом деле, и поэтому она не начала нравится людям больше?
Или выбранная функция вознаграждения неверна и не описывает «хороший разговор»?
Или это происходит из-за того, что исследование проводилось в академическом масштабе, были оплачены и собраны только несколько тысяч оценок людей (а это совсем не миллионы данных, которые использует OpenAI), так что просто не достаточно данных для обучения или для того, чтобы сделать корректный вывод о качестве модели?
Чтобы разобраться, попробуем уйти от режима Offline RL.
Глава 4. Self-play
Saleh et al. 2019, Hierarchical Reinforcement Learning for Open-Domain Dialog
Чтобы имитировать Online RL в безопасной среде, заменяем пользователя, который общается с обучаемой моделью, на другую «замороженную» модель и используем сентимент (настроение) текста, сгенерированного другой моделью, в качестве вознаграждения. Интересно, что в таком сетапе модель действительно достигает лучших оценок качества от людей по сравнению с базовыми языковыми моделями, а также по сравнению с другими базовыми RL подходами и даже моделью из предыдущей работы авторов.
Batch = модель из предыдущей работы авторов (и из нашей Главы 3)
Transformer = Transformer из Attention Is All You Need (Vaswani et al. 2017)
VHRED = Variational Hierarchical Recurrent Encoder Decoder (Serban et al. 2017)
REINFORCE = наивный агент, учится на self-play
VHRL (Variational Hierarchical Reinforcement Learning) = VHRED + REINFORCE
Кажется, что ответ на вопрос предыдущей главы — все такие не хватило данных. Агент, получивший доступ к обширной обратной связи, не ограниченной только собранным датасетом, справляется лучше. Эта гипотеза еще несколько раз эмпирически подтвердится и в последующих работах.
Можно ли использовать режим self-play бесконечно и ожидать, что модели будут улучшать свои способности также бесконечно?
Мы об этом узнаем только в главе 7. Но спойлер тут тоже упомянем: оказывается, что нет. Со временем модели начнут подстраиваться под функции вознаграждения друг друга и человеческие оценки их качества начнут падать.
Какая есть еще причина отдавать предпочтение в подобных задачах обучения LLM в пользу Offline RL по сравнению с Online RL (кроме уже упомянутой опасности из-за отсутствия контроля за обратной связью получить по итогу модель, обученную неподобающему поведению)?
1) Достаточность собранной обучающей выборки (в открытом доступе сегодня достаточно данных человеческой обратной связи, чтобы можно было позволить себе не тратиться на дополнительные разметки).
2) Простота с точки зрения инфраструктуры. Создание инфраструктуры для RLHF в крупном масштабе, как это, например, делает OpenAI, — это, мягко говоря, нетривиальная задача.
3) Возможность повторного использования конвеера обучения для новых экспериментов с новыми мета-параметрами. Для проведения нового эксперимента полного RLHF в сетапе Online RL придется, по сути, создавать новую среду для агента, нанимать новых разметчиков и т.д.
Можно ли как то еще обойти ограничения Offline и Online RL и одновременно использовать преимущества обоих подходов?
Глава 5. Reward Model
Christiano et al. 2017, Deep reinforcement learning from human preferences
Тут мы сделаем исторический шаг назад и вернемся в 2017. RLHF, как и любой другой RL начинался, конечно же, не с языковых моделей, а с игр. Начинаем почти заново с вопроса о том, что модели RL крайне прожорливы в смысле обучающих данных, а сбор обратной связи от людей — достаточно дорогая процедура.
Как можно решить проблему? Если запрос обратной связи от человека — это дорого, к чему еще можно сделать запрос об обратной связи?
Модель вознаграждений (Reward model).
Можно обучить модель вознаграждений на основе человеческой обратной связи. Эту модель можно будет опрашивать столько, сколько нужно (прям как в сетапе с self-play) и бесплатно. Теперь возможно выполнять весь цикл RL в симуляции, где модель вознаграждений заменяет человека.
Да, все еще нужно будет собрать достаточно много данных от людей для обучения качественной модели вознаграждений. И почему тогда все еще лучше обучать именно ее, как какой-то промежуточный этап, а не использовать достаточно объемную базу человеческих оценок для непосредственного обучения агента RL?
Потому что ожидается, что модель вознаграждений сможет лучше использовать разреженные человеческие оценки. Эмпирически, обучение с учителем лучше интерполирует и генерализирует на меньшем объеме данных, по сравнению с RL. Таким образом, мы ожидаем, что обученная с учителем модель вознаграждений поможет интерполировать точки данных, обобщив свои знания в инференсе и на неисследованные области данных. Бонусом, получим некоторую устойчивость против коллапса мод.
Так в пайплайн RLHF добавляется новый элемент — модель вознаграждений, вместо явной функции вознаграждений или явной человеческой обратной связи.
Было
Стало
Какой вид обратной связи нужно получать от людей и как собрать действительно качественные данные?
Люди на самом деле довольно плохо умеют давать обратную связь, особенно, когда запрашиваемые оценки выражены в каких то абсолютных единицах. Но вот задача сравнения двух образцов уже решается человеком надежнее и с большей вероятностью позволяет получить консистентные оценки от большого количества разметчиков. В таком сетапе предпочтения выбора между двумя образцами выражаются в виде 0 и 1, если какой-то образец предпочтительнее другого, либо в виде 0.5 и 0.5, если образцы равнозначны. Модель вознаграждений учится на этих данных имитировать человеческие оценки, а дальше эксплуатируется агентом в процессе RL. Важная деталь к вопросу сбора обратной связи, которую тут стоить отметить — это то, что авторы явно учитывают вероятность 10% ошибки (мисклик) собранной обратной связи в функции потерь при обучении модели вознаграждений.
Теперь агент обучается предпочитать одну траекторию другой, если суммарные вознаграждения одной траектории выше другой.
В своей работе авторы исследуют и сравнивают результаты обучения RL в трех сценариях:
с помощью явно сформулированной функции вознаграждения от среды MuJoCo, Arcade Learning Environment и OpenAI Gym (оранжевый цвет на картинке ниже)
с помощью явно переданной человеческой обратной связи в виде Offline RL (фиолетовый цвет на картинке ниже)
с помощью модели вознаграждений (RM), обученной на человеческих метках (спектр синего цвета на картинке ниже)
Агент, обученный на явных человеческих оценках (фиолетовый цвет на картинке выше) в большинстве случаев справляется хуже, чем агент, обученный с помощью явной функции вознаграждения от среды (оранжевый цвет на картинке выше). Что будто бы подтверждает теорию о том, что наивного обучения в лоб только в пространстве собранных меток от людей — недостаточно, чтобы качественно обучить агента.
А вот агент, обученный на модели вознаграждений (спектр синего цвета на картинке выше), справляется либо так же хорошо, либо иногда лучше, чем агент, обученный на функции вознаграждений от среды (оранжевый цвет на картинке выше). Т.е. имитация сигнала приближается по «богатству» сигнала к полному пространству вознаграждения от среды.
Так мы получили подтверждение, что модель вознаграждений (даже обученная на не очень большом количестве собранных меток) работает как минимум с той же точностью, что и явное вознаграждение от среды. Как следствие — получили возможность обучать агентов на качественном вознаграждении даже в ситуации, когда у нас нет возможности явно задать функцию вознаграждения.
Итого, наш сетап на данный момент содержит следующие инструменты:
предобучение, KL-контроль, непротиворечивая человеческая обратная связь, модель человеческих предпочтений.
Можно ли лучше? Что бы еще добавить? — Лучше можно, и весь предыдущий опыт МЛ разработки говорит нам, что добавить надо больше обучения богу обучения. Как? — Ответ тоже из эмпирического опыта — больше качественных данных и больше обучения с учителем (Supervised finetune).
Куда это нас приведет, мы узнаем в Главе 6.
Mrs Wallbreaker or: How I Learned to Stop Worrying and Love the AGI.
About AI Risk, AI Alignment, AI Safety, AI Ethics
https://t.me/MrsWallbreaker