Как на самом деле работает ChatGPT: объяснение для не технарей
Это перевод статьи: https://bootcamp.uxdesign.cc/how-chatgpt-really-works-explained-for-non-technical-people-71efb078a5c9
Автор: Guodong (Troy) Zhao
Выход ChatGPT, созданного OpenAI в конце прошлого года, был явлением феноменальным - даже моя бабушка спрашивает об этом. Его возможности генерировать язык, похожий на человеческий, вдохновляют людей экспериментировать с его потенциалом в различных продуктах. Его крайне успешный запуск даже поставил давление на гигантов технологической отрасли, таких как Google, чтобы спешить выпустить свою собственную версию ChatGPT.
Но давайте будем честными, для не технических менеджеров продуктов, дизайнеров и предпринимателей, внутреннее устройство ChatGPT может показаться как волшебный черный ящик. Не волнуйтесь! В этой статье я постараюсь объяснить технологию и модель, лежащие в основе ChatGPT, как можно проще. К концу этой статьи вы получите хорошее представление о том, что может делать ChatGPT и как он осуществляет свою магию.
Таймлайн трансформера и GPT
Прежде чем мы углубимся в реальный механизм работы ChatGPT, давайте кратко рассмотрим историю развития архитектуры трансформера языковых моделей и разных версий GPT, чтобы вы могли получить лучшее представление о том, как эти вещи эволюционировали в ChatGPT, которым мы располагаем сегодня.
Изображение от автора
- 2015 год. Основателями OpenAI стали Сэм Альтман, Илон Маск, Грег Брокман, Питер Тиль и другие. OpenAI разрабатывает множество различных моделей искусственного интеллекта, помимо GPT.
- 2017 год. Google опубликовала статью "Attention is All You Need", которая представила архитектуру трансформера [2]. Трансформер - это архитектура нейронной сети, которая лежит в основе многих современных моделей обработки естественного языка, таких как GPT.
- 2018 год. GPT был представлен в работе "Improving Language Understanding by Generative Pre-training" [3]. Он основан на модифицированной архитектуре трансформера и предварительно обучен на большом корпусе текстов.
- 2019 год. GPT-2 был представлен в работе "Language Models are Unsupervised Multitask Learners" [4], который может выполнять ряд задач без явного наблюдения при обучении.
- 2020 год. GPT-3 был представлен в работе "Language Models are Few-Shot Learners" [5], который может хорошо работать с небольшим количеством примеров в запросе без настройки.
- 2022 год. Был представлен InstructGPT в работе "Training language models to follow instructions with human feedback" [6], который может лучше следовать инструкциям пользователя, настраиваясь с помощью обратной связи от человека.
- 2022 год. ChatGPT, родственник InstructGPT, был представлен в работе "ChatGPT: Optimizing Language Models for Dialogue". Он может взаимодействовать с людьми в беседах, благодаря настройке с помощью примеров от людей и обучению с подкреплением на основе обратной связи от человека (RLHF).
Эта временная линия показывает, что GPT развивался из исходной архитектуры трансформера и получил свои возможности благодаря многократным итерациям. Если вы не понимаете термины, такие как трансформеры, предварительное обучение, настройка и обучение с подкреплением на основе обратной связи от человека, не беспокойтесь! Я объясню все это в следующих разделах.
Глубокое погружение в модели
Теперь, когда вы знаете, что ChatGPT основан на трансформерах и предшествующих моделях GPT, давайте ближе рассмотрим компоненты этих моделей и то, как они работают. Если вы не знакомы с глубоким обучением, нейронными сетями или искусственным интеллектом - я не буду использовать уравнения и буду объяснять концепции с помощью аналогий и примеров.
В следующих разделах я начну с обобщенного обзора языковых моделей и NLP, затем перейду к оригинальной архитектуре трансформера, затем к тому, как GPT адаптировал архитектуру трансформера, и, наконец, к тому, как ChatGPT настраивается на основе GPT.
Языковые модели и NLP
Существует множество типов моделей искусственного интеллекта или глубокого обучения. Для задач обработки естественного языка (Natural Language Processing - NLP), таких как беседы, распознавание речи, перевод и краткое изложение, мы обращаемся к языковым моделям для помощи.
Языковые модели могут изучать библиотеку текста (называемую корпусом) и предсказывать слова или последовательности слов с вероятностными распределениями, то есть как вероятно, что слово или последовательность может произойти. Например, когда вы говорите «Том любит есть ...», вероятность того, что следующее слово будет «пицца», будет выше, чем «стол». Если предсказывается следующее слово в последовательности, это называется предсказанием следующего токена; если предсказывается отсутствующее слово в последовательности, это называется моделированием маскировки языка.
Так как это вероятностное распределение, может быть много вероятных слов с разными вероятностями. Хотя вы можете думать, что всегда лучше выбирать лучшего кандидата с наивысшей вероятностью, это может привести к повторяющимся последовательностям. Поэтому на практике исследователи добавляют некоторую случайность (температуру) при выборе слова из топ-кандидатов.
Изображение от автора
В типичном процессе обработки естественного языка (NLP) входной текст проходит следующие этапы [8]:
- Предобработка: очистка текста с помощью методов, таких как сегментация предложений, токенизация (разбиение текста на маленькие части, называемые токенами), стемминг (удаление суффиксов или префиксов), удаление стоп-слов, исправление орфографии и т.д. Например, "Том любит есть пиццу." будет токенизировано как ["Том", "любит", "есть", "пицца", "."] и приведено к основной форме, например, ["Том", "любит", "есть", "пицц", "."].
- Кодирование или встраивание: преобразование очищенного текста в вектор чисел, чтобы модель могла его обработать.
- Подача на вход модели: передача закодированного входа модели для обработки.
- Получение результата: получение результата вероятностного распределения потенциальных слов, представленных векторами чисел, от модели.
- Декодирование: преобразование вектора обратно в слова, читаемые человеком.
- Постобработка: улучшение вывода с помощью проверки орфографии, проверки грамматики, пунктуации, заглавных букв и т.д.
Исследователи искусственного интеллекта придумали множество различных архитектур моделей. Трансформеры, тип нейронной сети, были в тренде в последние годы и стали основой для GPT. В следующем разделе мы рассмотрим компоненты и механизмы трансформеров.
Архитектура трансформера
Архитектура трансформера является основой для GPT. Она является типом нейронной сети, которая похожа на нейроны в нашем человеческом мозге. Трансформер может лучше понимать контексты в последовательных данных, таких как текст, речь или музыка, благодаря механизмам, называемым вниманием и самовниманием.
Внимание позволяет модели фокусироваться на наиболее релевантных частях ввода и вывода, изучая взаимосвязь или сходство между элементами, которые обычно представлены векторами. Если модель фокусируется на той же последовательности, это называется самовниманием [2][9].
Механизм внимания измеряет соответствие/сходство между каждым элементом. Изображение от автора.
Давайте возьмем следующее предложение в качестве примера: "Том любит есть яблоки. Он ест их каждый день." В этом предложении "он" относится к "Тому", а "их" относится к "яблокам". И механизм внимания использует математический алгоритм, чтобы сообщить модели, что эти слова связаны, вычисляя оценку сходства между векторами слов. Благодаря этому механизму трансформеры могут лучше "понимать" значения в текстовых последовательностях более связанным образом.
У трансформеров есть следующие компоненты [2]:
- Встраивание и позиционное кодирование: превращение слов в векторы чисел
- Энкодер: извлечение признаков из входной последовательности и анализ ее значения и контекста. Он выдает матрицу скрытых состояний для каждого входного токена, которую следует передать декодеру.
- Декодер: генерация выходной последовательности на основе вывода из энкодера и предыдущих выходных токенов.
- Линейный и Softmax-слои: превращение вектора в вероятностное распределение выходных слов
Энкодер и декодер являются основными компонентами архитектуры трансформеров. Энкодер отвечает за анализ и "понимание" входного текста, а декодер - за генерацию выходного.
Изображение автора. Адаптировано из “Attention is All You Need” [2]
Энкодер является стопкой из нескольких идентичных слоев (6 в оригинальной статье о трансформерах). Каждый слой имеет два подслоя: многофакторный слой само-внимания и слой прямого распространения, с некоторыми соединениями, называемыми остаточными соединениями и нормализацией слоя [2]. Подслои многофакторного слоя само-внимания применяют механизм внимания для поиска связи/сходства между входными токенами для понимания ввода. Подслои прямого распространения выполняют некоторую обработку перед передачей результата на следующий слой, чтобы предотвратить переобучение. Вы можете представить себе энкодеры как чтение книг - вы обратите внимание на каждое новое слово, которое вы прочитаете, и задумаетесь, как оно связано с предыдущими словами.
Декодер похож на энкодер, также является стопкой из идентичных слоев. Но каждый слой декодера имеет дополнительный слой внимания энкодера-декодера между подслоями само-внимания и прямого распространения, чтобы декодер мог обращаться к входной последовательности. Например, если вы переводите "Я люблю тебя" (вход) на "Je t'aime" (выход), вам нужно знать, что "Je" и "Я" согласованы, а "love" и "aime" согласованы.
Многофакторные слои внимания в декодере также отличаются. Они маскированы, чтобы не обращаться к чему-либо справа от текущего токена, который еще не был сгенерирован [2]. Вы можете представить декодеры как свободное написание - вы пишете на основе того, что вы написали и что вы прочитали, не заботясь о том, что вы собираетесь написать.
От трансформеров к GPT, GPT2 и GPT3
Полное название GPT - Generative Pre-trained Transformer (Генеративный Предобученный Трансформер). Из названия видно, что это генеративная модель, хорошо работающая с генерацией выходных данных; она предварительно обучена, что означает, что она учитывала большой корпус текстовых данных; это тип трансформера.
На самом деле, GPT использует только часть декодера из архитектуры трансформера [3]. Из предыдущего раздела о трансформерах мы узнали, что декодер отвечает за предсказание следующего токена в последовательности. GPT повторяет этот процесс снова и снова, используя ранее сгенерированные результаты в качестве входных данных для создания более длинных текстов, что называется авторегрессией. Например, если он переводит "I love you" на французский, то сначала он сгенерирует "Je", затем использует сгенерированный "Je" для получения "Je t'aime" (см. пунктирную линию на предыдущей иллюстрации).
В обучении первой версии GPT исследователи использовали надзорное предварительное обучение с базой данных BookCorpus, состоящей из более чем 7000 уникальных неопубликованных книг [3]. Ненадзорное обучение похоже на то, что искусственный интеллект самостоятельно читает эти книги и пытается узнать общие правила языка и слов. На основе предварительного обучения они также использовали надзорную тонкую настройку на конкретные задачи, такие как резюмирование или ответы на вопросы. Надзорное означает, что они будут показывать искусственному интеллекту примеры запросов и правильных ответов, и просить его учиться на этих примерах.
В GPT-2 исследователи расширили размер модели (1,5 млрд параметров) и корпус, который они использовали для обучения, с помощью WebText - коллекции миллионов веб-страниц - в процессе наблюдения за обучением без учителя [4]. С таким большим корпусом для обучения модель продемонстрировала свою способность выполнять широкий спектр задач, связанных с языком, даже без контролируемой настройки.
В GPT-3 исследователи шли еще дальше и расширили модель до 175 миллиардов параметров, используя огромный корпус, включающий сотни миллиардов слов из веб-страниц, книг и Википедии. С такой огромной моделью и большим корпусом для обучения исследователи обнаружили, что GPT-3 может научиться выполнять задачи лучше с помощью одного (one-shot) или нескольких примеров (few-shot) в запросе без явной контролируемой настройки.
(Если вы хотите узнать больше о том, как побудить модели производить лучшие результаты, вы можете прочитать мою другую статью: Как использовать ChatGPT в управлении продуктами)
На данном этапе модель GPT-3 уже впечатляет. Но она больше похожа на модели общего назначения для языка. Исследователи хотели исследовать, как она может следовать человеческим инструкциям и вести разговоры с людьми. Поэтому они создали InstructGPT и ChatGPT на основе общей модели GPT. Давайте посмотрим, как они это сделали в следующем разделе.
Обучение GPT взаимодействию с людьми: InstructGPT и ChatGPT
После итераций от GPT до GPT-3 с увеличением размера моделей и объема корпуса, исследователи поняли, что большие модели не обязательно могут хорошо следовать человеческому намерению и могут производить вредные выводы. Поэтому они попытались дообучить GPT-3 с применением обучения с учителем и обучения с подкреплением от обратной связи человека (RLHF) [6][12]. Эти обучающие шаги привели к появлению двух дообученных моделей - InstructGPT и ChatGPT.
Иллюстрация из статьи "Обучение языковых моделей следовать инструкциям с помощью обратной связи от людей" [6].
Первый шаг - это обучение с учителем на примерах, предоставленных людьми. Исследователи сначала предоставили предварительно обученной модели 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 может отвечать на последующие вопросы и признавать ошибки, что делает его более привлекательным для общения.
Заключение
Резюмируя, я надеюсь, что теперь у вас более ясное представление о том, как работает модель ChatGPT и как она развивалась до того, как стала тем, что есть сегодня.
В качестве краткого обзора, вот самые важные выводы и ограничения моделей GPT:
- ChatGPT основан на модели авторегрессии с декодером и трансформатором, которая принимает последовательность текста и выдает вероятностное распределение токенов в последовательности, генерируя токен за токеном итеративно.
- Поскольку модель не имеет возможности в реальном времени искать ссылки, она делает вероятностные предсказания в процессе генерации на основе корпуса, на котором она была обучена, что может привести к ложным утверждениям о фактах.
- Модель предварительно обучается на огромном корпусе веб-данных и данных из книг, а затем дообучается с помощью примеров человеческих разговоров через обучение с учителем и обучение с подкреплением с обратной связью от человека (RLHF).
- Ее возможности основаны в основном на размере модели и качестве и размере корпуса и примеров, из которых она училась. Дополнительное обучение с учителем или RLHF могут помочь ей лучше выполнять определенные контексты или задачи.
- Поскольку корпус берется из веб-контента и книг, они могут иметь предвзятости, которые модель может усвоить, особенно для социальных, культурных, политических или гендерных предвзятостей, что может привести к предвзятым ответам на некоторые запросы.
Оставайтесь любопытными и открытыми к новым технологиям, таким как ChatGPT. Я верю, что открытый ум и любопытство могут помочь нам, не техническим менеджерам продукта, дизайнерам и предпринимателям, ориентироваться в этой новой волне технологической революции.
Источники:
[1] “Introducing OpenAI.” OpenAI, 12 Dec. 2015, https://openai.com/blog/introducing-openai/.
[2] Vaswani, Ashish, et al. “Attention is all you need.” Advances in neural information processing systems 30 (2017).
[3] Radford, Alec, et al. “Improving language understanding by generative pre-training.” (2018).
[4] Radford, Alec, et al. “Language models are unsupervised multitask learners.” OpenAI blog 1.8 (2019): 9.
[5] Brown, Tom, et al. “Language models are few-shot learners.” Advances in neural information processing systems 33 (2020): 1877–1901.
[6] Ouyang, Long, et al. “Training language models to follow instructions with human feedback.” arXiv preprint arXiv:2203.02155 (2022).
[7] “ChatGPT: Optimizing Language Models for Dialogue.” OpenAI, 30 Nov. 2022, https://openai.com/blog/chatgpt/.
[8] Murali, Aishwarya. “A Guide to Perform 5 Important Steps of NLP Using Python.” Analytics Vidhya, 17 Aug. 2021, https://www.analyticsvidhya.com/blog/2021/08/a-guide-to-perform-5-important-steps-of-nlp-using-python/.
[9] Cristina, Stefania. “The Transformer Attention Mechanism.” Machine Learning Mastery, 15 Sept. 2022, https://machinelearningmastery.com/the-transformer-attention-mechanism/.
[10] Doshi, Ketan. “Transformers Explained Visually (Part 1): Overview of Functionality.” Medium, 3 June 2021, https://towardsdatascience.com/transformers-explained-visually-part-1-overview-of-functionality-95a6dd460452.
[11] Kosar, Vaclav. Feed-Forward, Self-Attention & Key-Value. 2 Jan. 2021, https://vaclavkosar.com/ml/Feed-Forward-Self-Attendion-Key-Value-Memory.
[12] “Aligning Language Models to Follow Instructions.” OpenAI, 27 Jan. 2022, https://openai.com/blog/instruction-following/.
Комментарии
GPT Chat действительно вошел в повседневную жизнь и подобные посты могут нам очень помочь в его знакомстве и лучшем понимании. Большое спасибо.
basketball stars
ChatGPT обучен на огромном количестве текстов из интернета. Это могут быть статьи, книги, форумы и многое другое. В процессе обучения модель «читает» Friday Night Funkin все эти тексты и учится понимать, как люди пишут и говорят.