Вы наверняка уже слышали про ChatGPT, а кто-то уже с ним пообщался. Я тоже попробовал и до сих пор пребываю в состоянии экзистенциального ужаса. Не потому, что ChatGPT захватит мир – на это он не способен – а потому, что ChatGPT и последующие за ним технологии изменят мир не меньше, чем изменил в свое время персональный компьютер и интернет.
Это громкое заявление, особенно на фоне хайпа вокруг приходящих и уходящих криптовалют, NFT, мета-вселенных и т.п. Вокруг ChatGPT тоже есть и будет хайп, но за ним стоит нечто очень большое. Чтобы прийти к этому выводу и понять в какую сторону изменится мир, нужно разобраться в нескольких вещах:
- Что такое ИИ, ChatGPT, как он работает и что умеет? (вы здесь)
- Какие ограничения и проблемы есть у ChatGPT?
- В чем прорыв ChatGPT и почему после этого все будет по другому?
- Что это значит для общества и человечества?
- Какое будущее нас ждет?
Прежде чем начнем, пара ремарок:
-
Я буду говорить в основном о ChatGPT, потому что это первый массово доступный чат-бот такого уровня. Однако на нем свет клином не сошелся и у него будут конкуренты, а через год-два его возможности будут выглядеть скромно. Практически каждую неделю анонсируют что-то новое, например на прошлой неделе открыли доступ к GPT-4.
-
При всей моей любви к техническим деталям, я не буду подробно останавливаться на том, как такие чат-боты устроены внутри. Во-первых, есть люди, которые сделали это лучше меня. Во-вторых, вне зависимости от того, как работают такие боты, нам всем потом жить в мире, который они изменят – эта часть куда более важна. Наконец, я никогда не допишу посты, если пойду в технические детали.
Теперь посмотрим что же такое ИИ, что такое ChatGPT, как он работает и что умеет.
Что такое ИИ и какие они бывают?
Сначала разберемся с терминами. Такие инструменты как ChatGPT принято называть Искусственный Интеллект (Artificial Intelligence), сокращенно – ИИ (AI). Если немного упрощать, то ИИ – это просто статистика на больших данных. Большое количество данных размеченных определенным образом пропускают через алгоритм, который пытается найти и зафиксировать взаимосвязи между данными и метками или между разными частями данных в определенной структуре (обычно – “нейронной сети”). Если алгоритм и нейронная сеть эффективные, данных много и они качественные, то на выходе ИИ усвоит какие-то закономерности и сможет уже сам что-то “делать”.
При этом ИИ – это очень щедрое название, по большей части маркетинг. Искусственного там много, но интеллекта нет (да простят меня наши будущие ИИ-повелители). Или есть? Проблема в том, что мы плохо представляем, что такое интеллект и сознание, в том числе и наше, поэтому можем увидеть их там, где их нет, или пропустить момент, когда они появятся.
Например, в прошлом году инженер из Google (теперь бывший), заявил, что их чат-бот Lambda обрел самосознание. Это крайне маловероятно в том конкретном случае и в отношении всех существующих на данный момент ИИ систем, но иллюстрирует, насколько это неоднозначный вопрос. Подробнее поговорим об этом в посте о будущем, которое нас ждет.
Обычно выделяют две группы ИИ: узкие (narrow AI) и широкие/общего назначения (Artificial General Intelligence, AGI). Все существующие системы пока относятся к узким: они умели делать только весьма ограниченный задач, которым их обучили, зато делали это очень хорошо. Подразумевается, что ИИ общего назначения будут способны решать тот же спектр задач, что и человек. При этом вопрос, будет ли у такого ИИ собственная воля и самосознание напрямую не с этим не связан.
Несмотря на то, что ChatGPT работает только с текстом (основанный на GPT-4 еще и с картинками), это явно шаг в сторону ИИ общего назначения, уж слишком много разноплановых интеллектуальных задач он умеет решать.
Что такое ChatGPT и кто его сделал
ChatGPT – это просто интерфейс для доступа к GPT модели для генерации текста – по названию технологии обучения на которой они построены – Generative Pre-trained Transformer. У GPT было три поколения: собственно GPT, GPT-2 и GPT-3, каждое с возрастающим качеством генерации текста. На прошлой неделе выпустили GPT-4, которая теперь еще и картинки распознает. Для всех пользователей ChatGPT доступна модель GPT-3.5, а платные пользователи уже сейчас могут попробовать GPT-4.
На основе GPT также работает и GitHub Copilot – ИИ помощник для разработчиков. Недавно Microsoft выпустил в закрытый тест новую версию поиска Bing, которая также использует GPT от OpenAI. О ней почти говорить не буду, потому что она пока тестируется в полузакрытом режиме.
Обсуждая продукты OpenAI нельзя не сказать о самой компании. Она начиналась как некоммерческая, однако в 2019-м году реорганизовалась в коммерческую с прибылью, ограниченной 100х инвестиций. При этом она последовательно уменьшала объем разработок, которыми она делится с общественностью. Теперь шутят, что открытость осталась только в названии.
Как работает ChatGPT
Принцип работы ChatGPT очень прост: он всего лишь пытается угадать какое будет следующее слово в тексте с учетом контекста чата, который у него есть и части ответа, который он уже сгенерировал до этого. То же самое делают “умные” клавиатуры, которые предлагают добавить следующее слово:
Вот, например, что я накликал 🍻:
ChatGPT отличается тем, что в нем используется намного более эффективный алгоритм анализа текста и он обучен на несравнимо большем объеме информации. Однако суть от этого не меняется.
Обучали ChatGPT в два этапа. Сначала самообучение на текстах из интернета и других источников, чтобы система усвоила взаимосвязи между словами, конструкциями, фактами и т.п. В этом плане ChatGPT – одна из самых крупных моделей со 175 миллиардами параметров.
Проанализировав тексты, на которых обучали ChatGPT, он зафиксировал с какой вероятностью и какие слова следуют друг за другом с учетом контекста предыдущих слов. В самом простом варианте:
Отличие от умной клавиатуры в том, что ChatGPT “понимает”, что если пользователь закончил предложение троеточием, то нужно закончить предложение, особенно если это расхожая фраза.
При этом, благодаря тому, что он “помнит” контекст и обучен на огромном массиве информации, он может улавливать непрямые связи между словами. Например, если один текст нахваливает туристам Лувр, а другой текст говорит о том, как красива Эльфелева башня, стоит ожидать, что по запросу, что посмотреть в Париже, он порекомендует обе достопримечательности.
Затем ChatGPT обучали люди: переписывались с ним и оценивали качество ответов, говорили, что какие-то вещи говорить нельзя и т.п. Похоже, что на этом этапе и возникла магия: из очень мощной, но несфокусированной, языковой модели ChatGPT научился хорошо и естественно вести беседу.
Если вам интересно пойти в технические глубины и историю вопроса, рекомендую этот пост на VC.
Что умеет делать ChatGPT
В интернете уже много примеров того, что можно сделать с ChatGPT (например, раз, два, три) и будут появляться все новые, по мере развития системы и опыта ее использования. Поэтому остановлюсь на сценариях, которые использую сам.
Генерация кода и IT задачи
В моей практике ChatGPT показал себя особенно хорошо при работе с новыми для меня IT технологиями и библиотеками или простыми задачами, которые делаю редко, поэтому каждый раз как будто с нуля. Ему можно задать вопрос из серии “как бы мне сделать А, учитывая Б и В” и он подскажет решение. Иногда его несет не в ту степь или требуются уточняющие вопросы, но это почти всегда быстрее, чем Google или StackOverflow (популярный среди разработчиков ресурс с вопросами и ответами).
Например, был у меня вопрос по работе: как посчитать размер всех таблиц в базе данных PostgreSQL. Ответ на него я уже скопировал со StackOverflow нашел сам, но мне было интересно, как ChatGPT к этому подойдет:
Пока что ничего выдающегося – нагуглить ответ несложно. Магия начинается в уточнениях: добавить сортировку по убыванию размера таблиц:
Отобразить размер не в байтах, а в более понятных человеку единицах:
При этом обратите внимание, что он (а) сохранил сортировку и (б) переделал ее, потому что сортировать по size
больше нельзя было бы: теперь там вместо числа байтов строка 51 MB
, 112 KB
и т.п. которые уже нельзя отсортировать правильно.
Таким образом вопрос, который занял бы как минимум минут десять, решился за одну-две. Я пробовал и куда более сложные задачи и везде ChatGPT показывал себя как минимум достойно, хоть пару раз и предлагал неработающие решения.
На этом видео еще более впечатляющий пример: ChatGPT ведет себя как база данных – отрабатывает запросы, “хранит” данные, в которые нее записывают, пишет и исполняет хранимые процедуры. При этом, ChatGPT отдельно не учили этому, просто проанализировав миллиарды документов, в том числе посты в интернете, документацию к БД и т.п. он “понял”, что после определенной последовательности символов (SQL запросов) следует определенный результат.
Если посмотреть на родственника ChatGPT – GitHub Copilot, то последний почти не умеет отвечать на абстрактные вопросы, зато творит магию при дополнении кода: он не только дописывает код, но и учитывает контекст всего проекта, фрагменты похожей функциональности и стиль. Регулярно попадаю в ситуацию, когда начинаю написать кусок кода, а Copilot дописывает его ровно так, как мне надо было.
Вот недавний пример: я переписывал систему клиента с JavaScript на Python и на первом этапе создаю модели (описание как будут храниться данные). Чтобы ускорить процесс я скопировал код JavaScript со списком атрибутов модели (серая рамка), чтобы не переключаться между окнами и ничего не забыть. Как только я начал писать код модели, Copilot дописал его:
Это не бездумный код “на выброс”, скопированный откуда-то из базы на которой обучалась система:
- Верно распознал и описал все атрибуты, которые я скопировал (первая зеленая рамка). Кроме одного: он проигнорировал особый случай с
id
(красная рамка), который он, по всей видимости, не понял. - Учел, что меня не интересует
job_id
, а нужно создать связь с написанной до этого модельюJob
. - Написал функцию
create
(вторая зеленая рамка), которую я использую в других файлах проекта для других моделей, и почти так, как я бы ее написал, вплоть до разметки типов переменных. - Добавил функции
__str__
и__repr__
, которые на тот момент я не планировал писать, но это хорошая практика – почему бы и не оставить.
Результат не идеальный, но все равно сэкономил мне как минимум 3-5 минут на написание базового кода.
Перевод
Перевод “сложного” термина на русский – как перевести “bucket list” (недавно озадачился как бы емко его перевести на русский). Обратите внимание, насколько развернутый и хороший ответ он дает, достаточно было переспросить (опечатка ему не помешала: truanslaction).
Другой пример чисто для теста: попросил перевести его вступление из прошлогоднего поста про марафон:
Немного вольно, но все-равно хорошо получилось. Весь пост целиком он тоже хорошо перевел, особенно для ИИ общего назначения, который не для переводов создавался.
Редактура и стилизация текста
Писал я недавно пост на тему работы с именованными диапазонами (named ranges) в Google Sheets и попросил ChatGPT его проверить на ошибки:
Он нашел нестыковки в тексте, пару неясных мест и стилистический огрех. Редактор-человек, конечно, нашел бы больше, однако бесплатно, за несколько секунд и без ограничений по количеству попыток – почему бы и нет.
ChatGPT также умеет переписывать письма на более “профессиональный” язык, улучшать резюме, писать сопроводительные письма. Например, здесь он пишет письмо в службу поддержки с просьбой вернуть деньги:
С первой попытки он подумал, что это письмо от компании клиенту, но после второго запроса все сделал верно.
Ответ на вопросы
Недавно посмотрел канадский сериал Schitt’s Creek (неожиданно приятный). По сюжету главные герои-богачи разорились и последнее, что у них осталось – это город, который они купили как-то в шутку. Мне было интересно что это значит и не должно ли владение городом приносить им денег:
Я не на 100% уверен, что этому ответу можно доверять, но звучит убедительно и соответствует миру сериала.
В другой раз спросил его про разницу между японским и индийским карри:
Опять же, сложно сказать, насколько это достоверный и полный ответ, но он звучит логично.
Наконец, я задавал ему непростые юридические вопросы, на которые я знал ответ, а где-то имел ответ юриста, и он ответил верно, правда без ссылок на законодательство и без большого количества деталей. При этом юристом его быть еще не учили. Следующее поколение – GPT-4 по заявлениям создателей сдает экзамен на американского адвоката в топ 10%.
Сбор информаци, ресерч, брейнсторминг
ChatGPT неплохо умеет собирать информацию на заданную тему или даже писать целые посты. Например, вот что он выдал про этапы адаптации эмигранта в Канаде. На мой вкус слишком академично, но для русского языка и как стартовая точка для поста все равно хорошо:
Намного лучше получается у нового основанного на GPT чат-бота от Bing, поскольку он имеет доступ в Интернет. Например, какие четыре фразы я мог бы отправить в Древний Рим в прошлое, чтобы они поняли и чтобы научить их технологиям, которые могли бы предотвратить падение Рима? (источник)
Наверняка среди миллионов книг и постов, люди рассуждали на похожие тем, но сколько часов займет это найти и расписать у человека?
Выводы
У кого-то прочитал, что ChatGPT похож на преисполненного энтузиазмом и желающего угодить вам стажера, который в силу излишнего рвения может и ошибиться и приврать. Поэтому за ним надо перепроверять, особенно если высоки ставки. По-моему, это очень меткое сравнение: примерно такой же опыт работы был у меня со стажерами, да и таким стажером я сам себя помню. Интересное дело: в первый раз приходится всерьез сравнивать ИИ с человеком не в таком широком контексте.
Описанные выше сценарии использования ChatGPT – это только верхушка айсберга. Его можно применять везде, где идет работа с текстовой информацией в свободной форме. Если у вас еще не возникло неприятного ощущения, что вас скоро заменят роботы или, как минимум, грядут большие изменения, то поздравляю: у вас стальные нервы.
Конечно, не все так радужно для машин: у ChatGPT и вообще всего семейства таких технологий есть ряд недостатков, на которые мы посмотрим в следующем посте.