Чому Linux kernel відмовився від правила розкриття AI-внесків?

На початку цього року проєкт Linux запровадив правило, яке вимагало від контриб'юторів, що подають код, чітко заявляти про будь-яке використання інструментів штучного інтелекту (AI) під час створення своїх патчів. У документації проєкту було зазначено, що належне вказування авторства допомагає відстежувати еволюцію ролі AI у процесі розробки. Для цього передбачалося використання спеціального тегу «Assisted-by».

Однак, як повідомляє The Register, розробники проєкту вирішили, що цей тег більше не є необхідним, і видалили відповідні згадки з документації. Рішення було прийнято після того, як контриб'ютор Лоран Піншар висловив занепокоєння щодо скасування цього правила. Основна причина полягає в тому, що, на думку керівництва, таке маркування не несе практичної користі для процесу перевірки коду.

Проблема полягає в тому, що наявність тегу «Assisted-by» не дає змоги мейнтейнерам Linux зрозуміти, чи є код якісним, чи він є продуктом бездумного копіювання. Тег лише констатує факт використання інструменту, але не пояснює суть внеску, що робить його малоцінним для фільтрації патчів.

Яка позиція Лінуса Торвальдса щодо використання AI у розробці?

Лінус Торвальдс, творець Linux та головний мейнтейнер проєкту, висловився проти ідеї обов'язкового розкриття використання AI дуже різко. У своєму дописі до списку розсилки ядра він назвав концепцію обмеження використання AI для певних завдань «ідіотською». За словами Торвальдса, його очікування від розробників зосереджені на результаті та розумінні процесу, а не на засобах його досягнення.

«Я не розумію цієї ідіотської концепції „не використовуй AI для X“», — написав Торвальдс. Він наголосив, що розробники мають робити все можливе, щоб їхній код був якісним, і вони повинні розуміти, що саме вони роблять. При цьому саме розуміння розробником логіки коду має мало спільного з тим, які саме інструменти він використовував для його написання.

Торвальдс підкреслив, що існуючий код можна розділити на дві категорії: хороший код, який автор добре знає і розуміє, та поганий код, який розробник фактично «виблював» (barfed out). Обидва ці типи коду можуть бути створені за допомогою AI-інструментів. Отже, з точки зору Торвальдса, примусове розкриття використання інструментів не допомагає мейнтейнерам відсіювати поганий код від хорошого, оскільки тег не є індикатором якості.

Порівняння з традиційними інструментами: аргумент про компілятори

Щоб продемонструвати абсурдність правил, що обмежують використання інструментів, Торвальдс навів гіпотетичне порівняння. Він зазначив, що заборона на AI була б подібна до введення правила, яке забороняє використовувати компілятори для подання коду в ядро.

«Ось нове правило спеціально для вас: не використовуйте компілятори для жодних своїх подань у ядро», — саркастично запропонував він. Його логіка полягає в тому, що якби розробник не міг продемонструвати розуміння того, що саме робить машина, пишучи код на асемблері, то такий внесок взагалі не мав би сенсу. «Ви явно не компетентні, якщо не можете написати це таким чином. Хіба ви не бачите, наскільки ДУРНИМИ були б такі правила?», — додав він.

Цим порівнянням Торвальдс намагається показати, що сучасні інструменти, як-от компілятори або AI, є частиною робочого процесу, і оцінювати потрібно не метод використання інструменту, а здатність розробника контролювати результат. Правила, що забороняють «використовувати інструменти для X», він вважає безглуздими.

Який вплив має це рішення на спільноту розробників?

Рішення скасувати тег «Assisted-by» відображає прагматичний підхід Linux до технологічного прогресу. Для спільноти це означає, що фокус зміщується з формального звітування про використання допоміжних засобів на фактичну перевірку якості внеску. Розробники тепер можуть використовувати сучасні інструменти без необхідності додавати додаткові метадані до своїх патчів, що дещо спрощує процес.

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

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

Чи є ризики у використанні AI-інструментів у розробці?

Попри позитивне ставлення Торвальдса до інструментів, він не ігнорує негативні аспекти. Він згадував про збільшення кількості звітів про «сміття» (slop reports), через які команді мейнтейнерів доводиться продиратися. Це вказує на реальний ризик: AI може генерувати велику кількість коду, який виглядає правильним, але насправді є неоптимальним або містить приховані дефекти.

Основний ризик полягає в тому, що розробники можуть почати покладатися на AI надмірно, втрачаючи глибоке розуміння системних процесів. Якщо код просто «викидається» в репозиторій без належної перевірки, це створює додаткове навантаження на мейнтейнерів, які змушені витрачати час на розбір неякісних патчів. Таким чином, проблема не в самому інструменті, а в потенційному зниженні рівня критичного мислення розробників.

Отже, ризик полягає не в самому факті використання AI, а в появі великої кількості низькоякісного коду, який потребує ретельної перевірки, що суперечить ідеї швидкої та ефективної розробки.

Які перспективи використання AI у розробці Linux kernel?

Майбутнє використання AI у розробці ядра Linux залишається відкритим і складним. З одного боку, технології розвиваються, і інтеграція розумних інструментів у процес програмування є неминучою. З іншого боку, open-source спільнота все ще перебуває на етапі пошуку того, як співіснувати з цією новою реальністю.

Торвальдс, як «диктатор на все життя», займає позицію, яка дозволяє інноваціям проникати в проєкт, але при цьому зберігає жорсткий контроль за якістю. Це означає, що AI може стати частиною екосистеми Linux, але лише як інструмент у руках компетентних фахівців, а не як заміна інтелектуальній праці.

Дискусії щодо ролі AI навряд чи закінчаться найближчим часом. Спільнота має знайти баланс між використанням потужності нових технологій та збереженням високих стандартів надійності, які є критично важливими для ядра, що керує мільйонами пристроїв по всьому світу.

FAQ: Використання AI у розробці

Чому було скасовано правило розкриття AI-внесків?

Правило було скасовано, оскільки, на думку Лінуса Торвальдса, тег «Assisted-by» не додає жодної цінності до коду і не допомагає мейнтейнерам відрізнити якісний код від поганого.

Чи підтримує Лінус Торвальдс використання AI?

Торвальдс не підтримує заборону AI і вважає ідею обмеження використання інструментів «абсолютно дурною». Він наголошує, що важливим є розуміння коду розробником, а не інструменти, які він застосовує.

Які ризики пов'язані з використанням AI у розробці?

Головний ризик полягає у збільшенні кількості неякісного коду («сміття»), який розробники можуть створювати за допомогою AI, не розуміючи його повної логіки, що створює додаткове навантаження на мейнтейнерів.

Як AI впливає на якість коду?

AI може допомагати створювати код, але він також може бути джерелом поганого коду, якщо розробник використовує його без належного розуміння результату. Якість залежить від людини, а не від інструменту.

Які перспективи використання AI у розробці?

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

Ключові висновки

  • Проєкт Linux kernel офіційно скасував вимогу використовувати тег «Assisted-by» для маркування AI-коду.
  • Лінус Торвальдс вважає обов'язкове розкриття використання AI безглуздим, оскільки воно не є індикатором якості.
  • Головним критерієм для прийняття коду залишається глибоке розуміння розробником того, що саме він робить.
  • Використання AI несе ризик збільшення кількості неякісного коду («сміття»), що ускладнює роботу мейнтейнерам.
  • Спільнота open-source все ще перебуває в процесі адаптації до епохи штучного інтелекту.