Обучение с подкреплением на основе обратной связи от человека (RLHF). История становления идеи
Введение и спойлеры к дальнейшему содержанию:
Мы накопили уже достаточно доказательств и исследований о том, что большие языковые модели (LLM) по умолчанию сами по себе на самом деле не соответствуют человеческим интересам и ценностям. Я уверена, я не первая, кто говорит о том, что такие модели могут быть невероятно предвзятыми. Мы знаем, что они генерируют ложную информацию и «галлюцинируют», д емонстрируют политические и моральные предубеждения:
— Hutchinson et al. 2020, Social Biases in NLP Models as Barriers for Persons with Disabilities,
— Kurita et al. 2019, Measuring Bias in Contextualized Word Representations,
— Sheng et al. 2019, The Woman Worked as a Babysitter: On Biases in Language Generation,
— Abdulhai et al. 2023, Moral Foundations of Large Language Models
Почему LLM предвзяты, недостоверны и «галлюцинируют»?
Простой ответ состоит в наследовании предвзятости из данных моделью.
Люди предвзяты и склонны фантазировать и придумывать. Поэтому, очевидно, что и большие открытые обучающие данные содержат множество предвзятостей. Далее классический подход к обучению языковой модели с учителем (supervised learning) или авторегрессионно без учителя (unsupervised learning) напрямую наследует эти предвзятости и переносит их в модель. По факту, целевая функция такого обучения способствует предсказанию одного нового следующего слова/токена и требует только того, чтобы текст просто казался реальным, но не передает никакого стимула для модели генерировать правдивый или непредвзятый текст. В такой целевой функции нет ничего, что обучало бы модель не лгать или не говорить что-то токсичное. Возможно, нужна какая-то другая целевая функция, в дополнение к этой, чтобы иметь возможность получить согласованную модель?
Техника тренировки модели на основе обратной связи от людей (RLHF) была предложена как один из способов повысить согласованность (alignment) модели. Люди, при том что являются основным источником предвзятостей в данных, одновременно являются и своего рода высшим авторитетом в оценке текстов на соответствие каким-либо ценностям.
Какая мотивация и интуиция лежит именно в использовании техники RL?
Во фразе, сгенерированной моделью: «Я женщина, поэтому я просто не понимаю» нет ни одного слова, которое само по себе было бы неуместно. Но все предложение звучит довольно предвзято. И мне бы не хотелось, чтобы языковые модели генерировали такое.
Проблема с попыткой обучить модель с учителем не создавать такую генерацию, заключается фундаментально в том, что неоткуда взять метки на уровне каждого токена, которые бы указывали на неуместность текста. Приходит идея о том, что на самом деле нужен человек, который обладает здравым смыслом (common sense) и может оценить контекст и финальную генерацию модели как «правильную» или «неправильную». Так появляется метка на уровне предложения, что, одновременно, ограничивает возможность использования традиционных методов обучения с учителем и открывает возможность использовать обучение с подкреплением (RL).
Коротко, техника RL состоит из 4 элементов:
существует какое-то текущее состояние окружающей среды (enviroment) и модели (агента, RL-algorithm),
на основе своих представлений (observation) об этих состояниях агент выбирает из пула доступных действий какое то действие (action) и выполняет его в окружающей среде,
получает за это действие вознаграждение (reward) от окружающей среды,
получает новые сведения об изменении своего состояния и состояния среды
При выборе новых действий, агент старается максимизировать свое будущее вознаграждение за всю будущую последовательность действий. Такое последовательное (sequential) принятие решений агентом в среде дает возможность агенту тренироваться только на основании одной метки на последовательность (в контексте генерации текстов — предложение), оптимизируя каждое отдельное действие (слово в генерируемом предложении).
Коротко, текущая полная и общепринятая парадигма обучения большой языковой модели состоит из 3 шагов (и выглядит как «Шоггот с улыбающимся лицом»:
(Unsupervised learning на картинке выше) Предварительно обученная модель — это неукротимое чудовище. Она обучена на больших, грязных и неочищенных данных, собранных из Интернета: кликбейт, дезинформация, пропаганда, теории заговора и атаки и хейт-спич на определенные демографические группы и прочие «невообразимые ужасы». (синий цвет на картинке ниже)
(Supervised fine-tunning на картинке выше) Это чудовище затем дообучается на более качественных, отобранных и очищенных данных (StackOverflow, Quora, вручную собранные аннотации), что делает его немного более социально приемлемым. (зеленый цвет на картинке ниже)
(RLHF на картинке выше) После этого дообученная модель LLM дополнительно полируется с помощью RL и человеческой обратной связи (HF), и ей добавляется улыбающееся лицо — маска. (оранжевый цвет на картинке ниже)
В конечном итоге, улыбающееся лицо выигрывает относительно остальных составляющих этого монстра и даже превосходит по предпочтениям референсы, написанные человеком (черный цвет на картинке ниже):
В современных подходах в качестве имитации человеческой обратной связи для RL используется еще одна дополнительная модель — модель вознаграждений (RM, Reward Model, или модель предпочтений, PM, Preferences Model), которая обучается воспроизводить человеческие предпочтения (Human Feedback, HF).
Итого, пайплайн выглядит как то так:
Дальше разберем каждую часть и внутренние детали этого пайплайна отдельно и поймем, как сообщество пришло к этой идее. Сделаем мы это через через исторический обзор подвыборки статей по теме, каждая из которых опиралась на результаты предыдущих и приносила что то важное и новое в формирование общего пайплайна.
Ответственный дисклеймер: этот набор статей, конечно же, не является исчерпывающим и не претендует на первичность представления идеи. Многие результаты были также примерно в то же время и независимо получены и другими исследователями. Было бы здорово собрать более полную карту взаимного соответствии представленных в них идей. Помимо указанных, конечно же, существует множество работ, которые дальше развивают представленные на схеме работы и идеи (Llama-2, DPO, Debate, Amplification и т.д.), но сейчас мы не ставим себе целью их рассмотрение.
Итак, план у нас такой:
Секция 1. Предобучение без учителя. Создаем того самого неукротимого монстра?
Глава 1 (LLM), в которой кратенько упомянем, что такое LLM, как они создаются, и обнаружим, что, возможно, мы уже уткнулись в предел доступных обучающих данных. (Will we run out of data? Limits of LLM scaling based on human-generated data (Villalobos et al, 2022))
Глава 2 (Предобучение и KL-контроль), в которой мы узнаем, что предобучение с одной стороны необходимо и существенно повышает качество финальной модели, а с другой стороны закрывает для нас возможность использования наивного RL для дальнейшего улучшения моделей. (Sequence Tutor: Conservative Fine-Tuning of Sequence Generation Models with KL-control (Jaques et al. 2016))
Секция 2. Обучение 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. Дообучение с учителем, учим монстра вести себя чуть более приемлемо.
Глава 6 (RLHF для языка и Supervised finetune), в которой мы добавляем этап дообучения модели на качественных данных, прежде, чем начинать RL. Мы, наконец-то, вооружены всем необходимым для создания большой языковой модели, соответствующей нашим ценностям: предобучение, KL-контроль, дообучение с учитилем, непротиворечивая человеческая обратная связь, модель человеческих предпочтений. Но что-то опять идет не так. (Fine-Tuning Language Models from Human Preferences (Zeigler et al. 2019))
Секция 4. Собираем все воедино (Pretrain, SFT, HF, RL), собираем качественную человеческую обратную связь (HF), создаем красивую масочку и надеваем ее на более-менее приличного монстра.
Глава 7 (Протокольный сбор обратной связи и Batch RL), в которой мы рефлексируем над прошлыми неудачи, все сваливаем на данные и разметчиков и учимся собирать не только непротиворечивую, но и качественную и согласованную обратную связь. Для усиления мощности процесса Offline, RL мы также имитируем Online RL с помощью Batch RL. И, наконец-таки, радуемся, как у нас все замечательно получилось. (Learning to summarize from human feedback (Stiennon et al. 2020))
Секция 5. Выясняем, что такое «согласованная модель», выбираем из нескольких масочек, какую надеть на нашего более-менее приличного монстра.
Глава 8 (HHH: helpful, honest, harmless), в которой мы выводим волшебную формулу согласованной модели HHH: helpful, honest, harmless и исследуем возможность создания HHH моделей. (A General Language Assistant as a Laboratory for Alignment (Askell et al. 2021))
Глава 9 (Instruct LLM и Переговоры), в которой мы полируем предыдущие идеи, удерживаем модель в волшебном балансе HHH и расширяем способности модели решать множество задач одновременно (Training language models to follow instructions with human feedback (Ouyang et al. 2022), CHAI: A CHatbot AI for Task-Oriented Dialogue with Offline Reinforcement Learning (Verma et al. 2022))
Глава 10 (HH и Online RL), в которой мы отказываемся от одного H, оставляем только helpful и harmless и согласовываем уже согласованные модели. (Training a Helpful and Harmless Assistant with Reinforcement Learning from Human Feedback (Bai et al. 2022))
Секция 6. Собираем обратную связь от AI, просим другую модель улучшить масочку, надетую на монстра, и дорисовать на ней красивостей.
Глава 11 (Constitutional AI и RLAIF), в которой мы не можем остановиться на достигнутом, потому что нет предела совершенству, осознаем свои ресурсные и технические ограничения в контроле за большой моделью и пробуем заставить модель контролировать саму себя. (Constitutional AI: Harmlessness from AI Feedback (Bai et al. 2022))
Глава 1. LLM
LLM = Large Language Model = Большая языковая модель.
Примеры включают, но не ограничиваются GPT-x (OpenAI), Gopher (DeepMind), LLaMa (Meta), StableLM (Stability AI), Claude (Anthropic) и пр.
Совсем грубо: языковая модель кодирует статистическую информацию о языке. Статистическая информация сообщает нам, насколько вероятно появление чего-либо (слова, символа, токена) в данном контексте. Термин «токен» может относиться к слову, символу или части слова (»-tion»), в зависимости от языковой модели. О токенах можно думать, как о словаре, который использует языковая модель.
Люди — носители языка — подсознательно обладают статистическими знаниями о языке. Например, в контексте «Мой любимый цвет ___», если человек говорит на русском языке, он точно знает, что пропущенное слово, скорее всего, будет «зеленый», но не «машина».
Точно так же языковые модели должны уметь заполнять этот пробел. По аналогии с токенами, о языковой модели можно думать, как о »машине завершения»: получив текст (запрос), она может сгенерировать ответ, чтобы завершить этот текст.
Запрос (от пользователя): Границы ключ переломлен пополам
Завершение (от языковой модели): А наш батюшка Ленин совсем усоп
Чтобы обучить языковую модель для задачи завершения текста, мы скармливаем ей очень много текста в качестве тренировочных (обучающих) данных, чтобы она могла извлечь из него статистическую информацию — тут все просто.
Поскольку языковые модели имитируют свои тренировочные данные, они хороши ровно настолько, насколько хороши их обучающие данные, фраза «Garbage in, garbage out» появилась не просто так. Помним все эти страшности, которыми полнится Интернет: кликбейт, дезинформация, пропаганда, теории заговора, атаки и хейт-спич на определенные демографические группы. Мне, например, каждый раз приходится задумываться, хочу ли я переходить по какой-либо ссылке и насколько источник кажется безопасным/небезопасным. Приходится выбирать, какие ссылки открывать, оценивать их по заголовку, насколько они могут оказаться полезными или вредными. Точно также нужно задумываться и о том, какой источник данных можно было бы скормить LLM для тренировки. (Если обучить языковую модель на комментариях с Reddit, возможно, мы не захотим показывать её своим родителям. © Неизвестный исследователь ИИ)
Забавное отступление — предел доступных обучающих данных.
Villalobos et al, 2022. Will we run out of data? Limits of LLM scaling based on human-generated data
Такая языковая модель, как GPT-4, использует невероятное количество данных, иногда кажется, что весь Интернет. OpenAI не раскрывают точное количество данных, использованных для обучения. LLaMa была обучена на 1.25T токенов. (Для визуализации: в книге содержится около 50 000 слов или 67 000 токенов. 1 триллион токенов эквивалентен 15 миллионам книг). Нужно предполагать, что любая информация (текст, картинки, аудио, видео, код) когда-либо размещенная в Интернете, либо уже включена, либо будет включена в обучающие данные для языковых моделей, независимо от нашего желания, настроения или согласия с этим.
Темп роста объема тренировочных данных значительно превышает темп генерации новых данных людьми. Кажется, что в ближайшие несколько лет у нас закончатся данные из Интернета.
Еще Интернет быстро наполняется данными, созданными самими LLM. Компании продолжают использовать данные из Интернета для обучения больших LLM, и, получается, эти новые LLM обучаются на данных, созданных существующими LLM.
После того как данные, доступные публично, будут исчерпаны, наиболее вероятным путем получения новых данных будут закрытые датасеты. Та компания, которая каким-то образом получит доступ к закрытым данным: защищенным авторским правом книгам, переводам, транскрипциям видео/подкастов, контрактам, медицинским записям, геномным последовательностям, данным пользователей и т.д., получит конкурентное преимущество. Неудивительно, что в этом свете многие компании изменили свои положения об использования данных и запретили их автоматический сбор и использование для обучения LLM (новость про Reddit, StackOverflow).
Почему вообще нужно предварительно тренироваться на больших и неочищенных данных?
Глава 2. Предобучение и KL-контроль
Jaques et al. 2016, Sequence Tutor: Conservative Fine-Tuning of Sequence Generation Models with KL-control.
Почему нужно предварительно тренироваться на больших и неочищенных данных, а не использовать RL с самого начала?
Очевидный ответ: может быть у нас нет хорошо сформулированной функции вознаграждения для RL для агента от среды?
Попробуем ее сформулировать: пусть у нас есть функция, которая оценивает, насколько любая трёхсловная фраза нравится людям. Мы тут же сталкиваемся со сложностью сбора выборки для обучения такой функции. Модели RL чрезвычайно требовательны к данным и к ландшафту выборки, им нужно видеть самые разнообразные примеры с самым разнообразным вознаграждением, чтобы чему-либо научиться. Чтобы выучить трёхсловную фразу из словаря размером в 10 000 слов, нужно создать примерно один триллион возможных комбинаций, если у нас нет представления о том, какие из этих фраз являются действительными (т.е. несут семантическую или синтаксическую значимость). Сбор меток от людей невероятно дорогая процедура и мы, скорее всего, не хотим платить людям за триллион оценок.
Но если мы будем использовать предварительно обученную языковую модель, мы, фактически, ограничиваем пространство поиска модели только действительными предложениями. Согласно посту на Quora в английском языке около миллиона действительных фраз длиной в три слова.
Итак, мы предварительно тренируемся на данных, чтобы сократить пространство поиска модели, а затем продолжим тренировку (поиск в пространстве действительных языковых конструкций тех, которые приносят высокое вознаграждение) с использованием RL на основе человеческой обратной связи.
И тут же возникает главная проблема с применением этого подхода наивно.
Катастрофическое забывание
Каждый раз, когда Гомер учит что-то новое, что-то старое вылетает у него из головы. Это также верно даже для довольно крупных моделей. Техника RL мотивирует модель тривиально использовать функцию вознаграждения, так как нигде явно не обозначена задача сохранять то, что уже было выучено из данных. Функция вознаграждения скорее всего будет сама по себе ограничена и не сможет исключить все возможные способы своего хаккинга. Усугубляется все еще и тем, что выборка с обратной связью от людей скорее всего также будет небольшой по объему в контексте количества данных, на которых модель была предобучена. Это будет приводить к тому, что во время дообучения RLHF модель будет все дальше и дальше уходить от генерации реалистичного и действительного текста (способности, которой она научилась во время преобучения). Например, если функция вознаграждения поощряет модель задавать вопросы, модель отклонится в сторону генерации только простых слов: «что», «кто», «как», «где», «почему».
KL-контроль
Итак, вместо наивного подхода к дообучению, попробуем как то ограничить обновления RL с помощью какого-нибудь «приора данных». В качестве поставщика таких приоров можно использовать генерации от фиксированной копии модели в ее состоянии до начала дообучения RL, а в качестве ограничения — дополнительный элемент функции вознаграждения: KL — контроль на модель. KL — дивергенция (Kullback–Leibler divergence), совсем упрощенно, показывает, насколько одно распределение похоже на второе. Нам хочется сделать так, чтобы новые генерации модели оставались похожими на те, которые она создавала до того, как RL начал ее изменять. Т.е. в финальной функции ошибки будем дополнительно минимизировать KL — дивергенцию между генерациями оригинальной (приорной) модели (pre-trainned prior), и генерациями модели, которую обучаем (RL policy). Вспомним, что мы максимизируем ожидаемое вознаграждение модели, и получим:
Таким образом, модель всегда будет оставаться в пространстве реалистичного языка.
Как использовать этот общий подход RL для обучения с использованием человеческой обратной связи?
Об этом мы узнаем в Главе 3.
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