Skip to content

Agenții LLM

Privire de ansamblu

Agenții bazati pe LLM, denumiți în continuare și agenți LLM pentru scurtitate, implică aplicații LLM care pot executa sarcini complexe prin utilizarea unei arhitecturi care combină LLM-urile cu module cheie precum planificarea și memoria. Când construiești agenți LLM, un LLM servește ca controler principal sau "creier" care controlează un flux de operații necesare pentru a finaliza o sarcină sau o cerere de utilizator. Agentul LLM poate necesita module cheie precum planificarea, memoria și utilizarea instrumentelor.

Motivația și cazurile de utilizare

Interogări simple vs. complexe

Pentru a motiva mai bine utilitatea unui agent LLM, să spunem că eram interesați să construim un sistem care să poată ajuta la răspunsul următoarei întrebări:

Care este aportul caloric zilnic mediu pentru 2023 în Statele Unite?

Întrebarea de mai sus ar putea fi potențial răspunsă folosind un LLM care are deja cunoștințele necesare pentru a răspunde direct la întrebare. Dacă LLM-ul nu are cunoștințele relevante pentru a răspunde la întrebare, este posibil să se folosească un sistem RAG simplu unde un LLM are acces la informații legate de sănătate sau rapoarte.

Exemplu de interogare complexă

Acum să dăm sistemului o întrebare mai complexă precum următoarea:

Cum s-a schimbat tendința în aportul caloric zilnic mediu în rândul adulților în ultimul deceniu în Statele Unite și ce impact ar putea avea aceasta asupra ratelor de obezitate? În plus, poți oferi o reprezentare grafică a tendinței în ratele de obezitate în această perioadă?

Pentru a răspunde la o astfel de întrebare, doar folosirea unui LLM singur nu ar fi suficientă. Poți combina LLM-ul cu o bază de cunoștințe externe pentru a forma un sistem RAG, dar aceasta încă nu este probabil suficientă pentru a răspunde la interogarea complexă de mai sus.

De ce sunt necesari agenții LLM

Aceasta se datorează faptului că întrebarea complexă de mai sus necesită un LLM să:

  • Împartă sarcina în subpărți
  • Folosească instrumente și un flux de operații
  • Conducă la un răspuns final dorit

O soluție posibilă este să construiești un agent LLM care are acces la:

  • O API de căutare
  • Publicații legate de sănătate
  • Baze de date de sănătate publice/private
  • Informații relevante legate de aportul caloric și obezitate

Componente necesare

În plus, LLM-ul va avea nevoie de acces la un instrument "interpretor de cod" care ajută la preluarea datelor relevante pentru a produce grafice utile care ajută la înțelegerea tendințelor în obezitate. Acestea sunt componentele posibile de nivel înalt ale agentului LLM ipotetic, dar există încă considerații importante precum:

  • Crearea unui plan pentru a aborda sarcina
  • Accesul potențial la un modul de memorie
  • Urmărirea stării fluxului de operații
  • Monitorizarea observațiilor și progresului general

Cadrul agentului LLM

"Cadrul agentului LLM"

În general, un cadru al agentului LLM poate consta din următoarele componente de bază:

  1. Cererea utilizatorului - o întrebare sau cerere de utilizator
  2. Agent/Creier - agentul principal care acționează ca coordonator
  3. Planificarea - asistă agentul în planificarea acțiunilor viitoare
  4. Memoria - gestionează comportamentele anterioare ale agentului

1. Agent (Creier)

Un model de limbaj mare (LLM) cu capacități de uz general servește ca creier principal, modul agent sau coordonator al sistemului. Această componentă va fi activată folosind un șablon de prompt care implică detalii importante despre modul în care va opera agentul și instrumentele la care va avea acces (împreună cu detaliile instrumentelor).

Profilarea agentului

Deși nu este obligatorie, un agent poate fi profilat sau i se poate atribui o persoană pentru a-și defini rolul. Această informație de profilare este de obicei scrisă în prompt și poate include detalii specifice precum:

  • Detalii despre rol: Responsabilități și capacități specifice
  • Personalitatea: Caracteristici comportamentale
  • Informații sociale: Tipare de interacțiune
  • Informații demografice: Detalii specifice contextului

Conform [Wang et al. 2023], strategiile pentru a defini un profil de agent includ:

  • Crearea manuală: Ingineria prompt-urilor manuală
  • Generat de LLM: Folosirea LLM-urilor pentru a crea profile
  • Bazat pe date: Învățarea din tiparele datelor

2. Planificarea

Planificarea fără feedback

Modulul de planificare ajută la împărțirea pașilor necesari sau subtaskurilor pe care agentul le va rezolva individual pentru a răspunde la cererea utilizatorului. Acest pas este important pentru a permite agentului să raționeze mai bine despre problemă și să găsească în mod fiabil o soluție.

Modulul de planificare va folosi un LLM pentru a descompune un plan detaliat care va include subtaskuri pentru a ajuta la abordarea întrebării utilizatorului. Tehnici populare pentru descompunerea sarcinilor includ:

  • Lanțul de gândire: Abordarea de raționare cu o singură cale
  • Arborele de gânduri: Abordarea de raționare cu multiple căi

Mai jos este o figură care compară diferite strategii așa cum sunt formalizate în Wang et al., 2023:

"Planificarea agentului LLM"

Planificarea cu feedback

Modulele de planificare de mai sus nu implică niciun feedback, ceea ce face dificilă realizarea planificării pe termen lung pentru a rezolva sarcini complexe. Pentru a aborda această provocare, poți folosi un mecanism care permite modelului să reflecteze iterativ și să rafineze planul de execuție pe baza acțiunilor și observațiilor anterioare.

Scopul este de a corecta și îmbunătăți greșelile anterioare, ceea ce ajută la îmbunătățirea calității rezultatelor finale. Aceasta este deosebit de importantă în mediile și sarcinile complexe din lumea reală unde încercarea și eroarea sunt cheie pentru finalizarea sarcinilor.

Două metode populare pentru acest mecanism de reflecție sau critic includ:

  • ReAct: Cadrul de raționare și acțiune
  • Reflexion: Mecanismul de auto-reflecție

Exemplu de cadru ReAct

Ca exemplu, ReAct combină raționarea și acțiunea cu scopul de a permite unui LLM să rezolve sarcini complexe prin intercalarea între o serie de pași (repetat de N ori):

  1. Gândirea: Raționarea despre următoarea acțiune
  2. Acțiunea: Executarea acțiunii planificate
  3. Observația: Primirea feedback-ului din mediu

ReAct primește feedback de la mediu sub forma observațiilor. Alte tipuri de feedback pot include feedback uman și de la model. Figura de mai jos arată un exemplu de ReAct și pașii diferiți implicați în efectuarea răspunsului la întrebări:

"Agentul ReAct"

Află mai multe despre ReAct aici: Prompting ReAct

3. Memoria

Modulul de memorie ajută la stocarea jurnalelor interne ale agentului, inclusiv gândurile anterioare, acțiunile și observațiile din mediu, inclusiv toate interacțiunile dintre agent și utilizator.

Tipuri de memorie

Există două tipuri principale de memorie care au fost raportate în literatura agentului LLM:

Memoria pe termen scurt
  • Include informații de context despre situațiile curente ale agentului
  • De obicei realizată prin învățarea în context
  • Scurtă și finită din cauza constrângerilor ferestrei de context
Memoria pe termen lung
  • Include comportamentele și gândurile anterioare ale agentului
  • Trebuie să fie păstrată și reamintită pe o perioadă extinsă de timp
  • Adesea folosește un magazin vectorial extern accesibil prin recuperare rapidă și scalabilă
  • Oferă informații relevante pentru agent după cum este necesar
Memoria hibridă

Integrează atât memoria pe termen scurt cât și pe termen lung pentru a îmbunătăți capacitatea agentului pentru raționarea pe termen lung și acumularea experiențelor.

Formatele memoriei

Există și diferite formate de memorie de considerat când construiești agenți. Formatele reprezentative de memorie includ:

  • Limbaj natural: Text lizibil de om
  • Încorporări: Reprezentări vectoriale
  • Baze de date: Stocarea datelor structurate
  • Liste structurate: Informații organizate

Acestea pot fi și combinate, cum ar fi în Ghost in the Minecraft (GITM) care utilizează o structură cheie-valoare unde:

  • Cheile sunt reprezentate prin limbaj natural
  • Valorile sunt reprezentate prin vectori de încorporare

Atât modulele de planificare cât și memoria permit agentului să opereze într-un mediu dinamic și îi permit să-și reamintească în mod eficient comportamentele anterioare și să-și planifice acțiunile viitoare.

4. Instrumentele

Instrumentele corespund unui set de instrument/e care permite agentului LLM să interacționeze cu mediile externe precum:

  • API de căutare Wikipedia
  • Interpretor de cod
  • Motor matematic
  • Baze de date
  • Baze de cunoștințe
  • Modele externe

Când agentul interacționează cu instrumente externe, execută sarcini prin fluxuri de lucru care asistă agentul să obțină observații sau informații necesare pentru a finaliza subtaskurile și a satisface cererea utilizatorului.

În interogarea noastră inițială legată de sănătate, un interpretor de cod este un exemplu de instrument care execută cod și generează informațiile necesare de grafic solicitate de utilizator.

Metodele de integrare a instrumentelor

Instrumentele sunt folosite în moduri diferite de LLM-uri:

MRKL (Modular Reasoning, Knowledge and Language)

Un cadru care combină LLM-urile cu module experte care sunt fie:

  • LLM-uri: Instrumente bazate pe modele de limbaj
  • Simbolice: Calculator sau API meteo
Toolformer

Fine-tunează LLM-urile pentru a folosi API-urile instrumentelor externe.

Apelarea funcțiilor

Augmentează LLM-urile cu capacitatea de utilizare a instrumentelor care implică:

  • Definirea unui set de API-uri de instrumente
  • Furnizarea acestora modelului ca parte a unei cereri
HuggingGPT

Un agent alimentat de LLM care folosește LLM-uri ca planificator de sarcini pentru a conecta diverse modele AI existente (bazate pe descrieri) pentru a rezolva sarcini AI.

"HuggingGPT"

Aplicațiile agenților LLM

"ChemCrow"

Agentul ChemCrow proiectat să finalizeze sarcini în sinteza organică, descoperirea de medicamente și proiectarea materialelor.

Sursa figurii: Bran et al., 2023

În această secțiune, evidențiem exemple de domenii și studii de caz unde agenții bazati pe LLM au fost aplicați în mod eficient datorită capacităților lor de raționament complex și înțelegere de bun simț.

Agenți LLM notabili

Sănătatea mintală și bunăstarea

  • Ma et al. (2023): Analizează eficacitatea agenților conversaționali pentru sprijinul bunăstării mintale și găsește că agentul poate ajuta utilizatorii să facă față anxietăților, dar uneori poate produce conținut dăunător.

Simularea comportamentului economic

  • Horton (2023): Oferă agenților bazati pe LLM dotare, preferințe și personalități pentru a explora comportamentele economice umane în scenarii simulate.

Simularea comportamentului uman

  • Generative Agents și AgentSims: Ambele au ca scop simularea vieții zilnice umane într-un oraș virtual prin construirea mai multor agenți.

Luarea deciziilor juridice

  • Blind Judgement: Folosește mai multe modele de limbaj pentru a simula procesele de luare a deciziilor ale mai multor judecători; prezice deciziile Curții Supreme din lumea reală cu o acuratețe mai bună decât aleatorie.

Asistența în cercetare

  • Ziems et al. (2023): Prezintă agenți care pot asista cercetătorii în sarcini precum:
    • Generarea de abstracte
    • Scripting
    • Extragerea cuvintelor cheie

Chimia și știința

  • ChemCrow: Un agent de chimie LLM care utilizează baze de date legate de chimie pentru a planifica și executa autonom sintezele:

    • Repelent pentru insecte
    • Trei organocatalizatori
    • Descoperirea ghidată a unui nou cromofor
  • [Boiko et al. (2023)]: Combină multiple LLM-uri pentru automatizarea proiectării, planificării și execuției experimentelor științifice.

Matematica și educația

  • Agenții matematici: Asistă cercetătorii în explorarea, descoperirea, rezolvarea și demonstrarea problemelor matematice
  • EduChat și CodeHelp: Două alte exemple notabile de agenți LLM proiectați pentru educație

Arhitectura și proiectarea

  • Mehta et al. (2023): Propune un cadru interactiv care permite arhitecților umani să interacționeze cu agenții AI pentru a construi structuri într-un mediu de simulare 3D.

Ingineria software

  • ChatDev, ToolLLM, MetaGPT: Exemple notabile unde agenții AI arată potențialul de a automatiza:
    • Codarea
    • Debugarea
    • Testarea
    • Alte sarcini de inginerie software

Administrarea bazelor de date

  • D-Bot: Un administrator de bază de date bazat pe LLM care dobândește continuu experiența de întreținere a bazei de date și oferă sfaturi de diagnosticare și optimizare pentru bazele de date.

Aplicații specifice industriei

  • IELLM: Aplică LLM-urile pentru a aborda provocările din industria petrolului și gazelor.

AI încorporat

  • Dasgupta et al. 2023: Prezintă un sistem agent unificat pentru raționamentul încorporat și planificarea sarcinilor.

Integrarea sistemului de operare

  • OS-Copilot: Un cadru pentru a construi agenți generaliști capabili să interfațeze cu elemente comprehensive într-un sistem de operare (OS), inclusiv:
    • Web-ul
    • Terminalele de cod
    • Fișierele
    • Multimedia
    • Diverse aplicații terțe

Instrumentele agenților LLM

"AutoGen"

Capacitățile AutoGen; Sursa figurii: https://microsoft.github.io/autogen

Mai jos sunt exemple notabile de instrumente și cadre care sunt folosite pentru a construi agenți LLM:

Cadre de dezvoltare

  • LangChain: Un cadru pentru dezvoltarea aplicațiilor și agenților alimentați de modele de limbaj
  • AutoGPT: Oferă instrumente pentru a construi agenți AI
  • Langroid: Simplifică construirea aplicațiilor LLM cu Programarea Multi-Agent: agenții ca cetățeni de primă clasă, colaborând la sarcini prin mesaje
  • AutoGen: Un cadru care permite dezvoltarea aplicațiilor LLM folosind multiple agenți care pot conversa unul cu altul pentru a rezolva sarcini

Platforme deschise

  • OpenAgents: O platformă deschisă pentru utilizarea și găzduirea agenților de limbaj în sălbăticie
  • LlamaIndex: Un cadru pentru conectarea surselor de date personalizate la modelele de limbaj mari

Generarea de cod

  • GPT Engineer: Automatizează generarea de cod pentru a finaliza sarcinile de dezvoltare
  • DemoGPT: Agent AI autonom pentru a crea aplicații Streamlit interactive

Cercetarea și dezvoltarea

  • GPT Researcher: Un agent autonom proiectat pentru cercetare comprehensivă online pe o varietate de sarcini
  • AgentVerse: Proiectat pentru a facilita implementarea mai multor agenți bazati pe LLM în diverse aplicații

Caracteristici avansate

  • Agents: O bibliotecă/cadru open-source pentru construirea agenților de limbaj autonomi. Biblioteca suportă caracteristici inclusiv:
    • Memoria pe termen scurt și lung
    • Utilizarea instrumentelor
    • Navigarea web
    • Comunicarea multi-agent
    • Interacțiunea uman-agent
    • Controlul simbolic

Integrarea instrumentelor

  • BMTools: Extinde modelele de limbaj folosind instrumente și servește ca platformă pentru comunitate să construiască și să împărtășească instrumente
  • crewAI: Cadrul agent AI reimaginat pentru ingineri, oferind capacități puternice cu simplitate pentru a construi agenți și automatizări
  • Phidata: Un set de instrumente pentru construirea asistenților AI folosind apelarea funcțiilor

Evaluarea agenților LLM

"Benchmark-ul AgentBench pentru a evalua LLM-as-Agent pe provocări din lumea reală și 8 medii diferite."

Sursa figurii: Liu et al. 2023

Similar cu evaluarea LLM-urilor în sine, evaluarea agenților LLM este o sarcină provocatoare. Conform Wang et al., (2023), metodele comune de evaluare includ:

Abordările de evaluare

1. Anotarea umană

Include evaluatori umani care notează direct rezultatele LLM pe diferite aspecte care contează în aplicație precum:

  • Onestitatea: Adevărul răspunsurilor
  • Utilitatea: Utilitatea asistenței furnizate
  • Angajarea: Calitatea interacțiunii
  • Imparțialitatea: Corectitudinea în răspunsuri

2. Testul Turing

Evaluatorii umani sunt rugați să compare rezultatele de la oameni reali și agenți unde rezultatele indistincte înseamnă că agenții pot realiza performanțe umane.

3. Metricile

Acestea sunt metrici proiectate cu grijă care reflectă calitatea agenților. Metrici notabile includ:

  • Metrici de succes al sarcinii: Ratele de finalizare și acuratețea
  • Metrici de similaritate umană: Cât de uman este comportamentul
  • Metrici de eficiență: Viteza și utilizarea resurselor

4. Protocoalele

Corespunde protocoalelor comune de evaluare care determină modul în care sunt folosite metricile. Exemplele includ:

  • Simularea din lumea reală: Testarea în medii realiste
  • Evaluarea socială: Evaluarea capacităților de interacțiune socială
  • Evaluarea multi-sarcină: Testarea pe sarcini diferite
  • Testarea software: Testarea codului și sistemului

Benchmark-urile

Mai multe benchmark-uri au fost proiectate pentru a evalua agenții LLM. Exemple notabile includ:

  • ALFWorld: Sarcini AI încorporate bazate pe text
  • IGLU: Înțelegerea limbajului fundamentat interactiv
  • Tachikuma: Simularea socială multi-agent
  • AgentBench: Evaluarea comprehensivă a agenților
  • SocKET: Evaluarea cunoștințelor sociale
  • AgentSims: Mediile de simulare a agenților
  • ToolBench: Evaluarea utilizării instrumentelor
  • WebShop: Simularea sarcinilor de e-commerce
  • Mobile-Env: Interacțiunea cu aplicațiile mobile
  • WebArena: Finalizarea sarcinilor bazate pe web
  • GentBench: Capacitățile generale ale agenților
  • RocoBench: Sarcinile de robotică și control
  • EmotionBench: Evaluarea inteligenței emoționale
  • PEB: Benchmark-ul de planificare și execuție
  • ClemBench: Evaluarea cognitivă a limbajului
  • E2E: Finalizarea sarcinii end-to-end

Provocările

Agenții LLM sunt încă în copilăria lor, deci există multe provocări și limitări care rămân când îi construiești:

1. Capacitatea de a juca roluri

Agenții bazati pe LLM au de obicei nevoie să se adapteze unui rol pentru a finaliza în mod eficient sarcini într-un domeniu. Pentru rolurile pe care LLM-ul nu le caracterizează bine, este posibil să se fine-tuneze LLM-ul pe date care reprezintă roluri neobișnuite sau personaje psihologice.

2. Planificarea pe termen lung și lungimea finită a contextului

Planificarea pe o istorie lungă rămâne o provocare care ar putea duce la erori de la care agentul s-ar putea să nu se recupereze. LLM-urile sunt de asemenea limitate în lungimea contextului pe care o pot suporta, ceea ce ar putea duce la constrângeri care limitează capacitățile agentului, cum ar fi folosirea memoriei pe termen scurt.

3. Alinierea umană generalizată

De asemenea, este provocator să aliniezi agenții cu valorile umane diverse, ceea ce este comun și cu LLM-urile standard. O soluție potențială implică potențialul de a realinia LLM-ul prin proiectarea strategiilor avansate de prompting.

4. Robustețea prompt-ului și fiabilitatea

Un agent LLM poate implica mai multe prompt-uri proiectate pentru a alimenta modulele diferite precum memoria și planificarea. Este comun să întâlnești probleme de fiabilitate în LLM-uri chiar și cu cele mai mici schimbări la prompt-uri.

Agenții LLM implică un întreg cadru de prompt care îi face mai predispuși la probleme de robustețe. Soluțiile potențiale includ:

  • Craftarea elementelor de prompt: Prin încercare și eroare
  • Optimizarea/ajustarea automată a prompt-urilor: Folosind tehnici de optimizare
  • Generarea automată a prompt-urilor: Folosind GPT sau modele similare

O altă problemă comună cu LLM-urile este halucinația care este de asemenea prevalentă cu agenții LLM. Acești agenți se bazează pe limbaj natural pentru a interfața cu componentele externe care ar putea introduce informații conflictuale ducând la probleme de halucinație și factualitate.

5. Limita cunoștințelor

Similar cu problemele de nepotrivire a cunoștințelor care ar putea duce la probleme de halucinație sau factualitate, este provocator să controlezi domeniul de cunoștințe al LLM-urilor care poate afecta semnificativ eficacitatea simulărilor.

Concret, cunoștințele interne ale unui LLM ar putea:

  • Introduce prejudecăți
  • Utiliza cunoștințe necunoscute utilizatorului
  • Afecta comportamentul agentului când operează în medii specifice

6. Eficiența

Agenții LLM implică o cantitate semnificativă de cereri care sunt gestionate de LLM, ceea ce ar putea afecta eficiența acțiunilor agentului deoarece ar depinde foarte mult de viteza de inferență a LLM-ului. Costul este de asemenea o preocupare când implementezi multiple agenți.

Învățăturile cheie

  1. Agenții LLM combină multiple componente: Creier, planificare, memorie și instrumente
  2. Sarcinile complexe necesită arhitectura agentului: Interogările simple pot folosi LLM-uri de bază sau RAG
  3. Planificarea este critică: Atât cu cât și fără mecanisme de feedback
  4. Sistemele de memorie permit raționarea pe termen lung: Integrarea memoriei pe termen scurt și lung
  5. Instrumentele extind capacitățile: API-uri externe, baze de date și funcții specializate
  6. Evaluarea este multi-dimensională: Evaluarea umană, metrici și benchmark-uri
  7. Provocările rămân: Jocul de roluri, planificarea, alinierea și eficiența

Referințe

Subiecte conexe