Tutoriale how-to
Rekursywne modele językowe: dlaczego polskie firmy zaczynają je wdrażać zamiast ReAct i CodeAct
W zeszłym miesiącu zespół Aion Automation uruchomił dla klienta z branży e-commerce system obsługi zwrotów oparty na rekursywnych modelach językowych. Po dwó…
# Rekursywne modele językowe: dlaczego polskie firmy zaczynają je wdrażać zamiast ReAct i CodeAct W zeszłym miesiącu zespół Aion Automation uruchomił dla klienta z branży e-commerce system obsługi zwrotów oparty na rekursywnych modelach językowych. Po dwóch tygodniach testów okazało się, że 87% zapytań klientów zostało rozwiązanych bez interwencji człowieka – o 32 punkty procentowe więcej niż w przypadku poprzedniego rozwiązania opartego na ReAct. Co sprawia, że RLM-y biją konkurencyjne architektury w zadaniach wieloetapowych? ## Dlaczego rekursywne modele językowe biją rekordy w benchmarkach GAIA i AgentBench? W benchmarku GAIA, który testuje zdolność modeli do rozwiązywania złożonych zadań wieloetapowych, rekursywne modele językowe (RLM) osiągnęły wynik 45% dokładności. Dla porównania: GPT-4 z pluginami radzi sobie na poziomie zaledwie 15%, a ludzie – 92% [2]. Ta różnica nie jest przypadkowa. RLM-y wykorzystują rekursję, by rozbijać skomplikowane problemy na mniejsze podzadania, które rozwiązują sekwencyjnie, zachowując przy tym kontekst całego procesu. ### Jak RLM-y osiągnęły 30% wyższą dokładność niż GPT-4 w zadaniach wieloetapowych? Klucz tkwi w architekturze. Podczas gdy tradycyjne modele, takie jak GPT-4, przetwarzają zadania liniowo, RLM-y używają pętli rekursywnych, które pozwalają na powrót do wcześniejszych etapów bez utraty kontekstu. W praktyce oznacza to, że jeśli model napotka błąd w jednym z podzadań, może cofnąć się i spróbować innego podejścia – coś, czego nie potrafią modele oparte na ReAct czy CodeAct [1]. Przykładem może być polski startup z branży fintech, który wdrożył RLM-y do automatyzacji obsługi wniosków kredytowych. Przed zmianą architektury, system oparty na ReAct radził sobie z zaledwie 60% wniosków, wymagając interwencji człowieka w pozostałych przypadkach. Po przejściu na RLM-y, odsetek wniosków przetwarzanych w pełni automatycznie wzrósł do 92%, a koszty obsługi spadły o 40% [4]. ### Dlaczego ReAct i CodeAct nie radzą sobie z zadaniami wymagającymi pamięci długoterminowej? ReAct i CodeAct działają w oparciu o iterację – wykonują zadania krok po kroku, ale nie mają mechanizmu pozwalającego na efektywne zarządzanie kontekstem długoterminowym. W praktyce oznacza to, że jeśli zadanie wymaga np. analizy kilku dokumentów lub interakcji z różnymi systemami (np. CRM i ERP), modele te gubią wątek i zaczynają generować błędne odpowiedzi [1]. W projekcie automatyzacji faktur dla polskiej firmy logistycznej, ReAct zawiódł właśnie z tego powodu. System miał za zadanie porównać faktury z zamówieniami w ERP, a następnie zweryfikować je z danymi w systemie księgowym. ReAct radził sobie z prostymi przypadkami, ale gdy pojawiały się rozbieżności wymagające wielokrotnych odwołań do różnych źródeł, model tracił kontekst i generował błędne wyniki. Dopiero wdrożenie RLM-ów pozwoliło na skuteczną obsługę 95% faktur bez interwencji człowieka [4]. ## Jak działają rekursywne modele językowe? Architektura krok po kroku Rekursja w RLM-ach nie jest nowym pomysłem – to klasyczne podejście znane z programowania, gdzie funkcja wywołuje samą siebie. W przypadku modeli językowych oznacza to, że zadanie jest dzielone na mniejsze podzadania, które są rozwiązywane sekwencyjnie, a wyniki są agregowane na końcu. ### Rekursja vs. iteracja: kluczowa różnica w przetwarzaniu zadań złożonych W iteracji (stosowanej np. w ReAct) model wykonuje zadania krok po kroku, ale nie ma możliwości powrotu do wcześniejszych etapów. W rekursji natomiast model może "cofnąć się" i spróbować innego podejścia, jeśli napotka problem. To sprawia, że RLM-y są znacznie bardziej elastyczne w zadaniach wymagających wieloetapowego rozumowania [1]. Przykładem może być automatyzacja obsługi reklamacji w sklepie internetowym. W przypadku iteracji, model musiałby przejść przez wszystkie kroki (weryfikacja zamówienia, sprawdzenie stanu magazynowego, kontakt z kurierem) bez możliwości powrotu. W rekursji, jeśli okaże się, że kurier nie dostarczył paczki, model może cofnąć się do kroku weryfikacji zamówienia i zasugerować klientowi zwrot pieniędzy. ### Self-Loops i Subagents: dlaczego RLM-y nie potrzebują dodatkowych warstw abstrakcji? W architekturach takich jak Self-Loops, modele wykorzystują dodatkowe warstwy abstrakcji, które mają pomóc w zarządzaniu złożonymi zadaniami. Problem polega na tym, że te warstwy często wprowadzają niepotrzebną złożoność i spowalniają działanie systemu. RLM-y radzą sobie bez nich, ponieważ same w sobie są w stanie zarządzać podzadaniami dzięki rekursji [5]. Schemat blokowy prostego RLM-a w Pythonie może wyglądać tak:
def solve_task(task):
if is_simple(task):
return execute(task)
else:
subtasks = break_down(task)
results = []
for subtask in subtasks:
results.append(solve_task(subtask)) # Rekursja
return aggregate(results)
AN