Sztuczna inteligencja Facebooka naprawia błędy w kodzie. Programiści odpoczną?

Strona główna Aktualności
image

O autorze

Facebook intensywnie pracuje nad trenowaniem kolejnych modeli maszynowego uczenia do różnych zastosowań. Jeden z najnowszych, SapFix, ma pomagać programistom znajdować i naprawiać błędy w kodzie. Ta SI jeszcze nie zastąpi programistów, ale może wykonać sporo pracy, należącej do nich i do testerów.

Narzędzie jest już w użyciu wewnątrz firmy, ma wykrywać nietypowe zachowania i proponować sposoby, jak można je naprawić. W tej chwili SapFix jest na dość wczesnym etapie rozwoju, w którym proponuje rozwiązania dla błędów wykrytych przez Sapienz – automatyczne narzędzie testujące, używane w Facebooku – ale docelowo ma pracować samodzielnie. Zespół uczący SapFix stara się teraz, by model był w stanie wykrywać awarie, zanim nastąpią.

By naprawić prosty błąd, SapFix całkowicie lub częściowo przywraca fragment kodu, który go spowodował. Bardziej złożone problemy są rozwiązywane przez model decyzyjny na podstawie „wyuczonych” szablonów, które mogą być modyfikowane, by pasowały do aktualnych warunków. W międzyczasie sprawdza trzy warunki: czy kod kompiluje się z błędami, czy błąd nadal występuje i czy poprawka wprowadza nowe błędy. Po kilku próbach, gdy model będzie w stanie podać skuteczne rozwiązanie, zaproponuje je żywym programistom. Oczywiście mogą oni odrzucić rozwiązanie – wtedy SapFix opracuje inne.

SapFix pomógł między innymi przy tworzeniu aplikacji dla Androida i dzięki niemu kod aplikacji jest bardziej stabilny i odporny. Facebook twierdzi, że to pierwsze zastosowanie generowanych maszynowo łatek z automatycznym testowaniem, uruchomione na tak dużą skalę. Nie mamy jednak pewności – w końcu nie wszyscy chwalą się eksperymentami tego typu.

Facebook obiecał, że narzędzia SapFix i Sapienz będą niebawem dostępne dla wszystkich programistów, razem z kodem źródłowym. Jeśli SapFix się przyjmie i doczeka następców, na pewno będzie mieć wpływ na rynek pracy w branży. Potrzeba będzie więcej specjalistów od maszynowego uczenia, a mniej testerów, więc (przynajmniej teoretycznie) poprzeczka zostanie podniesiona. Z drugiej strony trzeba zaznaczyć, że wiele firm ma problem ze znalezieniem potrzebnej liczby programistów, więc takie narzędzia przywitają z otwartymi ramionami.

© dobreprogramy