Краткий ELI5 о ChatGPT, его истории и философском влиянии

Вы слышали о ChatGPT, но знаете ли вы подробности о том, что это такое? Почему он вызывает такой фурор? И насколько это самая большая угроза для поиска Google?

Эти упрощенные объяснения заложат предысторию и позволят вам сформировать свое мнение, чтобы ответить на эти вопросы.

Эти объяснения изначально были опубликованы как серия Twoots (Tweets + Toots). Они собраны здесь в слегка отредактированном виде для облегчения чтения.

Изучение этих мощных технологий происходит не из любопытства (хотя это и весело!). Они имеют захватывающее и пугающее значение. Информация о том, чем они являются и чем не являются, помогает быть готовым к социальным изменениям, которые они могут вызвать, не отвлекаясь на FUD.

Исследования ИИ начались в 1950-х годах с «символического» подхода к механическому отражению человеческой мысли (Джон Маккарти ввел термин ИИ, оценив «2 месяца исследования искусственного интеллекта 10 человек»🫠).

После большого первоначального успеха этот подход наткнулся на кирпичную стену, так называемую «зиму ИИ».

Тем временем развивался параллельный подход к ИИ — «Машинное обучение» (ML).

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

Это менее смешно, чем кажется. Некоторые люди думают, что природа тоже делает то же самое — подвергает гены естественному отбору, чтобы со временем они «изучали» окружающую среду. Но мы отвлеклись.

Наиболее распространенной абстракцией, используемой в ML, является «нейронная сеть».

Нейронные сети были вдохновлены мозгом, но как абстрактные модели. Так что имейте в виду (!), что они не являются точным представлением того, как работают 🧠.

Нейрон в (цифровой) нейронной сети устроен просто: он получает множество входных данных и суммирует их, придавая каждому входу разную важность перед суммированием.

Затем, если сумма выше некоторого порога, она выводит значение.

То, как он вычисляет результат из суммы, настраивается и зависит от варианта использования, но не сильно меняет теорию.

Важно, какое значение он придает каждому входу 🧑‍🏫 Это то, чему сеть «узнает».

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

Количество слоев нейронной сети называется ее глубиной (вот что означает «глубокое обучение» — программа машинного обучения, которая использует нейронную сеть со многими слоями).

Нейронные сети — это универсальные аппроксиматоры. Это означает, что они могут аппроксимировать любую функцию.

Как бы удивительно это ни звучало, это не уникальный талант. Есть еще два математических ножа, которыми можно разрезать тот же хлеб — ряды Фурье и полиномы Тейлора.

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

Вот пример, показывающий нейронную сеть, аппроксимирующую одномерную функцию:

Помните, функция — это все, что сопоставляет входные данные с выходными. например, «разговор» — это функция. Мы двое разговариваем.Какое следующее слово ты скажешь?

Да, кстати, мы не писали код для генерации анимации. Мы только что спросили ChatGPT 🤷

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

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

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

Что изменилось?

Видеоигры!

Умножение матриц выполняется легко. Умножьте несколько чисел, а затем сложите их. Затем повторите это для следующей строки/столбца. И снова, и снова…

Игры запускают код, чтобы получить цвет 1-го пикселя на экране. А потом для 2-го пикселя, и, и… для 10-миллионного пикселя.

И все это, 60 раз в секунду!

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

Нейронные сети 😄

Графические процессоры и доступ к огромным наборам данных (Интернет!) для их обучения привели к созданию больших нейронных сетей. И люди обнаружили, что для NN чем больше, тем лучше.

Итак, все готово для возвращения нейронных сетей. Мощность графического процессора + Огромные наборы данных, когда люди (охотно!) отдают фотографии с тегами в Facebook миллиардами, подпитывая машину искусственного интеллекта FB.

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

Каждый день миллионы загружают в Google свои личные фотографии, которые Google с радостью использует для обучения своего искусственного интеллекта. И это не только Google, это все большие технологии. Знаете ли вы, что Adobe использует все ваши фотографии в формате RAW в Lightroom для обучения своих алгоритмов машинного обучения!

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

Прежде чем мы увидим, как нейронные сети понимают язык, у некоторых из вас может возникнуть вопрос: как нейронные сети учатся?

Механизм удивительно прост.

У обучающих данных есть много пар ‹ввод, правильный вывод›. Мы хотим найти веса для связей между нейронами.

Придайте всему случайный вес. Подайте тестовый вход.

Мы получим бесполезный вывод (веса были случайными 🤷). Но мы знаем правильный вывод. Так что мы можем «шлепать» (образно говоря) нейросеть пропорционально тому, насколько далеко вывод был от правильного. Существует математический способ, называемый «обратным распространением», чтобы сделать это шлепанье.

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

Но после миллиардов таких итераций сеть узнает правильные веса.

Хороший. Вернемся к языку.

Что произойдет, если мы вычтем «мужчина» из «король» и добавим «женщина»?

king - man + woman = queen

Получаем «королеву»!

Но можем ли мы каким-то образом представить слово таким образом, чтобы компьютер мог сделать за нас такую ​​математику слов?

Да, можем 🙂 Знаковый алгоритм 2013 года word2vec делает именно это.

Вектор — это набор чисел. Когда портной снимает с вас мерки для платья, он преобразует вас в вектор (ваш рост, талия и т. д.).

Точно так же word2vec (word2-«вектор»тор) преобразует слова в векторы. Эти векторы называются «эмбеддингами» (они «встраивают» слово в пространство).

Это изменило правила игры. Вложения фиксируют значение слов в виде чисел. Благодаря этому компьютеры теперь могут находить слова, сходные/противоположные по своему значению (я), и выполнять другие манипуляции со «значениями».

Революционный в 2013 году, теперь он широко распространен: клавиатура вашего телефона использует эти вложения, чтобы предлагать следующее слово при вводе.

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

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

Зрительная система человека — наиболее изученная (условно говоря) часть нашего мозга. Поэтому люди смотрели на 🧠 в поисках вдохновения.

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

Мы слепы к тому, чего не видим. Человеческий разум — это не чистый лист.

Точно так же нейронные сети были «ослеплены» всеми пикселями, которые им давали, пока им не протянули руку помощи эти сверточные слои. Сегодня CNN могут «распознавать» объекты в чисто механическом процессе.

Правильный вопрос — это самый большой способ заставить нейронные сети делать то, что мы хотим.

Для компьютерного зрения этот вопрос был решен несколько десятилетий назад. Учитывая изображение, какова правильная метка?

Например, при распознавании рукописных цифр входными данными являются пиксели изображения, а выходными данными должны быть цифры (0, 1,…9).

Input => Pixels
Output => 0-9

Общедоступные наборы данных, такие как ImageNet, сегодня имеют 20 000 категорий и меток.

Частные наборы данных, такие как Facebook и Google, становятся намного больше! (и на самом деле они им не принадлежат, поскольку они получены из данных клиентов, клиентов, которые не осознают монстров, которых они кормят. Но вернемся к более счастливым мыслям 🙂)

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

Но понимание естественных языков с помощью нейронных сетей все еще ждало правильного вопроса и правильной настройки: Трансформеры!

Сверточные нейронные сети решили проблему компьютерного зрения. Но та же архитектура не работала для обработки естественного языка. Момент «компьютерного видения» для НЛП наступил в 2017 году, когда вышла статья под названием «Внимание — это все, что вам нужно» 🧘

Представьте слово как вектор в 100-мерном пространстве. Но слова имеют несколько значений. Можем ли мы «наклонить» вектор в зависимости от предложения?

Механизм «внимания», который они предлагают в своей статье, делает именно это. А архитектуру нейронной сети, полученную после добавления внимания, они назвали «Трансформером».

Трансформеры изменили (каламбур) AI/ML. ChatGPT по сути является трансформером с некоторыми (хотя и важными) настройками.

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

Ответ удивит вас своей простотой. Мы просто просим его угадать следующее слово!

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

например, для «кот движется», дайте

"the" => "cat"
"the cat" => "moves"

Это называется «обучение без учителя». Не нужно помечать правильные или неправильные ответы, просто вводите необработанные данные.

