
Zespół badaczy opublikował właśnie kompleksową mapę wyzwań stojących przed sztuczną inteligencją (AI) w zakresie rozwoju oprogramowania i zaproponował plan badań, który ma na celu dalszy rozwój tej dziedziny.
Wyobraź sobie przyszłość, w której sztuczna inteligencja po cichu przejmuje monotonne zadania związane z tworzeniem oprogramowania: refaktoryzację zawiłego kodu, migrację starszych systemów i śledzenie wyścigów, dając inżynierom oprogramowania swobodę skupienia się na architekturze systemu, projektowaniu i problemach twórczych, których maszyny jeszcze nie potrafią rozwiązać. Najnowsze postępy w dziedzinie sztucznej inteligencji zdają się przybliżać tę wizję.
Jednakże nowe badanie przeprowadzone przez naukowców z Laboratorium Informatyki i Sztucznej Inteligencji (CSAIL) - MIT i partnerskich instytutów badawczych wykazało, że aby zrealizować taką przyszłość, musimy najpierw przyjrzeć się bezpośrednio bardzo realnym wyzwaniom chwili obecnej.
„Wiele osób twierdzi, że programiści nie są już potrzebni, ponieważ sztuczna inteligencja może zautomatyzować wszystko” – powiedział Armando Solar-Lezama, profesor elektrotechniki i informatyki na MIT, starszy badacz w CSAIL i główny autor badania. „W rzeczywistości poczyniliśmy znaczny postęp. Narzędzia, którymi dysponujemy dzisiaj, są znacznie potężniejsze niż kiedyś. Ale wciąż mamy długą drogę do przebycia, aby w pełni wykorzystać potencjał automatyzacji”.
Profesor Armando Solar-Lezama argumentuje, że w powszechnym mniemaniu inżynieria oprogramowania to zadanie podobne do studenckiego zadania programistycznego: weź małą funkcję i napisz kod, który ją obsłuży, albo wykonaj ćwiczenie w stylu LeetCode. Rzeczywistość jest o wiele bardziej złożona: od refaktoryzacji kodu w celu optymalizacji projektów, po migracje na dużą skalę z milionami linii kodu z COBOL-a do Javy, które zmieniają cały stos technologiczny firmy.
Pomiary i komunikacja pozostają trudnymi problemami
Optymalizacje kodu na skalę przemysłową – takie jak modyfikacje rdzeni GPU czy wielowarstwowe ulepszenia w silniku Chrome V8 – wciąż są trudne do oceny. Obecne testy porównawcze dotyczą głównie małych, zgrupowanych problemów. Najbardziej praktyczna metryka, SWE-Bench, po prostu prosi model sztucznej inteligencji o naprawienie błędu na GitHubie – ćwiczenie programistyczne niskiego poziomu, które obejmuje kilkaset linii kodu i potencjalnie ujawnia dane, ignorując szeroki zakres rzeczywistych scenariuszy, takich jak refaktoryzacja wspomagana przez sztuczną inteligencję, programowanie w parach człowiek-maszyna czy przepisywanie wysokowydajnych systemów z milionami linii kodu. Dopóki testy porównawcze nie rozszerzą się o te bardziej ryzykowne scenariusze, mierzenie postępów – a tym samym ich przyspieszanie – pozostanie otwartym wyzwaniem.
Ponadto komunikacja człowiek-maszyna stanowi istotną barierę. Doktorant Alex Gu – główny autor – stwierdził, że obecnie interakcja ze sztuczną inteligencją wciąż przypomina „kruchą linię komunikacyjną”. Prosząc sztuczną inteligencję o wygenerowanie kodu, często otrzymuje duże, nieustrukturyzowane pliki oraz kilka prostych i nieprecyzyjnych zestawów testowych. Ta luka znajduje również odzwierciedlenie w fakcie, że sztuczna inteligencja nie jest w stanie efektywnie wykorzystać narzędzi programowych znanych ludziom, takich jak debugery, analizatory statyczne itp.
Apel społeczności o podjęcie działań
Autorzy twierdzą, że nie ma magicznego rozwiązania tych problemów i wzywają do podjęcia wysiłków na skalę całej społeczności: tworzenia danych odzwierciedlających rzeczywisty proces rozwoju programistów (który kod zachować, który usunąć, w jaki sposób kod jest refaktoryzowany w czasie itd.); wspólnych narzędzi oceny jakości refaktoryzacji, trwałości poprawek i dokładności przejść systemowych; a także tworzenia przejrzystych narzędzi, które pozwolą sztucznej inteligencji wyrazić niepewność i zaprosić człowieka do interwencji.
Doktorant Alex Gu postrzega to jako „wezwanie do działania” dla rozległych społeczności open source, którego nie jest w stanie zapewnić żadne pojedyncze laboratorium. Solar-Lezama przewiduje, że postęp będzie następował małymi, stopniowymi krokami – „wyniki badań, które rozwiązują jeden problem na raz” – przekształcając sztuczną inteligencję z „narzędzia do podpowiadania kodu” w prawdziwego partnera inżynieryjnego.
„Dlaczego to takie ważne? Oprogramowanie jest już fundamentem finansów, transportu, opieki zdrowotnej i niemal każdej codziennej działalności. Jednak ludzki wysiłek włożony w jego tworzenie i bezpieczne utrzymanie staje się wąskim gardłem” – powiedział Gu. „Sztuczna inteligencja, która potrafiłaby wykonać najtrudniejsze zadania bez popełniania ukrytych błędów, pozwoliłaby programistom skupić się na kreatywności, strategii i etyce. Ale aby to osiągnąć, musimy zrozumieć, że ukończenie fragmentu kodu to łatwa część – trudna część to cała reszta”.
(Krótkie tłumaczenie z MIT News)
Source: https://vietnamnet.vn/hanh-trinh-dai-cua-ai-trong-ky-thuat-phan-mem-tu-dong-hoa-2426456.html
Komentarz (0)