OpenAI Codex — это модель искусственного интеллекта , разработанная OpenAI . Он анализирует естественный язык и генерирует в ответ код . Он поддерживает GitHub Copilot , инструмент автодополнения программирования для некоторых IDE , таких как Visual Studio Code и Neovim . [1] Codex является потомком модели OpenAI GPT-3 , оптимизированной для использования в приложениях программирования.
OpenAI выпустила API для Кодекса в закрытой бета-версии . [1] В марте 2023 года OpenAI закрыла доступ к Кодексу. [2] Из-за публичных призывов исследователей OpenAI изменила курс. [3] Модель Кодекса по-прежнему может использоваться исследователями Программы доступа к исследованиям OpenAI. [4]
На основе GPT-3, нейронной сети , обученной на тексте, Codex был дополнительно обучен на 159 гигабайтах кода Python из 54 миллионов репозиториев GitHub . [5] [6] Типичный вариант использования Кодекса — пользователь вводит комментарий, например « //compute the moving average of an array for a given window size
«, а затем использует ИИ, чтобы предложить блок кода, который удовлетворяет запросу на комментарий. [7] OpenAI заявила, что Кодекс может выполнить примерно 37% запросов и предназначен для ускорения программирования человеком, а не для его замены. Согласно блогу OpenAI, Codex больше всего преуспевает в «сопоставлении… простых проблем с существующим кодом», что они описывают как «вероятно, наименее интересную часть программирования». [8] [9] Джереми Ховард , соучредитель Fast.ai , заявил, что « Кодекс — это способ написания кода без необходимости писать так много кода», и что «это не всегда правильно, но это просто достаточно близко". [10] Согласно статье, написанной исследователями OpenAI, когда Кодекс пытался выполнить каждый тестовый пример 100 раз, он генерировал рабочие решения для 70,2% запросов. [11]
OpenAI утверждает, что Codex может создавать код на более чем дюжине языков программирования, включая Go , JavaScript , Perl , PHP , Ruby , Shell , Swift и TypeScript , хотя наиболее эффективен он на Python. [1] По данным VentureBeat , демонстрации, загруженные OpenAI, продемонстрировали впечатляющие возможности разрешения кореференции . Демонстранты смогли создать браузерную игру на JavaScript и сгенерировать диаграммы анализа данных с помощью matplotlib . [9]
OpenAI показала, что Codex может взаимодействовать с такими сервисами и приложениями, как Mailchimp , Microsoft Word , Spotify и Google Calendar . [9] [12] Сообщается, что Microsoft заинтересована в изучении [ неопределенных ] возможностей Кодекса. [12]
Демонстрации OpenAI продемонстрировали такие недостатки, как неэффективный код и единичные странности в примерах кода. [9] В интервью The Verge технический директор OpenAI Грег Брокман сказал, что «иногда [Кодекс] не совсем точно знает, о чем вы спрашиваете», и что это может потребовать некоторых проб и ошибок. [12] Исследователи OpenAI обнаружили, что Кодекс плохо справляется с многоэтапными и высокоуровневыми подсказками [ необходимы разъяснения ] , часто терпящими неудачу или приводящими к нелогичному поведению. Кроме того, они подняли несколько проблем безопасности, таких как чрезмерная уверенность начинающих программистов, предвзятость, основанная на данных обучения, и влияние на безопасность из-за уязвимого кода. [11]
VentureBeat заявила, что, поскольку Кодекс обучен на общедоступных данных, он может быть уязвим для «отравления данных» в результате преднамеренной загрузки вредоносного кода. [9] Согласно исследованию исследователей из Нью-Йоркского университета , примерно 40% кода, сгенерированного GitHub Copilot (который использует Codex) в сценариях, относящихся к CWE высокого риска, включали сбои или другие уязвимые недостатки дизайна. [13]
Фонд свободного программного обеспечения выразил обеспокоенность тем, что фрагменты кода, созданные Copilot и Codex, могут нарушать авторские права , в частности, условия GPL , которые требуют , чтобы производные работы лицензировались на эквивалентных условиях. [14] Вопросы, которые они подняли, включают в себя то, подпадает ли обучение в общедоступных репозиториях под добросовестное использование или нет, как разработчики могут обнаружить сгенерированный код, нарушающий авторские права, можно ли считать обученные модели машинного обучения модифицируемым исходным кодом или компиляцией обучающих данных, и если машинное обучение модели сами могут быть защищены авторским правом и кем. [14] [15] Внутреннее исследование GitHub показало, что примерно 0,1% сгенерированного кода содержали прямые копии обучающих данных. В одном примере модель вывела код обучающих данных, реализующий быстрый алгоритм обратного квадратного корня , включая комментарии и неправильное уведомление об авторских правах . [7]
В ответ OpenAI заявила, что «юридическая неопределенность в отношении последствий обучения систем ИИ в отношении авторских прав влечет за собой значительные затраты для разработчиков ИИ и поэтому должна быть решена авторитетным образом». [7]
Проблемы авторского права в Кодексе сравнивают с судебным делом Гильдия авторов против Google, Inc. , в котором судьи постановили, что использование Google Книги текстовых фрагментов из миллионов отсканированных книг представляет собой добросовестное использование. [7] [16] Однако использование фрагментов текста из книг обеспечивает надежную ссылку владельца авторских прав, в отличие от компилированных работ, используемых для данных алгоритма обучения, где окончательный результат делается без такой ссылки.