GitHub ввів у дію систему машинного навчання Copilot, що генерує код

GitHub оголосив про завершення тестування інтелектуального помічника GitHub Copilot, здатного генерувати типові конструкції під час написання коду. Система розроблена спільно з проектом OpenAI та використовує платформу машинного навчання OpenAI Codex, натреновану на великому масиві вихідних текстів, розміщених у публічних репозиторіях GitHub. Сервіс безкоштовний для популярних відкритих проектів і студентів. Для інших категорій користувачів доступ до GitHub Copilot платний ($10 на місяць або $100 на рік), але надається безкоштовний доступ до 60 днів.

Підтримується генерація коду мовами програмування Python, JavaScript, TypeScript, Ruby, Go, C# та C++ з використанням різних фреймворків. Доступні модулі для інтеграції GitHub Copilot із середовищами розробки Neovim, JetBrains IDEs, Visual Studio та Visual Studio Code. Судячи з зібраної в процесі тестування телеметрії, сервіс дозволяє генерувати код досить високої якості — наприклад, 26% запропонованих у GitHub Copilot рекомендацій були прийняті розробниками як є.

Від традиційних систем доповнення коду GitHub Copilot відрізняється можливістю формування досить складних блоків коду, аж до готових функцій, синтезованих з урахуванням поточного контексту. GitHub Copilot адаптується до манери написання коду розробником і враховує використовувані у програмі API та фреймворки. Наприклад, за наявності в коментарі прикладу структури JSON при початку написання функції для розбору цієї структури GitHub Copilot запропонує вже готовий код, а при написанні рутинних перерахувань описів, що повторюються, сформує позиції, що залишилися.

GitHub ввів у дію систему машинного навчання Copilot, що генерує код

Здатність GitHub Copilot генерувати готові блоки коду призвела до суперечок, пов'язаних із потенційним порушенням копілефт ліцензій. При формуванні моделі машинного навчання використано реальні вихідні тексти з репозиторіїв відкритих проектів, розміщені на GitHub. Багато з цих проектів поставляються під копілефт ліцензіями, такими як GPL, які вимагають постачання під сумісною ліцензією коду похідних робіт. У разі вставки запропонованого Copilot існуючого коду, розробники можуть мимоволі порушити ліцензію на проект, з якого був запозичений цей код.

Чи може вважатися похідною робота, згенерована системою машинного навчання, поки що не ясно. Також виникають питання, чи є модель машинного навчання об'єктом авторських прав і якщо так, то кому належать ці права і як вони співвідносяться з правами на код, на основі якого побудовано модель.

З одного боку, згенеровані блоки можуть повторювати уривки тексту з існуючих проектів, але з іншого боку система відтворює структуру коду, а не копіює сам код. Відповідно до проведеного в GitHub дослідження лише в 1% випадків пропонована Copilot рекомендація може включати уривки коду існуючих проектів, розміром більше 150 символів. У більшості ситуацій повтори виникають, коли Copilot не може коректно визначити контекст або пропонує типові рішення проблеми.

Для запобігання підстановці існуючого коду Copilot додано спеціальний фільтр, що не допускає перетину з існуючими проектами. При налаштуванні розробник може на свій розсуд активувати або вимкнути цей фільтр. З інших проблем наголошується на ймовірності, що синтезований код може повторити помилки та вразливості, присутні в коді, використаному при навчанні моделі.

Джерело: opennet.ru

Додати коментар або відгук