Pisanie kodu to dopiero pierwszy krok w tworzeniu czegoś. Przeczesywanie kodu w poszukiwaniu błędów i ich naprawianie jest czasochłonne i często trwa dłużej niż oczekiwano, ale mimo wszystko jest to niezbędny krok.
Gdyby tylko istniał sposób na automatyczne naprawianie błędów, który wykracza poza błędy składniowe i naprawdę rozumie intencje stojące za Twoim kodem.
Niedawno Microsoft opracował sztuczną inteligencję zdolną do wykrywania i naprawiania błędów w kodzie przy użyciu głębokiego uczenia. Ale jak powstała ta rewolucyjna technologia i jak to działa?
Co to jest BugLab i jak to działa?
BugLab to implementacja sztucznej inteligencji w Pythonie, która wyszukuje i naprawia błędy w kodzie. Został opracowany przez Miltosa Alamanisa i Marca Brockschmidta, dwóch badaczy z Microsoft Research. Udało im się przezwyciężyć brak oznakowanych danych często wykorzystywanych w nauczanie maszynowe uciekając się do samonadzorowanej nauki i pozwalając BugLabowi szkolić się w grze w chowanego z linijkami kodu.
BugLab został przeszkolony przy użyciu dwóch modeli obliczeniowych; jeden, który ukrywa błędy w poprawnych fragmentach kodu, a drugi, który wyszukuje i poprawia błędy. Oba modele nieustannie uczą się od siebie. Z biegiem czasu selektor błędów staje się lepszy w ukrywaniu błędów w kodzie, a detektor staje się lepszy w ich wyłapywaniu i naprawianiu.
Zrozumienie kodu za pomocą BugLab
Większość błędów, które BugLab AI jest wyszkolone do wykrywania i naprawiania, nie powoduje błędów logicznych, ale jest błędna tylko w wyniku ogólnego kontekstu kodu. Zrozumienie intencji dewelopera jest niezbędne do znalezienia tych błędów.
Traktowanie fragmentów kodu w taki sam sposób, jak przetwarzanie języków naturalnych, daje nieoptymalne wyniki. AI nadal ma trudności ze zrozumieniem związku między różnymi stwierdzeniami, gdy są one podzielone na pojedyncze tokeny.
Zamiast tego BugLab patrzy na kod jako całość. W ten sposób każda składnia, wyrażenie, symbol i identyfikator są reprezentowane jako punkty na wykresie, co pozwala sztucznej inteligencji „zrozumieć” połączenie i relacje między różnymi węzłami.
Architektury sieci neuronowych są następnie wykorzystywane do szkolenia sztucznej inteligencji w zakresie debugowania. Są w stanie wyciągnąć wnioski z bogatej struktury grafu kodu i podać powody relacji każdego węzła z innymi.
Czy BugLab działa na rzeczywistym kodzie?
Należy zauważyć, że BugLab nie zastępuje wykwalifikowanego programisty. To dlatego, że złożone błędy wciąż nie są w zasięgu.
Celem Microsoftu w zakresie sztucznej inteligencji jest wykrywanie i naprawianie często występujących błędów, takich jak nieprawidłowe operatory logiczne, jak użycie „lub” zamiast „i” i odwrotnie, oprócz odwróconych porównań wartości i zmiennych nadużycia.
Według Microsoft, wyniki są obiecujące, ponieważ BugLab jest w stanie wykryć i automatycznie naprawić około 26 procent błędów w fragmencie kodu. Mimo to znaczny procent dokładności jest nadal tracony z powodu fałszywych alarmów i pominiętych błędów.
Przyszłe zastosowania Microsoft BugLab
Celem Microsoftu w BugLab jest zaoszczędzenie czasu programistów, często spędzanego na przeglądaniu kodu w poszukiwaniu najmniejszych błędów.
Podczas gdy model debugowania AI jest wciąż w toku, ma szansę na: znajdowanie i naprawianie błędów które wahają się od niewygodnych po katastrofalne. Ale za kilka lat można oczekiwać, że BugLab stanie się koniecznością w zestawie narzędzi każdego programisty, nawet jeśli nie jest doskonały.
Wykładnicza ewolucja samouczącej się sztucznej inteligencji
Im więcej czasu mają modele AI, takie jak BugLab, aby trenować na rzeczywistych przykładach, tym lepsze i dokładniejsze wyniki przyniosą.
Jedną z najtrudniejszych przeszkód, z jakimi zmierzyli się badacze Microsoft podczas opracowywania BugLab, było wykorzystanie ludzkiego zrozumienia kodu i intencji w narzędziu. Ale teraz, gdy jest to w większości rozwiązane, możesz oczekiwać, że BugLab będzie z czasem coraz lepszy.
Próbujesz odróżnić sztuczną inteligencję, uczenie maszynowe i głębokie uczenie? Oto, co wszyscy mają na myśli.
Czytaj dalej
- Programowanie
- Microsoft
- Wskazówki dotyczące kodowania
- Sztuczna inteligencja
Anina jest niezależnym autorem technologii i bezpieczeństwa internetowego w MakeUseOf. Zaczęła pisać w cyberbezpieczeństwie 3 lata temu, mając nadzieję, że stanie się bardziej dostępna dla przeciętnego człowieka. Chętny do nauki nowych rzeczy i ogromny nerd astronomii.
Zapisz się do naszego newslettera
Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!
Kliknij tutaj, aby zasubskrybować