Lideri de opinie
Ne-au promis agenți, dar toți am primit doar lanțuri statice
În primăvara anului 2023, lumea s-a entuziasmat cu apariția agenților AI bazati pe LLM. Demo-uri puternice precum AutoGPT și BabyAGI au demonstrat potențialul LLM-urilor care rulează într-un buclă, alegând următoarea acțiune, observând rezultatele și alegând următoarea acțiune, pas cu pas (cunoscut și sub numele de framework-ul ReACT). Această nouă metodă trebuia să pună în funcțiune agenți care să efectueze în mod autonom și generic sarcini multi-pași. Dă-i un obiectiv și un set de unelte și el se va ocupa de rest. Până la sfârșitul anului 2024, peisajul va fi plin de agenți AI și cadre de construire a agenților. Dar cum se măsoară aceștia în raport cu promisiunea?
Este sigur să spunem că agenții alimentați de framework-ul ReACT naiv suferă de limitări severe. Dă-le o sarcină care necesită mai mult de câteva pași, folosind mai mult de câteva unelte și ei vor eșua lamentabil. Dincolo de problemele lor evidente de întârziere, ei vor pierde urma, vor eșua să urmeze instrucțiunile, vor opri prea devreme sau prea târziu și vor produce rezultate extrem de diferite la fiecare încercare. Și nu este de mirare. Framework-ul ReACT ia limitările LLM-urilor imprevizibile și le compune prin numărul de pași. Cu toate acestea, constructorii de agenți care doresc să rezolve cazuri de utilizare reală, în special în întreprinderi, nu pot face față cu acest nivel de performanță. Ei au nevoie de rezultate fiabile, previzibile și explicabile pentru fluxuri de lucru multi-pași complexe. Și au nevoie de sisteme AI care să atenueze, mai degrabă decât să exacerbeze, natura imprevizibilă a LLM-urilor.
Deci, cum se construiesc agenții în întreprinderi astăzi? Pentru cazuri de utilizare care necesită mai mult de câteva unelte și câteva pași (de exemplu, RAG conversațional), constructorii de agenți au abandonat în mare măsură promisiunea dinamică și autonomă a ReACT pentru metode care se bazează puternic pe lanțuri statice – crearea de lanțuri predefinite proiectate pentru a rezolva un anumit caz de utilizare. Acestă abordare seamănă cu ingineria software tradițională și este departe de promisiunea agenților ReACT. Ea realizează niveluri mai mari de control și fiabilitate, dar lipsește de autonomie și flexibilitate. Soluțiile sunt, prin urmare, intensive în ceea ce privește dezvoltarea, înguste în aplicare și prea rigide pentru a aborda niveluri ridicate de variație în spațiul de intrare și mediu.
Să fim siguri, practicile de lanțuire statică pot varia în ceea ce privește cât de “statice” sunt. Unele lanțuri folosesc LLM-uri doar pentru a efectua pași atomici (de exemplu, pentru a extrage informații, a rezuma textul sau a redacta un mesaj), în timp ce altele folosesc și LLM-uri pentru a lua unele decizii dinamic la momentul executării (de exemplu, un LLM care rulează între fluxuri alternative în lanț sau un LLM care validează rezultatul unui pas pentru a determina dacă trebuie să fie rulat din nou). În orice caz, atâta timp cât LLM-urile sunt responsabile pentru orice luare de decizii dinamice în soluție – suntem inevitabil prinși într-un compromis între fiabilitate și autonomie. Cu cât o soluție este mai statică, este mai fiabilă și previzibilă, dar și mai puțin autonomă și, prin urmare, mai îngustă în aplicare și mai intensivă în ceea ce privește dezvoltarea. Cu cât o soluție este mai dinamică și autonomă, este mai generică și mai ușor de construit, dar și mai puțin fiabilă și previzibilă.
Acest compromis poate fi reprezentat în următoarea grafică:

Acest lucru ne conduce la întrebarea, de ce încă nu am văzut un cadru agențial care să poată fi plasat în colțul din dreapta sus? Suntem condamnați să facem întotdeauna un compromis între fiabilitate și autonomie? Nu putem obține un cadru care să ofere interfața simplă a unui agent ReACT (ia un obiectiv și un set de unelte și rezolvă-l) fără a sacrifica fiabilitatea?
Răspunsul este – putem și vom face! Dar pentru aceasta, trebuie să realizăm că am făcut-o pe toate greșit. Toate cadrele actuale de construire a agenților au o eroare comună: ele se bazează pe LLM-uri ca componentă dinamică și autonomă. Cu toate acestea, elementul esențial pe care îl lipsim – ceea ce avem nevoie pentru a crea agenți care sunt atât autonomi, cât și fiabili – este tehnologia de planificare. Și LLM-urile nu sunt foarte bune la planificare.
Dar mai întâi, ce este “planificarea”? Prin “planificare” înțelegem capacitatea de a modela în mod explicit cursuri alternative de acțiune care duc la un rezultat dorit și de a explora și exploata aceste alternative sub constrângeri de buget. Planificarea trebuie făcută atât la nivel macro, cât și la nivel micro. Un plan macro împarte o sarcină în pași dependenți și independenți care trebuie executați pentru a atinge rezultatul dorit. Ce este adesea neglijat este nevoia de planificare la nivel micro, menită să garanteze rezultate dorite la nivel de pas. Există multe strategii disponibile pentru creșterea fiabilității și obținerea de garanții la nivelul unui singur pas prin utilizarea unor calcule mai mari la momentul inferenței. De exemplu, puteți reformula întrebări de căutare semantică de mai multe ori, puteți recupera mai mult context pentru o anumită întrebare, puteți utiliza un model mai mare și puteți obține mai multe inferențe dintr-un LLM – toate ducând la rezultate mai satisfăcătoare din care să alegeți cel mai bun. Un bun planificator la nivel micro poate utiliza în mod eficient calculele la momentul inferenței pentru a obține cele mai bune rezultate sub un anumit buget de calcul și întârziere. Pentru a scala investiția de resurse după cum este necesar de către sarcina în cauză. Astfel, sistemele AI planificate pot atenua natura probabilistică a LLM-urilor pentru a obține rezultate garantate la nivel de pas. Fără astfel de garanții, suntem înapoi la problema erorii compuse care va submina chiar și cel mai bun plan la nivel macro.
Dar de ce nu pot LLM-urile să servească ca planificatori? După cum știm, ele sunt capabile să traducă instrucțiuni de nivel înalt în lanțuri de gândire sau planuri rezonabile definite în limbaj natural sau cod. Motivul este că planificarea necesită mai mult decât atât. Planificarea necesită capacitatea de a modela cursuri alternative de acțiune care ar putea duce în mod rezonabil la rezultatul dorit ȘI de a raționa despre utilitatea și costurile așteptate (în ceea ce privește calculul și/sau întârzierea) ale fiecărei alternative. Deși LLM-urile pot genera reprezentări ale cursurilor de acțiune disponibile, ele nu pot prezice utilitatea și costurile așteptate. De exemplu, ce sunt utilitatea și costurile așteptate ale utilizării modelului X versus modelului Y pentru a genera un răspuns pentru un anumit context? Ce este utilitatea căutării unei anumite informații în corpusul de documente indexate versus o apelare API către CRM? LLM-ul dvs. nu are nici cea mai mică idee. Și pe bună dreptate – urmele istorice ale acestor trăsături probabilistice sunt rareori găsite în sălbăticie și nu sunt incluse în datele de antrenament LLM. Ele tind să fie specifice mediului de instrumente și date în care sistemul AI va opera, spre deosebire de cunoașterea generală pe care LLM-urile o pot dobândi. Și chiar dacă LLM-urile ar putea prezice utilitatea și costurile așteptate, raționamentul despre ele pentru a alege cursul de acțiune cel mai eficient este o deducție logică decizională, care nu poate fi presupusă a fi realizată în mod fiabil de predicțiile următorului token LLM.
Deci, ce sunt ingredientele lipsă pentru tehnologia de planificare AI? Avem nevoie de modele de planificare care pot învăța din experiență și simulare pentru a modela în mod explicit cursuri alternative de acțiune și probabilități de utilitate și cost corespunzătoare pentru o anumită sarcină într-un anumit mediu de instrumente și date. Avem nevoie de un Limbaj de Definire a Planului (PDL) care poate fi utilizat pentru a reprezenta și raționa despre cursuri de acțiune și probabilități. Avem nevoie de un motor de execuție care poate executa în mod determinist și eficient un plan dat definit în PDL.
Unii oameni sunt deja la lucru pentru a livra această promisiune. Până atunci, continuați să construiți lanțuri statice. Doar vă rog, nu-i numiți “agenți”.












