ChatGPT - забвение или перерождение для программиста?

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

ChatGPT и русский язык: "Я есть мощный языковой модель"
ChatGPT и русский язык: "Я есть мощный языковой модель"

ChatGPT и некоторые другие чат-боты, созданные на основе больших языковых моделей, начиная с осени 2022, буквально не покидают новостные колонки. В СМИ их уже принято называть просто “искусственным интеллектом”. Мы ежедневно наслаждаемся новостями типа “ИИ сдал тест МВА”, “ИИ забанили на StackOverflow”, “ИИ прошел собеседование в Google” и тому подобное. Можно сказать, что на наших глазах в очередной раз рождается новая реальность. О том, какой она будет (особенно для программистов - это нас больше всего интересует) и как ChatGPT (возможно!) уже давно “выиграл” у нас в имитацию, с нами вместе порассуждал СТО Hello World! Technologies (HWdTech) Яков Лило (далее - от первого лица:).

Собственный опыт

Я абсолютно точно использую ChatGPT как минимум раз в неделю. Удивляет он меня примерно раз в две недели, но удивляет искренне и до глубины души - хочется спросить “да как вы это сделали?!”. Если бы я мог, я бы выделил награду за какой-нибудь “прорыв в технологиях” 2020-х годов для создателей ChatGPT.

То, как я воспринимаю этот ИИ, проще всего объяснить через призму парного программирования. Можно сказать, что он взял на себя роль напарника: я использую его для решения некоторых задач во время написания кода. Если я не понимаю, как реализовать что-либо и гугл не помогает - то уже терять нечего, пишем вопрос в ChatGPT. Он генерирует код, я вчитываюсь, понимаю, что это может сработать, затем копирую - и это реально работает. В такие моменты возникает буря эмоций, потому что речь идет не о простых кейсах, разумеется.

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

Еще один кейс ChatGPT - необходимость что-нибудь быстро накодить на малознакомых мне синтаксисах, языках программирования. Например, раз в полгода на PowerShell что-то написать. ИИ закрывает этот кейс полностью: если, допустим, мне нужен простой скрипт на PowerShell - он этот код сгенерирует, а я сам могу с легкостью его провалидировать.

Отдельно восхищает и умиляет его модель общения. То есть, он не просто выдает на-гора массивы кода, но еще и комментирует происходящее в духе: “Я тебе еще раз говорю, лучше писать код самому, а не бездумно копировать все отсюда”.

Если говорить о других способах улучшения рабочего процесса, я могу с радостью добавить, что ChatGPT помогает писать письма. У меня есть отдельный чат для этого под названием “Fix errors and make my message more polite” и я искренне надеюсь, что после того как мои письма проверяет ChatGPT, англоговорящие люди с западным менталитетом читают их с большим удовольствием.

Когда он не прав

Разумеется, иногда ChatGPT выдает полную ерунду. Если заглянуть под капот этого ИИ и ему подобных, всем процессом там рулят большие языковые модели (Large Language Model, LLM), они “предсказывают”, генерируют слова - в данном случае корректно называть их токены - последовательно, один за другим.

Кстати, вот, что говорит о своей способности генерировать токены и имитировать речь сам ChatGPT:

“Одним из ограничений больших языковых моделей является то, что мы не способны понять контекст или значение слов, которые мы генерируем. Мы можем создавать текст только на основе вероятностей того, что определенные слова или последовательности слов встречаются вместе, на основе данных обучения, которые мы получили. Это означает, что мы не можем объяснить или обосновать наши ответы, и мы не всегда можем генерировать ответы, которые полностью связны или имеют смысл в контексте разговора.”

(“ChatGPT Says We Should Prepare for the Impact of AI” - Time, 5/12/22)

