Сотни людей собрались на конференции ICML на туториале про обучение с подкреплением на основе отзывов (reinforcement learning from human feedback, RLHF). Докладчик спросил, кто хочет размечать данные. Пять, быть может, десять человек подняло руки. И это никого не удивило.

Я с удовольствием выступил на ICML 2023, проходившей на Гавайях, с туториалом по обучению с подкреплением на основе отзывов совместно с Нейтаном Ламбертом из Hugging Face. Мы недавно опубликовали слайды туториала, а в этой статье я кратко перескажу на русском языке свою часть туториала, посвящённую разметке данных для RLHF.

Столько людей пришло послушать про RLHF!
Столько людей пришло послушать про RLHF!

Кто из вас хочет заниматься RLHF?

Весь зал поднимает руки.

Отлично! А кто из вас хочет размечать данные для RLHF?

Поднимается пять, в лучшем случае десять рук.

Я считаю, что очень важно говорить о разметке данных, особенно если это далеко не то, чем все хотят заниматься. RLHF расшифровывается как reinforcement learning from human feedback и означает обучение с подкреплением на основе человеческих предпочтений/отзывов. Обе части названия важны. Если наши данные не содержат хороших примеров того, что мы хотим от большой языковой модели (large language model, LLM), недостаточно будет просто запустить дорогостоящую процедуру её распределённого обучения.

Мы хотим, чтобы наши языковые модели были одновременно полезными, безопасными и честными. Но компьютеры пока не понимают, что это значит, поэтому человеческие отзывы позволяют нам донастроить модели в соответствии с нашими предпочтениями, оценивать результаты их работы и избежать утомительного подбора награды (reward engineering) при обучении с подкреплением.

Что размечаем?

Глубокое обучение позволяет тренировать модели, но в случае LLM мы пока не знаем, как делать это оптимально. Существуют различные мнения об их способностях и об объёме работы, которую необходимо проделать, чтобы они показывали хорошие результаты. Вот два примера, и что забавно, оба предоставлены одной и той же компанией — Meta:

  • В недавнем препринте статьи Zhou et al. (2023) сформулировали гипотезу поверхностного выравнивания (superficial alignment hypothesis). По их словам модель уже всё знает, необходимо лишь показать ей желаемый формат текстов на входе и на выходе. Таким образом отпадает необходимость в сложных процессах разметки данных, а для успешного обучения достаточно будет нескольких сотен инструкций. Посмотрим, примут ли статью к публикации, потому что если эта гипотеза подтвердится, она станет прорывом.

  • Напротив, в статье Llama 2 (Touvron et al., 2023) авторы заявляют, что «превосходство LLM в написании текстов держится на RLHF», что означает необходимость в большом количестве специфической разметки, о которой я расскажу дальше.

Давайте посмотрим на ещё три примера и попробуем увидеть закономерности. Первый пример — популярнейшая схема OpenAI InstructGPT (Ouyang et al., 2022), подобная схема для Claude от Anthropic (Bai et al., 2022) и, конечно же, аналогичная для Llama 2 от Meta (Touvron et al, 2023).

InstructGPT (Ouyang et al., 2022)
InstructGPT (Ouyang et al., 2022)
Claude (Bai et al., 2022)
Claude (Bai et al., 2022)
Llama 2 (Touvron et al., 2023)
Llama 2 (Touvron et al., 2023)

Во всех трёх схемах есть общие шаги:

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

  2. После этого применяем тонкую настройку (supervised fine‑tuning, SFT) на меньшем количестве специально отобранных инструкций и ответов.

  3. В конце мы используем человеческие предпочтения (human preferences), чтобы улучшить поведение нашей модели при помощи обучения с подкреплением.

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

На этапе тонкой настройки модели нужно собирать тексты, для чего можно использовать сайты в Интернете, разметку или синтетические данные. На этапе сбора предпочтений нужно получать суждения людей. Всё это нужно делать быстро, чётко и масштабируемо.

Быстрый экскурс в основы разметки данных

Прежде чем погрузиться в особенности RLHF, связанные с данными, нужно ненадолго остановиться на основах разметки данных, в целом.

Кто размечает данные? Тут может быть много вариантов:

  • высококвалифицированные исполнители (асессоры)

  • исполнители, не являющиеся экспертами (краудсорсинг)

  • предобученные модели

  • произвольное сочетание приведённых выше

