ChatGPT — лучший помощник программиста. Примеры реальных задач. Плагины и инструменты

eleqirkmho3wwwkdcn7yur3we7u.png


Языковая модель ChatGPT никогда не заменит программиста, потому что непосредственно редактирование кода — это крохотная часть разработки (5% по времени). Зато ChatGPT великолепно помогает. И чем выше ваш скилл — тем больше пользы от «подмастерья», выполняющего мелкие задания и черновой кодинг. Он пишет простые функции, генерирует документацию, находит и объясняет ошибки, выполняет кучу других задач (полный список под катом).

Сегодня не использовать ChatGPT просто глупо… Это действительно универсальный помощник, который сильно облегчает жизнь и выводит программирование на принципиально новый уровень. Одно из величайших изобретений в IT за десятилетия, после GUI и интернета.

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

▍ Универсальный помощник


Перечислим типичные варианты использования ChatGPT в программировании.

  1. Генерация кода. Первая и очевидная задача — генерировать код для простых задач, которые можно сформулировать в текстовом виде.

    Пример:

    Напиши функцию Python, которая принимает на вход массив чисел, выполняет пузырьковую сортировку и возвращает отсортированный массив.

    Результат:

    Конечно! Вот функция на Python, которая принимает массив чисел и сортирует его пузырьковой сортировкой:
    python
    Copy code
    def bubble_sort(arr):
        n = len(arr)
        # Проходим по всем элементам массива
        for i in range(n):
            # Последние i элементов уже отсортированы
            for j in range(n - i - 1):
                # Если текущий элемент больше следующего, меняем их местами
                if arr[j] > arr[j + 1]:
                    arr[j], arr[j + 1] = arr[j + 1], arr[j]
        return arr

    Как использовать эту функцию:
    python
    Copy code
    my_array = [3, 5, 1, 9, 0, 2, 4, 6, 8, 7]
    sorted_array = bubble_sort(my_array)
    print(sorted_array)

    Этот код выведет [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], то есть отсортированный массив.

    Для поиска таких фрагментов кода ChatGPT удобнее, чем StackOverflow. Потому что он может продолжить диалог и изменить фрагмент по вашему желанию, исправить ошибки, дополнить и т. д. Очень удобно — не нужно тратить время на шаблонную работу и поиск стандартного кода.
  2. Автоматическая генерация тестов и тестовых данных.
  3. Поиск ошибок и проблем. Вы можете скормить чат-боту фрагмент кода и попросить найти проблемы в нём (так работает расширение ChatGPT для VS Code) или объяснить, почему возникает ошибка при компиляции или в продакшене.
  4. Объяснение непонятного кода. Аналогично предыдущему пункту, ChatGPT разъясняет смысл и замысел сложных или обфусцированных инструкций, помогает разобраться.
  5. Оптимизация кода, рефакторинг.
  6. Проверка кода на соответствие стандартам.
  7. Поиск уязвимостей в любых системах, включая конкретные репозитории. С помощью ChatGPT хакеры создают вирусы и скрипты для взлома.
  8. Чат-боты службы техподдержки.
  9. Интеграция своих программ с ChatGPT API. С 1 марта 2023 года OpenAI открыла REST API, что позволяет разработчикам внедрить интеллект ChatGPT в собственный код. Вот пример кода на Python с вызовом к API для ответа на вопрос «В какой научной статье был представлен трансформер глубокого обучения и где её можно найти?».
    messages = [{
        'role': 'user',
        'content': 'В какой научной статье был представлен трансформер' \
                   'глубокого обучения и где её можно найти?'
    }]
     
    response = openai.ChatCompletion.create(
        model='gpt-3.5-turbo',
        messages=messages
    )
     
    print(response.choices[0].message.content)

    Ответ будет следующим:
    Трансформер (Transformer) — это модель глубокого обучения, которая была представлена в статье «Attention Is All You Need» авторства Vaswani et al. в 2017 году. Статью можно найти на сайте arXiv по ссылке: arxiv.org/abs/1706.03762


  10. Проектирование архитектуры.
  11. Генерация диаграмм, аналитика.
  12. Генерация отчётов.
  13. Написание документации.
  14. Разработка парсеров, анализ и преобразование данных в любых форматах.
  15. Работа с базами данных и SQL запросами.
  16. Поиск информации и кода, помощь в обучении, ответы на вопросы.
  17. Поиск новых идей.


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

pl-agt4r50_8ysgejnxdltcn4i0.png

Повышение производительности труда при использовании ChatGPT, источник

Также у сотрудников заметно возрастает удовлетворённость от работы и общий оптимизм:

8a1hc08bzqspwtizrrdrzbq2dsg.png


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

▍ Полезные инструменты


На базе ChatGPT разработаны программы для выполнения конкретных задач по разработке, тестированию, написанию документации:

  • Playwright-ChatGPT — автоматическая генерация тестов для Playwright. Альтернатива автоматическому тестированию с помощью Selenium, где нет такой функции.
  • PDF ChatBot и Docalysis — загрузка, чат и взаимодействие с любым документом PDF. Например, вы можете загрузить туда многостраничный учебник или мануал и задать боту конкретные вопросы по содержанию.
    _rwxsgtl0uy_tfjdahccvutgfl8.jpeg

  • Libraria — автономная платформа для быстрого создания и внедрения пользовательских ассистентов, которые работают на наших собственных данных с помощью OpenAI (например, получая данные скрапингом URL или из PDF, как в примере выше).
  • Расширение TeamSmart AI для Chrome — команда «виртуальных ИИ-ассистентов», которые автоматизируют выполнение самых популярных задач в ChatGPT и других системах ИИ:
    • написание кода;
    • генерация изображений;
    • рисование логотипов;
    • анализ текста.

    mrtomgga5eoicugejiyjnzh_l2u.jpeg

    Специально для ChatGPT поставляется библиотека качественных промтов:
    qk7itzpxgwrtsma2gsqjharmhm4.jpeg

  • Нативные клиенты для ChatGPT под различные ОС, с которыми работать удобнее, чем через браузер (см. как устроен фронтенд ChatGPT).
  • Расширение Unijump к Chrome для быстрого доступа к ChatGPT без захода на chat.openai.com. Удобно выделить текст в любом окне браузера и сочетанием Alt+J запустить ChatGPT с подсказками:
    jdxqkhocrh-axkscr9nm3suczfc.jpeg

    Дополнительно есть большой каталог с подсказками полезных промтов для переключения ChatGPT в тот или иной режим работы (консоль Linux, стендап-комик, финансовый аналитик, эйчар на собеседовании):
    -y8rourkalctx71pmnhsbtqtigm.png


Также идёт разработка IDE нового типа e2b, полностью основанной на генерации кода в ChatGPT. В левом окне вы пишете спецификации, а справа генерируется код:

lal6z2ceukprcoyhevascissotm.png


Microsoft работает над системой TaskMatrix.AI — единым интерфейсом для взаимодействия человека с миллионами API и специализированных моделей ИИ.

hy2cqzvwpm4kucozbiltrtiy91g.png


Вместо создания изолированных моделей ИИ это будет единая экосистема, в которой все модели ИИ взаимодействуют друг с другом и работают как коллективный организм.

▍ Плагины для ChatGPT


23 марта 2023 года OpenAI объявила об экспериментальной поддержке плагинов, которые помогают ИИ получить доступ к актуальной информации в интернете, осуществлять математические вычисления, обрабатывать сложные данные и использовать сторонние сервисы.

Для использования плагинов через API нужно получить особое разрешение от OpenAI, запись в список ожидания здесь.

t38pygovneicombjqwea5-0wqrm.png


На 12 апреля 2023 года разработано и допущено к использованию 24 плагина (в официальном списке их 11):

  • Medium. Плагин для доступа, просмотра и извлечения контента с платформы Medium.
  • SceneXplain. Плагин для разъяснения сюжета на картинках. Изображения можно отправлять по URL или в base64.
  • Weather. Плагин для получения информации о текущей погоде.
  • ASCII Art. Преобразование любого текста в псевдографику ASCII.
  • DomainsGPT. Проверка доступности домена и сравнение цен у регистраторов.
  • Transvribe. Плагин для ответа на вопросы по видеороликам YouTube.
  • PlugSugar. Поиск информации в интернете.
  • APIs-guru. Плагин для доступа к программным интерфейсам в каталоге APIs.guru.
  • BizToc. Поиск деловых и финансовых новостей в BizToc.
  • Calculator. Выполнение базовых арифметических операций типа сложения, вычитания, умножения, деления, возведения в степень и извлечения квадратного корня.
  • Datasette. Запросы SQL в базе данных Datasette.
  • FreeTV App. Плагин для получения последних новостей
  • Klarna. Поиск и сравнение цен из тысяч интернет-магазинов.
  • Milo. Идеи для времяпровождения родителей с детьми.
  • Pricerunner. Поиск релевантных продуктов и ответы на любые вопросы, связанные с шопингом.
  • QuickChart. Генерация диаграмм и QR-кодов.
  • SchoolDigger. Подробная информация по 120 000 средним школам в 18 500 округах США.
  • Slack. Плагин для запросов к Slack.
  • Speak. Изучение иностранных языков с помощью ИИ-учителя.
  • Screenshot (Urlbox). Преобразование HTML в картинку, скриншоты в разных форматах, в том числе видео скроллинга страницы.
  • Wolfram Cloud. Доступ к вычислениям, математике, накопленным знаниям и информации Wolfram|Alpha в режиме реального времени, поддержка Wolfram Language.
  • Wolfram Alpha. Динамические вычисления и отфильтрованные качественные данные из системы Wolfram Alpha.
    g9ka7izvpu89pwxlodljppuwicq.png

  • Zapier. Взаимодействие с более чем пятью тысячами приложений, включая Google Sheets, Gmail, HubSpot, Salesforce и др.
  • Shop. Поиск миллионов продуктов от крупнейших брендов.


Подробнее о формате плагинов см. в документации.

▍ Смена парадигмы


Мы видим, что системы ИИ меняют саму парадигму программирования и способы создания программ. Более подробно об этом см. статью «Андрей Карпаты. Software 2.0. Непонятный софт будущего».

