ChatGPT давно умел генерировать код, и текст, похожий на код, но до сих пор не мог выполнять код или программы. OpenAI представила Code Interpreter, который дает ChatGPT возможность выполнять код.
Хотя на первый взгляд это может показаться инструментом, который в основном интересен разработчикам, Code Interpreter позволяет решать важную задачу: возможность проводить детальный анализ данных и визуализацию без необходимости написания куска кода.
«Вы фактически задаете вопросы непосредственно данным», написал архитектор решений Деннис Лейтон в своем посте на платформе Medium. «Более того, он способен обрабатывать гораздо большие наборы данных».
«Почему эта возможность так важна?» — спросил он. «Потому что она предоставляет простой способ комбинировать использование больших языковых моделей (Large Language Models, LLM), таких, как GPT, с более традиционными возможностями программирования, без необходимости писать код или настраивать среду для его выполнения».
Доцент университета Уортон Итан Моллик добавил в своем посте на блоге: «Code Interpreter — впечатляющий специалист по обработке данных. … Он работает на очень высоком уровне, автоматизируя многие сложности квантитативного анализа и способен использовать очень сложные подходы к данным».
В Twitter вице-президент исследований в Coalition Тиаго Анрикс сказал, что Code Interpreter «поразителен для анализа данных». Его можно использовать для анализа журналов кибербезопасности или создания «быстрых» отчетов.
Как это работает
OpenAI предлагает свой собственный инструмент Code Interpreter как плагин для абонентов премиум-предложения ChatGPT Plus.
Пользователи премиум-версии могут писать и выполнять код на языке Python. Пользователи также могут загрузить файл и попросить ChatGPT проанализировать данные, создать диаграммы, редактировать файлы и выполнять математические операции.
Файлы, загруженные в ChatGPT для использования с Code Interpreter, остаются только в рамках одной сессии. После окончания сессии чатов файл будет удален. Файлы размером до 100 МБ можно загружать в ChatGPT Plus.
ChatGPT не обладает интерактивным терминалом, поэтому он не может выполнять код, который требует непосредственного ввода пользователя. Это означает, что разработчики должны скопировать сгенерированный вывод и запустить его в своей локальной среде Python.
Пример анализа данных
Моллик отметил, что добавление Code Interpreter помогает решить ряд проблем, присутствовавших в предыдущих версиях ChatGPT.
«В частности, это дает искусственному интеллекту универсальный инструментарий для решения проблем (путем написания кода на языке Python), большую память для работы … и интегрирует этот инструментарий в ИИ таким образом, чтобы это было на пользу большим языковым моделям».
Это позволяет ChatGPT выполнять очень сложные математические операции и более точно работать с текстом, например, подсчитывать слова в абзаце.
Это снижает частоту галлюцинаций и конфабуляций. «Когда ИИ напрямую работает с кодом на Python, код помогает ему оставаться «честным», поскольку Python генерирует ошибки, если код некорректен. И поскольку код манипулирует данными, а не LLM, ИИ не вносит ошибок в данные». ChatGPT все равно может галлюцинировать, но в меньшей степени.
В качестве примера Моллик загрузил два набора об супергероях и их способностях из общедоступных данных. Его запрос: «Вот некоторые данные о супергеройских способностях. Проанализируйте и скажите мне, что вы нашли».
Затем Моллик попросил ChatGPT объединить данные и очистить их. ChatGPT также исправляет свои собственные ошибки, но он настоятельно рекомендует людям все же проверить результаты.
Затем Моллик попросил ChatGPT проанализировать данные. Его запрос: «Мне интересно провести некоторую предиктивную модель, где мы можем предсказать какие способности может иметь герой на основе других факторов. Как мы должны подойти к этому?»
В ответ ChatGPT построил классификатор Random Forest. Однако Моллик не согласен с его решением заполнять отсутствующие данные средними значениями для числовых данных. «Я бы удалил данные, но я могу попросить ИИ изменить свой подход или обсудить альтернативные варианты».