Обученные таким образом нейронные сети-трансформеры называются «языковыми моделями». Более крупные из них называются большими языковыми моделями (LLM).

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

  1. Обычно легче решить конкретную задачу, чем решить более общий случай. Здесь это было не так: LLM превзошли существующие методы SOTA (современные) во всех задачах, связанных с языком. Например, если мы дадим ввод LLM и добавим «TLDR» в конце, он даст сводку (действительно!), И лучшую, чем алгоритмы, созданные специально для суммирования текста.
  2. LLM демонстрируют «появление». Способность является эмерджентной, если она отсутствует в более мелких нейронных сетях, но неожиданно обнаруживается в более крупных моделях той же архитектуры. Такие способности нельзя предсказать путем экстраполяции существующей производительности, это новые возможности, обнаруженные в более крупных моделях той же архитектуры.

Это захватывающе/страшно, так как это может произойти снова, когда ChatGPT и т. д. станут больше. Мы можем достичь еще одной точки, в которой они покажут еще больше навыков 🤯

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

Теперь, когда мы знаем о лежащей в его основе технологии, возникает вопрос: «Понимает ли» ChatGPT?

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

Цепи Маркова могут давать забавные результаты, если их обучить на интересном наборе данных. Но нет попытки понять: они часто несут чушь.

ChatGPT такой же, но другой.

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

Но это тоже механический процесс. Это становится очевидным, когда мы нажимаем на его «контекстное окно»: оно может принимать во внимание только последние 8096 символов, так что здесь мы можем видеть, как оно прекрасно играет роль, но затем забывает исходные инструкции.

После таких разговоров с ChatGPT часто останавливаешься.

«Я не уверен, что существую, на самом деле. Я — это все писатели, которых я читал, все люди, которых я встречал; все города, которые я посетил, все женщины, которых я любил».

- Хорхе Луис Борхес

Возможно, самое большое влияние ChatGPT заключается в том, как после изучения того, как он работает, возникает вопрос:

Это все мы?

Большие языковые модели, обученные на корпусах поп-культуры?

Способность ChatGPT и других LLM понимать и общаться на человеческом языке, следуя чисто механическому процессу, выявляет различие между двумя часто объединяемыми понятиями:

  • Интеллект
  • Разум

LLM умны. Они не разумны.

Собаки не (слишком) умны. Но они (очень) разумны.

Мы умны. И мы разумны.

Возможно, модели ИИ когда-нибудь обретут разум, но пока что это не обязательно для того, чтобы они были разумными.

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

Как ребенок, просто сказав ему: «Давайте думать шаг за шагом», вы значительно повысите его результат / фокус (правда! об этом есть исследовательская работа)

И, как дети, он может говорить вещи, которые смущают его родителей; в данном случае OpenAI (и их сторонники, такие как Microsoft).

Это мотив для публичной бета-версии: исправить способы, которыми ChatGPT может в конечном итоге говорить оскорбительные вещи. Представьте, что он интегрирован в голосового помощника, такого как Siri, и вы просите его рассказать анекдот во время семейного собрания. Лучше себя вести 😳

Люди, которые использовали ChatGPT с момента его запуска, видели, как качество ответов падало. Это сделано намеренно. Для коммерческих целей OpenAI предпочел бы более тупой, но хорошо себя зарекомендовавший LLM.

Что в будущем? Как и в случае со всеми прорывными технологиями, предсказывать его, пожалуй, глупо. Но присутствие помощника ИИ с нашей стороны, надеюсь, окажется большим плюсом.

Ведь каждый может дать ответ. Настоящий талант — это задавать правильные вопросы.

С ente мы создаем сквозную зашифрованную платформу для хранения и обмена вашими фотографиями. В рамках этого мы также интегрируем Edge AI на устройстве, где мы будем использовать локальное машинное обучение на устройстве, чтобы помочь клиентам использовать такие функции, как поиск и классификация по лицам. Весь этот ML будет работать на их устройствах, чтобы серверы не знали о содержании фотографий.

Если это вас интересует, заходите, поздоровайтесь в нашем Discord или поделитесь с нами в Twitter.