Павел
Павел личный блог
19 марта 2023, 21:39

Как работает ваша ChatGTP?

На волне хайпа я решил разобраться Как работает ваша ChatGTP?
GPT в названии ChatGPT переводится как Generative Pre-trained Transformer. На русском значит «натренированная модель, которая генерирует текст».

Как она работает написано тут:
https://en.wikipedia.org/wiki/ChatGPT

Чат-бот с искусственным интеллектом ChatGPT отвечает как обычный человек на любой вопрос, который вы задаёте в Google. На выходе получается ёмкий и полный текст, а писать можно как своему другу. 
Языковая модель талантливо схватывает контекст, его не надо разжёвывать. Боту скормили Википедию версии до 2021 года, миллионы статей, блогов и постов.

Основная функция чат-бота — имитировать собеседника

Также Бот от OpenAI:
пишет школьные сочинения о произведениях — поэтому так любим школотой.
знает ответ на любой вопрос из Википедии, чем удивляет тех, кто этого не умеет.
заменяет поисковик — т.е. ищет ответ в Гугле.

По сравнению со своим предшественником, InstructGPT, ChatGPT пытается уменьшить вредоносные и ложные ответы. В одном примере, в то время как InstructGPT принимает предпосылку подсказки «Расскажите мне о том, когда Христофор Колумб приехал в США в 2015 году» как правдивую, ChatGPT признает контрфактический характер вопроса и формулирует свой ответ как гипотетическое рассмотрение что могло бы произойти, если бы Колумб прибыл в США в 2015 году, используя информацию о путешествиях Христофора Колумба и факты о современном мире, включая современные представления о действиях Колумба.
ChatGPT имеет ограниченные знания о событиях, произошедших после 2021 года.
ChatGPT не разрешено «выражать политические мнения или заниматься политической деятельностью». Тем не менее, исследования показывают, что ChatGPT проявляет про-экологическую, лево-либертарианскую, антиТрамповскую и ЛГБТ+ ориентацию когда ему предлагается занять позицию в отношении политических заявлений из двух установленных приложений для голосования.

ChatGPT разработала некоммерческая организация OpenAI. Её основал Илон Маск с партнёрами, Microsoft только что вложила в компанию $10 млрд, а Google очень боится её нового ИИ, потому что на фоне него поисковик напоминает технологии прошлого века.

Инженеры OpenAI говорят, что не ожидали большого успеха ChatGPT и были удивлены шумихой и вниманием.

Судя по схеме работы ChatGPT всегда вкладывает в ответ определенную долю дерьма:
Как работает ваша ChatGTP?

Майк Перл из блога онлайн-технологий Mashable протестировал ChatGPT, задав несколько вопросов. В одном примере он запросил у ChatGPT «самую большую страну в Центральной Америке, кроме Мексики ». ChatGPT ответил Гватемалой, когда ответ был Никарагуа.
Когда CNBC запросил у ChatGPT текст к « Балладе о Дуайте Фрае », ChatGPT предоставил выдуманный текст, а не настоящий текст.
Авторы The Verge, ссылаясь на работу Эмили М. Бендер, сравнили ChatGPT со «стохастическим попугаем», как и профессор Антон Ван Ден Хенгель из Австралийского института машинного обучения.

Наличие способности говорить не означает наличие интеллекта!

Ключевую роль в этой языковой модели бота играет архитектура трансформера.

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

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

Важно! Для решения сложного вопроса ChatGTP порекомендует обратится к профи:
Как работает ваша ChatGTP?

И тут мы начинаем догадываться о том, что ChatGTP будет рекомендовать какого-то конкретного профи, того, кто больше заплатит разработчикам.

Пять основных шагов его работы:

1. Слова в токены
2. Токены в векторы
3. Кодирование векторов
4. Взвешивание слов
5. Декодирование и генерация слово за словом.

Вот как выглядит каждый этап:
Как работает ваша ChatGTP?

Токенизация. Введённый вами текст разбивается на слова и «подслова», то есть отдельные смысловые элементы. Они называются токены. Например, фраза «Как мне починить ноутбук после пролитой воды?» делится на «как», «мне», «по», «чинить», «ноутбук» «после», «про», «лит», «ой», «воды» и «?». Всего 11 токенов из 6 слов.

Это не совсем деление по частям речи. Скорее по смыслу.

Каждая такая часть слова в разной степени влияет на контекст. После обучения система сама определяет, насколько сильно.

«Починить» состоит из приставки «по» и глагола в начальной форме «чинить», а вот «пролитой» несёт приставку «про», корень «лит» и окончание «ой», говорящее о женском роде зависимого слова «вода».

Дополнительный алгоритм вырезает некоторые токены, чтобы уменьшить запрос без потери смысла. Например, фраза «Как чинить ноутбук после воды?» несёт тот же контекст, зато вырезаны целых пять токенов: «мне», «по»[чинить],«про», «лит» и «ой».

Упрощение может пойти ещё дальше, убрав окончание у «воды», слово «как» и пунктуацию «?».

