Автор Гілка: Як вам нова парадигма програмування - GitHub Copilot?  (Прочитано 6940 раз)

Відсутній tech

  • Письменник
  • *****
  • дописів: 586
  • Карма: +1/-0
  • Гигик
GitHub і ті, хто "shall not be named" теж не сиділи на місці і створили на основі коду у відритому доступі (зацініть іронію) та мережі OpenAI Codex (GPT третього покоління) додаток, який фактично вгадує з контексту (навіть такого, як коментарі) та автозаповнює код варіантами функцій.

Ось сторінка проекту: https://copilot.github.com.

Ось кілька відео про нього: https://www.youtube.com/watch?v=lm2rs-s_hOU&t=2s&ab_channel=ChrisSean
https://www.youtube.com/watch?v=b9u3ZAGQmT0&ab_channel=EngineerMan
...

Попри певний скептицизм, легальну сумнівність, пропрієтарність, ненадійність та інше усе ж вважаю цікавим та вартим уваги зусиллям.

Axmed

  • Гість
перегукується з copyleft.

по-моєму, це одна з причин забратися з GitHub.

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3739
  • Карма: +9/-0
  • Програміст
Я сподіваюся що всі, хто використав код написаний з допомогою Копілота, будуть потім змушені відкрити свій код під ліцензією GPL.
[Fedora Linux]

Відсутній tech

  • Письменник
  • *****
  • дописів: 586
  • Карма: +1/-0
  • Гигик
Я сподіваюся що всі, хто використав код написаний з допомогою Копілота, будуть потім змушені відкрити свій код під ліцензією GPL.

Якраз у цьому і заковика. Нейронна мережa тільки навчалася на коді GitHub, причому там не увесь код іде з ліцензією GPL (є ще BSD, Apache, Creative Commons, ... https://en.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_licences). Крім цього, коли реєструєшся з GitHub, то мусиш погодитись з його умовами використання сервісу, які ніхто не читає взагалі, а якби прочитали, то знайшли би там фразу  "You grant us and our legal successors the right to store, archive, parse, and display Your Content" (ключовим є "parse"), а також "you grant GitHub the rights we need to use Your Content without attribution" -  цілком досить, щоб навчати нейромережу. Код, який потім вона генерує не є аж ніяк копією чогось в архіві. Нейромережу навчають логіці. Тому довести, що згенерований нею код є похідним від вже наявного - не знаю, чи реально (усе залежить від реалізації Codex).

Microsoft - тільки інвестор в OpenAI, не входить до ради директорів і зацікавлена тільки в додатку до Visual Studio (і мавпах для програмування - підозрюю). Надіюсь, що цим усе не обмежиться.

Відсутній tech

  • Письменник
  • *****
  • дописів: 586
  • Карма: +1/-0
  • Гигик
OpenAI, власне, має власний канал на Ютубі: https://www.youtube.com/watch?v=SGUCcjHTmGY&ab_channel=OpenAI

І, якщо чесно, очманів від презентації. (Хоч і розумію, що людина дуже добре знає систему та як нею керувати.)

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3739
  • Карма: +9/-0
  • Програміст
Немає там ніяких заковик. Копілот — це просунутий алгоритм, який копіює код. Деколи код копіюється буквально, деколи — ні, але він копіюється, а не створюється з нуля. Копілоту не можна дати книжку в зуби і попросити написати код, тому що він напише книжку, і навпаки — копілот не напише книжку, якщо йому згодувати код. Отже, це не є творча робота, а творче копіювання результатів інших людей.
[Fedora Linux]

Відсутній tech

  • Письменник
  • *****
  • дописів: 586
  • Карма: +1/-0
  • Гигик
Немає там ніяких заковик. Копілот — це просунутий алгоритм, який копіює код. Деколи код копіюється буквально, деколи — ні, але він копіюється, а не створюється з нуля. Копілоту не можна дати книжку в зуби і попросити написати код, тому що він напише книжку, і навпаки — копілот не напише книжку, якщо йому згодувати код. Отже, це не є творча робота, а творче копіювання результатів інших людей.

Зайняло трохи часу роздуплитися дещо в темі. Почасти ви праві щодо творчого копіювання. GPT-3 і її модифікація Codex досить добре знаходять шаблони і закономірності в згодованих їм даних (подібно до асоціації в людському розумінні). Тобто вони не можуть створити щось абсолютно нове (нову мову програмування, нові концепції), але доволі вправно перетусовують уже наявні. Причому завдяки величезності бази даних результати бувають досить неочікувані та оригінальні. Загалом мережа робить те саме, що й 99% програмістів - відтворює вже наявні шаблони та рецепти, але без глибшого розуміння та людського контексту.

Я би остерігався однак бути категоричним та спрощувати ідею машинного навчання. Часом розробники не розуміють самі, звідки взявся той чи інший результат. Ось вам ще канал: https://www.youtube.com/c/MachineLearningStreetTalk, щоб підгледіти усю складність абордованих проблем.

На завершення: якщо моє розпатякування когось дратує, або хтось відчуває, що це не вписується в тему даного форуму, то тільки натякніть.

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3739
  • Карма: +9/-0
  • Програміст
Цитата
Тобто вони не можуть створити щось абсолютно нове (нову мову програмування, нові концепції), але доволі вправно перетусовують уже наявні. Причому завдяки величезності бази даних результати бувають досить неочікувані та оригінальні. Загалом мережа робить те саме, що й 99% програмістів - відтворює вже наявні шаблони та рецепти, але без глибшого розуміння та людського контексту.

CODEX може створити щось нове, але в 99,99% випадків це буде не робочий код. Програмісти теж не вміють з нуля створювати програми за один прохід — процес розробки ітеративний, зі зворотним звʼязком та самонавчанням. Щоб перетворити CODEX в програміста, потрібно додати декілька «критиків» (дискримінаторів), які би оцінювали стиль, архітектуру, зрозумілість коду, підтримуваність коду, безпечність коду, а також перевірки — чи компілюється код, чи повертає він потрібний результат, а також одного «стратега» — який би оцінював та підтримував поступ до цілі.

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

Проблема виникає в плані того, кому належать права на результат роботи цього алгоритму. З одного боку, алгоритм розробили автори алгоритму, але з іншого боку, алгоритм не працює без даних. Напр. кому належать права на двійковий файл створений компілятором — авторам компілятора, чи авторам програми для компілятора? Відповідь: авторам програми. А кому належать права на програму, яка містить вбудований інтерпретатор і скомпільована у байт-код для нього? Авторам інтерпретатора? Так, автори інтерпретатора зберігають свої права на інтерпретатор. Авторам програми? Так, автори програми зберігають свої права на код програми. Тоді кому належать права на код CODEX? Авторам CODEX? Так, вони зберігають свої права на CODEX. Авторам ВПЗ, яке було використане CODEX? Так, вони зберігають свої права на ВПЗ, яке було використане CODEX. А кому належать права на код створений (скомпільований) CODEX? Авторам CODEX? Ні, він їм не належить. Користувачу, який запрограмував CODEX? Так, користувач має автоматичне право на результат своєї роботи. Авторам ВПЗ? Так, автори ВПЗ зберігають свої права на скопійований код, в складі більшого твору.

Колізію видно добре, чи розжувати детальніше?
[Fedora Linux]

Відсутній tech

  • Письменник
  • *****
  • дописів: 586
  • Карма: +1/-0
  • Гигик
Цитата
Колізію видно добре, чи розжувати детальніше?

"Розжувати"? Цікавий вибір слів. Ні, дякую, якось обійдуся власними силами.

P.S. JavaScript, Go, Perl, PHP, Ruby, Swift and TypeScript, Shell - усе це мови з відкритим кодом. Єдина "провина" OpenAI в тому, що вони кинули в горнило усе підряд. Можливо їм треба було оминати GPL і вчитися на BSD та інших ліцензіях. Мені насправді байдуже до правових колізій, цим нехай займаються юристи.  Цікавішою є сама ідея з надією, що вона колись буде втілена на вільних системах. До побачення.

Axmed

  • Гість
і я собі трохи побазікаю, з вашого дозволу  ;)

