
Grupa badaczy opublikowała właśnie kompleksową mapę wyzwań, z jakimi mierzy się sztuczna inteligencja (AI) w dziedzinie rozwoju oprogramowania, i zaproponowała plan badań, który ma na celu dalszy rozwój tej dziedziny.
Wyobraź sobie przyszłość, w której sztuczna inteligencja po cichu przejmuje żmudne zadania związane z tworzeniem oprogramowania: refaktoryzację złożonego kodu, migrację starszych systemów i śledzenie błędów związanych z rasą, tak aby ludzcy inżynierowie oprogramowania mogli skupić się wyłącznie 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ę bardzo przybliżać tę wizję.
Jednakże nowe badanie przeprowadzone przez naukowców z Laboratorium Informatyki i Sztucznej Inteligencji (CSAIL) na MIT oraz partnerskich instytutów badawczych wykazało, że aby urzeczywistnić taką przyszłość, musimy najpierw zmierzyć się z bardzo realnymi wyzwaniami chwili obecnej.
„Wiele osób twierdzi, że programiści nie są już potrzebni, ponieważ sztuczna inteligencja zautomatyzowała wszystko” – powiedział profesor Armando Solar-Lezama, wykładowca elektrotechniki i informatyki na MIT, starszy badacz w CSAIL i główny autor badania. „W rzeczywistości poczyniliśmy bardzo znaczący postęp. Narzędzia, którymi dysponujemy, są o wiele potężniejsze niż wcześniej. Jednak aby w pełni wykorzystać potencjał automatyzacji, wciąż jest przed nami długa droga”.
Profesor Armando Solar-Lezama argumentuje, że obecnie panująca koncepcja upraszcza inżynierię oprogramowania do zadania podobnego do studenckiego zadania programistycznego: otrzymania małego zadania funkcji i napisania kodu, który je wykona, lub wykonania zadania w stylu LeetCode. Tymczasem rzeczywistość jest o wiele bardziej złożona: od refaktoryzacji kodu w celu optymalizacji projektu, po masowe migracje milionów linii kodu z COBOL-a do Javy, które fundamentalnie zmieniają platformę technologiczną firmy.
Pomiary i komunikacja nadal stanowią wyzwanie.
Optymalizacja kodu w skali przemysłowej – taka jak modyfikacja rdzeni GPU czy wielowarstwowe ulepszenia w Chrome V8 – pozostaje trudna do oceny. Obecne testy porównawcze koncentrują się głównie na małych, złożonych problemach. Najbardziej praktyczna obecnie dostępna miara, SWE-Bench, wymaga po prostu modelu sztucznej inteligencji (AI), aby naprawić błąd na GitHubie – co jest odpowiednikiem ćwiczenia programistycznego niskiego poziomu, obejmującego kilkaset linii kodu, z możliwością wycieku danych i ignorującego szereg innych rzeczywistych scenariuszy, takich jak refaktoryzacja wspomagana przez AI, programowanie człowiek-maszyna czy przepisywanie systemów o wysokiej wydajności z milionami linii kodu. Dopóki testy porównawcze nie zostaną rozszerzone o scenariusze o wyższym ryzyku, mierzenie postępów – a tym samym ich napędzanie – pozostanie otwartym wyzwaniem.
Co więcej, komunikacja człowiek-maszyna stanowi również istotną barierę. Główny autor, Alex Gu, student studiów podyplomowych, stwierdził, że obecnie interakcja ze sztuczną inteligencją przypomina „cienką nić komunikacji”. Kiedy prosi sztuczną inteligencję o wygenerowanie kodu, często otrzymuje duże, nieustrukturyzowane pliki wraz z kilkoma prostymi i podstawowymi przypadkami testowymi. Ta luka jest również widoczna w niezdolności sztucznej inteligencji do efektywnego wykorzystania narzędzi programistycznych znanych ludziom, takich jak debugery i analizatory statyczne.
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 (jaki kod jest zachowywany, a który usuwany, 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ść między systemami; a także tworzenia przejrzystych narzędzi, które umożliwiają sztucznej inteligencji wyrażanie niepewności i zachęcają do interwencji człowieka.
Student studiów podyplomowych Alex Gu postrzega to jako „wezwanie do działania” dla rozległych społeczności open source, czego nie jest w stanie osiągnąć żadne pojedyncze laboratorium. Solar-Lezama przewiduje, że postęp będzie wynikał z małych, wzajemnie się uzupełniających kroków – „wyników badań, które sekwencyjnie rozwiązują części problemu” – przekształcając w ten sposób sztuczną inteligencję z „narzędzia rekomendacji kodu” w prawdziwego partnera inżynieryjnego.
„Dlaczego to takie ważne? Oprogramowanie stanowi obecnie fundament finansów, transportu, opieki zdrowotnej i każdej codziennej działalności. Jednak ludzkie wysiłki włożone w jego bezpieczne tworzenie i utrzymanie stają się wąskim gardłem” – powiedział Gu. „Sztuczna inteligencja, która poradzi sobie z tym trudnym zadaniem bez tworzenia ukrytych błędów, pozwoliłaby programistom skupić się na kreatywności, strategii i etyce. Aby to osiągnąć, musimy jednak zrozumieć, że ukończenie fragmentu kodu to tylko łatwa część – najtrudniejsza część leży w całej reszcie”.
(Zaadaptowano z MIT News)
Source: https://vietnamnet.vn/hanh-trinh-dai-cua-ai-trong-ky-thuat-phan-mem-tu-dong-hoa-2426456.html






Komentarz (0)