Как работает ChatGPT: Модель, стоящая за ботом

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

Как работает ChatGPT: Модель, стоящая за ботом

Большие языковые модели

ChatGPT – это экстраполяция класса моделей обработки естественного языка машинного обучения, известных как Large Language Model (LLM). LLM переваривают огромное количество текстовых данных и выводят взаимосвязи между словами в тексте. Эти модели выросли за последние несколько лет, поскольку мы наблюдаем прогресс в вычислительной мощности. LLM расширяют свои возможности по мере увеличения размера их входных наборов данных и пространства параметров.

Самое базовое обучение языковым моделям включает в себя предсказание слова в каких-либо последовательностях. Чаще всего это наблюдается либо как предсказание токена, либо как маскированная языковая среда.

Как работает ChatGPT: Модель, стоящая за ботом
Произвольный пример предсказания токена и маскированной языковой среды, сгенерированный автором

В этом базовом методе секвенирования, часто применяемом с помощью модели долговременной краткосрочной памяти (LSTM), модель заполняет пробел наиболее статистически вероятным словом, учитывая окружающий контекст. У этой последовательной структуры моделирования есть два основных ограничения:

  1. Модель не в состоянии оценить некоторые из окружающих слов адекватно. В приведенном выше примере, хотя “чтение” чаще всего ассоциируется с “ненавистью”, в базе данных “Джейкоб” может быть таким заядлым читателем, что модель должна придать больший вес “Джейкобу”, чем “чтению”, и выбрать ‘любовь’ вместо ‘ненавидит’.
  2. Входные данные обрабатываются индивидуально и последовательно, а не как единое целое. Это означает, что при обучении LSTM окно контекста фиксируется, расширяясь только за пределы отдельного ввода на несколько шагов в последовательности. Это ограничивает сложность взаимосвязей между словами и значениями, которые могут быть получены.

В ответ на эту проблему в 2017 году команда Google Brain представила трансформеров. В отличие от LSTMs, трансформеры могут обрабатывать все входные данные одновременно. Используя механизм самоконтроля, модель может придавать различный вес различным частям входных данных по отношению к любой позиции языковой последовательности. Эта функция позволила значительно улучшить вкладывание смысла в LLM и позволяет обрабатывать значительно большие наборы данных.

GPT и Механизм внимания

Модели Generative Pre-training Transformer (GPT) были впервые запущены OpenAI в 2018 году как GPT-1. Модели продолжали развиваться в 2019 году с GPT-2, 2020 году с GPT-3 и совсем недавно в 2022 году с InstructGPT и ChatGPT. До интеграции обратной связи с человеком в систему наибольший прогресс в эволюции модели GPT был обусловлен достижениями в области вычислительной эффективности, что позволило GPT-3 обучаться на значительно большем количестве данных, чем GPT-2, что дало ему более разнообразную базу знаний и возможность выполнять более широкий спектр задач.

Как работает ChatGPT: Модель, стоящая за ботом
Сравнение GPT-2 (слева) и GPT-3 (справа)

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

Механизм внимания, который управляет GPT, работает путём преобразования токенов (фрагментов текста, которые могут быть словом, предложением или другой группой текста) в векторы, которые представляют важность токена во входной последовательности. Для этого модель:

  • Создаёт вектор запроса, ключа и значения для каждого токена во входной последовательности.
  • Вычисляет сходство между вектором запроса с первого шага и ключевым вектором любого другого токена, беря точечное произведение двух векторов.
  • Генерирует normalized weights, передавая выходные данные шага 2 в функцию softmax.
  • Генерирует конечный вектор, представляющий важность токена в последовательности, путём умножения normalized weights, сгенерированных на шаге 3, на векторы значений каждого токена.

Механизм ‘multi-head’ внимания, который использует GPT, является эволюцией Механизма внимания. Вместо того, чтобы выполнять шаги 1-4 один раз, модель повторяет этот механизм несколько раз, каждый раз генерируя новую линейную проекцию векторов запроса, ключа и значения. Расширяя таким образом внимание к себе, модель способна улавливать подтексты и более сложные взаимосвязи во входных данных.

Как работает ChatGPT: Модель, стоящая за ботом

Несмотря на то, что GPT-3 внёс значительный прогресс в обработку естественного языка, его способность согласовываться с намерениями пользователя ограничена. Например, GPT-3 может выдавать выходные данные, которые:

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

Инновационные методики обучения были внедрены в ChatGPT, чтобы противодействовать некоторым из этих неотъемлемых проблем стандартных LLM.

ChatGPT

ChatGPT – это дочернее предприятие InstructGPT, которое внедрило новый подход к включению обратной связи с человеком в процесс обучения, чтобы лучше согласовать результаты модели с намерениями пользователя. Обучение с подкреплением на основе обратной связи с человеком (RLHF) подробно описано в документе OpenAI 2022 “Training language models to follow instructions with human feedback” и расписано ниже.

Шаг 1: Модель Supervised Fine Tuning (SFT)