Люди, завдяки яким працює/працюватиме Copilot, діляться на: творців, що
створили програму і отримуватимуть з неї прибуток та народ, що тренує/натренував
систему своїм кодом/виправленнями коду. Чи матимуть люди (народ) якийсь прибуток
від програми?
Матимуть ті люди, що користуються (закритою) програмою, заплатили за неї
гроші і годують її своїм кодом/виправленнями коду, це буде закрита група людей
(назвемо їх „сектою“), а Copilot буде надбанням їхнього колективного розуму,
вигрібною ямою… загальним джерелом (далі скорочено ЗаД) місцем,
звідки вони братимуть код. Також буде окрема категорія людей, що не користуватимуться
ЗаДʼом, такі люди не отримуватимуть прибутку, але їх нагло використали
використовуватимуть, ось в чому заковика) (назвемо цих людей GNU). Можливо
колись GNU створять свій альтернативний ЗаД.

Тирить чи не тирить?
Я, зазвичай, пишу код для себе, це всякі заготовки, які потім використовую,
і там може траплятися персональна інформація (як-от електронна адреса, всякі
токени до сайтів… інколи, навіть інтимна інформація…) Це ж комусь може вискочити
те, що я написав?
Комусь вискочить (50/50), але кого це хвилює… тому що код
береться з вигріб… із ЗаДу, а його навряд-чи хтось чиститиме від надлишковості.

Далі піде футурологія. Чи важливо якою мовою пишеться код? Код пишеться
людською мовою
(по суті, це вже не код), а інтерпретатор/компілятор (далі
тлумач) перекладає його на код зрозумілий машині. На презентаціях тлумач ґенерує
код здебільшого на JavaScript і Python, що і так є мовами високого рівня. Чи
зможе він ґенерувати асембльований код?
Якщо годувати його кодом на асемблері,
тоді він навчиться. Чи важливо як написаний код (яка парадигма і все таке)?
Для пересічної людини, мабуть, не важливо, бо тлумач пише його для
себе. Пересічній людині просто треба згодувати статтю/твір і отримати готову
програму/скрипт. Код читатимуть лише обрані програмісти, що чиститимуть ЗаД від
надлишковості. Якось так…