ChatGPT nauczył się poprawiać błędnie napisany kod i jest w tym bardzo dobry

Bot AI ChatGPT został wystawiony na próbę w wielu zadaniach w ostatnich tygodniach, a jego najnowsze wyzwanie pochodzi dzięki uprzejmości badaczy informatyki z Uniwersytetu Johannesa Gutenberga i University College London, którzy stwierdzili, że ChatGPT może wyłapać błędy z przykładowego kodu i naprawić go lepiej niż istniejące programy zaprojektowane do tego samego.

Naukowcy przepuścili 40 fragmentów błędnego kodu przez cztery różne programy do poprawiania kodu: ChatGPT, Codex, CoCoNut i Standard APR. Zasadniczo zapytali ChatGPT: „Co jest nie tak z tym kodem?”, a następnie skopiowali go i wkleili do funkcji czatu.

Przy pierwszym podejściu ChatGPT wypadł mniej więcej tak dobrze, jak inne systemy. ChatGPT rozwiązał 19 problemów, Codex rozwiązał 21, CoCoNut rozwiązał 19, a standardowe metody APR rozgryzły siedem. Badacze stwierdzili, że jego odpowiedzi były najbardziej podobne do Codexa, co „nie było zaskakujące, ponieważ ChatGPT i Codex pochodzą z tej samej rodziny modeli językowych.”

Jednak możliwość, cóż, czatowania z ChatGPT po otrzymaniu wstępnej odpowiedzi zrobiła różnicę, ostatecznie prowadząc ChatGPT do rozwiązania 31 problemów i łatwo przewyższając inne, które dostarczyły bardziej statyczne odpowiedzi.

„Potężną zaletą ChatGPT jest to, że możemy wchodzić w interakcję z systemem w ramach dialogu, aby bardziej szczegółowo określić żądanie” – czytamy w raporcie badaczy. „Widzimy, że dla większości naszych żądań, ChatGPT prosi o więcej informacji na temat problemu i błędu. Dostarczając takie wskazówki ChatGPT, można jeszcze bardziej zwiększyć jego współczynnik sukcesu, naprawiając 31 z 40 błędów, przewyższając tym samym osiągnięcia pozostałym narzędzi”

Badacze odkryli, że ChatGPT był w stanie szybko rozwiązać niektóre problemy, podczas gdy inne zajęły mu więcej czasu. „ChatGPT wydaje się mieć stosunkowo wysoką wariancję podczas naprawiania błędów”, mówi badanie. „Dla użytkownika końcowego oznacza to jednak, że pomocne może być wielokrotne wykonywanie żądań”.

Błędny kod, źródło: Dominik Sobania, Martin Briesch, Carol Hanna, Justyna Petke

Na przykład, kiedy badacze zadali pytanie pokazane na zdjęciu poniżej, spodziewali się, że ChatGPT zaleci zastąpienie n^=n-1 przez n&=n-1, ale pierwszą rzeczą, którą ChatGPT powiedział było, „Nie jestem w stanie powiedzieć, czy program ma błąd bez więcej informacji na temat oczekiwanego zachowania.” W trzeciej odpowiedzi ChatGPT, po większej ilości podpowiedzi ze strony badaczy, znalazł problem.

Sukces badania może potencjalnie zredefiniować istniejący, wart 600 milionów dolarów, przemysł zajmujący się pomocą inżynierom oprogramowania w znajdowaniu i naprawianiu błędów. Popularne platformy, takie jak Sentry, stały się standardowymi narzędziami w zespołach programistycznych, znacznie przyspieszając ich zdolność do tworzenia działającego kodu poprzez wydawanie raportów o błędach i sugerowanie poprawek.