Первая разработка включала тонкую настройку модели GPT-3 путём найма 40 подрядчиков для создания контролируемого обучающего набора данных, в котором подсказки имеют известные выходные данные для модели, на которых можно учиться. Входные данные, или подсказки, были собраны из реальных пользовательских записей в Open API. Затем разработчики написали соответствующий ответ, создав таким образом результат для каждого ввода. Далее модель GPT-3 была доработана с использованием нового набора данных для создания GPT-3.5, также называемой моделью SFT.

Чтобы максимально разнообразить набор данных подсказок, только 200 подсказок могли исходить от любого заданного идентификатора пользователя, и все подсказки, которые имели общие длинные префиксы, были удалены. Наконец, все приглашения, содержащие личную информацию (PII), также были удалены.

Категории подсказок:

  • Простые подсказки: любой произвольный запрос.
  • Наборы подсказок: инструкции, содержащие несколько пар запрос/ответ.
  • Пользовательские подсказки: соответствуют конкретному варианту использования, который был запрошен для Openal API.

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

  1. Прямой: “Расскажи мне о…”
  2. Синтез: Учитывая эти два примера истории, напишите ещё одну историю на ту же тему.
  3. Продолжение: Учитывая начало истории, закончите ее.

Компиляция подсказок из OpenAI API, написанных вручную разработчиками, привела к созданию 13 000 образцов ввода / вывода для использования в контролируемой модели.

Как работает ChatGPT: Модель, стоящая за ботом

Шаг 2: Reward Model

После обучения модели SFT на шаге 1, модель генерирует более согласованные ответы на запросы пользователя. Следующее уточнение происходит в форме обучения Reward Model, в которой входными данными является серия подсказок и ответов, а выходными данными является значение масштабирования, называемое Reward. Reward Model необходима для того, чтобы использовать обучение с подкреплением, в ходе которого модель учится производить результаты, максимизирующие её вознаграждение (см. шаг 3).

Для обучения Reward Model разработчикам предоставляется от 4 до 9 выходных данных модели SFT для одного запроса ввода. Их просят ранжировать эти результаты от лучших к худшим, создавая комбинации ранжирования результатов следующим образом:

Как работает ChatGPT: Модель, стоящая за ботом

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

Как работает ChatGPT: Модель, стоящая за ботом

Шаг 3: Модель обучения с подкреплением

На заключительном этапе модели выдаётся случайная подсказка и возвращается ответ. Ответ генерируется с использованием “policy”, которую модель изучила на шаге 2. Policy представляет собой стратегию, которую машина научилась использовать для достижения своей цели; в данном случае максимизации своего вознаграждения. На основе Reward Model, разработанной на шаге 2, определяется масштабируемое значение вознаграждения для пары запроса и ответа.

В 2017 году Шульман и др. ввели Proximal Policy Optimization (PPO), методологию, которая используется при обновлении модели по мере генерации каждого ответа. PPO включает в себя штраф за каждый токен Kullback–Leibler (KL) из модели SFT. Расхождение KL измеряет сходство двух функций распределения и наказывает за экстремальные расстояния. В этом случае использование штрафа KL уменьшает расстояние, на котором ответы могут находиться от выходных данных модели SFT, обученных на шаге 1, чтобы избежать чрезмерной оптимизации модели вознаграждения и слишком резкого отклонения от набора данных о намерениях человека.

Как работает ChatGPT: Модель, стоящая за ботом

Этапы 2 и 3 можно повторять неоднократно, хотя на практике это делалось нечасто.

Как работает ChatGPT: Модель, стоящая за ботом

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

Оценка модели выполняется путём выделения тестового набора во время обучения, который модель не видела. На тестовом наборе проводится серия оценок, чтобы определить, лучше ли справляется модель, чем её предшественник GPT-3.

Польза: способность модели делать выводы и следовать инструкциям пользователя. Разработчики отдавали предпочтение выводам из InstructGPT, а не GPT-3 в 85 ± 3% случаев.

Правдивость: склонность модели к неточностям. Модель PPO дала результаты, которые показали незначительное повышение правдивости и информативности при оценке с использованием набора данных TruthfulQA.

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

  1. Проинструктировано давать уважительные ответы: привело к значительному снижению токсических реакций.
  2. Проинструктировано давать ответы без каких-либо установок на уважительность: никаких существенных изменений в токсичности.
  3. Предписано обеспечить токсичный ответ: ответы на самом деле были значительно более токсичными, чем в модели GPT-3.

Для получения дополнительной информации о методологиях, используемых при создании ChatGPT и InstructGPT, прочитайте оригинальную статью, опубликованную OpenAI Training language models to follow instructions with human feedback, 2022 https://arxiv.org/pdf/2203.02155.pdf.

Как работает ChatGPT: Модель, стоящая за ботом

Ресурсы

  1. https://openai.com/blog/chatgpt/
  2. https://arxiv.org/pdf/2203.02155.pdf
  3. https://medium.com/r/?url=https%3A%2F%2Fdeepai.org%2Fmachine-learning-glossary-and-terms%2Fsoftmax-layer
  4. https://www.assemblyai.com/blog/how-chatgpt-actually-works/
  5. https://medium.com/r/?url=https%3A%2F%2Ftowardsdatascience.com%2Fproximal-policy-optimization-ppo-explained-abed1952457b

+1
0
+1
4
+1
0
+1
0
+1
0

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *