Фото 65.jpg
Штучний інтелект автоматизує все і чи може він замінити програмістів. Фото: Midjourney

Команда дослідників щойно опублікувала вичерпну карту проблем, з якими стикається штучний інтелект (ШІ) у розробці програмного забезпечення, та запропонувала план досліджень для подальшого розвитку цієї галузі.

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

Однак нове дослідження вчених Лабораторії комп'ютерних наук та штучного інтелекту (CSAIL) Массачусетського технологічного інституту та партнерських дослідницьких інститутів показало, що для реалізації цього майбутнього ми повинні спочатку безпосередньо подивитися на цілком реальні виклики сьогодення.

«Багато людей кажуть, що програмісти більше не потрібні, тому що штучний інтелект може автоматизувати все», — сказав Армандо Солар-Лезама, професор електротехніки та інформатики в Массачусетському технологічному інституті, старший науковий співробітник CSAIL та провідний автор дослідження. «Насправді ми досягли значного прогресу. Інструменти, які ми маємо сьогодні, набагато потужніші, ніж були раніше. Але нам ще належить пройти довгий шлях, щоб реалізувати весь потенціал автоматизації».

Професор Армандо Солар-Лезама стверджує, що поширене сприйняття програмної інженерії полягає в тому, що це завдання, схоже на студентське завдання з програмування: взяти невелику функцію та написати код для її обробки або виконати вправу в стилі LeetCode. Реальність набагато складніша: від рефакторингу коду для оптимізації дизайну до масштабних міграцій з мільйонами рядків коду з COBOL на Java, які змінюють весь технологічний стек компанії.

Вимірювання та комунікація залишаються складними проблемами

Оптимізацію коду промислового масштабу, таку як налаштування ядра графічного процесора або багаторівневі покращення в движку Chrome V8, досі важко оцінити. Поточні бенчмарки здебільшого призначені для невеликих, упакованих проблем. Найбільш практична метрика, SWE-Bench, просто просить модель штучного інтелекту виправити помилку на GitHub — низькорівневу вправу з програмування, яка включає кілька сотень рядків коду та потенційно розкриває дані, та ігнорує широкий спектр реальних сценаріїв, таких як рефакторинг за допомогою штучного інтелекту, парне програмування людина-машина або переписування високопродуктивних систем з мільйонами рядків коду. Доки бенчмарки не розширяться, щоб охопити ці сценарії з підвищеним ризиком, вимірювання прогресу — і таким чином його прискорення — залишатиметься відкритим завданням.

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

Заклик до дії від спільноти

Автори стверджують, що для вирішення цих проблем не існує чарівної палички, і закликають до зусиль у масштабі спільноти: створення даних, які відображають фактичний процес розробки програмістів (який код зберегти, який видалити, як код рефакторується з часом тощо); спільні інструменти оцінки якості рефакторингу, стійкості патчів та точності переходу системи; а також створення прозорих інструментів, які дозволяють ШІ виражати невизначеність та запрошувати до втручання людини.

Аспірант Алекс Гу розглядає це як «заклик до дії» для масштабних спільнот відкритого коду, який жодна лабораторія окремо не може забезпечити. Солар-Лезама передбачає прогрес невеликими, поступовими кроками — «дослідницькі результати, які вирішують одну частину проблеми за раз» — перетворюючи ШІ з «інструменту для пропонування коду» на справжнього інженерного партнера.

«Чому це важливо? Програмне забезпечення вже є основою фінансів, транспорту, охорони здоров’я та майже повсякденної діяльності. Але людські зусилля щодо його безпечної розробки та підтримки стають вузьким місцем», — сказав Гу. «Штучний інтелект, який може виконувати важку роботу, не допускаючи прихованих помилок, звільнить програмістів, щоб вони могли зосередитися на креативності, стратегії та етиці. Але щоб досягти цього, нам потрібно зрозуміти, що завершення коду — це легка частина, а складна частина — це все інше».

(Короткий переклад з новин MIT)

Джерело: https://vietnamnet.vn/hanh-trinh-dai-cua-ai-trong-ky-thuat-phan-mem-tu-dong-hoa-2426456.html