Как на самом деле работает ChatGPT?
ChatGPT — это чат-бот, основанный на большой языковой модели (GPT-3.5 или GPT-4). По сути, ChatGPT представляет собой предварительно обученную нейронную сеть, обученную на впечатляющем объеме общедоступных текстовых данных из Интернета.
Этот огромный объем данных позволяет модели изучать шаблоны, грамматику, контекст и даже некоторые знания здравого смысла, что позволяет ей генерировать содержательные и последовательные ответы на запросы пользователей. ChatGPT обладает уникальной способностью участвовать в интерактивном и динамичном общении с пользователями, что делает его многообещающим инструментом для широкого спектра задач.
Что такое большая языковая модель
Большие языковые модели — это алгоритмы искусственного интеллекта, которые используют методы глубокого обучения, известные как обработка естественного языка, для чтения, понимания, генерации и прогнозирования текста.
Когда вы вводите запрос (промпт), модель не ищет ответ в Интернете, она выдает вам ответ из головы (хотя головы у нее нет). Она генерирует ответ по одному слову за раз, определяя каждое следующее слово на основе вероятностей, полученных из текстовых данных, на которых она обучалась, и текста, который она сгенерировала на данный момент.
11 миллиардов параметров: ответы на вопросы, арифметика, понимание языка
Как это возможно? Что ж, ChatGPT не нужно искать информацию в Интернете, потому что он и так все знает (ну почти). Все знания, доступные в Интернете, включены в ChatGPT посредством его 175 миллиардов параметров.
62 миллиарда параметров: перевод, рассуждения на основе здравого смысла, завершение кода
По мере увеличения количества параметров в модели появляются новые возможности, которые никем намеренно не проектировались.
540 миллиардов параметров: логические цепочки умозаключений, распознавание закономерностей, понимание прочитанного
Как проходило обучение ChatGPT
ChatGPT прошел обучение на сотнях тысяч книг, статей, диалогов, в том числе:
- WebText2 (большая библиотека объемом более 45 терабайт текстовых данных)
- Корпус диалогов фильмов Корнелла (набор данных, содержащий более 200 000 разговоров между 10 000 персонажами фильмов в сценариях фильмов)
- Ubuntu Dialogue Corpus (коллекция из 1 000 000 многоходовых диалогов между пользователями Ubuntu и командой поддержки сообщества)
- миллиарды строк кода с GitHub
Для начала, GPT было разрешено обрабатывать все данные, к которым у него был доступ, без какого-либо человеческого вмешательства, что позволило ему самостоятельно понимать правила и связи, диктующие область текста (это то, что называется «обучением без учителя»).
Затем для тонкой настройки языковой модели был применен метод, называемый обучением с подкреплением с обратной связью от человека (RLHF):
- Тренеры-люди проводили беседы с ИИ, в которых они играли обе стороны — пользователя и помощника ИИ. У них был доступ к предложениям, написанным по моделям, которые помогли составить ответы. Модель была обучена с использованием контролируемой точной настройки, чтобы предсказать следующее сообщение помощника с учетом истории диалога.
- Чтобы создать модель вознаграждения для обучения с подкреплением, были собраны сравнительные данные. Тренеры по искусственному интеллекту ранжировали ответы нескольких моделей по качеству, учитывая такие факторы, как, например, имел ли ответ смысл и был ли он полезен. Выбранные ответы превратились в набор диалоговых данных с новыми сообщениями, написанными по модели.
- Модель вознаграждения была создана с использованием метода, называемого моделированием вознаграждения, при котором модель была обучена прогнозировать качество ответа на основе сравнительных данных, собранных на предыдущем этапе.
В конце концов, ChatGPT научился реагировать в любой ситуации, давать точные и релевантные ответы и избегать потенциально вредных тем.
Архитектура трансформера
Процесс обучения ChatGPT включает в себя предсказание следующего слова в предложении по предыдущим словам. Для этого используется архитектура Transformer (кстати, T в ChatGPT означает Transformer), состоящая из слоев механизмов самообслуживания. Самообслуживание позволяет модели взвешивать разные слова в предложении на основе их важности и релевантности, чтобы точно предсказать следующее слово.
Старые рекуррентные нейронные сети (RNN) читают текст слева направо. Это хорошо работает, когда связанные слова находятся рядом, но становится сложнее, когда они находятся на противоположных концах предложения.
Поэтому, когда RNN работала с одностраничным текстом, к середине третьего абзаца она уже «забывала» то, что было в самом начале.
Напротив, трансформеры способны одновременно обрабатывать каждое слово в предложении и сравнивать каждое слово со всеми остальными. Это позволяет им сосредоточить свое «внимание» на наиболее релевантных словах, независимо от их положения во входной последовательности.
Токенизация
Важно отметить, что трансформеры не оперируют отдельными словами (они не умеют читать, как люди). Вместо этого входной текст разбивается на отдельные токены, включая слова, знаки препинания и специальные токены. Токены в ChatGPT представляют собой фрагменты текста, представленные в виде векторов (числа с направлением и положением).
Близость токенов-векторов в пространстве определяет уровень их ассоциации: чем они ближе расположены, тем сильнее взаимосвязаны. Кроме того, внимание кодируется как вектор, что позволяет нейронным сетям на основе архитектуры трансформера сохранять важную информацию из предыдущих частей абзаца.
Когда пользователь взаимодействует с ChatGPT, модель получает на входе историю разговоров, включая как пользовательские запросы (промпты), так и ответы, сгенерированные моделью. Ввод токенизируется и затем передается в нейронную сеть. Каждый токен связан со вставкой, которая представляет его значение в контексте разговора.
GPT-3 был обучен примерно на 500 миллиардах токенов, что позволяет его языковым моделям легче назначать значение и прогнозировать правдоподобный последующий текст, отображая их в векторном пространстве. Многие слова сопоставляются с отдельными токенами, хотя более длинные или более сложные слова часто разбиваются на несколько токенов. В среднем токены имеют длину примерно четыре символа.
На этапе вывода, когда модель генерирует ответы, используется процесс, известный как авторегрессия. Это означает, что модель прогнозирует по одному слову за раз, учитывая историю разговоров и ранее сгенерированные слова. Чтобы гарантировать, что полученный ответ является последовательным и релевантным, используются такие методы, как выборка по верхнему пределу и температурное масштабирование.
Вкратце, параметр top-p дает модели пул вариантов (токенов) на выбор, а температура определяет вероятность выбора определенного токена. Когда температура установлена на 0, модель будет выбирать только самые «популярные» токены (слова, которые чаще всего встречаются вместе в текстовых данных, которые были обучены ChatGPT):
Это не всегда здорово. Более высокие температуры делают результаты более разнообразными:
Подробнее о параметрах ChatGPT: