NarzędziaProgramowanie

ByteDance prezentuje ToolTrain: nowa jakość w procesie lokalizacji błędów w kodzie

Lokalizacja błędów w kodzie to żmudny proces, który wymaga od programistów analizy i modyfikacji konkretnych fragmentów kodu, szczególnie w rozbudowanych repozytoriach. Automatyzacja tego zadania stała się kluczowym celem badawczym ze względu na jego złożoność i czasochłonność. Agenci oparci na dużych modelach językowych (LLM) wykorzystują różnorodne narzędzia do dynamicznej eksploracji repozytoriów, jednak napotykają trudności w tzw. Repo Deep Search – sekwencyjnym zadaniu wymagającym wieloetapowego rozumowania i efektywnego korzystania z narzędzi. Aktualne LLM-y często nie radzą sobie z tymi wyzwaniami, co prowadzi do błędnych wywołań narzędzi lub utraty spójności rozumowania podczas eksploracji.

ToolTrain – przełom w lokalizacji błędów?

Naukowcy z Uniwersytetu Pekińskiego, ByteDance oraz Beijing Institute of Technology proponują ToolTrain – zintegrowane narzędzie do uczenia, które ma poprawić zdolność LLM-ów do wieloetapowego rozumowania podczas lokalizacji błędów. ToolTrain wprowadza RepoSearcher, lekkiego agenta wyposażonego w proste narzędzia wyszukiwania, które umożliwiają LLM-om lokalizowanie definicji funkcji lub klas po nazwie.

Aby pomóc LLM-om w strategicznym korzystaniu z tych narzędzi, badacze stworzyli specjalny zestaw danych z repozytoriów open-source i zastosowali dwuetapowy proces: wstępne uczenie z odrzucaniem próbek (rejection-sampled SFT) oraz uczenie ze wzmocnieniem (RL) z integracją narzędzi. Takie podejście zapewnia, że model uczy się wykorzystywać narzędzia w sposób strategiczny, unikając zbędnych eksploracji i koncentrując się na obiecujących ścieżkach kodu.

Metodologia i wyniki eksperymentów

Do oceny skuteczności ToolTrain, badacze wykorzystali SWE-Bench-Verified – zbiór danych pochodzący z rzeczywistych problemów z GitHub, zweryfikowany przez profesjonalnych programistów. Zbiór ten zawiera poprawne odpowiedzi dotyczące lokalizacji błędów, identyfikując funkcje i pliki zmodyfikowane w tzw. złotych łatkach (golden patches).

Wydajność RepoSearcher z ToolTrain oceniano za pomocą metryk takich jak Recall@k, MAP, MRR, nDCG@k oraz %Resolved. ToolTrain został zastosowany do dwóch modeli, Qwen-7B i Qwen-32B, które następnie porównano z czterema najnowocześniejszymi rozwiązaniami: Agentless, CrcaLoca, CoSIL i LocAgent. Takie zróżnicowanie zapewnia szczegółową ocenę efektywności ToolTrain w zakresie precyzyjnej i strategicznej eksploracji kodu.

RepoSearcher z ToolTrain osiąga znakomite wyniki, przewyższając modele o podobnej wielkości, a nawet większe modele komercyjne w niektórych metrykach. Na przykład, RepoSearcher z ToolTrain-32B osiąga wynik Recall@5 na poziomie funkcji wynoszący 68,55, przewyższając Claude-3.7-Sonnet (66,38). Model z 7 miliardami parametrów przewyższa inne frameworki wykorzystujące modele z 32 miliardami parametrów, co podkreśla potencjał ToolTrain w optymalizacji wykorzystania narzędzi nawet w mniejszych modelach.

Przyszłość lokalizacji błędów

ToolTrain, łącząc SFT z RL, umożliwia modelom takim jak RepoSearcher efektywne poruszanie się po repozytoriach kodu i precyzyjne wieloetapowe rozumowanie. Wyniki eksperymentów pokazują, że modele wyszkolone przy użyciu ToolTrain osiągają najlepsze wyniki wśród modeli o podobnej wielkości, a nawet przewyższają większe modele komercyjne w określonych zadaniach. To pokazuje jego zdolność do optymalizacji wykorzystania narzędzi i rozumowania w mniejszych modelach, zmniejszając redundancję i poprawiając wydajność. ToolTrain ma potencjał, aby zrewolucjonizować lokalizację błędów i stanowić wydajne rozwiązanie dla złożonych wyzwań w dziedzinie oprogramowania.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *