Нейроночки: ChatGPT

Нейроночки: ChatGPT

Дмитрий Бахтенков
ChatGPT пытается не спалиться

Нейронные сети всё плотнее входят в нашу жизнь - начиная от различных рекомендательных систем, например в Spotify или Яндекс Музыке, заканчивая Mindjourney и ChatGPT. Слова о том, что “нейросети заменят программистов” уже не кажутся шуткой, а при должных навыках составления запросов сделать простой дизайн на генеративных нейронках может любой prompt-engineer.

В этой статье мы поговорим о ChatGPT. Как его можно использовать, какие ограничения и вообще что это и зачем.

ChatGPT

Ну и начнём, наверное, с самой нашумевшей в последнее время нейронки - ChatGPT.

ChatGPT — чат-бот с искусственным интеллектом, разработанный компанией OpenAI, способный работать в диалоговом режиме и поддерживающий запросы на естественных языках. ChatGPT — большая языковая модель, для тренировки которой использовались методы обучения с учителем и обучения с подкреплением. Данный чат-бот основывается на другой языковой модели от OpenAI — GPT-3.5 — улучшенной версии модели GPT-3.

(с) Википедия.

Вообще, OpenAI - компания, которая плотно занимается нейронными сетями и связанными с этим всем технологиями. Одним из её основателей является Илон Маск.

А ещё OpenAI не совсем Open. А жаль 😟

Что он может?

Как было написано выше, ChatGPT работает в формате диалога. Так давайте же спросим, а что, собственно, он умеет?

Звучит так, как будто он умеет всё 🙂

Для тех, кто не любит много читать: ChatGPT умеет общаться, отвечать на вопросы, генерировать тексты, и всё это в рамках диалога на естественном языке

Ещё я спросил его про ограничения:

Не может выполнять сложные творческие задачи, ограничен базой данных на конец 2к22 года, нет эмоций. Понял, принял.

Как я его использую

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

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

При желании можно попросить составить под-план для каждого пункта и много чего ещё. Но так как это был тест - к теме DevSecOps я уже немного остыл - я решил попробовать что-то ещё.

В моём текущем пет-проекте есть модуль парсинга текста - с помощью регулярных грамматик мы вытаскиваем из свободного ввода даты, например “Завтра в 9 иду гулять” → “Гулять”, “25.02.2023 9:00”. (Делал я это с помощью библиотеки, в которой парсинг уже был заложен, а не с нуля, если что)

Я попросил его сделать такой парсер для русского языка на C# и написать под него тесты.

На первый взгляд норм, он даже написал тесты:

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

Далее я написал статью про кэш вместе с ChatGPT - тут уже лучше, хотя он внёс некоторую путаницу в понятие “Тип кэша”.

План статьи:

Детализация разных пунктов:

И так далее. Это неплохо ускорило написание статьи, да и в целом довольно удобный инструмент.

А ещё он очень хорошо кодит на питоне - за час я написал простое API на FastAPI и SQLAlchemy. С минимальными правками оно запустилось и вроде как заработало

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

Подводя итоги, лично я использую ChatGPT следующим образом:

  1. Написание статей и их планов (для этой статьи он тоже использовался)
  2. Рутинные штуки в коде (CRUD- операции, несложные тесты)
  3. Написание планов обучения и первичный рисёрч информации

Ограничения ChatGPT

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

Например, я общался с ним про реализацию протокола ActivityPub на Python, и он посоветовал несуществующую библиотеку (или она в приватном репозитории):

Я сказал ему об этом, и вот что получил в ответ - две из трёх предложенных ссылок невалидны:

Ну ещё ChatGPT недоступен в России, и он имеет ограничение на количество входящего текста и на размер ответа. Первая проблема решается иностранным номером телефона и впн, а вторая - словом “continue”, если вы заметили что бот не договорил. Так что это мелочи.

Выводы

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

ChatGPT пока что не способен заменить программистов. Он неплохо пишет некоторые рутинные штуки - коннекты к БД, CRUD, простые тесты, но как только задача выходит за рамки этой рутины - он становится плох.

Ну и под конец - по мнению ChatGPT ИИ не захватит мир (или я его плохо уговаривал)


Report Page