Дата публикации: 19.10.2023
У вас тоже есть странное ощущение, что ChatGPT был всегда в нашей жизни? Почему «странное»? Да потому, что ему ещё и года нет! За такой короткий период многие очень крутые технологии только начинают набирать популярность. Но детище корпорации OpenAI уже обрело свою мировую славу, пережило восторг и критику, обожание и страх. Даже если вы никогда им не пользовались – вы точно о нём слышали.
Для справки: ChatGPT (от англ. Generative Pre-trained Transformer «генеративный предварительно обученный трансформер») – чат-бот с искусственным интеллектом, разработанный компанией OpenAI и способный работать в диалоговом режиме, поддерживающий запросы на естественных языках (то есть, нормальных, человеческих, а не языках программирования). ChatGPT был запущен 30 ноября 2022 года – скоро у него первый «день рождения». 14 марта 2023 года была выпущена языковая модель GPT-4, а потом началось всяческое «беспокойство общественности по поводу быстрого развития ИИ» (Безобразие! Общественность, ну вы чего?! – Прим. авт.) и, в общем, обучение новой модели нейросети – ChatGPT-5 в настоящее время не ведётся.
Спасибо, «Вики»: ru.wikipedia.org/wiki/ChatGPT
Оговоримся сразу, что термин «искусственный интеллект» для ChatGPT и других чат-ботов на основе больших языковых моделей (LLM) выбрали СМИ. Мы каждый день видим заголовки типа «ИИ сдал ЕГЭ», «ИИ прошёл тест МВА», «ИИ забанили на StackOverflow», «ИИ прошёл собеседование в Google» и так далее. Насколько корректно их так называть и как ChatGPT, возможно, уже «выиграл» у нас в имитацию, мы обсудим позже, а сейчас нам интересно, что он принёс в нашу жизнь в течение года и, прежде всего, что изменилось с его появлением для разработчиков.
Как ОН устроен?
Под капотом ChatGPT и ему подобных всеми процессами управляют большие языковые модели (Large Language Model, LLM). Они «предсказывают» и генерируют слова – в данном контексте их правильно называть «токены» – по одному за раз.
Кстати, вот что говорит о своей способности генерировать токены и имитировать речь сам ChatGPT:
«Одним из ограничений больших языковых моделей является то, что мы не способны понять контекст или значение слов, которые мы генерируем. Мы можем создавать текст только на основе вероятностей того, что определённые слова или последовательности слов встречаются вместе, на основе данных обучения, которые мы получили. Это означает, что мы не можем объяснить или обосновать наши ответы, и мы не всегда можем генерировать ответы, которые полностью связны или имеют смысл в контексте разговора».
Источник: “ChatGPT Says We Should Prepare for the Impact of AI” – Time, 5/12/22 – time.com/6238781/chatbot-chatgpt-ai-interview/ “ChatGPT Says We Should Prepare for the Impact of AI”
Другими словами, если ChatGPT не знает правильного ответа на наш вопрос, это его не остановит – он продолжит генерировать токены, и в результате мы получим полный бред, но очень убедительный. Это относится как к текстовым сообщениям, так и к коду. И код в этом случае проверить проще: компилируется и запускается – отлично, не получается – разбираемся дальше. Однако и здесь есть подводные камни, о которых мы ещё поговорим.
Яков Лило, технический директор компании Hello World! Technologies (HWdTech), поделился своим опытом сотворчества с ChatGPT за этот год и развенчал некоторые популярные мифы, например о том, что из-за чат-ботов программисты вот-вот лишатся рабочих мест.
Что было раньше?
«Я использую ChatGPT по меньшей мере раз в неделю. Он удивляет меня примерно раз в две недели, причём удивляет сильно и глубоко. То, как я отношусь к этому ИИ, проще всего объяснить с точки зрения парного программирования. Когда я не понимаю, как что-то реализовать и “Гугл” не помогает, мне уже нечего терять, поэтому я пишу вопрос в ChatGPT. Он создаёт код, который реально работает. В эти моменты у меня буря эмоций, ведь речь идёт не о простейших случаях, конечно. Например, мне нужно было поработать с библиотекой Mono.Cecil, с которой я никогда раньше не сталкивался. Благодаря ChatGPT я получил работающие примеры кода, которые найти в интернете довольно сложно. Это очень помогло мне продолжить работу», – так описывал процессы Яков в феврале 2023 года.
А что сейчас?
А вот так изменилась работа Якова с ChatGPT за период с февраля по октябрь текущего года.
«С ChatGPT мы вышли на совершенно новый уровень взаимодействия: я начал использовать его API. С его помощью я разработал прототип для создания интерфейсов приложений. Используя различные обходные решения, мне удалось добиться результата. Думаю, что разработка пользовательских интерфейсов будет первой областью, которая сильно изменится именно благодаря ChatGPT и его аналогам. Однако здесь мы должны обратить внимание на то, что современные инструменты для разработки написаны под программистов-людей, а чтобы дать ChatGPT&Co возможность проявить себя в полную силу, для них нужно писать отдельные инструменты. Возможно, с помощью самих же чат-ботов», – говорит наш эксперт.
Что ещё ОН умеет?
Из задач, связанных с разработкой ПО и выполняемых ChatGPT, стоит отметить возможность быстрого написания кода на малознакомых программисту языках и синтаксисах. Он создаёт рабочие примеры кода, которые разработчику остаётся только корректно проверить.
Если говорить о других методах улучшения рабочего процесса, стоит добавить, что ChatGPT помогает писать деловые письма, в том числе на иностранных языках. Его можно попросить «исправить ошибки и сделать моё письмо более вежливым», «сделать формулировки более изящными» и т. д.
«Я искренне надеюсь, что англоговорящим людям с западным менталитетом гораздо приятнее читать мои письма после того, как их проверил ChatGPT, – добавляет Яков. – Вообще я часто консультируюсь с ChatGPT по вопросам английского языка, в частности, грамматики. Иногда мне встречаются предложения, которые, как мне кажется, неверно составлены. Ранее я писал своим англоязычным друзьям с вопросом “А почему так?”, но у них не было особого желания просвещать меня, а вот ChatGPT делает это с большим удовольствием».
ОН правда отупел?
В июле ученые из Стэнфорда и Калифорнийского университета представили любопытное исследование, в котором на основании множества проведённых тестов утверждается, что за три месяца возможности ChatGPT существенно сократились. «Существенно» в данном случае – это аж в пять раз. В статье сказано, в частности, что возможность с первого раза написать рабочий код даже у GPT-4 упала с 52% до 10%.
Среди возможных причин такой «деградации» называли две – скучную и весёлую. Скучная заключается в том, что OpenAI просто экономит и намеренно отключает некоторые возможности чат-бота. Весёлая: ChatGPT учится у людей – и это всего лишь последствия обучения. В Википедии же ситуация объясняется феноменом «дрейфа» – это когда при попытке улучшить одну часть системы ухудшается работа других.
Мы поинтересовались у нашего эксперта – и вот что он думает по поводу неожиданного снижения производительности:
«У меня есть своя теория, согласно которой виноват во всем не ChatGPT. Заметил за собой, что если в начале использования я давал много контекста при каждом запросе и подробно описывал задачу, получая хороший результат, то со временем стал упрощать запросы (лень!) и закономерно начал получать менее впечатляющие ответы, однако всё ещё вполне пригодные для решения моей задачи. Возможно, где-то что-то и ухудшилось в ChatGPT, но я уверен, что изменений к лучшему больше».
Также Яков с уверенностью отвергает версию о том, что ChatGPT тупеет, обучаясь на наших с вами ошибках, потому что, по идее, данные, которые мы с вами вводим, общаясь с чат-ботом, на его развитие вообще влиять не должны, пока не пройдут валидацию:
«Пользователи вносят данные низкого качества, но зато их много! Понятно, что хочется как-то использовать это, и можно придумывать подходы, но точно нужно как-то валидировать такой ввод и нельзя на него безусловно полагаться. В общем, пока нет официального подтверждения, что деградация произошла “из-за пользователей”, я в это не верю. Если же такое подтверждение есть, у меня возникают вопросы к людям, принимающим решения: почему не валидируется инпут?»
Как мы будем жить: программирование
Сегодня ChatGPT вызывает противоречивые эмоции: от восхищения до страха. В основном эти чувства порождаются всевозможными прогнозами, связанными с ним.
Вот что говорит Яков, отвечая на вопрос о том, приведёт ли развитие этой технологии к сокращению рабочих мест в IT:
«Должен признаться, десять лет назад я был убеждён, что если ты умеешь программировать, то у тебя всегда будет достаточно работы. Сейчас всё меняется очень быстро, и у меня возникают подозрения, что наша профессия сильно изменится – и это произойдёт не через полвека, а, возможно, через 5–10 лет. Должны ли мы ужасаться по этому поводу? Едва ли. Если попытаться проанализировать предыдущие технологические прорывы, то, как правило, они давали людям больше рабочих мест и больше возможностей. В этом случае всё может сложиться так же».
«Честно говоря, мне не нравится качество современных IT-продуктов и то, как развивается отрасль информационных технологий в целом», – отмечает Яков. По его мнению, такие инструменты, как ChatGPT и аналогичные ему ИИ, помогут поднять программирование на новую высоту. Тогда базовые задачи по созданию кода могут быть делегированы искусственному интеллекту, в то время как люди смогут работать на более высоком уровне абстракции.
Можно предположить, что ChatGPT станет активнее использоваться для код-ревью. Наш эксперт его для этого не использовал, но упомянул примеры обсуждений, где ChatGPT просили объяснить, «что делает этот код» (для этого ему можно отправить фрагмент кода) – и он отвечал текстом, что именно произойдёт. Есть и другой вариант использования: пользователи просят ChatGPT переписать код и сделать его чище – и в результате получают более чистый код. Яков считает, что можно интегрировать ChatGPT в современные инструменты код-ревью, и он будет не только проверять, но и давать полезные рекомендации. «Главное помнить, что мы получим некое процентное соотношение прекрасных советов и белиберды, но в целом, я считаю, что на этом поприще можно достичь хороших результатов», – добавляет он.
Самая любимая всеми «страшилка» о ChatGPT состоит в том, что он способен генерировать код, который содержит ошибки, но выглядит правдоподобно – и потому эти ошибки трудно обнаружить. По мнению нашего эксперта, в большинстве случаев «простой человеческий» код всё равно не лучше:
«У меня достаточно большой опыт разработки, я видел многие системы изнутри. И я могу сказать, что очень многие из них написаны так, что ChatGPT тут вряд ли сможет ещё больше напортить, сгенерировать код хуже, чем это сделали программисты без него».
Он считает, что решением в данной ситуации является всестороннее развитие контроля качества (QA). Вероятно, вскоре мы обнаружим, что самыми ценными специалистами в IT станут тестировщики. В особенности если они найдут способ эффективно проверять сгенерированный код и оценивать его, даже если он непонятен.
Из приятного – нас наверняка ждут новые языки программирования. Скорее всего, разработки на эту тему уже ведутся. В случае с ChatGPT хочется надеяться, что это будут языки, которые проще валидировать и интегрировать с работой больших языковых моделей.
Также стоит ожидать значительного развития автоматизации в бизнесе. С одной стороны, это совсем не новый процесс – у IT-компаний всегда есть клиенты, которые приходят с запросом что-то автоматизировать, это приносит положительные результаты: компании начинают функционировать более эффективно – и все довольны. Однако всегда есть что-то, что ещё можно улучшить, и в любом бизнесе существует возможность для дальнейшей автоматизации и повышения экономического благосостояния, и с этим также косвенно может помочь ChatGPT.
Также мы все – вместе с нашим экспертом Яковом – очень сильно надеемся, что качество существующих IT-продуктов улучшится в целом. Хотелось бы представить это так: некоторые задачи возьмут на себя машины, в то время как у людей будет оставаться больше времени для продумывания высокоуровневой архитектуры, экспериментов, тестов и так далее.
Автор: Ольга Зайцева
Сопутствующие иллюстрации: нейросеть Kandinsky 2.2