Intel zaprezentował system ControlFlag służący do badań w dziedzinie programowania maszynowego, który autonomicznie wykrywa błędy w kodzie programów.
Intel zaprezentował system ControlFlag służący do badań w dziedzinie programowania maszynowego, który autonomicznie wykrywa błędy w kodzie programów. Ten nowatorski system typu self-supervised już w stadium początkowym zapowiada się korzystnie w kontekście wydajnego narzędzia, które pomoże programistom w pracochłonnym debugowaniu.
Podczas wstępnych testów, na podstawie ponad miliarda nieetykietowanych linii kodu o jakości produkcyjnej system ControlFlag nauczył się rozpoznawać nowe błędy.
W świecie, którego funkcjonowanie coraz silniej zależy od oprogramowania, programiści poświęcają nieproporcjonalnie dużo czasu na debugowanie zamiast na tworzenie kodu. Szacuje się, że koszty debugowania kodu stanowią 50% rocznych wydatków branży IT wynoszących 1,25 biliona USD.
„Uważamy, że ControlFlag jest wydajnym narzędziem, które może znacznie przyspieszyć ocenę i debugowanie kodu oraz istotnie obniżyć ich koszt. Wyniki badań wskazują, że na debugowanie programiści poświęcają około 50% swojego czasu. Wyobrażam sobie, że dzięki systemowi ControlFlag, i jemu podobnym, programiści będą znacznie mniej czasu poświęcać na debugowanie i skupią się na tym, co według mnie ludzie robią najlepiej – przekształcaniu kreatywnych, nowych pomysłów w kod.”- podkreśla Justin Gottschlich, główny naukowiec i dyrektor/założyciel działu Machine Programming Research w Intel Labs.
Przewiduje się, że debugowanie będzie coraz silniej wpływać na pracę programistów oraz na całą branżę. Wkraczamy w erę architektur heterogenicznych, których wyznacznikiem jest stosowanie specjalistycznych zespołów procesorów, w celu przetwarzania ogromnych ilości danych. Systemy te wymagają oprogramowania o stale rosnącej większej złożoności, co przekłada się na rosnące prawdopodobieństwo błędów. Ponadto, coraz trudniej jest o programistów potrafiących prawidłowo, efektywnie i bezpiecznie tworzyć aplikacje dla różnych platform sprzętowych. Z tego powodu w kodzie mogą pojawiać się nowe, trudne do wykrycia błędy.
W pełni gotowy system ControlFlag pozwoli na zautomatyzowanie żmudnych prac związanych z tworzeniem oprogramowania, takich jak testowanie, monitorowanie i debugowanie, a tym samym pozwoli złagodzić zagrożenia powodowane przez błędy. Dzięki temu programiści będą efektywniej wykonywać swoje zadania i zyskają więcej czasu na kreatywność, a także zostanie obniżony koszt jednego z najdroższych etapów prac nad oprogramowaniem.
„Zdolność systemu ControlFlag do wykrywania błędów jest oparta na programowaniu maszynowym, które jest połączeniem uczenia maszynowego, kompilatorów, metod formalnych oraz języków programowania i systemów komputerowych.” – wyjaśnia Justin Gottschlich, główny naukowiec i dyrektor/założyciel działu Machine Programming Research w Intel Labs.
System ControlFlag działa wykorzystuje także wykrywanie anomalii. Obserwując otaczający świat, ludzie uczą się pewnych wzorców służących do określania tego, co można uznać za standardowe. Analogicznie, na podstawie zweryfikowanych przykładów system ControlFlag uczy się prawidłowych sekwencji kodu. Dzięki temu potrafi rozpoznawać w kodzie anomalie, które mogą skutkować błędem. Co więcej, może wykrywać takie anomalie niezależnie od języka oprogramowania.
W ControlFlag zastosowano koncepcję rozpoznawania wzorców opartą na uczeniu nienadzorowanym, której główną zaletą jest zdolność do samodzielnego dostosowywania się do stylu programisty. Podobnie jak czytelnicy rozpoznają różnice między pełnymi słowami a skrótami, tak system ControlFlag może wykrywać różnice stylistyczne w języku programowania wykorzystując ograniczoną ilości danych wejściowych dla narzędzi kontrolnych.
„Narzędzie uczy się identyfikować i etykietować takie konwencje stylistyczne, aby na podstawie swoich wniosków dostosowywać rozpoznawanie błędów oraz rekomendowane poprawki. W ten sposób zostaje zminimalizowana liczba fałszywie rozpoznawanych błędów, które mogą wynikać z różnic stylistycznych między dwoma zespołami programistów.” – dodaje Justin Gottschlich, główny naukowiec i dyrektor/założyciel działu Machine Programming Research w Intel Labs.
System ControlFlag wykazał się zdolnością do wykrywania ukrytych błędów w kodzie o jakości produkcyjnej, który został uprzednio zweryfikowany przez programistów. Na przykład, gdy system ControlFlag analizował kod wykorzystujący bibliotekę cURL (dostępną na licencji open source i szeroko stosowaną do pobierania plików z internetu), wykrył dotychczas nierozpoznaną anomalię i zasygnalizował programistom, że jest potrzebne lepsze rozwiązanie.
Intel rozpoczął też wewnętrzne testy systemu ControlFlag obejmujące wykrywanie błędów podczas prac nad własnym oprogramowaniem i oprogramowaniem układowym. Stanowi to kluczowy element projektu Rapid Analysis for Developers Intela, którego celem jest przyspieszenie pracy programistów dzięki eksperckiemu wsparciu.
https://itreseller.pl/itrnewinternet-umiejetnosci-w-sieci-5g-recepta-na-globalne-problemy-zdaniem-profesora-mischy-dohlera-z-kings-college-london-ktory-byl-gosciem-specjalnym-ericsson-radio-tech-day-2020-w-lodzi/