Промпт-інжиніринг
Дослідження інтерпретатора коду OpenAI’s ChatGPT: Глибокий аналіз його можливостей

Прогрес OpenAI у галузі обробки природної мови (NLP) позначається появою великих мовних моделей (LLM), які лежать в основі продуктів, які використовують мільйони людей, включаючи помічника з кодування GitHub Copilot і пошукову систему Bing. Ці моделі, завдяки своїй унікальній здатності запам’ятовувати та поєднувати інформацію, встановили неперевершені стандарти у завданнях, таких як генерація коду та тексту.
Розуміння інтерпретатора коду ChatGPT
Щоб зрозуміти значення інтерпретатора коду ChatGPT, необхідно спочатку зрозуміти, що це таке і як воно було створено.
По суті, інтерпретатор коду ChatGPT використовує можливості ChatGPT, але вводить підвищену майстерність у розумінні, інтерпретації та навіть генерації коду на різних мовах програмування. Ця функція перетворює ChatGPT з генератора тексту на невід’ємний інструмент для розробників, допомагаючи у розумінні коду, налагодженні та навіть генерації коду.
Навчання GPT для програмування: підхід Codex
І GitHub Copilot, і інтерпретатор коду ChatGPT використовують модель Codex, розроблену OpenAI.
Codex, спеціалізована мова моделі GPT, розроблена для володіння майстерністю написання коду на мові Python. Навчена на публічних джерелах коду з GitHub, Codex демонструє свій потенціал, забезпечуючи функції в GitHub Copilot. Коли його оцінюють за здатність синтезувати програми з докстрінгами, мірою функціональної коректності, Codex перевершує як GPT-3, так і GPT-J.
Поражаюче спостереження полягає в тому, що повторне вибіркове збільшення підвищує майстерність Codex. Коли використовуються до 100 вибірок на проблему, успішність моделі збільшується до 70,2%. Така ефективність свідчить про можливість використання евристичного рейтингу для вибору точних зразків коду, без потреби повної оцінки кожного.
Для оцінки його можливостей модель була задіяна у створенні самостійних функцій Python лише на основі докстрінгів. Точність згенерованого коду потім оцінювалася за допомогою тестів одиниць. У наборі даних, що складається з 164 оригінальних програмних завдань, які включають розуміння мови, алгоритми та базові математичні тести, Codex з 12B параметрів вирішив 28,8% з них за один раз.
Відшліфовуючи модель далі за допомогою коректного налагодження самостійних функцій, її ефективність була підвищена, в результаті чого Codex-S вирішив 37,7% завдань за перший раз. Однак у практичній сфері програмування підхід “проб і помилок” є звичайним. Імітуючи цей реальний сценарій, модель Codex-S, коли їй надали 100 шансів, успішно вирішила 77,5% завдань.
Генеративні моделі, такі як ChatGPT, які генерують код, зазвичай оцінюються шляхом порівняння згенерованих зразків з довідковим рішенням. Це порівняння може бути точним або використовувати міру схожості, таку як оцінка BLEU. Однак ці метрики порівняння часто не спроможні охопити нюанси програмування. Ключова критика BLEU полягає в її неефективності у захопленні семантичних характеристик коду.
Натомість використовується більш актуальна міра: функціональна коректність. Це означає, що код, згенерований моделлю, повинен пройти заданий набір тестів одиниць. Ідея узгоджується зі стандартними практиками програмування, оскільки розробники часто використовують тести одиниць для оцінки ефективності та точності свого коду.
Ця міра оцінює не тільки точність, але й функціональну придатність згенерованого коду.
Введена міра pass@k як міра функціональної коректності. По суті, це означає, що якщо хоча б один із “k” згенерованих зразків коду проходить тести одиниць, завдання вважається вирішеним. Однак замість використання цього в його прямій формі використовується необмежений оцінювач для розрахунку pass@k, щоб уникнути високої дисперсії.
Для оцінки можливостей коду ChatGPT дослідження використовувало HumanEval набір даних. Цей набір даних складається з рукописних завдань Python, кожне з яких супроводжується тестами одиниць.
Через ризики, пов’язані з виконанням невідомого або недовіряного коду, була розроблена ізольована середовище для безпечного тестування згенерованого коду. Це середовище використовувало gVisor для емуляції ресурсів та створення бар’єру між хост-системою та виконуваним кодом. Таким чином, навіть якщо модель генерує шкідливий код, він залишається ізольованим і не може нашкодити хосту чи мережі.
Використання інтерпретатора коду ChatGPT
OpenAI’s ChatGPT пройшов численні еволюції, а інтерпретатор коду виділяється як революційна функція в моделі GPT-4. На відміну від традиційних інтерфейсів чату, інтерпретатор коду дозволяє користувачам зануритися глибше в обчислювальні завдання, безшовно поєднуючи лінії між людьми та обчислювальними процесами.
У своїй основі інтерпретатор коду є подібним до того, як комп’ютер вбудований у чат-бот. Ця динамічна функція пропонує користувачам тимчасовий дисковий простір для завантаження різноманітних форматів файлів, від загальних типів, таких як TXT, PDF та JPEG, до більш спеціалізованих, таких як CPP, PY та SQLite. Ця широта підтримки посилює його універсальність у різних завданнях, будь то обробка документів чи маніпуляція зображеннями.
Продовжуючи…















