Umjetna inteligencija
AutoGen: Snaga sljedeće generacije velikih jezičnih modela aplikacija

Veliki jezični modeli (LLM) trenutno su jedna od tema o kojima se najviše raspravlja u mainstream AI. Programeri diljem svijeta istražuju potencijalne primjene LLM-a. Ovi su modeli algoritmi umjetne inteligencije koji koriste tehnike dubinskog učenja i goleme količine podataka o obuci za razumijevanje, sažimanje, predviđanje i generiranje širokog raspona sadržaja, uključujući tekst, zvuk, slike, videozapise i više.
Veliki jezični modeli su zamršeni algoritmi umjetne inteligencije. Razvijanje takvog modela iscrpan je zadatak, a konstruiranje aplikacije koja koristi mogućnosti LLM-a jednako je izazovno. Zahtijeva značajnu stručnost, trud i resurse za dizajniranje, implementaciju i konačno optimiziranje tijeka rada koji može iskoristiti puni potencijal velikog jezičnog modela kako bi se dobili najbolji rezultati. S obzirom na opsežno vrijeme i resurse potrebne za uspostavljanje tijeka rada za aplikacije koje koriste snagu LLM-a, automatizacija ovih procesa ima golemu vrijednost. Ovo je osobito istinito jer se očekuje da će tijek rada postati još složeniji u bliskoj budućnosti, a programeri će izrađivati sve sofisticiranije Prijave temeljene na LLM-u. Osim toga, prostor za dizajn neophodan za ove tijekove rada je i zamršen i ekspanzivan, dodatno podižući izazove izrade optimalnog, robusnog tijeka rada koji ispunjava očekivanja performansi.
AutoGen je okvir koji je razvio tim u Microsoftu koji ima za cilj pojednostaviti orkestraciju i optimizaciju tijeka rada LLM-a uvođenjem automatizacije u cjevovod tijeka rada. Okvir AutoGen nudi agente koji se mogu razgovarati i prilagoditi, a koji iskorištavaju snagu naprednih LLM-ova kao što su GPT-3 i GPT-4, au isto vrijeme rješavaju njihova trenutna ograničenja integracijom LLM-ova s alatima i ljudskim unosima korištenjem automatiziranih chatova za pokretanje razgovora između više agenata.
Kada koristite okvir AutoGen, potrebna su samo dva koraka za razvoj složenog sustava razgovora s više agenata.
Korak 1: Definirajte skup agenata, svaki sa svojim ulogama i mogućnostima.
Korak 2: Definirajte interakcijsko ponašanje između agenata, tj. agent bi trebao znati što odgovoriti kada primi poruku od drugog agenta.
Oba gore navedena koraka su modularna i intuitivna što ove agente čini sastavljivim i ponovno upotrebljivim. Slika u nastavku prikazuje primjer tijeka rada koji se bavi odgovaranjem na pitanja temeljenim na kodu u optimizaciji opskrbnog lanca. Kao što se može vidjeti, pisac prvo piše kod i tumačenje, Safeguard osigurava privatnost i sigurnost koda, a kod zatim izvršava zapovjednik nakon što je dobio traženu dozvolu. Ako sustav tijekom izvođenja naiđe na bilo kakav problem, proces se ponavlja dok se potpuno ne riješi. Implementacija donjeg okvira rezultira smanjenjem količine ručne interakcije s 3x na 10x kada se implementira u aplikacijama kao što je optimizacija opskrbnog lanca. Nadalje, korištenje AutoGena također smanjuje količinu napora kodiranja do četiri puta.
AutoGen bi mogao promijeniti igru budući da ima za cilj transformirati proces razvoja složenih aplikacija koristeći snagu LLM-a. Korištenje AutoGena ne samo da može smanjiti količinu ručnih interakcija potrebnih za postizanje željenih rezultata, već također može smanjiti količinu napora kodiranja potrebnih za stvaranje tako složenih aplikacija. Korištenje AutoGena za kreiranje Prijave temeljene na LLM-u može ne samo značajno ubrzati proces, već će također pomoći u smanjenju količine vremena, truda i resursa potrebnih za razvoj ovih složenih aplikacija.
U ovom ćemo članku dublje zaroniti u okvir AutoGen i istražit ćemo bitne komponente i arhitekturu okvira AutoGen, zajedno s njegovim potencijalnim primjenama. Pa počnimo.
Uvod u AutoGen : Pokretanje sljedeće generacije velikih jezičnih modela aplikacija
AutoGen je okvir otvorenog koda koji je razvio tim u Microsoftu koji razvojnim programerima daje moć stvaranja aplikacija koje iskorištavaju snagu LLM-a koristeći više agenata koji mogu međusobno razgovarati kako bi uspješno izvršili željene zadatke. Agenti u AutoGenu mogu se razgovarati, prilagoditi i mogu raditi u različitim načinima koji koriste kombinaciju alata, ljudskog unosa i LLM-a. Programeri također mogu koristiti okvir AutoGen za definiranje interakcijskog ponašanja agenata, a programeri mogu koristiti i računalni kod i prirodni jezik za programiranje fleksibilnih obrazaca razgovora raspoređenih u različitim aplikacijama. Budući da je okvir otvorenog koda, AutoGen se može smatrati generičkim okvirom koji programeri mogu koristiti za izradu aplikacija i okvira različitih složenosti koji iskorištavaju snagu LLM-a.
Veliki jezični modeli igraju ključnu ulogu u razvoju agenata koji koriste LLM okvire za prilagodbu novim opažanjima, korištenju alata i zaključivanju u brojnim stvarnim aplikacijama. Ali razvijanje ovih aplikacija koje mogu iskoristiti puni potencijal LLM-a složena je stvar, a s obzirom na sve veću potražnju i primjenu LLM-a zajedno s povećanjem složenosti zadataka, od vitalne je važnosti povećati snagu ovih agenata korištenjem više agenata koji rade usklađeno jedno s drugim. Ali kako se pristup s više agenata može koristiti za razvoj aplikacija temeljenih na LLM-u koje se zatim mogu primijeniti na široku lepezu domena s različitim složenostima? Okvir AutoGen pokušava odgovoriti na gornje pitanje korištenjem razgovora s više agenata.
AutoGen : komponente i okvir
U pokušaju da se smanji količina truda koju razvojni programeri trebaju uložiti u stvaranje složenih aplikacija koristeći mogućnosti LLM-a u širokom nizu domena, temeljno načelo AutoGen-a je konsolidacija i pojednostavljenje tijekova rada s više agenata korištenjem razgovora s više agenata , čime se također povećava mogućnost ponovne upotrebe ovih implementiranih agenata. AutoGen koristi više agenata koji mogu razgovarati jedni s drugima kako bi uspješno izvršili željene zadatke, a okvir je izgrađen na dva temeljna koncepta: Agenti s mogućnošću razgovora i Konverzibilno programiranje.
Agenti s mogućnošću razgovora
Konverzibilni agent u AutoGenu je entitet s unaprijed definiranom ulogom koji može proslijediti poruke za slanje i primanje informacija drugim konverzabilnim agentima i od njih. Konverzibilni agent održava svoj interni kontekst na temelju primljenih ili poslanih poruka, a programeri mogu konfigurirati te agente da imaju jedinstveni skup mogućnosti, kao što je omogućeno LLM alatima ili primanje ljudskih inputa.
Mogućnosti agenata koje pokreću ljudi, alati i doktori prava
Mogućnosti agenta izravno se odnose na način na koji obrađuje i odgovara na poruke, što je glavni razlog zašto agenti u okviru AutoGen programerima omogućuju fleksibilnost da svojim agentima daju različite mogućnosti. AutoGen podržava brojne uobičajene mogućnosti sastavljanja za agente koje uključuju
- LLM: Agenti iza kojih stoji LLM iskorištavaju mogućnosti naprednih okvira LLM-a kao što su implicitno uplitanje stanja, igranje uloga, pružanje povratnih informacija, pa čak i kodiranje. Razvojni programeri mogu koristiti nove tehnike podsticanja kako bi kombinirali ove mogućnosti u pokušaju povećanja autonomije ili vještine agenta.
- Ljudi: Nekoliko aplikacija želi ili zahtijeva određeni stupanj ljudske uključenosti, a okvir AutoGen omogućuje aplikacijama koje se temelje na LLM-u da olakšaju ljudsko sudjelovanje u razgovoru s agentima uz upotrebu agenata uz podršku ljudi koji bi mogli zatražiti ljudske unose tijekom određenih krugova razgovora na temelju konfiguracija agenta.
- Alati: Agenti podržani alatima obično imaju mogućnosti korištenja izvršavanja koda ili izvršavanja funkcija za izvršavanje alata.
Suradnja agenata i prilagodba
Na temelju specifičnih potreba i zahtjeva aplikacije, programeri mogu konfigurirati pojedinačne agente da imaju kombinaciju bitnih pozadinskih tipova za prikaz složenog ponašanja uključenog u razgovore s više agenata. Okvir AutoGen programerima omogućuje jednostavno stvaranje agenata koji imaju specijalizirane uloge i mogućnosti proširenjem ili ponovnim korištenjem ugrađenih agenata. Donja slika prikazuje osnovnu strukturu ugrađenih agenata u okviru AutoGen. Klasa ConversableAgent prema zadanim postavkama može koristiti ljude, alate i LLM-ove jer je to apstrakcija agenta najviše razine. UserProxyAgent i AssistantAgent unaprijed su konfigurirane klase ConversableAgenta, a svaki od njih predstavlja uobičajeni način upotrebe, tj. svaki od ova dva agenta djeluje kao AI pomoćnik (kada ga podržava LLM) i traži ljudski unos ili izvršava pozive funkcija ili kodova (kada ih podupiru alati i/ili ljudi) djelujući kao ljudski proxy.
Slika u nastavku pokazuje kako programeri mogu koristiti okvir AutoGen za razvoj sustava s dva agenta koji ima prilagođenu funkciju odgovora, zajedno s ilustracijom rezultirajućeg automatiziranog chata agenta koji koristi sustav s dva agenta tijekom izvođenja programa.
Dopuštajući korištenje prilagođenih agenata koji mogu komunicirati jedni s drugima, ti konverzibilni agenti služe kao temeljni blok u okviru AutoGen. Međutim, programeri moraju specificirati i oblikovati ove razgovore s više agenata kako bi razvili aplikacije u kojima ti agenti mogu značajno napredovati u određenim zadacima.
Programiranje razgovora
Kako bi riješio gore navedeni problem, okvir AutoGen koristi programiranje razgovora, računalnu paradigmu izgrađenu na dva bitna koncepta: računanje, akcije koje poduzimaju agenti u razgovoru s više agenata kako bi izračunali svoj odgovor i kontrolni tok, uvjete ili redoslijed pod kojim se ti proračuni odvijaju. Mogućnost programiranja omogućuje razvojnim programerima implementaciju brojnih fleksibilnih obrazaca razgovora s više agenata. Nadalje, u okviru AutoGen, proračuni su usmjereni na razgovor. Akcije koje je poduzeo agent relevantne su za razgovore u koje je agent uključen, a radnje koje su poduzeli agenti tada rezultiraju prosljeđivanjem poruka za konsekventne razgovore do trenutka kada je uvjet prekida zadovoljen. Nadalje, tok kontrole u okviru AutoGen vođen je razgovorima budući da je odluka agenata koji sudjeluju o tome koji će agenti slati poruke u i iz postupka izračuna.
Gornja slika prikazuje jednostavnu ilustraciju načina na koji pojedinačni agenti izvode svoje operacije specifične za ulogu i proračune usmjerene na razgovor kako bi generirali željene odgovore poput izvršavanja koda i interferentnih poziva LLM-a. Zadatak napreduje uz pomoć razgovora koji se prikazuju u dijaloškom okviru.
Kako bi se olakšalo programiranje razgovora, okvir AutoGen ima sljedeće obrasce dizajna.
- Mehanizmi automatskog odgovora i objedinjeno sučelje za automatske razgovore agenata
Okvir AutoGen ima objedinjeno sučelje za izvođenje odgovarajućeg izračuna koje je po prirodi usmjereno na razgovor, uključujući "funkcija primanja ili slanja" za primanje ili slanje poruka zajedno s "generiraj_odgovor” funkcija koja na temelju primljene poruke generira odgovor i poduzima traženu akciju. Okvir AutoGen također uvodi i implementira agent-automatski odgovor mehanizam prema zadanim postavkama za realizaciju kontrole vođene razgovorom.
- Kontrola spajanjem prirodnog jezika i programiranja
Okvir AutoGen olakšava korištenje prirodnog jezika i programiranja u različitim obrascima upravljanja protokom koji uključuju: Kontrole prirodnog jezika pomoću LLM-a, Kontrola programskog jezikai Kontrolirajte prijelaz između programiranja i prirodnog jezika.
Nadalje, uz statične razgovore koji su obično popraćeni unaprijed definiranim tokom, okvir AutoGen također podržava dinamične tijekove razgovora korištenjem više agenata, a okvir pruža razvojnim programerima dvije mogućnosti da to postignu
- Korištenjem poziva funkcija.
- Korištenjem prilagođene funkcije generiranja odgovora.
Primjene programa AutoGen
Kako bismo ilustrirali potencijal okvira AutoGen u razvoju složenih aplikacija s više agenata, evo šest potencijalnih aplikacija AutoGen koje su odabrane na temelju njihove relevantnosti u stvarnom svijetu, sposobnosti rješavanja problema poboljšanih okvirom AutoGen, i njihov inovativni potencijal.
Ovih šest aplikacija okvira AutoGen su
- Rješavanje matematičkih zadataka.
- Dohvaćanje proširenih razgovora.
- ALF razgovara.
- Kodiranje s više agenata.
- Dinamički grupni chat.
- Konverzacijski šah.
Primjena 1: Rješavanje matematičkih zadataka
Matematika je jedna od temeljnih disciplina iskorištavanja LLM modela za pomoć pri rješavanju složenih matematičkih problema koji otvaraju cijeli novi svijet potencijalnih primjena uključujući pomoć u istraživanju umjetne inteligencije i personalizirano podučavanje umjetne inteligencije.
Gornja slika prikazuje primjenu okvira AutoGen za postizanje konkurentne izvedbe u rješavanju matematičkih problema.
Primjena 2: Odgovaranje na pitanja i generiranje koda proširenog dohvaćanjem
U posljednjih nekoliko mjeseci, Retrieval Augmented Code Generation se pojavio kao učinkovit i praktičan pristup za prevladavanje ograničenja LLM-ova u uključivanju vanjskih dokumenata. Slika u nastavku prikazuje primjenu okvira AutoGen za učinkovito povećanje dohvaćanja i povećanje izvedbe zadataka pitanja i odgovora.
Primjena 3: Donošenje odluka u okruženjima svijeta teksta
Okvir AutoGen može se koristiti za izradu aplikacija koje rade s online ili interaktivnim donošenjem odluka. Slika u nastavku pokazuje kako programeri mogu koristiti okvir AutoGen za dizajn sustava za razgovor s tri agenta s agentom za uzemljenje kako bi značajno poboljšali performanse.
Primjena 4: Kodiranje s više agenata
Programeri koji rade na okviru AutoGen mogu koristiti okvir OptiGuide za izgradnju sustava kodiranja s više agenata koji je sposoban pisati kod za implementaciju optimiziranih rješenja i odgovarati na pitanja korisnika. Slika u nastavku pokazuje da upotreba okvira AutoGen za stvaranje dizajna s više agenata pomaže u značajnom poboljšanju ukupne izvedbe, posebno u izvršavanju zadataka kodiranja koji zahtijevaju zaštitu.

Aplikacija 5: Dinamički grupni razgovor
Okvir AutoGen pruža podršku za komunikacijski obrazac koji se vrti oko dinamičkih grupnih razgovora u kojima višestruki agenti koji sudjeluju dijele kontekst i umjesto da slijede skup unaprijed definiranih redoslijeda, oni međusobno razgovaraju na dinamičan način. Ova dinamična grupna čavrljanja oslanjaju se na tekuće razgovore za vođenje tijeka interakcije unutar agenata.
Gornja slika ilustrira kako okvir AutoGen podržava dinamičke grupne razgovore između agenata korištenjem "GroupChatManager”, specijalni agent.
Aplikacija 6: Konverzacijski šah
Programeri okvira AutoGen upotrijebili su ga za razvoj aplikacije Conversational Chess koja je igra s prirodnim smetnjama koja ima ugrađene agente za igrače koji mogu biti LLM ili ljudi, a tu je i agent treće strane koji pruža relevantne informacije i potvrđuje poteze na ploči na temelju skupa unaprijed definiranih standardnih pravila. Slika priložena u nastavku demonstrira Conversational Chess, prirodnu interferencijsku igru izgrađenu korištenjem okvira AutoGen koja omogućuje igračima da koriste šale, igranje likova ili čak reference na meme kako bi kreativno izrazili svoje poteze što igru šaha čini zanimljivijom ne samo za igrače. , ali i za publiku & promatrače.
Zaključak
U ovom smo članku govorili o AutoGenu, okviru otvorenog koda koji koristi koncepte programiranja razgovora i konverzabilnih agenata koji ima za cilj pojednostaviti orkestraciju i optimizaciju tijeka rada LLM-a uvođenjem automatizacije u cjevovod tijeka rada. Okvir AutoGen nudi agente koji se mogu razgovarati i prilagoditi, a koji iskorištavaju snagu naprednih LLM-ova kao što su GPT-3 i GPT-4, au isto vrijeme rješavaju njihova trenutna ograničenja integracijom LLM-ova s alatima i ljudskim unosima korištenjem automatiziranih chatova za pokretanje razgovora između više agenata.
Iako je okvir AutoGen još uvijek u ranoj eksperimentalnoj fazi, on utire put budućim istraživanjima i mogućnostima istraživanja na terenu, a AutoGen bi mogao biti alat koji pomaže u poboljšanju brzine, funkcionalnosti i jednostavnosti razvoja aplikacija koje iskorištavaju sposobnosti LLM-a.