Шесть советов по улучшению кодирования с помощью ChatGPT
Вы также можете найти этого автора в PubMed Google Scholar.
Иллюстрация The Project Twins
Если вы не жили под камнем, вы знаете о ChatGPT. Чат-бот, управляемый искусственным интеллектом (ИИ) и созданный OpenAI в Сан-Франциско, Калифорния, дает пугающе человеческие ответы на вопросы пользователей (так называемые подсказки) практически по любой теме. ChatGPT обучен на обширном массиве текста, и его способность участвовать в текстовом общении означает, что пользователи могут уточнять свои ответы. Даже если его первоначальные ответы ненадежны, в конечном итоге он часто дает точные результаты, включая программный код.
Исследователи могут использовать ChatGPT для отладки и аннотирования кода, перевода программного обеспечения с одного языка программирования на другой и выполнения рутинных шаблонных операций, таких как построение графиков данных. В мартовском препринте сообщалось, что программа способна решить 76% из 184 задач вводного курса по биоинформатике, таких как работа с электронными таблицами, после одной попытки и 97% — за семь попыток1.
Это хорошая новость для исследователей, которые чувствуют себя неловко при программировании или у которых нет бюджета, чтобы нанять программиста на полный рабочий день — для них чат-боты могут стать инструментом демократизации.
Однако, несмотря на всю свою кажущуюся разумность, чат-боты не разумны. Их называют стохастическими попугаями, которые случайным образом повторяют то, что видели раньше. Эми Ко, ученый-компьютерщик из Вашингтонского университета в Сиэтле, ссылается на давнюю американскую викторину, чтобы описать ограничения инструмента, написав на сайте социальной сети Mastodon: «ChatGPT похож на отчаявшегося бывшего участника Jeopardy, который перестал следить за поп-музыкой. культуре в 2021 году, но на самом деле хочет вернуться в игру, а также является роботом без сознания, свободы воли, морали, воплощенного познания или эмоциональной внутренней жизни». (Данные, используемые для обучения ChatGPT, относятся только к 2021 году.)
Короче говоря, ChatGPT и связанные с ним инструменты, основанные на больших языковых моделях (LLM), в том числе Microsoft Bing и GitHub Copilot, являются невероятно мощными средствами программирования, но их следует использовать с осторожностью. Вот шесть способов сделать это.
Чат-боты лучше всего подходят для небольших дискретных задач программирования, таких как загрузка данных, выполнение основных манипуляций с данными и создание визуализаций и веб-сайтов. Но это не то же самое, что разработка программного обеспечения, говорит Нил Эрнст, ученый-компьютерщик из Университета Виктории в Канаде.
ChatGPT: пять приоритетов исследований
«Разработка программного обеспечения — это гораздо больше, чем просто решение головоломки программирования», — объясняет Эрнст. «Мы думаем о средах тестирования, написании поддерживаемого кода и понимании компромиссов, связанных с созданием системы», например, между скоростью и читабельностью. «Я не думаю, что нынешние инструменты решают какие-либо из этих проблем».
Это оставляет им возможность выполнять множество задач, например запоминание синтаксиса для создания визуализаций с помощью Matplotlib, графической библиотеки для языка программирования Python. В этом смысле чат-боты похожи на диалоговый интерфейс Stack Overflow, онлайн-форума вопросов и ответов для программистов. «Это не то, что кому-то особенно нравится писать, — говорит Эрнст, — и это экономит нам время, чтобы задавать сложные аналитические вопросы, которые могут возникнуть у нас по поводу данных».
Чат-боты также хорошо объясняют, почему код не работает. Эмери Бергер, ученый-компьютерщик из Массачусетского университета в Амхерсте, использовал эти способности для создания нескольких полезных инструментов. Один из них, cwhy, использует ChatGPT для объяснения ошибок компилятора в коде, написанном на языках программирования C, C++ и Rust. Другой, ChatDBG, предоставляет диалоговый интерфейс для отладки, а третий, Scalene, использует ИИ, чтобы предлагать варианты оптимизации кода для повышения производительности.
Чат-боты могут даже переводить код с одного языка программирования на другой. Матье Коппи, биофизик из Института Кюри в Париже, использует ChatGPT, чтобы помочь ему перейти с MATLAB, его любимого языка, на Python. Используя Google и онлайн-форумы, ему обычно требуется несколько дней, чтобы заставить свой код Python работать. «Теперь я могу сделать это примерно за час», — говорит он.