Вне зависимости от того, кто размечает данные, необходимо подготовить инструкции и способы анализа качества.

Разметка данных при помощи краудсорсинга

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

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

Обычно разметка проводится на определённой платформе. Существуют как размещаемые (on‑premises) платформы, такие как Label Studio, CVAT, Prodigy, так и готовые платформы, например, Mechanical Turk, Scale, Surge и другие. Плюс размещаемых платформ в том, что их можно встроить в свою инфраструктуру и настроить под свои нужды. При этом преимущества готовых платформ в предоставлении активных исполнителей и способов заплатить им, что очень упрощает процесс разметки данных.

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

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

Основные компоненты разметки данных при помощи краудсорсинга
Основные компоненты разметки данных при помощи краудсорсинга

Декомпозиция заданий — разбиение изначального сложного задания на последовательность из маленьких более простых подзаданий. Эти подзадания выдаются исполнителям таким образом, так что на каждое из них ответ дают несколько разных исполнителей.

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

Хорошая инструкция к заданию включает в себя цель разметки, обзор интерфейса, шаги решения задачи, примеры хороших и плохих ответов, описание подхода к разметке редких и неочевидных случаев, а также справочные материалы. Бывает очень сложно написать хорошую инструкцию с первого раза, эта проблема иллюстрирована в примере No Vehicles in the Park.

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

Тонкая настройка модели (Supervised Fine-Tuning, SFT)

Во время изначального обучения и тонкой настройки модели используются тексты на естественном языке. Модель учится предсказывать следующее слово. Тексты обычно берутся из публичных корпусов, например, Common Crawl, RefinedWeb (Penedo et al., 2023), The Pile (Gao et al., 2020) и других. Как составить хорошие инструкции (также называются подводками или промптами; последний вариант совсем жуткий). Как получить такие же хорошие ответы?

Некоторые компании смогли выявить важные типы подводок. Давайте посмотрим на InstructGPT (Ouyang et al., 2022): генерация (45,6 %), вопросы с открытыми ответами (12,4 %), брейнсторминг (11,2 %), чаты (8,4 %), переписывание (6,6 %), автоматическое реферирование (4,2 %), классификация (3,5 %), другое (3,5 %), вопросы с закрытыми ответами (2,6 %) и извлечение (1,9 %). Виды подводок и их распределение могут отличаться в вашем случае. Команда OpenAI проанализировала и разметила историю взаимодействия пользователей с нейросетью и собрала набор данных для тонкой настройки InstructGPT.

Типы инструкций это не всё. Главный вопрос — сколько данных нам нужно. В литературе опубликованы следующие сведения.

Модель

Источник

Объём данных

Llama 2

Touvron et al. (2023)

28 тыс.

InstructGPT

Ouyang et al. (2022)

15 тыс.

Alpaca

Taori et al. (2023)

52 тыс.

Vicuna

Chiang et al. (2023)

70 тыс.

Dolly

Conover et al. (2023)

15 тыс.

OpenAssistant

Köpf et al. (2023)

более 10 тыс.

Claude

Bai et al. (2022)

137 тыс. + 369 тыс.

WizardLM

Xu et al. (2023)

624 тыс.

LIMA

Zhou et al. (2023)

1 тыс.

Набор данных не столь важен. Важнее всего, чтобы в нём были качественные подводки и ответы.

Где брать тексты?

Где же взять тексты? Есть три варианта:

  1. Наборы данных на основе модели строятся на взаимодействии пользователя с моделью. Увы, владельцы некоторых моделей запрещают обучать конкурирующие модели, но некоторые исследователи всё равно так делают.

  2. Наборы данных из текстов в Интернете используют данные Интернет‑сообществ, таких как Reddit, Quora, Stack Exchange и подобных. Обычно трудности кроются в отсутствии понятной лицензии и необходимости дополнительно чистить данные.

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

