К какому объекту относится местоимение «она» в первом примере — к рыбе или к приманке? Большинство людей легко понимают из контекста, что в одном случае «она» — это приманка, а в другом — рыба. Но для того, чтобы это осознать, нужно не просто прочитать предложение — а выстроить в голове целую картину мира!
- Если что, в России с российскими номерами не зайти.
- Теперь мы понимаем, что надо было писать конкретнее, и переписываем запрос.
- Но пока мы не готовы «эмпирически расшифровать» на основе «внутреннего поведения» ChatGPT то, как он понимает устройство человеческого языка.
- «Мы не считаем, что ChatGPT полностью заменит программистов, скорее он заменит некоторый пласт джунов, такие системы также хороши для поиска и генерации простых и популярных сниппетов кода.
Тогда мы можем получить явные данные для обучения, а затем используем тот факт, что при выполнении этой задачи нейронная сеть неявно должна принимать «решения о близости». Нейронные сети — по крайней мере, в том виде, в котором они есть в настоящее время — основаны на числах. Поэтому, если мы хотим использовать их для работы с чем‑то вроде текста, нам понадобится способ представить наш текст числами. И мы могли бы начать с того, что просто присваивать номер каждому слову в словаре (по сути, как это делает ChatGPT). Но есть важный момент, который выходит за рамки этого.
ChatGPT и планирование
Они учатся, почти как люди, и во время обучения получают только вводные данные и результат. А путь от одного к другому им нужно проложить самим. Для этого в них загружают огромные массивы информации — датасеты.
Так, например, «аллигатор» и «крокодил» будут часто встречаться почти взаимозаменяемо в похожих предложениях, и это означает, что они будут располагаться рядом в эмбеддингах. Но «репа» (turnip) и «орел» (eagle), как правило, не встречаются в похожих предложениях, поэтому они будут располагаться далеко друг от друга. На каждом этапе этого «обучения» веса в сети постепенно корректируются, и мы видим, что в конечном итоге мы получаем сеть, которая успешно воспроизводит нужную нам функцию. Основная идея заключается в том, чтобы на каждом этапе видеть, насколько мы далеки от получения нужной нам функции, а затем обновлять веса таким образом, чтобы приблизиться к ней. То, что ChatGPT может автоматически генерировать что‑то, что хотя бы на первый взгляд похоже на написанный человеком текст, удивительно и неожиданно. Цель этой статьи — дать приблизительное описание того, что происходит внутри ChatGPT, а затем исследовать, почему он может так хорошо справляться с созданием более‑менее осмысленного текста.
На выходе получается ёмкий и полный текст, а писать можно как своему другу. Тогда юрист Стивен Шварц представлял своего клиента в деле против авиакомпании. И когда пришло время подыскивать похожие случаи, он обратился к ChatGPT. Бот охотно нашёл для него несколько подходящих. И даже сослался на юридические базы данных, чтобы доказать, что они реально происходили. Вроде всё верно, но для нашего доклада этого мало.
Но вычислительный язык, по своей природе, имеет определенную фундаментальную точность — потому что в конечном итоге то, что он определяет, всегда может быть «однозначно выполнено на компьютере». Человеческий язык обычно может обойтись без некоторой расплывчатости. (Когда мы говорим «планета», включает ли она экзопланеты или нет и т. д.?) Но в вычислительном языке мы должны быть точны и ясны во всех употребляемых терминах. В конечном итоге таково представление «нейросетевого кодирования» особенностей человеческого языка. Но что это могут быть за особенности, пока неизвестно. По сути, мы «открываем мозг ChatGPT» (или, по крайней мере, GPT-2) и обнаруживаем, что да, там всё сложно, и мы не понимаем этого — хотя он и воспроизводит понятные людям предложения.
Просто добавляйте по одному слову…
Для генерации текстов, как оказалось, лучше всего подходит «температура» 0,8. Промпт-инженер — это специалист, способный сформулировать релевантные запросы к различным моделям искусственного интеллекта так, чтобы выданный ими результат соответствовал поставленной задаче. Название происходит от английского слова prompt, обозначающего текстовую подсказку, запрос.
В первом разделе мы говорили об использовании вероятностей 2-грамм для отбора слов на основе их непосредственных предшественников. Важным моментом является то, что каждая часть этого конвейера реализована нейронной сетью, веса которой определяются путем сквозного обучения сети. Другими словами, фактически ничто, кроме общей архитектуры, не является «явно спроектированным»; всё просто «обучается» на основе входных данных. Мы только что описали создание характеристики (и, следовательно, эмбеддинга) для изображений.
В чате можно генерировать новые эпизоды уже закрытых ситкомов и смешивать персонажей из разных вселенных. Например, в соцсетях просят чат-бота рассказать об алгоритме сортировки пузырьком через диалоги персонажей «Сайнфелда» или объяснить код в духе гангстеров из фильмов. После регистрации пользователь попадает в чат с ИИ. Затем нужно ввести запрос, и нейросеть ответит на том же языке. Нейросетью можно пользоваться бесплатно, для этого нужно только зарегистрироваться на сайте OpenAI.
Как получить доступ к ChatGPT, если в России нейросеть заблокирована
Но как на самом деле реализовать нечто подобное с помощью нейронных сетей? Давайте начнём с построения эмбеддингов для изображений. Мы хотим найти способ охарактеризовать изображения списками чисел таким образом, чтобы «изображениям, которые мы считаем похожими», были присвоены похожие списки чисел. У него есть хорошая особенность — он может выполнять «обучение без контроля», что значительно упрощает получение примеров для обучения. Напомним, что основная задача ChatGPT — понять, как продолжить полученный текст. Мы обсудим это подробнее позже, но суть в том, что, в отличие от обучения по изображениям, нет необходимости в явной разметке данных; ChatGPT может просто обучаться непосредственно на тех примерах текста, которые ему даны.
Да, нейронная сеть, безусловно, может принять во внимание те или иные закономерности в естественном мире, которые мы замечаем с помощью «человеческого мышления без посторонней помощи». Но если мы хотим разобраться в математике или численных методах, нейросеть не сможет этого сделать — если только она не будет эффективно использовать «обычную» вычислительную систему. С практической точки зрения можно представить себе встраивание небольших вычислительных моделей, таких как клеточные автоматы или машины Тьюринга, в обучаемые системы, такие как нейронные сети. И действительно, подобные плагины могут служить хорошим «инструментом» для нейронной сети, как Wolfram|Alpha может быть хорошим инструментом для ChatGPT.
Ведь, например, рыба может быть в разных ситуациях и голодной, и вкусной (на тарелке в ресторане). Вывод о ее «голодности» в данном конкретном примере вытекает из контекста и ее, извините, кровожадных действий. Давайте поразбираем новоприобретенные скиллы GPT-2 чуть поподробнее.
Что умеет ChatGPT
Как определить фундаментальную «онтологию», подходящую для общего языка символического дискурса? Возможно, именно поэтому в этой области мало что было сделано со времен примитивных начинаний Аристотеля более двух тысячелетий назад. Но очень помогает наше умение и понимание как думать о мире вычислительно (и не помешает «фундаментальная метафизика» из нашего проекта «Физика» и идея рулиады). Но все они соответствуют различным «врождённым» способам «думать» о том, что делать «за пределами коробки».
Мы ожидали, что чат расскажет о причинах дефолта. А ещё было бы неплохо узнать, какие меры должно принять государство, чтобы не допустить его. Здесь мы попросили добавить списки, но вы можете указать любое другое оформление. Например, заголовки разных уровней или таблицы, как было в примере про расписание на неделю. Как мы уже писали в статье о нейросетях, каждая из них — это программа. Но не такая, как большинство на вашем компьютере.
GPT-3, или как сделать из модели Невероятного Халка
Но значения, которые они там имеют, обязательно точны и могут нести в том числе и некоторую коннотацию. Имея язык символического дискурса, мы можем использовать его для создания «самостоятельных высказываний». Но мы также можем использовать его, чтобы задавать вопросы о мире в стиле «Wolfram|Alpha». Или мы можем использовать его для утверждения вещей, которые мы «хотим сделать таковыми», предположительно с помощью какого‑то внешнего механизма приведения в действие. Или мы можем использовать его, чтобы делать утверждения — возможно, о реальном мире, а возможно, о каком‑то конкретном мире, который мы рассматриваем, вымышленном или ином. И действительно, как и для людей, если вы скажете ему что‑то странное и неожиданное, что совершенно не вписывается в известную ему картину мира, не похоже, что он сможет успешно «интегрировать» это.
В каждом из этих «раундов обучения» (или «эпох») нейросеть будет находиться в несколько ином состоянии, и каким‑то образом «напоминание» о конкретном примере полезно для того, чтобы заставить её «запомнить этот пример». (И да, возможно, это аналогично пользе повторения для запоминания людьми). ChatGPT — это нейросеть для генерации продолжения текста, в основе которой лежит большая языковая модель, или LLM, от Large Language Model.
В таком подходе мы сначала пишем юнит-тесты, а затем GPT генерирует нам код под них. Можно даже сделать микс из тестов и высокоуровневого промптинга. В качестве решения он предлагает «скрестить» ИИ, подобный ChatGPT, с автоматическим тестированием. Человек пишет тест, который должна пройти будущая программа, а также запрос к ИИ на генерацию нужного кода и оставляет их «общаться» между собой. ChatGPT будет в течение многих итераций пытаться создать программу, которая сможет пройти тест.