Microsoft створила алгоритм, який пише код. Чи напружилися програмісти?‎

Влітку 2021 року Microsoft представила тестову версію ‎‎Github Copilot‎‎, нейронного мережевого помічника програміста. Алгоритм допомагає створювати код, в тому числі за описом англійською мовою. Розповідаємо, як це працює.‎

GPT-3 + Github = Copilot

‎Технологія заснована на GPT-3, моделі нейронної мережі обробки природної мови, яка навчається на 570 ГБ текстів англійською мовою. Алгоритм здатний доповнювати і генерувати фрагменти тексту.‎

‎На базі GPT-3 з’явилася система OpenAI Codex AI, яка переводить природну мову в програмне забезпечення. Microsoft взяла Codex і об’єднала модель з мільйонами рядків коду з репозиторіїв github з відкритим вихідним кодом — вона виявилася Github Copilot. Його робота звучить приблизно так:‎

Технологія працює в трьох режимах:‎

  • ‎генерування коду на основі контексту і завдання, описаного природною мовою;‎
  • ‎рекомендувати, щоб функції продовжувалися на основі контексту і стилю конкретного програміста.‎
  • ‎автоматично заповнюйте повторювані фрагменти коду.‎

‎Microsoft стверджує, що Copilot успішно генерує функціональні тіла 43% часу з першої спроби. Програмісти, які використовують Copilot, погоджуються з рекомендаціями алгоритму в 35% випадків.‎

Чому Copilot такий успішний‎

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

‎Наприклад, якщо ви попросите Copilot написати функцію для запиту курсу Bitcoin на Python, алгоритм дасть вам рішення, яке хтось вже знайшов. Іншими словами, Copilot не знає самої мови програмування, але володіє мільйонами прикладів її використання.‎

‎Однак покладатися на репозиторії з відкритим вихідним кодом також несе вразливості. Недосвідчені програмісти часто залишають в коді особисті дані: номери телефонів, паролі баз даних, ключі API. Крім того, Copilot може видати рішення, яке використовує вже застарілу бібліотеку програмного забезпечення.‎

Чи повинні програмісти боятися конкурента?‎

‎Навіть Microsoft називає свою технологію помічником розробника. Копілот здатний приймати неоптимальні або навіть помилкові рішення, щоб останнє слово залишалося за людиною. ШІ також не справляється зі складними завданнями. Тепер головною перевагою Copilot є те, що система рятує програмістів від необхідності в Google існуючих алгоритмів.‎