Ниже приведу краткое описание пяти популярных публичных наборов данных с подсказками и ответами.

  • Dolly — набор данных, размеченный экспертами из компании Databricks, содержащий 15 тыс. объектов.

  • Alpaca — набор данных на основе модели, полученный путём преобразования 175 первоначальных инструкций в 52 тыс. инструкций при помощи GPT-3.5.

  • WizardLM — набор данных, полученный путём выполнения специальных правил для усложнения и перетасовки Alpaca при помощи GPT-3.5. В результате получился крупный набор данных из 624 тыс. инструкций.

  • ShareGPT — плагин для браузера, который скачивает диалоги с ChatGPT и хранит их на специальном сервере. С лицензией на данные не всё понятно, но модель Vicuna обучалась на этом наборе данных из 70 тыс. объектов и неплохо работала.

  • OpenAssistant — пакет, включающий в себя мультиязычный набор данных под открытой лицензией, обученную модель, а также переиспользуемые инструменты разметки данных. Его создатели — LAION, организация, разработавшая модель Stable Diffusion. Я не уверен, что их разметка силами добровольцев совпадает с теми данными, которые используются для обучения лучших на сегодняшний день языковых моделей.

Всегда, когда мы используем данные на основе модели, можно заменить модель на разметку при помощи экспертов или краудсорсинга.

Как размечать тексты?

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

Одним из моих самых любимых примеров краудсорсинга является Soylent, опубликованный в статье Bernstein et al. (2010). Группа исследователей создала плагин для популярного текстового процессора, который выполнял автоматическое реферирование текста очень эффективно, при этом без использования методов машинного обучения; применялся только краудсорсинг. Был предложен универсальный подход к разметке под названием «найти‑исправить‑подтвердить» (Find‑Fix‑Verify), для которой изначальное задание по автореферированию текста делится на три подзадания:

  • Найти. Дан фрагмент текста, выберите проблемный участок.

  • Исправить. Дан фрагмент текста и проблемный участок, перепишите этот участок лучше.

  • Подтвердить. Проверьте, получился ли переписанный участок текста лучше оригинала. (Да/Нет)

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

В результате вместо того, чтобы решать сложную большую задачу написания ответов мы решаем намного более простую задачу, заключающуюся в агрегации бинарных меток (Да/Нет). А уже эта задача более‑менее решена научным сообществом (Zheng et al., 2017): небольшие наборы данных можно агрегировать простым голосом большинства, а более крупные наборы данных с минимум 1 тыс. ответов, следует использовать вероятностную модель Дэвида‑Скина (1979).

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

Человеческие предпочтения (Human Preferences)

После того как языковую модель обучили и донастроили, нужно обеспечить, чтобы она была полезной, безопасной и честной. Для этого снова нужна разметка. В отличие от тонкой настройки, задания для работы с человеческими предпочтениями устроены гораздо проще. Поскольку RLHF требует огромного количества меток, и мы не можем просто сформулировать мнение людей в виду функции награды, будем аппроксимировать их оценки отдельной моделью награды (reward model).

На основе пары «инструкция‑ответ» модель наград предсказывает, как бы человек оценил эту пару. Соответственно, задание для разметки проектируется с учётом нашего процесса обучения LLM. Если мы генерируем только два ответа на подводку, тогда отлично, можно остановиться на простом задании с двумя видами ответа. Если же у нас, как в случае с InstructGPT, ответов больше, ситуация становится менее очевидной, и появляется необходимость в дополнительной агрегации ранжирования.

Попарное сравнение ответов на заданную подводку
Попарное сравнение ответов на заданную подводку

Разметка и ранжирование

Как размечать ранжирование? Есть три подхода.

  • Поточечный. Каждой паре «подводка‑ответ» ставится в соответствие численное значение. К сожалению, каждый исполнитель имеет субъективную шкалу оценки, поэтому данные трудно использовать в дальнейшем. В некоторых сообществах, например, посвящённых машинному переводу, проводят стандартизацию ответов на этапе пост‑обработки (Adelani et al., 2022), но это всё же не самый надёжный способ качественно ранжировать данные.

  • Списочный. Для каждой подводки составляется список от лучших ответов к худшим (или наоборот). Хотя такой подход и кажется интуитивно понятным с точки зрения разметки, неочевидно, как включить его в процедуру обучения модели.

  • Попарный. Для каждый подводки семплируются и размечаются пары «подводка‑ответ», которые затем преобразуются в поточечные ответы с использованием таких алгоритмов, как Bradley‑Terry (1952).

В большинстве работ используются попарные сравнения. OpenAI и Hugging Face выложили свои инструкции по сбору человеческих предпочтений.

Сколько размечать?

Touvron et al. (2023) провели прекрасный анализ существующих наборов данных, полученных с помощью человеческих предпочтений, см. таблицу 6 в их статье.

Набор данных

Объём данных

Anthropic Helpful

122 тыс.

Anthropic Harmless

44 тыс.

OpenAI Summarize

177 тыс.

OpenAI WebGPT

20 тыс.

Stack Exchange

1 млн.

Stanford SHP

75 тыс.

Synthetic GPT-J

33 тыс.

Поскольку предпочтения субъективны, подготовка контрольных заданий усложняется. Рекомендую использовать синтетические данные от худшей модели, предыдущую версию обучаемой модели, очевидные ответы, либо готовый набор данных со схожей тематикой. В прошлом мы успешно воспользовались моделью меньшего размера, об этом мы писали в статье Pavlichenko & Ustalov (2023).

Структура модели награды

Несмотря на то, что попарное сравнение довольно просто применить, важно решить, какой будет гранулярность обратной связи в нашей модели. Если мы сравним только пару ответов, что делает один ответ лучше другого? Фактическая верность ответа — далеко не всё, потому что что ответ может оказаться оскорбительным, грубым или даже опасным. Поэтому есть смысл использовать многоаспектные критерии качества, такие как полезность, безопасность и честность (helpfulness, harmlessness, and honesty; Bai et al., 2022). Будете ли вы обучать единую модель награды или будете использовать смесь из трёх моделей, каждая из которых аппроксимирует определённый критерий? Это тоже надо утвердить при проектировании модели.

Разметка полезности ответов модели
Разметка полезности ответов модели

Использование обучения с подкреплением на основы отзывы позволяет LLM обрести индивидуальность и сохранить компромисс между полезностью, безопасностью и честностью. Однако, как обычно и бывает, с настройкой модели не всё так просто. Сколько ответов на одну подсказку? Каким образом мы семплируем данные? Как структурируем модель награды и соответствующее задание для разметки? При разметке используйте синтетические данные для контроля качества. Для более длинных текстов постарайтесь выбрать исполнителей с более высокой квалификацией. Подобный подход к разметке может использоваться и для ред‑тиминга после того, как обучение завершено.

Заключение

Ниже — основные выводы, которые были сделаны в данном туториале:

  1. Масштаб разметки должен быть хотя бы 10 тыс. вопросов для тонкой настройки и не менее 100 тыс. для сбора человеческих предпочтений.

  2. Между объёмом данных и качеством данных сделайте упор на качество, а не на размер, так как разметка данных — трудная задача.

  3. Исполнители должны понимать задание точно так же, как понимаете его вы. Поэтому во время разметки для контроля качества используйте синтетические данные и перекрёстную проверку: люди проверяют людей.

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

Я упоминал несколько способов агрегации и методов контроля качества в краудсорсинге. Моя команда создала открытую библиотеку для Python под названием Crowd‑Kit. Она включает в себя эффективные реализацию всех этих методов, метрики качества данных и согласованности ответов исполнителей, а также загрузчики популярных наборов данных для быстрого прототипирования. Очень рекомендую ей пользоваться, когда работаете с наборами данных, полученных при помощи краудсорсинга.

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


  1. rPman
    21.08.2023 14:46
    +1

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


    Вот бы всем миром собрались, и улучшили одну модель максимально эффективно.


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


    Пытаться обучить модель всему многообразию заблуждений и нелогичностей человечества обречено на провал.


    1. dustalov Автор
      21.08.2023 14:46

      RLHF не является оптимальным способом научить машины думать, но пока это самый яркий пример из того, что у нас есть. Люди постепенно собираются и делают вместе разные открытые инициативы вроде BLOOM и Open Assistant, но опыта у сообществ меньше, чем у компаний, и пока не всё работает хорошо (но я верю в людей).

      Важно понимать, что выравнивание в RLHF нужно не только для того, чтобы писать пользователям “As an AI language model ...”, а чтобы уточнить, как лучше общаться с пользователем. Одновременно обеспечить и безопасность, и полезность ответов довольно трудно, и это открытое направление исследований.