В автокодере GitHub Copilot возникают проблемы: от кажущихся разглашенными секретов до плохого кода, но некоторым это нравится °

    0
    97


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

    На прошлой неделе GitHub Copilot был выпущен в качестве ограниченного «технического превью» с заявлением, что это «программист пары ИИ». Он работает на системе под названием Codex от OpenAI, компании, которая вступила в партнерство с Microsoft в 2019 году, получив инвестиции в размере 1 миллиарда долларов.

    Как это работает: использование общедоступного кода в качестве модели для разработки с использованием искусственного интеллекта

    Как это работает: использование общедоступного кода в качестве модели для разработки с использованием искусственного интеллекта

    Согласно его веб-сайту, модель Кодекса обучается «общедоступному коду и тексту в Интернете» и «понимает как программирование, так и человеческие языки».

    Расширение Visual Studio Code «отправляет ваши комментарии и код в сервис GitHub Copilot, который затем использует OpenAI Codex для синтеза и предложения отдельных строк и целых функций».

    Что может пойти не так?

    Один разработчик попробовал эксперимент, написав код для отправки электронной почты через службу Sendgrid и запросив Copilot, набрав «apiKey: =». Copilot ответил как минимум четырьмя предложенными ключами, согласно его снимку экрана и отчету об ошибке. Он сообщил об этом как об ошибке под названием «ИИ излучает секреты».

    Но были ли ключи действительными? Генеральный директор GitHub Нат Фридман ответил на отчет об ошибке, заявив, что «эти секреты почти полностью выдуманы, синтезированы из обучающих данных».

    Сопровождающий Copilot добавил, что «вероятность копирования секрета из обучающих данных чрезвычайно мала. Кроме того, обучающие данные представляют собой полностью открытый код (никакого частного кода), поэтому даже в крайне маловероятном случае копирования секрета это было уже скомпрометирован “.

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

    GitHub попытался решить некоторые из этих проблем в FAQ. «GitHub Copilot – это синтезатор кода, а не поисковая система», – говорится в сообщении. «Подавляющая часть кода, который он предлагает, генерируется уникальным образом и никогда ранее не использовалась».

    Однако, согласно его собственному исследованию, «примерно в 0,1% случаев предложение может содержать некоторые фрагменты, дословно взятые из обучающей выборки».

    Эти 0,1% (а некоторые ранние пользователи думают, что они выше) вызывают беспокойство. Предлагаемое GitHub решение, приведенное в этой статье, заключается в том, что когда ИИ цитирует, а не синтезирует код, он будет указывать авторство. «Таким образом, я могу найти справочную информацию об этом коде и указать кредит там, где он должен быть зачислен», – сказал инженер по машинному обучению GitHub Альберт Зиглер.

    Проблема в том, что есть обстоятельства, при которых Copilot может побуждать разработчиков к неправильным действиям, например, с кодом с открытым исходным кодом, но защищенным авторским правом.

    В случае кода GPL, который защищен авторским левом, включение кода может повлиять на лицензирование новой работы. Это сбивает с толку, поскольку в FAQ Copilot говорится, что «предложения, которые генерирует GitHub Copilot, и код, который вы пишете с его помощью, принадлежат вам, и вы несете за это ответственность»; но блок кода с атрибутами будет исключением.

    GitHub также заявил, что «обучение моделей машинного обучения на общедоступных данных считается добросовестным использованием в сообществе машинного обучения», что позволяет избежать опасений по поводу того, что ИИ заимствует чужой код. Есть некоторая неопределенность.

    Генеральный директор GitHub сказал в Твиттере что «мы ожидаем, что в ближайшие годы вопросы интеллектуальной собственности и искусственного интеллекта станут предметом интересного политического обсуждения во всем мире, и мы готовы принять в нем участие».

    Разработчик Eevee сказал что «GitHub Copilot, по их собственному признанию, был обучен горам кода gpl, поэтому я не понимаю, почему это не форма отмывания открытого исходного кода в коммерческих работах».

    Единственный способ – это этика

    Поскольку Copilot будет платным продуктом, существуют этические и юридические дебаты. Тем не менее, сторонник открытого исходного кода Саймон Фиппс сказал: «Я слышу встревоженных технических специалистов, но не особо встревоженных юристов. Похоже, что консенсус состоит в том, что обучение модели и ее использование следует анализировать отдельно, что обучение – это прекрасно и что использование вряд ли будет включать в себя действие, контролируемое авторскими правами, поэтому лицензирование спорно “.

    У OpenAI есть статья [PDF] по этому вопросу, в котором утверждалось, что «согласно действующему законодательству, обучение систем искусственного интеллекта представляет собой добросовестное использование», хотя он добавил, что «правовая неопределенность в отношении авторских прав на обучение систем искусственного интеллекта налагает существенные затраты на разработчиков искусственного интеллекта и поэтому должна решаться авторитетно».

    Это работает?

    Другой вопрос, будет ли код работать правильно. Разработчик Колин Эберхардт пробовал превью и сказал: «Я ошеломлен его возможностями. За последние несколько часов он действительно заставил меня сказать« вау! »Вслух несколько раз».

    Читайте дальше, и кажется, что его результаты неоднозначны. Один из распространенных способов использования Copilot – это ввести комментарий, после которого ИИ может предложить блок кода. Эберхардт напечатал:

    //compute the moving average of an array for a given window size
    

    и Copilot сгенерировал правильную функцию. Однако когда он попытался:

    //find the two entries that sum to 2020 and then multiply the two numbers together
    

    сгенерированный код выглядел правдоподобным, но был неверным.

    Тщательное изучение кода в сочетании с надежным покрытием модульным тестом должно защитить от такого рода проблем; но это действительно похоже на ловушку для неосторожных, особенно если исходить из GitHub в качестве официального дополнения для самого популярного в мире редактора кода Visual Studio Code.

    Можно было бы контрастировать с копированием и вставкой кода с такого сайта, как StackOverflow, где другие участники часто обнаруживают ошибки кодирования и существует своего рода контроль качества сообщества. С Copilot разработчик сам по себе.

    «Я думаю, что Copilot предстоит пройти небольшой путь, прежде чем я захочу оставить его включенным по умолчанию», – заключил Эберхардт из-за «когнитивной нагрузки, связанной с проверкой его предложений».

    Он также заметил, что предложения иногда появлялись медленно, хотя на это можно обратить внимание с помощью какого-то индикатора занятости. Тем не менее Эберхардт сказал, что, по его мнению, многие предприятия подпишутся на Copilot из-за его «вау-фактора» – тревожный вывод, учитывая его текущие недостатки, хотя следует помнить, что это предварительная версия.

    Большая часть программирования – это рутинная работа, и несколько проблем являются уникальными для одного проекта, поэтому в принципе применение ИИ к задаче может сработать. IntelliCode от Microsoft, который использует машинное обучение для улучшения автозавершения кода, подходит; это может повысить производительность без увеличения риска ошибок.

    Фрагменты кода, созданные искусственным интеллектом, – это другое дело, и пока что история состоит в том, что есть большой потенциал, но также и множество препятствий. ®



    Предыдущая статьяОбзор портативного проектора Xgimi Halo
    Следующая статьяПользователи Audacity вставляют нож и вилку, чтобы удалить аудиоредактор
    Виктор Попанов
    Эксперт тестовой лаборатории. Первый джойстик держал в руках в возрасте 3 лет. Первый компьютер, на котором „работал” был с процессором Intel i386DX-266. Тестирует оборудование для издания ITBusiness. Будь то анализ новейших гаджетов или устранение сложных неполадок, этот автор всегда готов к выполнению поставленной задачи. Его страсть к технологиям и приверженность качеству делают его бесценным помощником в любой команде.