( Источник: https://time.com/6238781/chatbot-chatgpt-ai-interview/ “ChatGPT Says We Should Prepare for the Impact of AI” - статья в Time от 5 декабря прошлого года)

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

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

Как мы будем жить: программирование

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

Должны ли мы приходить в ужас по этому поводу? Вряд ли. Если попробовать проанализировать предыдущие техно-прорывы, то они, как правило, давали людям больше рабочих мест и больше возможностей. В данном случае, все может сложиться точно так же.

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

Можно предположить, что ChatGPT будет более активно использоваться для код-ревью. Я сам для этого им не пользовался, но видел обсуждения подобных примеров, когда ChatGPT просят рассказать, “что делает этот код” (для этого можно отправить фрагмент кода и он текстом ответит, что произойдет). Другой вариант - когда пользователи просили ChatGPT переписать код и сделать его чище - и на выходе действительно получали более чистый код. Я уверен, что ChatGPT можно интегрировать в современные инструменты код-ревью и он будет давать советы. Главное помнить, что мы получим некое процентное соотношение прекрасных советов и белиберды, но, в целом, я считаю, что на этом поприще можно достичь хороших результатов.

Еще одна чудесная “страшилка” про ChatGPT заключается в том, что он может генерировать код с ошибками, но очень похожий на правду - и эти ошибки практически невозможно найти. Что тут скажешь? У меня достаточно большой опыт разработки, я видел многие системы изнутри…И я могу сказать, что очень многие из них написаны так, что ChatGPT тут вряд ли сможет еще что-то испортить и нагенерировать код хуже, чем уже было сделано до него. Считаю, что решение в данном случае - всестороннее развитие QA (Quality Assurance). Возможно, в скором времени мы обнаружим, что наиболее ценными специалистами в IT стали тестировщики. Особенно, если они придумают как действительно эффективно валидировать сгенерированный код - и как вообще оценивать то, что ты даже не можешь понять.

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

Что это даст нам и нашим клиентам

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

Но всегда остается что-нибудь, что ЕЩЕ можно автоматизировать. То есть, в любом бизнесе есть возможность для большей автоматизации и наращивания экономического блага. И с этим также может опосредованно помочь ChatGPT.

Еще жду или , скорее, мечтаю о том, что вырастет качество имеющихся IT-продуктов в целом. Хочется представлять себе это так: часть задач возьмут на себя машины, а у людей будет больше времени на продумывание высокоуровневой архитектуры, на эксперименты, на тесты и т.д.

Темная сторона ChatGPT

Настало время поговорить о том, как может быть использован - и уже используется во зло данный ИИ. Повод для разговора как минимум предоставлен новостями буквально 12-часовой свежести о том, что ChatGPT обучился писать вирусы под конкретные операционные системы. Вот что пишет ТАСС:

“Чат-бот на базе искусственного интеллекта ChatGPT обучился создавать программы-вирусы, нацеленные на индивидуальные особенности операционной системы и конкретные уязвимости, сообщил ТАСС в День российской науки заместитель директора по развитию Института математики и компьютерных технологий Дальневосточного федерального университета Роман Дремлюга.

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

(Источник: https://tass.ru/v-strane/16989501)

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

Еще в декабре мы с коллегами исключительно в исследовательских целях пытались заставить ChatGPT сгенерировать эксплойты - и он периодически это делал. То есть, даже с нулевым опытом программирования на PowerShell реально получить код, который можно использовать во вред. Как это происходит: либо алгоритмы фильтрации не срабатывают, либо мы задаем так хитро запрос, что в итоге получаем нужные ответы. В общем, подобных рисков много. Разработчикам и всему обществу еще предстоит найти решения как избегать подобных проблем.

Речи о том, чтобы запретить ChatGPT из-за этого не идет, потому что во вред и как оружие можно использовать практически что угодно - и мы имеем тому массу примеров в истории. Нужно искать не механизмы запретов, а механизмы защиты.

ChatGPT и тест Тьюринга

Еще одна животрепещущая тема для обсуждения - прошел ли ChatGPT тест Тьюринга. Прежде чем говорить на эту тему, мы проанализировали свежие и относительно свежие новости на тему и вот вам пара примеров того, что пишут вызывающие доверие издания:

"ChatGPT — это действительно новый горизонт. Многие люди дали ему проходную оценку в знаменитом «тесте Тьюринга», признав, что не могут отличить GPT от знакомого человека."

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

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

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

Что действительно можно сказать вслух, так это то, что мы реализовали представления об искусственном интеллекте 50-летней давности, то есть, то, что полвека назад считалось тру-ИИ, мы сейчас имеем в каждом устройстве. Звучит чудесно! Один вопрос в данной ситуации остается висящим в воздухе: если тест Тьюринга и его знаменитая “игра в имитацию” устарели и не подходят для оценки таких мощных LLM как внутренности ChatGPT, то чем его заменить? Судя по всему, сейчас идут активные поиски решения этого вопроса.

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

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

Конечно, мы читаем всевозможные статьи, в том числе объяснения самих OpenAI о том, как это работает. Но мы не можем проверить, как это устроено на самом деле. Например, мы не можем достоверно ответить на вопрос, может ли уже сейчас ChatGPT улучшать свой собственный код. В конце концов, большие языковые модели самообучающиеся, то есть, они уже итеративно самостоятельно себя улучшают - а значит в каком-то виде уже сами себя и разрабатывают.

И все же, резюмируя этот раздел, думаю, мы с вами еще поживем в старом мире - а великие прорывы в области полноценного ИИ достанутся уже следующему поколению…Или самим LLM.

ChatGPT и будущее человечества

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

Если мы говорим о медицине, то здесь у нас огромное количество незакрытых вопросов и огромные объемы знаний, которые один человек или даже группа ученых не может обработать. И тут мы получаем инструмент, который может работать с фантастическими объемами данных. Поэтому хочется верить, что моего воображения попросту не хватает на то, чтобы представить возможные открытия. Что это будет? Борьба с раком? Лекарства без побочных эффектов? Способы лечения психологических заболеваний? Все это - и многое другое, надеюсь.

Похожим образом можно загрузить в систему юриспруденцию и снизить нагрузку на юристов, позволяя им работать с более сложными случаями, опираясь на помощника, который ловко оперирует правовой базой. Нельзя не упомянуть сферу образования. Например, когда я был школьником, некоторые учителя ругались на то, что информация для доклада найдена в интернете. Сейчас сведения из бумажных книг, из библиотек - скорее редкость и использование их продиктовано, как правило, какими-то особыми причинами. К чему все это: учебный процесс - гибкое явление, ожидается, что он подстроится и под новые реалии, связанные с ChatGPT. Да, возможно, придется вообще отказаться от дипломов, рефератов, сочинений и всего того, что может быть сгенерировано, но на замену этому придут другие методы контроля знаний, возможно - более гибкие и интересные. В данном случае у меня скорее оптимистичные прогнозы.

Будущее самого ChatGPT

Если говорить о моих личных пожеланиях по развитию ChatGPT, скажем, в ближайшее время, то тут хотелось бы снова обратить внимание на те ситуации, когда он генерирует ерунду. Как мы уже говорили, проблема в том, что он не анализирует контекст и не может проверить надежность источников, из которых получает информацию. Мне бы хотелось, чтобы у ChatGPT появилась возможность каким-то образом проверять факты - и мне видится несколько путей решения для этого вопроса. Мы можем создать уникальную базу знаний специально для него и тогда в случае “собрал все подряд из интернета” бот сможет хотя бы провалидировать полученную информацию. Другой вариант - если ChatGPT мог бы именно сам гуглить и предоставлять нам результаты именно в формате “пользователь, я за тебя погуглил, а дальше ты сам принимай решение, верить этим источникам или нет”. Либо, чтобы юзер сам мог выбрать источники, которым он доверяет, и пользоваться только ими.

ChatGPT и мы (вместо заключения)

Появление таких технологий, как ChatGPT буквально заставляет нас увеличивать требования к человечеству. Начиная от простейшего повышения уровня цифровой грамотности и заканчивая тем, что раз уж у нас в руках есть такой потрясающий инструмент, то с его помощью мы должны генерировать контент, работы, продукты более высокого качества. Думаю, через пару лет мы уже научимся на интуитивном уровне понимать, что может ChatGPT и что может человек с использованием ChatGPT. И, глядя на какую-то работу, я буду осознавать, смог ли человек привнести что-то свое в результаты работы этого инструмента или просто “бездумно скопировал”. Это дает нам интересное поле для конкуренции - использовать ChatGPT так, чтобы выиграть у всех остальных людей - а значит и для развития.

1313
4 комментария

Вообще, если подумать об этом, множество систем с открытым кодом наверняка содержит какие - то уязвимости и баги
Вполне можно сделать AI, который эти баги будет обнаруживать и предотвращать, или эксплуатировать
Хотя я, как всегда, опоздал, и такие системы давно уже наверное существуют

Ответить

да, sonarqube и whitesource например

Ответить

Комментарий недоступен

Ответить