_2bfqjka1np7-w0ldg_bg6x3qha.png


Суть в том, что вместо написания кода мы будем обучать нейросети на выполнение определённых задач, а в идеале — просто ставить задачу и ждать, когда нейросеть самообучится на оптимальное решение, что и будет финальным итогом разработки.

Похоже на то, что нейросети заменяют собой остальной софт: не нужны текстовые и графические редакторы, если ChatGPT может сгенерировать любой текст или изображение. То же самое можно сказать о календарях/почтовых клиентах и некоторых других инструментах, с которыми может работать «виртуальный помощник», а не человек напрямую.

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

▍ Опенсорсные альтернативы ChatGPT


Несмотря на изначальное стремление вести полностью открытую разработку, компания OpenAI не публикует модели GPT-3.5 и GPT-4, также как их техническое описание и датасеты. Ключевая техника здесь RLHF (Reinforcement Learning with Human Feedback), обучение с подкреплением на основе отзывов людей.

После случайной утечки кода модели LLaMA от Meta случился настоящий прорыв в опенсорсной разработке языковых моделей (LLM). За один последний месяц в свободном доступе опубликовано больше проектов, чем за все предыдущие годы. Сегодня вы уже можете запустить аналог ChatGPT на домашнем компьютере (Ryzen 7900X, 32 ГБ RAM, 8 ГБ VRAM), статья на Хабре.

На Github лежит список альтернативных LLM, обученных с помощью RLHF. Всё это свободные проекты с открытым исходным кодом, зачастую с весами моделей, датасетами для обучения и т. д.:


За такой взрыв опенсорсных разработок мы должны быть благодарны LLaMA.

▍ Что дальше


Недавно исследователи из Стэнфордского университета опубликовали 386-страничный отчёт о трендах в развитии ИИ. Некоторые тенденции позволяют сделать прогноз, как будет дальше развиваться эта индустрия. Судя по графикам, совершенствование моделей ИИ происходит в геометрической прогрессии и не думает останавливаться.

8s9ffgdasmkjalwqwltjazarhok.jpeg


2v2frlt3vpwhdikrpfcma2bs-fm.jpeg


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

sl8czv8vohyeryz9jk_cjsgpfza.jpeg


Вероятно, в будущем появятся новые профессии, связанные с обслуживанием ChatGPT. Это «интеграторы» ИИ в продуктовый конвейер фирмы, промт-инженеры и др. За последние несколько лет количество вакансий с упоминанием ИИ выросло в четыре раза:

0efpawmxcz5wzcobm8fcazsxkw4.jpeg


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

По мере роста использования ИИ эта область наверняка привлечёт внимание политиков и прочих шарлатанов, далёких от IT. Можно ожидать FUD в медиа, призывы принять сдерживающее законодательство или даже запретить разработку «вредоносных» технологий, которые угрожают человечеству. Многим не нравится, что ИИ может принимать за них важные жизненные решения, предсказывать мысли и поступки, управлять поведением, хотя это вроде бы очевидный путь развития генеративных моделей, которые обучаются на персональных данных:

sj_dmer-2zjrhyui--ehwagxghm.jpeg


ChatGPT — очень полезный инструмент, который во многих ситуациях сильно экономит время. Только не стоит забывать о галлюцинациях и тщательно проверять то, что он выдаёт. В новой версии GPT-4 галлюцинаций стало меньше, но они никогда не исчезнут, исходя из самой конструкции языковой модели, которая обучается без учителя. Описание GPT-4 пока не опубликовано в открытом доступе, но можно подробно изучить описание GPT-3 по научной статье 2020 года. Не зная точного ответа на вопрос, модель постоянно «экстраполирует» реальность и заполняет пробелы в данных, то есть фантазирует. Галлюцинации в таком режиме практически неизбежны. Этот креатив — самая интересная особенность GPT, иначе половина ответов была бы «Я не знаю» или цитированием поиска в интернете (который тоже зачастую даёт неправильные ответы).

Разработчикам предстоит ещё хорошо поработать над надёжностью ответов (и снизить уровень уверенности, с которой модель излагает свои галлюцинации). Языковые модели до сих пор остаются новой областью исследований. Сами разработчики GPT с удивлением открывают новые, неожиданные свойства созданных ими систем.

Система ChatGPT постоянно обновляется. В марте для платных подписчиков была запущена модель GPT-4 (статья на Хабре с обзором нового функционала) и разрешены плагины, открывающие ИИ доступ к живым данным в интернете. Так что впереди нас ждёт много неожиданных открытий.

▍ Будущее программирования


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

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

Кажется, что ИИ не заменит программистов, а скорее наоборот — сделает программирование ещё более востребованной профессией. В любом случае, возникнет большая новая индустрия по созданию и поддержке ИИ-инструментов, так что разработчиков и промт-инженеров нужно будет всё больше и больше, чуть ли не в каждой фирме. Проверим этот прогноз через пару десятилетий…

Telegram-канал с розыгрышами призов, новостями IT и постами о ретроиграх

© Habrahabr.ru