Sztuczna inteligencja poprawia kod Facebooka

Fot. Geralt
Serwis społecznościowy zautomatyzował tworzenie swojego oprogramowania. W niedalekiej przyszłości serwis zamierza udostępnić na licencji open source narzędzia, których do tego użył.

Facebook korzysta z narzędzia o nazwie Sapienz do automatycznego testowania kodu. W oparciu o nie stworzył też inny program, SapFix, który poprawia błędy i tworzy łatki, które są później zatwierdzane przez głównego programistę aplikacji. Co więcej, SapFix uczy się na błędach – jeśli łatka została przyjęta, program dodaje ją do bazy możliwych rozwiązań. To, co robi SapFix do tej pory wykonywali programiści. Zajmowało to bardzo dużo czasu ze względu na ilość danych do przeanalizowania.

SI Facebooka poprawia kod stworzony przez programistów (graf. Facebook)

SapFix i Sapienz zostaną w przyszłości opublikowane na licencji open source, z czego zapewne skorzystają mniejsze firmy, które nie mogą sobie pozwolić na zatrudnianie armii programistów. Warto dodać, że to niepierwsze próby z automatycznym sprawdzaniem kodu źródłowego. W zeszłym roku pisaliśmy o rozwijanym przez naukowców z MIT systemie Genesis. Jednak były to dopiero przymiarka do zaprzęgnięcia sztucznej inteligencji do poprawiania kodu. Rozwiązanie Facebooka to coś innego, bo jest testowane na żywym organizmie, jakim są aplikacje serwisu społecznościowego.

Oprogramowanie SapFix i Sapienz zautomatyzowało część pracy nad aplikacjami Facebooka (graf. Facebook)

Na pierwszy rzut oka może wydawać się, że taka automatyzacja nie jest niczym spektakularnym. Jednak w praktyce oznacza to, że jesteśmy coraz bliżej automatycznego generowania kodu aplikacji z już dostępnych fragmentów. Nad takim rozwiązaniem zresztą pracuje amerykańska agencja obrony DARPA. Trudno mówić o całkowitym zastąpieniu programistów, jednak ich praca w przyszłości prawdopodobnie będzie wyglądała zupełnie inaczej niż dotychczas. Już teraz programiści bardzo często korzystają z gotowych bibliotek napisanych przez kogoś innego. Za jakiś czas sztuczna inteligencja zajmie się również wyborem najbardziej optymalnych rozwiązań, a rolą programisty będzie tylko sprawdzenie, czy wynikowy program działa właściwie. | CHIP