Фото 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