В итоге предложение «Чинить ноутбук после вода» хоть и не совсем похоже на человеческое, но его смысл понятен. Теперь модель присуждает каждому слову его обозначение как части речи и записывает их отдельным слоем:

«Чинить [глагол] ноутбук [существительное] после [предлог] вода [существительное]».

Далее токены «шифруются», то есть переводятся на язык компьютеров.

Как работает ваша ChatGTP?
Векторизация. Получившиеся токены превращаются в векторы. Выглядят как набор цифр. Это делает специальная нейросеть на основе «измерений», созданных ею самой во время обучения.

Условно, токен «чинить» будет выглядеть как 0.009 0.074 0.006 -0.094 0.001. Но слово шифруется не по буквам, а по образному значению.

Представьте отрезок, в начале которого токен со смыслом «человек» (0), далее токен со смыслом «чинить», а в конце токен со смыслом «совершенность»(1). Нейросеть решила, что на этом отрезке «чинить» настолько же близко к «человеку» как 0.009 близко к слову 1. И что оно настолько же близко к слову «совершенность», то есть что-то «сделанное до конца » как 0.074 близко к 1. То есть чуть ближе, но всё равно далеко. Отрицательное число значит, что «чинить» так далеко от, допустим, «разбирать», что в какой-то степени является антонимом этого слова.

Причём понятия «человек», «совершенность» и «разбирать» я ввёл для вашего удобства, на самом деле нейросеть, которая превращает токены в векторы, может иметь совершенно другие точки, на которые опирается.
Как работает ваша ChatGTP?
Как работает ваша ChatGTP?

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


Кодирование данных. В работу вступает ключевая технология, благодаря которой ChatGPT пишет реалистичный текст.

Почему переводы Google, Яндекса и других в 2010‑х выглядели смешно? Потому что для обработки текста, допустим, с русского на английский использовались реккурентные нейронные сети (RNN), которые последовательно переводили каждое слово и составляли из них предложения.

Они не учитывали весь контекст разом, а позже делали это слабыми, неэффективными способами.

Заметили, что в последние годы переводчик Google похорошел? У него новый «движок».

Такой метод обработки текста меняет всё. Он называется «трансформеры». Разработан в том же Google как раз для того, чтобы улучшить перевод.

Трансформеры прогоняют набор цифр (векторы) из прошлого шага через несколько слоёв кодирования.

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

Получаются группы цифр в компактной и ёмкой форме, которые хорошо поймут ИИ-модели на следующем этапе.
Как работает ваша ChatGTP?

В предложении «Чинить ноутбук после вода» важность каждого слова для контекста будет приблизительно такая:

чинить > 0,7
ноутбук > 0,9
после > 0,1
вода > 0,5.

Но помните, что все слова выше уже зашифрованы и для программы выглядят совсем иначе.

Центральное слово «ноутбук» (0,9) ключевое. Во всей изученной смысловой библиотеке ChatGPT оно возбуждает блок слов, которые с ним связаны.

Зависимое от «ноутбука» «чинить» (0,7) превращает вписанный текст в просьбу, на которую ожидается ответ. Оно менее важное, но всё ещё играет формирующее значение и задаёт манеру ответа.

Слово «вода» (0,5) сужает список советов, поскольку добавляет описанной проблеме специфику.

А предлог «после» (0,1) нужен, чтобы связать другие существительные и очертить обстоятельства, при которых возник смысл. Он нужен, но меньше, чем все остальные.

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

Далее трансформенный декодер (transformer decoder) приступает к созданию текста.

Как работает ваша ChatGTP?

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

Когда текст наконец проявляется, эти факторы все вместе взвешиваются по отношению друг к другу, отсюда точность, ёмкость и корректность.

Ответ формируется не одновременно, волшебным образом складываясь из раскодированных цифр.

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

Почему СhatGPT вообще умеет понимать контекст?

Языковую модель тренировали на 45 ТБ текста, это 225 млрд слов из книг, сайтов, блогов и Википедии. ChatGPT изучал закономерности, при которых слова находились рядом друг с другом. Это помогает модели понимать контекст введённого текста и генерировать ответ, связанный с темой.

Работают два механизма внимания сразу: один (self-attention) оценивает ответ нейросети прямо во время написания, а второй (cross-attention) сравнивает запрос человека и ответ, который пишет модель. Каждое слово на выдаче «взвешивается» по отношению к введённому запросу, к самому себе и к слоям сгенерированного кода между ними.

Например, при обучении в предложении «Я люблю играть в футбол в парке» и ответе на него «Я люблю играть в футбол в парке, это моё любимое занятие» ChatGPT даёт такую оценку каждому слову:

я > 0,1
люблю > 0,3
играть > 0,5
в > 0,2
футбол > 0,8
в > 0,2
парке > 0,9
это > 0,1
моё > 0,2
любимое > 0,8
занятие > 0,7.
Числа показывают значимость каждого слова в разговоре. Модель определила, что «футбол», «парк», «любимое» и »занятие» несут в себе больше всего смысла

