Выпуск ChatGPT от OpenAI в конце прошлого года был феноменальным — даже моя бабушка спрашивает об этом. Его способность генерировать человекоподобный язык вдохновила людей на эксперименты с его потенциалом в различных продуктах. Его невероятно успешный запуск заставил даже таких технологических гигантов, как Google, выпустить собственную версию ChatGPT.

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

Трансформатор и временная шкала GPT

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

  • 2015. OpenAI был основан Сэмом Альтманом, Илоном Маском, Грегом Брокманом, Питером Тилем и другими. OpenAI разрабатывает множество различных моделей ИИ, отличных от GPT.
  • 2017. Компания Google опубликовала статью Внимание — это все, что вам нужно, в которой была представлена ​​архитектура трансформатора [2]. Преобразователь — это архитектура нейронной сети, которая закладывает основу для многих современных (SOTA) больших языковых моделей (LLM), таких как GPT.
  • 2018. GPT представлена ​​в документе Улучшение понимания языка с помощью генеративного предварительного обучения [3]. Он основан на модифицированной архитектуре трансформатора и предварительно обучен на большом корпусе.
  • 2019. GPT-2 представлен в Language Models are Unsupervised Multitask Learners [4], которые могут выполнять ряд задач без явного контроля во время обучения.
  • 2020. GPT-3 представлен в Language Models are Few-Shot Learners [5], который может хорошо работать с несколькими примерами в подсказке без тонкой настройки.
  • 2022. InstructGPT представлен в разделе Обучение языковых моделей следованию инструкциям с обратной связью от человека [6], который может лучше следовать инструкциям пользователя за счет точной настройки с учетом обратной связи с человеком.
  • 2022. ChatGPT, аналог InstructGPT, представлен в документе ChatGPT: Оптимизация языковых моделей для диалога. Он может взаимодействовать с людьми в разговорах благодаря тонкой настройке с использованием человеческих примеров и обучению с подкреплением на основе отзывов людей (RLHF).

Временная шкала показывает, что GPT развился из оригинальной архитектуры трансформатора и приобрел свои возможности через множество итераций. Если вы не понимаете такие термины, как трансформеры, предварительное обучение, тонкая настройка или обучение с подкреплением на основе отзывов людей, не беспокойтесь! Я объясню их все в следующих разделах.

Дайвинг глубоко за моделями

Теперь, когда вы знаете, что ChatGPT основан на преобразователях и предыдущих моделях GPT, давайте подробнее рассмотрим компоненты этих моделей и то, как они работают. Ничего страшного, если вы не знакомы с глубоким обучением, нейронными сетями или ИИ — я опущу уравнения и объясню концепции с помощью аналогий и примеров.

В следующих разделах я начну с общего обзора языковых моделей и НЛП, перейду к исходной архитектуре преобразователя, затем к тому, как GPT адаптировал архитектуру преобразователя, и, наконец, к тонкой настройке ChatGPT на основе GPT.

Языковые модели и НЛП

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

Языковые модели могут изучать библиотеку текстов (называемую корпусом) и предсказывать слова или последовательности слов с вероятностным распределением, т. е. с вероятностью появления слова или последовательности. Например, когда вы говорите «Том любит поесть…», вероятность того, что следующим словом будет «пицца», будет выше, чем «стол». Если он предсказывает следующее слово в последовательности, он называется предсказанием следующего маркера; если он предсказывает пропущенное слово в последовательности, это называется моделированием маскированного языка.

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

В типичном процессе НЛП входной текст проходит следующие этапы [8]:

  • Предварительная обработка: очистка текста с помощью таких методов, как сегментация предложений, токенизация (разбиение текста на небольшие фрагменты, называемые токенами), выделение корней (удаление суффиксов или префиксов), удаление стоп-слов, исправление орфографии и т. д. Например, «Том любит есть пиццу». будет преобразовано в ["Том", "нравится", "чтобы", "есть", "пицца", "."] и будет состоять из ["Том", "нравится", "чтобы", "есть", " пицца», «.».
  • Кодирование или встраивание: превратите очищенный текст в вектор чисел, чтобы модель могла его обработать.
  • Передача в модель: передача закодированного ввода в модель для обработки.
  • Получение результата: получите результат распределения вероятностей потенциальных слов, представленных в векторах чисел из модели.
  • Расшифровка: перевести вектор обратно в удобочитаемые слова.
  • Постобработка: уточнение вывода с помощью проверки орфографии, проверки грамматики, пунктуации, использования заглавных букв и т. д.

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

Трансформаторная архитектура

Архитектура трансформатора является основой для GPT. Это тип нейронной сети, который похож на нейроны в нашем человеческом мозгу. Преобразователь может лучше понимать контексты в последовательных данных, таких как текст, речь или музыка, с помощью механизмов, называемых вниманиеи самовнимание.

Внимание позволяет модели сосредоточиться на наиболее важных частях входных и выходных данных, изучая релевантность или сходство между элементами, которые обычно представлены векторами. Если он фокусируется на одной и той же последовательности, это называется самовниманием [2][9].

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

Трансформаторы имеют следующие компоненты [2]:

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

Кодер и декодер являются основными компонентами архитектуры преобразователя. Кодировщик отвечает за анализ и «понимание» входного текста, а декодер отвечает за создание вывода.

Если вам интересно, вы можете прочитать подробности о кодировщиках и декодерах. Если нет, смело переходите к следующему разделу, где мы рассмотрим GPT, вариант трансформаторов.

Кодер представляет собой стопку из нескольких одинаковых слоев (6 в оригинальной бумаге-трансформере). Каждый уровень имеет два подуровня: уровень самоконтроля с несколькими головками и уровень прямой связи с некоторыми соединениями, называемыми остаточным соединением и уровнем нормализации [2]. Подуровень самоконтроля с несколькими головками применяет механизм внимания, чтобы найти связь/сходство между входными маркерами, чтобы понять ввод. Подуровень прямой связи выполняет некоторую обработку перед передачей результата на следующий уровень, чтобы предотвратить переоснащение. Вы можете думать о кодировщиках как о чтении книг: вы будете обращать внимание на каждое новое прочитанное слово и думать о том, как оно связано с предыдущими словами.

Декодер похож на кодировщик в том, что он также представляет собой набор идентичных слоев. Но каждый уровень декодера имеет дополнительный уровень внимания кодер-декодер между уровнями самоконтроля и прямой связи, чтобы позволить декодеру следить за входной последовательностью. Например, если вы переводите «Я люблю тебя» (ввод) в «Je t'aime» (вывод), вам нужно знать, что «Je» и «I» совпадают, а «love» и «aime» выровнены.

Слои внимания с несколькими головками в декодере также отличаются. Они замаскированы, чтобы не обращать внимания ни на что справа от текущего токена, который еще не был сгенерирован [2]. Вы можете думать о декодерах как о свободной форме письма — вы пишете на основе того, что вы написали и что вы прочитали, не заботясь о том, что вы собираетесь написать.

От трансформаторов до ГПТ, ГПТ2 и ГПТ3

Полное название GPT — Generative Pre-trained Transformer. Из названия видно, что это генеративная модель, хорошо генерирующая выходные данные; он предварительно обучен, то есть извлек уроки из большого массива текстовых данных; это тип трансформатора.

Фактически GPT использует только декодерную часть архитектуры преобразователя [3]. Из предыдущего раздела о преобразователях мы узнали, что декодеры отвечают за предсказание следующего токена в последовательности. GPT повторяет этот процесс снова и снова, используя ранее сгенерированные результаты в качестве входных данных для создания более длинных текстов, что называется авто-регрессией. Например, если он переводит «Я люблю тебя» на французский, он сначала сгенерирует «Je», а затем использует сгенерированное «Je», чтобы получить «Je t’aime». (См. пунктирную линию на предыдущей иллюстрации).

При обучении первой версии GPT исследователи использовали неконтролируемое предварительное обучение с базой данных BookCorpus, состоящей из более чем 7000 уникальных неопубликованных книг [3]. Обучение без учителя похоже на то, что ИИ сам читает эти книги и пытается выучить общие правила языка и слов. В дополнение к предварительному обучению они также использовали контролируемую точную настройку для конкретных задач, таких как обобщение или вопросы и ответы. Контролируемый означает, что они будут показывать ИИ примеры запросов и правильных ответов и просить ИИ учиться на этих примерах.

В GPT-2 исследователи увеличили размер модели (параметры 1,5 миллиард) и корпус, который они передают в модель с WebText, которая представляет собой набор миллионов веб-страниц, во время неконтролируемого предварительного обучения [4]. Модель доказала, что с таким большим корпусом для обучения она может очень хорошо работать с широким спектром языковых задач даже без контролируемой тонкой настройки.

В GPT-3 исследователи сделали еще один шаг вперед, расширив модель до 175 миллиардов параметров и используя огромный корпус, включающий сотни миллиардов слов из Интернета, книг и Википедии. Исследователи обнаружили, что с такой огромной моделью и большим корпусом в предварительном обучении GPT-3 может научиться выполнять задачи лучше с одним (один выстрел) или несколькими примерами (несколько выстрелов) в приглашении без явного контролируемая тонкая настройка.

(Если вы хотите узнать больше о том, как заставить модели выдавать лучшие результаты, вы можете прочитать мою другую статью: Как использовать ChatGPT в управлении продуктом)

На данном этапе модель GPT-3 уже впечатляет. Но они больше похожи на языковые модели общего назначения. Исследователи хотели изучить, как он может следовать человеческим инструкциям и разговаривать с людьми. Поэтому они создали InstructGPT и ChatGPT на основе общей модели GPT. Давайте посмотрим, как они это сделали в следующем разделе.

Обучение GPT взаимодействию с людьми: InstructGPT и ChatGPT

После итераций от GPT к GPT-3 с растущими моделями и размером корпуса исследователи поняли, что более крупные модели не означают, что они могут хорошо следовать человеческим намерениям и могут давать вредные результаты. Поэтому они попытались настроить GPT-3 с помощью обучения с учителем и обучения с подкреплением на основе обратной связи с человеком (RLHF) [6][12]. > Благодаря этим этапам обучения появились две отлаженные модели — InstructGPT и ChatGPT.

Первый шаг — это обучение под наблюдением на человеческих примерах. Исследователи сначала предоставили предварительно обученному GPT кураторский, помеченный набор данных пар подсказок и ответов, написанных людьми. Этот набор данных используется, чтобы позволить модели изучить желаемое поведение на этих примерах. На этом этапе они получают контролируемую точную (SFT) модель.

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

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

Благодаря этому процессу с контролируемым обучением и обучением с подкреплением на основе отзывов людей модель InstructGPT (всего с параметрами 1,3 млрд) способна лучше выполнять задачи, которые следуют инструкциям человека, чем гораздо более крупная модель GPT-3 (с параметрами 175 млрд).

(Примечание. Однако это не означает, что InstructGPT лучше, чем GPT-3, во всех аспектах или областях. Например, GPT-3 все еще может иметь преимущество в создании более длинных или креативных текстов, таких как истории или статьи.)

ChatGPT — родственная модель InstructGPT. Процесс обучения для ChatGPT и InstructGPT аналогичен, включая те же методы обучения с учителем и RLHF, которые мы рассмотрели ранее. Основное отличие состоит в том, что ChatGPT обучается на примерах из диалоговых задач, таких как ответы на вопросы, болтовня, мелочи и т. д. [7]. Благодаря этому обучению ChatGPT может вести естественные диалоги с людьми. В разговорах ChatGPT может отвечать на дополнительные вопросы и признавать ошибки, что делает взаимодействие с ним более привлекательным.

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

Выводы

Я надеюсь, что после предыдущих объяснений у вас появилось более четкое представление о том, как работает модель, лежащая в основе ChatGPT, и как она превратилась в то, чем она является сегодня.

В качестве краткого обзора, вот наиболее важные выводы и ограничения моделей GPT:

  • ChatGPT основан на модели авторегрессионного преобразователя только для декодера, которая берет последовательность текста и выведет вероятностное распределение токенов в последовательности, итеративно генерируя по одному токену за раз.
  • Поскольку у него нет возможности искать ссылки в режиме реального времени, он делает вероятностные прогнозы в процессе генерации на основе корпуса, на котором он был обучен, что может привести к ложным заявлениям о фактах.
  • Он предварительно обучен на огромном массиве данных из Интернета и книг и точно настроен на примерах человеческих разговоров с помощью обучения с учителем и обучения с подкреплением на основе отзывов людей (RLHF).
  • Его возможности в основном основаны на размере его модели, а также на качестве и размере корпуса и примеров, из которых он извлек уроки. С некоторым дополнительным контролируемым обучением или RLHF он может работать лучше в определенных контекстах или задачах.
  • Поскольку корпус основан на веб-контенте и книгах, у них могут быть предубеждения, на которых модель может учиться, особенно в отношении социальных, культурных, политических или гендерных предубеждений, что приводит к предвзятым ответам на некоторые запросы.

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

(Обновление: GPT-4 анонсирован в марте 2023 года. Вот что вам нужно знать о GPT-4 и его последствиях для бизнеса)

(Знание того, как работает GPT, может стать большим шагом в его создании, но при реализации приложения на основе GPT/LLM может возникнуть гораздо больше проблем, прочтите Пособие по решению распространенных проблем при создании приложений GPT/LLM, если вы хочу знать, как их решить.)

Рекомендации

[1] Представляем OpenAI. OpenAI, 12 декабря 2015 г., https://openai.com/blog/introduction-openai/.

[2] Васвани, Ашиш и др. «Внимание — это все, что вам нужно». Достижения в области нейронных систем обработки информации 30 (2017 г.).

[3] Рэдфорд, Алек и др. «Улучшение понимания языка с помощью генеративного предварительного обучения». (2018).

[4] Рэдфорд, Алек и др. «Языковые модели — это неконтролируемые многозадачные учащиеся». Блог OpenAI 1.8 (2019): 9.

[5] Браун, Том и др. «Языковые модели — это малоэффективные ученики». Достижения в области нейронных систем обработки информации 33 (2020): 1877–1901.

[6] Оуян, Лонг и др. «Обучение языковых моделей следованию инструкциям с обратной связью от человека». препринт arXiv arXiv:2203.02155 (2022 г.).

[7] ChatGPT: оптимизация языковых моделей для диалога. OpenAI, 30 ноября 2022 г., https://openai.com/blog/chatgpt/.

[8] Мурали, Айшвария. Руководство по выполнению 5 важных шагов НЛП с использованием Python. Analytics Vidhya, 17 августа 2021 г., https://www.analyticsvidhya.com/blog/2021/08/a-guide-to-perform-5-important-steps-of-nlp- используя-python/.

[9] Кристина, Стефания. Механизм трансформирующего внимания. Мастерство машинного обучения, 15 сентября 2022 г., https://machinelearningmastery.com/the-transformer-attention-mechanism/.

[10] Доши, Кетан. Визуальное объяснение трансформаторов (часть 1): обзор функциональности. Medium, 3 июня 2021 г., https://towardsdatascience.com/transformers-explained-visually-part-1-overview-of-functionality-95a6dd460452.

[11] Косар, Вацлав. Прямая связь, самостоятельное внимание и ключ-значение. 2 января 2021 г., https://vaclavkosar.com/ml/Feed-Forward-Self-Attendion-Key-Value-Memory.

[12] Приведение языковых моделей в соответствие с инструкциями. OpenAI, 27 января 2022 г., https://openai.com/blog/instruction-following/.