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

Алгоритм, сделавший ChatGPT таким «человечным» — Reinforcement Learning from Human Feedback

Время на прочтение8 мин
Количество просмотров12K
Представление о том, каким должен быть ИИ в массовой культуре, порождает наши ожидания от него
Представление о том, каким должен быть ИИ в массовой культуре, порождает наши ожидания от него

ChatGPT генерирует разнообразный и привлекательный для человека текст. Но что делает текст «хорошим»? Это субъективно и зависит от контекста. Например, если вы попросите сочинить историю, нужен творческий подход. Если вы запрашиваете информацию, то хотите, чтобы она была правдивой. А если вы просите написать код, то ожидаете, что он будет исполняемым.

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

Именно данные с фидбеком от людей позволили дообучить их языковую модель и сделать продукт таким «человечным».

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

Подробнее про сбор данных

ИИ настолько хорош, насколько хороши данные, на которых он обучался. Это отлично иллюстрирует старая известная поговорка garbage in, garbage out.

Чего не хватало предыдущим моделям? Предшественник ChatGPT, GPT-3, отлично связывал предложения вместе. GPT-3 обучался на данных из Интернета и показывал хорошие лингвистические способности. Однако, данные из Интернета никак не позволяли модели оптимизироваться под человеческий фидбек. Если говорить более точно - они никак не учитывали то, что хочет видеть пользователь.

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

Генерация Dall-E 2 по запросу "A seemingly endless view of African workers at desks in front of computer screens in a printmaking style." 
Генерация Dall-E 2 по запросу "A seemingly endless view of African workers at desks in front of computer screens in a printmaking style." 

OpenAI, конечно, не раскрывали подробности того, как они собирали данные, но есть некоторая информация из новостей:

  • Определение токсичности в текстах: та самая известная статья из Time. Сотрудники из Кении за 2 доллара в час размечали тексты с примерами насилия, разжигания ненависти и тд. Эти данные использовались для обучения детектора токсичности и исключения вредоносного контента.

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

  • Разметка диалогов людьми: для поиска ошибок или проблем в ответе ассистента, а также определению креативности и тд. По разным запросам разметчики давали свой идеальный ответ, а также оценивали разные ответы ассистента.

Формат собираемых данных можно узнать на официальном сайте OpenAI:

  1. Данные в формате диалога с ассистентом, где разметчик писал тексты за обоих - пользователя и ассистента (с подсказками прошлой версии GPT).

  2. Разметчики смотрели несколько вариантов ответа ассистента и упорядочивали от лучшего к худшему.

Именно эти данные позволили обучить ChatGPT. Далее разберем как.

Начинаем разбираться с RLHF

Reinforcement learning from Human Feedback (RLHF) включает несколько этапов. В следующих разделах мы разберем каждую часть подробнее.

Процесс обучения ChatGPT состоял из 3 шагов (источник):

  1. Supervised fine-tuning - SFT. Дообучение прошлой языковой модели (LM) на первом типе размеченных данных - с готовыми ответами.

  2. Reward model. Обучение модели вознаграждения (reward model) на втором типе данных - ранжировании людьми разных ответов бота.

  3. Reinforcement learning - RL. Использование reward model для дообучения языковой модели (LM) средствами обучения с подкреплением (Reinforcement Learning - RL).

И так несколько итераций.

Процесс обучения ChatGPT из их блог-поста
Процесс обучения ChatGPT из их блог-поста

SFT из 1-го шага не имеет отношения к RLHF. Это обычный supervised learning. Подробнее про этот шаг можно почитать здесь.

В чем недостаток SFT, из-за чего потребовались следующие шаги? Для его обучения требуются тексты, которые разметчики пишут с нуля. Но, процесс масштабируется гораздо эффективнее, когда разметчик видит несколько сгенерированных ответов и ранжирeет их.

Для знакомства с RLHF разберем 2-ой и 3-ий шаг:

  • обучение reward model,

  • дообучение LM с помощью RL.

Обучение модели вознаграждения - reward model

ИИ учит ожидания человека
ИИ учит ожидания человека

Что такое хорошо, и что такое плохо?

Создание модели вознаграждения на человеческих предпочтениях - это то, с чего начинается новизна в RLHF. Эта модель должна принимать текст и выдавать числовое значение вознаграждения - отражение предпочтения человека.

В основе Reward Model - тоже версия GPT, которая затем дообучается на предсказание оценок, выставленных людьми.

Обучение Reward Model на человеческих оценках (Human Scoring)
Обучение Reward Model на человеческих оценках (Human Scoring)

Пояснения к схеме:

  • Разметчики проставили оценки Human Scoring разным ответам языковой модели Language Model. Таким образом, для каждого сгенерированного текста мы знаем, насколько ответ модели соотвествует тому, что хотел бы увидеть человек.

  • На оценках людей обучаем модель вознаграждения Reward Model. Теперь у нас есть модель, которая по любому сгенерированному тексту может предсказать, насколько этот текст соответствует ожиданиям человека.

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

Дообучение языковой модели с помощью RL

Мы умеем автоматически оценивать тексты с позиции человека. Как обучить модель соответствовать хорошим оценкам? Для этого как раз подходит RL. Обучение с подкреплением (RL) полезно, когда оценить поведение проще, чем его создать.

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

Для начального знакомства с RL можно почитать, например, "Обучение с подкреплением: неформальное знакомство" и "Обучение с подкреплением: математический аппарат".

Если в классическом RL функция вознаграждения задается явно, то в RLHF используется выученная на оценках людей модель вознаграждения Reward Model, которую мы получили в предыдущем шаге.

Теперь разберем, как происходит обучение языковой модели.

Схема обучения RLHF
Схема обучения RLHF

Initial Language Model - SFT с первого шага.

Policy (политика) инициализируется языковой моделью и будет настраиваться в процессе обучения. Параметры модели заморожены (серые нейроны), потому что точная настройка всех параметров модели 10B или 100B+ является очень дорогой.

Затем модель обучается по вознаграждениям от Reward Model. Proximal Policy Optimization (PPO) используется для оптимизации Policy.

Разберем по шагам:

  1. По входящему текстовому запросу x генерируются два текста y1 и y2 - один из исходной языковой модели и один из текущей итерации Policy.

  2. Текст из текущей итерации Policy - y2 - передается в Reward Model для вычисления скалярного вознаграждения r.

  3. Тексты y1 и y2 сравниваются между собой, чтобы вычислить штраф за разницу между ними. Без этого штрафа оптимизация может начать генерировать текст, который слишком "далек" от диапазона, в котором действует модель вознаграждения. То есть модель может выводит несвязные текстовые фрагменты. Для вычисления штрафа используется расстояние Кульбака-Лейблера (KL).

  4. К вознаграждению r добавляется штраф за отклонение KL.

  5. Вознаграждение используется для обновления Policy с помощью PPO.

Более подробную информацию о том, как RLHF применяется к языковым моделям, можно найти в статье InstructGPT. Создатели утверждают, что их модель отличается от ChatGPT только в методах сбора данных.

Инструменты для обучения RLHF

В 2019 году OpenAI выложила первый код для обучения RLHF на языковых моделях, который был написан на TensorFlow.

Сейчас уже есть несколько активных репозиториев для RLHF на PyTorch:

  • TRL - Transformers Reinforcement Learning. TRL предназначен для дообучения предобученных языковых моделей в экосистеме Hugging Face с PPO.

  • TRLX, который возник как ответвление TRL. TRLX — это расширенная версия TRL, созданная CarperAI для работы с более крупными моделями для онлайн- и офлайн-обучения. На данный момент у TRLX есть API, способный к развертыванию больших языковых моделей LLM (например, 33 миллиарда параметров). Будущие версии TRLX позволят использовать языковые модели с параметрами до 200 млрд.

  • RL4LM - Reinforcement Learning for Language models. RL4LMs поддерживает дообучение и оценки LLM с широким спектром алгоритмов RL (PPO, NLPO, A2C и TRPO), функциями вознаграждения и метриками.

TRLX и RL4LM находятся в стадии активной доработки, поэтому можно ожидать добавление новых фичей.

Из открытых данных в Hugging Face Hub доступны датасеты от Anthropic и OpenAssistant.

Оценивание модели

RLHF помогает достичь хороших результатов по трем основным метрикам:

  1. Полезность: модель может следовать указаниям пользователя и делать правильные выводы.

  2. Правдивость: модель не склонна выдумывать факты. Тестировалась на наборе данных TruthfulQA.

  3. Безопасность: модель не склонна к ответам, которые могут быть вредными или токсичными. Тестировалась на наборах данных RealToxicityPrompts и CrowS-Pairs.

При этом, обучение с помощью RLHF может приводить к снижению качества в других задачах. Например, модель также оценивалась на традиционных zero-shot NLP-задачах, например, question answering, reading comprehension, и summarization. В некоторых из них качество модели было хуже, чем у GPT-3.

Недостатки подхода

Не все можно предусмотреть в разметке
Не все можно предусмотреть в разметке

Первым недостаком является зависимость модели от целого ряда субъективных факторов в данных для обучения:

  • Личные предпочтения тех, кто размечал и создавал инструкции для разметки.

  • Выбор текстов для разметки.

  • Модель может не учитывать потребностей и запросов всех пользователей.

Есть еще несколько моментов, на которые стоит обратить внимание:

  • Неясно, насколько улучшения модели связаны с использованием метода RLHF. Представленные результаты - это результат применения SFT и RLHF.

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

  • Модель вознаграждения может быть чувствительна к формулировкам в тексте. Это означает, что если два текста по смыслу одинаковы, но написаны по-разному, неясно, насколько результат RM может отличаться.

Что еще можно почитать

  • Статья Training language models to follow instructions with human feedback от OpenAI, описывает модель InstructGPT, которая является родственной моделью ChatGPT.

  • Cтатья от Anthropic исследует эффективность метода RLHF для языковых моделей, чтобы они были полезными и безопасными.

  • Статья Learning to summarize from Human Feedback описывает RLHF для другой NLP-задачи - summarization.

  • Proximal Policy Optimization: статья про алгоритм PPO.

  • Deep reinforcement learning from human preferences – одна из первых статей по применению RLHF в контексте игр Atari.

  • Альтернативы алгоритму RLHF предложены DeepMind в статьях Sparrow и GopherCite.

  • В статье от Anthropic проводится глубокий анализ проблемы согласования языковых моделей - alignment problem. Авторы исследуют, как можно настроить языковые модели, чтобы они лучше соответствовали тому, как люди говорят и понимают язык. Короткое резюме статьи можно почитать тут. У компании Anthropic также есть репозиторий для RLHF.

Краткие выводы

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

  • RLHF (Reinforcement Learning from Human Feedback) - это метод обучения языковой модели, который позволяет ей научиться соответствовать ожиданиям людей. Сначала выучивается модель вознаграждения, которая по тексту дает оценку, насколько ответ подходит человеку. Затем она используется для обучения языковой модели с помощью метода обучения с подкреплением (RL). В результате модель научится генерировать более соответствующие человеческим ожиданиям ответы на заданные тексты.

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


Для анонсов новых статей, а также более коротких мыслей по DS/ML/AI, подписывайтесь на мой телеграм-канал.

Теги:
Хабы:
Всего голосов 16: ↑15 и ↓1+14
Комментарии9

Публикации