Промпт-инжиниринг

Изучение интерпретатора кода ChatGPT от OpenAI: глубокое погружение в его возможности

mm

Прогресс OpenAI в области обработки естественного языка (NLP) отмечен появлением крупных языковых моделей (LLM), которые лежат в основе продуктов, используемых миллионами людей, включая помощник кодирования GitHub Copilot и поисковую систему Bing. Эти модели, благодаря своей уникальной способности запоминать и объединять информацию, установили беспрецедентные стандарты в задачах, таких как генерация кода и текста.

Понимание интерпретатора кода ChatGPT

Чтобы понять значение интерпретатора кода ChatGPT, необходимо сначала понять, что это такое и как он был создан.

По сути, интерпретатор кода ChatGPT использует возможности ChatGPT, но вводит повышенную производительность в понимании, интерпретации и даже генерации кода на различных языках программирования. Эта функция превращает ChatGPT из генератора текста в бесценный инструмент для разработчиков, giúpающий в понимании кода, отладке и даже генерации кода.

Обучение GPT для кодирования: подход Codex

И GitHub Copilot, и интерпретатор кода ChatGPT используют модель Codex, разработанную OpenAI.

Codex – это специализированная языковая модель GPT, предназначенная для написания кода на Python. Обученная на открытом коде из GitHub, Codex демонстрирует свой потенциал, обеспечивая функциональность в GitHub Copilot. Когда его оценивают на способность синтезировать программы из docstring, меры функциональной правильности, Codex превосходит как GPT-3, так и GPT-J.

Заметным наблюдением является то, что повторная выборка повышает производительность Codex. Когда используются до 100 образцов на задачу, скорость успеха модели увеличивается до 70,2%. Такая эффективность предполагает возможность использования эвристического ранжирования для выбора точных образцов кода, без необходимости полной оценки каждого.

Чтобы оценить его возможности, модель была задействована в создании самостоятельных функций Python на основе только docstring. Точность сгенерированного кода затем оценивалась с помощью юнит-тестов. В наборе данных, состоящем из 164 оригинальных задач программирования, включая понимание языка, алгоритмы и базовые математические тесты, Codex с 12B параметров решил 28,8% задач за один подход.

Тренировочные данные для модели Codex - интерпретатор кода ChatGPT

Тренировочные данные для модели Codex: https://arxiv.org/abs/2107.03374

Благодаря дальнейшему совершенствованию модели через тонкую настройку правильно реализованных самостоятельных функций, ее эффективность была повышена, в результате чего Codex-S решил 37,7% задач за первый подход. Однако в практической области программирования распространен подход проб и ошибок. Симулируя эту реальную ситуацию, модель Codex-S, когда дано 100 попыток, успешно решила 77,5% задач.

Архитектура интерпретатора кода ChatGPT

Генеративные модели, такие как ChatGPT, которые производят код, обычно оцениваются путем сравнения сгенерированных образцов с эталонным решением. Это сравнение может быть либо точным, либо использовать меру сходства, такую как балл BLEU. Однако эти метрики, основанные на совпадении, часто не могут уловить нюансы кодирования. Ключевым критиком BLEU является его неэффективность в захвате семантических характеристик кода.

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

Эта метрика оценивает не только точность, но и функциональную пригодность сгенерированного кода.

Метрика pass@k вводится как мера функциональной правильности. Она означает, что если любой из “k” сгенерированных образцов кода проходит юнит-тесты, задача считается решенной. Однако вместо использования этой метрики в ее прямой форме используется не偏енный оценщик для расчета pass@k, чтобы избежать высокой дисперсии.

Чтобы оценить возможности ChatGPT в кодировании, в исследовании использовался набор данных HumanEval. Этот набор данных состоит из手описных задач Python, каждая из которых сопровождается юнит-тестами.

Пример набора данных HumanEval для интерпретатора кода ChatGPT

https://github.com/openai/code-align-evals-data/blob/main/human_eval

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

Использование интерпретатора кода ChatGPT

OpenAI’s ChatGPT претерпел многочисленные эволюции, и интерпретатор кода выделяется как революционная функция в модели GPT-4. В отличие от традиционных интерфейсов чата, интерпретатор кода позволяет пользователям глубже погрузиться в вычислительные задачи, безшовно объединяя границы между человеческими и ИИ-разговорами и вычислительными процессами.

В своей основе интерпретатор кода похож на компьютер, встроенный в чат-бот. Эта динамическая функция предлагает пользователям временное дисковое пространство для загрузки различных форматов файлов, от обычных типов, таких как TXT, PDF и JPEG, до более специализированных, таких как CPP, PY и SQLite. Этот диапазон поддержки усиливает его универсальность в различных задачах, будь то обработка документов или манипуляция изображениями.

Работая в безопасной и надежной среде, интерпретатор кода оснащен более чем 300 предварительно установленными библиотеками. Эта песочница обеспечивает безопасность, сохраняя при этом значительную вычислительную мощность. Интересно, что, когда ему поручают задачу, он создает скрипт Python в реальном времени для выполнения запроса пользователя. Например, конвертируя изображение-PDF в поисковый формат с помощью OCR; все, что нужно сделать пользователю, – это загрузить документ, и ChatGPT справится с остальным.

Одной из интригующих точек было ограничение размера файла для загрузки. Хотя окончательные спецификации еще не объявлены, эксперименты пользователей показывают, что система может эффективно обрабатывать файлы, значительно превышающие 100 МБ. Независимо от размера, важно отметить, что эти файлы являются временными и удаляются после окончания сеанса чата.

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

Различие между стандартной моделью ChatGPT и интерпретатором кода заключается в их парадигмах взаимодействия. Хотя первая в основном генерирует текстовые ответы, последний понимает и выполняет код, предлагая прямые результаты. Это не только делает его ценным активом для технических специалистов, но и наделяет тех, кто не имеет навыков программирования, возможностью выполнять сложные вычислительные задачи.

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

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

Если вы заинтересованы в изучении тонкостей ChatGPT и инженерии запросов, Unite AI предлагает всесторонний анализ в ‘ChatGPT: продвинутая инженерия запросов‘.

Изучение преимуществ интерпретатора кода ChatGPT

Визуализация данных и анализ

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

Однако это не только о визуализации сырых данных. Модель ChatGPT способна обрабатывать и совершенствовать данные. Хотя мощная, пользователи должны проявлять осторожность.

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

Видео ниже демонстрирует, как интерпретатор кода ChatGPT создал всесторонний анализ акций TSLA.

Ключевые выводы:

  • Акции Tesla столкнулись с волатильностью, но также показали стойкость с периодами роста.
  • Высокие объемы торговли в определенные дни указывают на значительный интерес рынка или реакции на ключевые события.
  • Негативная годовая доходность (YTD) указывает на то, что инвесторам следует анализировать как внутренние факторы компании, так и внешние рыночные условия при рассмотрении будущих инвестиций.

Реализация компьютерного зрения и OCR

Обнаружение лица, важная функция компьютерного зрения, была выполнена с помощью классического метода: классификатора Haar Cascade из OpenCV.

Изображение ниже демонстрирует использование классического классификатора Haar Cascade.

Процесс извлечения текста из изображений, известный как оптическое распознавание символов (OCR), был безшовно выполнен с помощью Tesseract, а текст затем структурирован GPT-4, повышая понимание.

В следующем видео показано, как Tesseract (OCR) извлекает текст из сертификата.

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

Внешняя библиотека Python внутри вашего интерпретатора кода ChatGPT

Интерпретатор кода ChatGPT – это динамическая платформа программирования, оснащенная обширным набором библиотек Python. Эти библиотеки охватывают все, от визуализации данных с помощью Seaborn до продвинутого машинного обучения с помощью Torch. Но это не только статический инструментарий.

Вдохновленный этой страницей ChatGPT от Korakot Chaovavanich.

Начиная с последнего выпуска nltk, мы загрузили файл .whl в интерпретатор. Затем мы попросили ChatGPT найти подходящий каталог site-packages, проанализировав местоположение существующей библиотеки. Следующий шаг включал распаковку файла whl в временное место и перемещение файлов в определенный каталог site-packages. Однако это столкнулось с препятствием.

Ищя обход, мы попросили: “Пожалуйста, убедитесь, что NLTK установлен в среде Python и доступен после установки.”

ChatGPT ответил, предоставив решение. Он предложил добавить временный каталог в sys.path, позволяя Python определить и извлечь модули из распакованной библиотеки nltk в этом месте. Этот тактик сработал, что привело к успешной установке NLTK.

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

установка пользовательских библиотек в интерпретаторе кода ChatGPT

В fasciniruyuschem демонстрации возможностей интерпретатора недавний твит от @DominikPeters подчеркнул уникальную демонстрацию. Peters попросил GPT-4 сгенерировать викторину по парижским округам, и модель предоставила функционирующий веб-сайт. Работающая викторина доступна для практического опыта на dominik-peters.de/gpt-arrondissement-quiz/.

https://twitter.com/DominikPeters/status/1652630445639467008?s=20

Заключение

Прорыв OpenAI с интерпретатором кода ChatGPT – это нечто большее, чем трансформация для программистов и не-программистов. Его универсальность в обработке широкого спектра задач – от помощи разработчикам в отладке до безшовного создания викторин о Париже – является свидетельством бесконечного потенциала ИИ в улучшении наших цифровых опытов. Вот суть нашего глубокого погружения:

Поймите свой инструмент: как и вы бы познакомились с коллегой, познакомьтесь с интерпретатором кода. Он построен на основе Codex, который является тонкой настройкой GPT-4. Его производительность охватывает несколько языков программирования, что делает его идеальным компаньоном для всех ваших приключений с кодированием.

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

За пределами кода: вылазка интерпретатора не ограничивается текстом или кодом. Его способность работать с различными форматами файлов, от простых файлов TXT до сложных скриптов PY, подчеркивает его полезность в различных областях.

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

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

Вышеуказанное видео было создано с помощью Gen-2 и Midjourney.

Вкратце, интерпретатор кода ChatGPT – это не просто инструмент; он меняет способ, которым мы взаимодействуем с технологиями. Для инноваторов и энтузиастов он обещает мир, полный потенциала кодирования.

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