Чудовий, здоровий погляд на використання великих мовних моделей (ВММ a.k.a. ШІ) від автора політики щодо ВММ проєкту Rust. Думаю, це можна застосувати не тільки до розробки софту. Я радий знати, що спільнота проєкту Rust дивиться на це саме таким чином.
Загалом, ця політика зосереджена на розумінні і сприянні у тому, щоб у нас була ментальна модель нашого коду, а не лише артефакти, які механічно виконують правильні дії.
Основне питання – довкола чого і яких цінностей люди збираються разом, щоб працювати над проєктом, що́ вони хочуть спільно накопичувати й будувати, і що очікують одне від одного, а не у тому, добрий чи поганий код геренують ВММ per se.
Думаю, більшість авторів пропозицій (змін до) коду, які використовують ВММ, переконані, що вони щиро допомагають, але для нас сам код є найменшою, і в певному сенсі найменш важливою частиною пропонованих змін. Нас значно більше хвилює те, чи розуміє автор/ка, що́ цей код робить, чи роздумує він/вона над тим, як цей код буде змінюватися у майбутньому, і чи приймає усвідомлені рішення про те, як цей код має виглядати. Сам по собі код ніяк не сприяє жодній з цих речей.
Тобто ціннішою за код є когнітивна участь, усвідомлене прийняття рішень людиною по той бік екрану. Код завжди можна переписати, але цього неможливо зробити без достатнього розуміння самої проблеми, того, як саме ми її вирішуємо, і як це рішення буде жити довготерміново.
Ми часто зіштовхумося з ситуацією, коли людина відповідає на коментар, копіюючи його у ВММ і вставляючи назад її відповідь. Скажу прямо: це марна трата часу усіх залучених. Якщо б нам була потрібна відповідь ВММ, ми б самі запитали. Ми хочемо почути вашу думку, а не думку машини.
Мене турбує асиметрія зусиль і відповідальності, яка тут виникає: той, хто називає себе автором, з допомогою машини дуже швидко створює щось, що потім хтось інший має повністю «перетравити» і зрозуміти, щоб приймати усвідомлені рішення і відповідати за це перед кінцевими користувачами і всіма іншими учасниками проєкту.
Ще з давніх до-ШІшних часів я пригадую, як мене дратувало зловживання машинним перекладом окремими авторами в українській Вікіпедії, а особливо коли це ще й було порушенням авторського права (я нерідко вилучав такий переклад). Мені здається, тут щось подібне – нагенерувати щось машиною можна швидко, але хто буде за це відповідати? Хто хоча б раз уважно прочитає це повністю, перш ніж віддавати іншим?
Недавно спостерігав, як один розробник зіштовхнувся з нагенерованою ВММ пропозицією змін до свого проєкту. Кінець кінцем він просто переробив все самостійно. Не тому, що код був якимось докорінно неправильний, а тому що це був не той код, який він хотів бачити в своєму проєкті («хто таке пише?»), і він не бачив сенсу казати про це «автору»:
Це важливо не тому, що я не готовий прийняти код, створений ВММ. Але через це мені складно зрозуміти, чи є сенс писати автору мої побажання щодо коду, чи простіше переробити це самому.
Тобто проблема не стільки в самому коді, скільки у способі взаємодії і очікуваннях одне від одного.
Також тут виникає ряд інших етичних питань – наприклад, якщо людина створила з мінімальними зусиллями 100 пропозицій коду з допомогою ВММ, 25 з яких потім опрацювали і довели до пуття інші (решту 75 викинули), а потім ця сама людина в своєму CV подасть список з цих 25 змін як своє індивідуальне досягнення – наскільки це чесно?
Ніхто крім автора не зобов'язаний читати вивід ВММ, за винятком добровільного вибору: вивід ВММ заборонений в публічній документації, описах пропозицій змін, а також коментарях на GitHub, якщо він не є явно промаркований¹. Рецензенти не зобов'язані читати ВММні пропозиції змін, якщо вони не бажають.
Вважаю, що це чудовий принцип – він відразу чітко декларує рівень очікуваної залученості інших до створеного кимось ВММного вмісту, на противагу вмісту, артикульованого самою людиною безпосередньо.
Ви можете генерувати ВММ-ний вміст, якщо тільки ви його бачите, без розкриття [факту використання ВММ], поки ви не публікуєте його де-небудь з очікуванням, що ми будемо його читати чи рецензувати.
Це справедливо.
При тому зверніть увагу, що політика не містить категоричної заборони на використання ВММ для генерування самого коду:
Узгоджений заздалегідь, некритичний, високоякісний, добре відтестований і добре відрецензований код, який початково був створений ВММ, дозволяється, з розкриттям [факту використання ВММ].
Отже, це не проблема коду самого по собі, а питання презумпцій щодо того, наскільки кожен/на з учасників залучені когнітивно. Код, який потрапляє до користувачів і еволюціонує, стає кращим і якіснішим протягом десятиліть, – це вже результат усієї цієї взаємодії і інвестованого спільного [когнітивного] капіталу.
🐨
--
¹ Останнє стосується тільки коментарів на GitHub.
#Rust #NoAI