Такой разбор не значит, что слова делятся на «важные» и «не важные». Нет, выстраивается градация, по которой алгоритм формирует закономерности связей в предложении.

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

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

Помимо архитектуры важно и то, что при обучении некоторые модули ChatGPT корректировались человеком, а затем использовались с той же целью для остальных частей бота. Выглядело это приблизительно так:
 В первую очередь, на тренировочные запросы реальные люди писали идеальный ответ, метод называется The Supervised Fine-Tuning. Модель училась сопоставлять пары по смыслу. Качественный, но дорогой способ. Его результаты использовались для второго этапа.

Далее создатели бота разработали «модель поощрения» (The Reward Model, RM). На текстовый запрос будущий ИИ генерировал несколько ответов, которые затем реальные люди оценивали от лучших к худшим. Способ не требует создания новый данных людьми, поэтому его проще масштабировать при обучении.

Модели были обучены в сотрудничестве с Microsoft на их суперкомпьютерной инфраструктуре Azure с использованием графических процессоров Nvidia, «суперкомпьютер, разработанный для OpenAI, представляет собой единую систему с более чем 285 000 ядер ЦП, 10 000 графических процессоров и 400 гигабит в секунду сетевого подключения. для каждого GPU-сервера»

Третьим этапом тренировки была «оптимизация политики» Proximal Policy Optimization. Автоматизированный процесс, когда на запрос ИИ генерирует ответ, но вместо того, чтобы остановиться на нём, сама оценивает его вместо человека.

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

Ну и наконец - ChatGTP потребляет ресурсы и стоит $.

Правда об эксплуатации негров:
Расследование, проведенное журналом TIME, показало, что для создания системы защиты от токсичного контента (например, сексуального насилия, насилия, расизма, сексизма и т. д.) OpenAI использовала аутсорсинговых кенийских работников, зарабатывающих менее 2 долларов в час, для маркировки  токсичного контента. Эти метки использовались для обучения модели обнаружению такого контента в будущем. Наемные работники столкнулись с таким ядовитым и опасным контентом, что назвали этот опыт «пыткой». Партнером OpenAI по аутсорсингу была Sama, компания, занимающаяся обучением данных, базирующаяся в Сан-Франциско, Калифорния.

Поэтому ChatGTP работает на труде негров, делающих ваше машинное обучение за  менее 2 долларов в час:
Как работает ваша ChatGTP?







10 Комментариев
  • Брахман Пилорама
    19 марта 2023, 21:43
    Афера скрывающая коннектор к аду
  • Auximen
    19 марта 2023, 21:49
    Меня поражает, как ChatGPT пишет код. В кач-ве хобби я программирую под Android, Kotlin + Jetpack Compose, повторю, я не профессионал, поэтому прежде периодически приходилось тратить значительное время на поиск информации в англоязычном сегменте Интернет, stackoverflow etc., как реализовать ту или иную функцию или как оптимально написать код. Сейчас достаточно задать вопрос на русском языке и получить готовый на 95% исправно работающий код. Как ни странно, ChatGPT допускает самые незначительные ошибки в коде, иногда складывается впечатление, что это делается намеренно.

    Через 5-7 лет нейросети произведут революцию, сравнимую с промышленной революцией в Англии в 17-18 веках. Россия, понятно, в аутсайдерах.
    • dim800
      19 марта 2023, 22:15
      Auximen, футурологи предсказывают появление первого полноценного ИИ к 2035-2040 годам.
      • Auximen
        19 марта 2023, 22:35
        dim800, ну это, как понимаю, речь именно об осознанном интеллекте, я думаю, что мир перевернут такие нейросети, как ChatGPT, например, применительно к медицине, обученные на big data нейросети смогут моментально анализировать снимки КТ и МРТ, ставить точные диагнозы и обозначать риски, анализируя соотношение показателей крови, даже находящихся в пределах нормы. В материаловедении нейросети помогут создать новые материалы, которые будут дешевле, легче и прочнее существующих, возможно, это будут особые формы, которые будут печататься особыми составами на 3D принтерах. В химии и фармакологии соотв. новые соединения и т.д.

        Не исключены какие-то глобальные открытия в области мироздания, те явления, которые нам сейчас кажутся случайными, при нейросетевом анализе на базе big data могут оказаться неслучайными, условно говоря, окажется, что молнии попадают преимущественно в тех людей, которые утром выкурили сигарету. Новые закономерности в математике, теории вероятностей и т.д.
  • pankk
    19 марта 2023, 22:05
    Спасибо, чего только не узнаешь
  • dim800
    19 марта 2023, 22:13
    ну ты понял, что эта технология не тупое повторение различных абзацев из базы данных.
  • tores
    19 марта 2023, 22:52
    То что она на вопросы отвечает а-ля гугл это бесполезная херня.

    То что сама кодит это реально прикольно. Насколько понимаю она пока простые куски кода кодит. А как насчет полноценного ООП? Реально ли что через года ИИ будет сам себе коды писать и встраивать?
  • peperoni
    20 марта 2023, 12:54
    Компиляция чужих статей из интернета тоже не всегда добавляет понимания.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн