Artificiell intelligens
AutoGen: Drivs av nÀsta generations stora sprÄkmodellapplikationer

Stora sprÄkmodeller (LLM) Àr för nÀrvarande ett av de mest diskuterade Àmnena inom mainstream AI. Utvecklare över hela vÀrlden undersöker de potentiella tillÀmpningarna av LLM. Dessa modeller Àr AI-algoritmer som anvÀnder djupinlÀrningstekniker och stora mÀngder trÀningsdata för att förstÄ, sammanfatta, förutsÀga och generera ett brett utbud av innehÄll, inklusive text, ljud, bilder, videor och mer.
Stora sprÄkmodeller Àr invecklade AI-algoritmer. Att utveckla en sÄdan modell Àr en uttömmande uppgift, och att konstruera en applikation som utnyttjar kapaciteten hos en LLM Àr lika utmanande. Det krÀver betydande expertis, anstrÀngning och resurser för att designa, implementera och i slutÀndan optimera ett arbetsflöde som kan utnyttja den fulla potentialen hos en stor sprÄkmodell för att ge bÀsta resultat. Med tanke pÄ den omfattande tid och resurser som krÀvs för att upprÀtta arbetsflöden för applikationer som utnyttjar kraften hos LLM, har automatisering av dessa processer ett enormt vÀrde. Detta Àr sÀrskilt sant eftersom arbetsflöden förvÀntas bli Ànnu mer komplexa inom en snar framtid, med utvecklare som skapar allt mer sofistikerade LLM-baserade applikationer. Dessutom Àr designutrymmet som krÀvs för dessa arbetsflöden bÄde intrikat och expansivt, vilket ytterligare lyfter utmaningarna med att skapa ett optimalt, robust arbetsflöde som uppfyller prestandaförvÀntningarna.
AutoGen Àr ett ramverk utvecklat av teamet pÄ Microsoft som syftar till att förenkla orkestreringen och optimeringen av LLM-arbetsflöden genom att introducera automatisering i arbetsflödespipelinen. AutoGen-ramverket erbjuder konverserbara och anpassningsbara agenter som utnyttjar kraften hos avancerade LLM:er som GPT-3 och GPT-4, och samtidigt ÄtgÀrdar deras nuvarande begrÀnsningar genom att integrera LLM:erna med verktyg och mÀnskliga input genom att anvÀnda automatiserade chattar för att initiera konversationer mellan flera agenter.
NÀr du anvÀnder AutoGen-ramverket Àr det bara tvÄ steg som krÀvs för att utveckla ett komplext konversationssystem med flera agenter.
Steg 1: Definiera en uppsÀttning agenter, var och en med sina roller och förmÄgor.
Steg 2: Definiera interaktionsbeteendet mellan agenter, dvs en agent ska veta vad den ska svara nÀr den fÄr ett meddelande frÄn en annan agent.
BÄda stegen ovan Àr modulÀra och intuitiva, vilket gör dessa medel komponerbara och ÄteranvÀndbara. Bilden nedan visar ett exempel pÄ ett arbetsflöde som tar upp kodbaserade frÄgor i optimeringen av försörjningskedjan. Som det kan ses skriver skribenten först koden och tolkningen, skyddet sÀkerstÀller kodens integritet och sÀkerhet, och koden exekveras sedan av befÀlhavaren efter att den fÄtt det nödvÀndiga tillstÄndet. Om systemet stöter pÄ nÄgot problem under körningen, upprepas processen tills det Àr helt löst. Genom att implementera ramverket nedan minskar mÀngden manuell interaktion frÄn 3x till 10x nÀr den distribueras i applikationer som optimering av försörjningskedjan. Dessutom minskar anvÀndningen av AutoGen ocksÄ mÀngden kodningsanstrÀngning med upp till fyra gÄnger.
AutoGen kan vara en game changer eftersom det syftar till att förÀndra utvecklingsprocessen för komplexa applikationer som utnyttjar kraften hos LLM. AnvÀndningen av AutoGen kan inte bara minska mÀngden manuella interaktioner som behövs för att uppnÄ önskade resultat, utan det kan ocksÄ minska mÀngden kodningsinsatser som krÀvs för att skapa sÄdana komplexa applikationer. AnvÀndningen av AutoGen för att skapa LLM-baserade applikationer kan inte bara pÄskynda processen avsevÀrt, utan det kommer ocksÄ att bidra till att minska mÀngden tid, anstrÀngning och resurser som krÀvs för att utveckla dessa komplexa applikationer.
I den hÀr artikeln kommer vi att ta en djupare dykning i AutoGen-ramverket, och vi kommer att utforska de vÀsentliga komponenterna och arkitekturen i AutoGen-ramverket, tillsammans med dess potentiella applikationer. SÄ lÄt oss börja.
En introduktion till AutoGen: Drivs av nÀsta generations stora sprÄkmodellapplikationer
AutoGen Àr ett ramverk med öppen kÀllkod utvecklat av teamet pÄ Microsoft som utrustar utvecklare med kraften att skapa applikationer som utnyttjar kraften hos LLM:er med hjÀlp av flera agenter som kan ha konversationer med varandra för att framgÄngsrikt utföra de önskade uppgifterna. Agenter i AutoGen Àr konverserbara, anpassningsbara och de kan arbeta i olika lÀgen som anvÀnder kombinationen av verktyg, mÀnsklig input och LLM. Utvecklare kan ocksÄ anvÀnda AutoGen-ramverket för att definiera interaktionsbeteendet för agenter, och utvecklare kan anvÀnda bÄde datorkod och naturligt sprÄk för att programmera flexibla konversationsmönster som anvÀnds i olika applikationer. Eftersom AutoGen Àr ett ramverk med öppen kÀllkod kan AutoGen anses vara ett generiskt ramverk som utvecklare kan anvÀnda för att bygga applikationer och ramverk av olika komplexitet som utnyttjar kraften hos LLM.
Stora sprÄkmodeller spelar en avgörande roll för att utveckla agenter som anvÀnder LLM-ramverken för att anpassa sig till nya observationer, verktygsanvÀndning och resonemang i mÄnga verkliga tillÀmpningar. Men att utveckla dessa applikationer som kan utnyttja den fulla potentialen hos LLM Àr en komplex affÀr, och med tanke pÄ den stÀndigt ökande efterfrÄgan och tillÀmpningarna av LLMs tillsammans med den ökade uppgiftens komplexitet Àr det viktigt att skala upp kraften hos dessa agenter genom att anvÀnda flera agenter som fungerar synkroniserat med varandra. Men hur kan ett tillvÀgagÄngssÀtt med flera agenter anvÀndas för att utveckla LLM-baserade applikationer som sedan kan tillÀmpas pÄ ett brett spektrum av domÀner med varierande komplexitet? AutoGen-ramverket försöker svara pÄ ovanstÄende frÄga genom att anvÀnda konversationer med flera agenter.
AutoGen : Komponenter och ramverk
I ett försök att minska mÀngden anstrÀngning som utvecklare behöver lÀgga ner för att skapa komplexa applikationer med hjÀlp av LLM-funktioner över ett brett spektrum av domÀner, Àr den grundlÀggande principen för AutoGen att konsolidera och effektivisera arbetsflöden för flera agenter genom att anvÀnda multiagentkonversationer , vilket ocksÄ maximerar ÄteranvÀndbarheten av dessa implementerade medel. AutoGen anvÀnder flera agenter som kan ha konversationer med varandra för att framgÄngsrikt utföra de önskade uppgifterna, och ramverket bygger pÄ tvÄ grundlÀggande koncept: Konverserbara agenter och Konverserbar programmering.
Konverserbara agenter
En konverserbar agent i AutoGen Àr en enhet med en fördefinierad roll som kan skicka meddelanden för att skicka och ta emot information till och frÄn andra konverserbara agenter. En konverserbar agent bibehÄller sitt interna sammanhang baserat pÄ mottagna eller skickade meddelanden, och utvecklare kan konfigurera dessa agenter för att ha en unik uppsÀttning funktioner som att aktiveras av LLM-verktyg eller ta mÀnskliga input.
Agentfunktioner som drivs av mÀnniskor, verktyg och LLM
En agents förmÄga Àr direkt relaterad till hur den bearbetar och svarar pÄ meddelanden, vilket Àr den frÀmsta anledningen till att agenterna i AutoGen-ramverket tillÄter utvecklare flexibiliteten att ge sina agenter olika funktioner. AutoGen stöder mÄnga vanliga komponerbara funktioner för agenter som inkluderar
- LLM:er: Agenter som stöds av LLM utnyttjar funktionerna hos avancerade LLM-ramverk som implicit tillstÄndsinterferens, rollspel, ge feedback och till och med kodning. Utvecklare kan anvÀnda nya prompttekniker för att kombinera dessa förmÄgor i ett försök att öka en agents autonomi eller skicklighet.
- MÀnniskor: Flera applikationer önskar eller krÀver en viss grad av mÀnskligt engagemang, och AutoGen-ramverket tillÄter LLM-baserade applikationer att underlÀtta mÀnskligt deltagande i agentkonversationer med hjÀlp av agenter som stöds av mÀnniskor som kan begÀra mÀnskliga insatser under vissa konversationsronder pÄ basis av agentens konfiguration.
- Verktyg: Verktygsstödda agenter har vanligtvis förmÄgan att anvÀnda kodexekvering eller funktionsexekvering för att exekvera verktyg.
Agentsamarbete och anpassning
Baserat pÄ de specifika behoven och kraven för en applikation kan utvecklare konfigurera individuella agenter för att ha en kombination av viktiga back-end-typer för att visa det komplexa beteendet som Àr involverat i konversationer med flera agenter. AutoGen-ramverket tillÄter utvecklare att enkelt skapa agenter med specialiserade roller och kapaciteter genom att utöka eller ÄteranvÀnda de inbyggda agenterna. Bilden nedan visar den grundlÀggande strukturen för inbyggda agenter i AutoGen-ramverket. Klassen ConversableAgent kan anvÀnda mÀnniskor, verktyg och LLM:er som standard eftersom det Àr agentabstraktionen pÄ högsta nivÄ. UserProxyAgent och AssistantAgent Àr förkonfigurerade klasser av ConversableAgent, och var och en av dem representerar ett gemensamt anvÀndningslÀge, dvs var och en av dessa tvÄ agenter fungerar som en AI-assistent (nÀr de stöds av LLMs), och begÀr mÀnsklig input eller utför funktionsanrop eller koder (nÀr de stöds av verktyg och/eller mÀnniskor) genom att agera som en mÀnsklig proxy.
Bilden nedan visar hur utvecklare kan anvÀnda AutoGen-ramverket för att utveckla ett tvÄagentsystem som har en anpassad svarsfunktion, tillsammans med en illustration av den resulterande automatiska agentchatt som anvÀnder tvÄagentsystemet under körningen av programmet.
Genom att tillÄta anvÀndning av anpassade agenter som kan konversera med varandra, fungerar dessa konverserbara agenter som en grundlÀggande byggsten i AutoGen-ramverket. Utvecklare mÄste dock specificera och forma dessa multiagentkonversationer för att utveckla applikationer dÀr dessa agenter kan göra betydande framsteg med de angivna uppgifterna.
Konversationsprogrammering
För att lösa problemet ovan anvÀnder AutoGen-ramverket konversationsprogrammering, ett datorparadigm byggt pÄ tvÄ vÀsentliga koncept: berÀkning, de ÄtgÀrder som vidtas av agenter i en konversation med flera agenter för att berÀkna deras svar och styrningsflöde, villkoren eller sekvensen under vilka dessa berÀkningar Àger rum. Möjligheten att programmera dessa tillÄter utvecklare att implementera mÄnga flexibla konversationsmönster för flera agenter. Dessutom, i AutoGen-ramverket, Àr berÀkningarna konversationscentrerade. De ÄtgÀrder som vidtas av en agent Àr relevanta för de konversationer agenten Àr inblandad i, och de ÄtgÀrder som vidtas av agenterna resulterar sedan i att meddelanden skickas för efterföljande konversationer tills den punkt dÄ ett uppsÀgningsvillkor Àr uppfyllt. Dessutom drivs kontrollflödet i AutoGen-ramverket av konversationer eftersom det Àr de deltagande agenternas beslut om vilka agenter som kommer att skicka meddelanden till och frÄn berÀkningsproceduren.
OvanstÄende figur visar en enkel illustration av hur enskilda agenter utför sina rollspecifika operationer och konversationscentrerade berÀkningar för att generera de önskade svaren som kodexekvering och LLM-interferensanrop. Uppgiften gÄr framÄt med hjÀlp av konversationer som visas i dialogrutan.
För att underlÀtta konversationsprogrammering har AutoGen-ramverket följande designmönster.
- Automatiska svarsmekanismer och enhetligt grÀnssnitt för automatiska agentchattar
AutoGen-ramverket har ett enhetligt grĂ€nssnitt för att utföra motsvarande berĂ€kning som Ă€r konversationscentrerad till sin natur, inklusive en "ta emot eller skicka funktion" för att antingen ta emot eller skicka meddelanden tillsammans med en "generera_svarâ funktion som genererar ett svar pĂ„ grundval av det mottagna meddelandet och vidtar nödvĂ€ndiga Ă„tgĂ€rder. AutoGen-ramverket introducerar och distribuerar ocksĂ„ agent-auto svar mekanism som standard för att realisera den konversationsdrivna kontrollen.
- Kontroll genom sammanslagning av naturligt sprÄk och programmering
AutoGen-ramverket underlÀttar anvÀndningen av naturligt sprÄk och programmering i olika kontrollflödeshanteringsmönster som inkluderar: Naturliga sprÄkkontroller med hjÀlp av LLM, Styrning av programmeringssprÄkoch Styr övergÄngen mellan programmering och naturligt sprÄk.
Utöver statiska konversationer som vanligtvis Ätföljs av ett fördefinierat flöde, stöder AutoGen-ramverket ocksÄ dynamiska konversationsflöden med flera agenter, och ramverket ger utvecklare tvÄ alternativ för att uppnÄ detta
- Genom att anvÀnda funktionsanrop.
- Genom att anvÀnda en anpassad generera-svar-funktion.
TillÀmpningar av AutoGen
För att illustrera potentialen hos AutoGen-ramverket i utvecklingen av komplexa multi-agent-applikationer, hÀr Àr sex potentiella applikationer av AutoGen som vÀljs ut pÄ grundval av deras relevans i den verkliga vÀrlden, problemlösningsförmÄga förstÀrkt av AutoGen-ramverket, och deras innovativa potential.
Dessa sex tillÀmpningar av AutoGen-ramverket Àr
- Matematisk problemlösning.
- HÀmta utökade chattar.
- ALF chattar.
- Multi-agent kodning.
- Dynamisk gruppchatt.
- Konversationsschack.
Applikation 1: Problemlösning i matematik
Matematik Àr en av de grundlÀggande disciplinerna för att utnyttja LLM-modeller för att hjÀlpa till med att lösa komplexa matematiska problem som öppnar upp en helt ny vÀrld av potentiella tillÀmpningar inklusive AI-forskningshjÀlp och personlig AI-handledning.
Den bifogade figuren ovan visar tillÀmpningen av AutoGen-ramverket för att uppnÄ konkurrenskraftiga prestanda för att lösa matematiska problem.
Applikation 2: FrÄgesvar och hÀmtning-förstÀrkt kodgenerering
Under de senaste mÄnaderna har Retrieval Augmented Code Generation dykt upp som ett effektivt och praktiskt tillvÀgagÄngssÀtt för att övervinna begrÀnsningarna hos LLM:er nÀr det gÀller att införliva externa dokument. Figuren nedan visar tillÀmpningen av AutoGen-ramverket för effektiv hÀmtningsförstÀrkning och förbÀttrad prestanda för frÄgor och svar.
TillÀmpning 3: Beslutsfattande i textvÀrldsmiljöer
AutoGen-ramverket kan anvÀndas för att skapa applikationer som fungerar med online eller interaktivt beslutsfattande. Bilden nedan visar hur utvecklare kan anvÀnda AutoGen-ramverket för att designa ett samtalssystem med tre agenter med en jordningsagent för att avsevÀrt öka prestandan.
Applikation 4: Multi-Agent Coding
Utvecklare som arbetar med AutoGen-ramverket kan anvÀnda OptiGuide-ramverket för att bygga ett kodningssystem för flera agenter som kan skriva kod för att implementera optimerade lösningar och svara pÄ anvÀndarfrÄgor. Bilden nedan visar att anvÀndningen av AutoGen-ramverket för att skapa en multiagentdesign hjÀlper till att öka den övergripande prestandan avsevÀrt, sÀrskilt nÀr det gÀller att utföra kodningsuppgifter som krÀver en skyddsÄtgÀrd.

Applikation 5: Dynamisk gruppchatt
AutoGen-ramverket ger stöd för ett kommunikationsmönster som kretsar kring dynamiska gruppchattar dÀr de deltagande flera agenterna delar sammanhanget, och istÀllet för att följa en uppsÀttning fördefinierade order, pratar de med varandra pÄ ett dynamiskt sÀtt. Dessa dynamiska gruppchattar Àr beroende av pÄgÄende konversationer för att styra flödet av interaktion inom agenterna.
OvanstĂ„ende figur illustrerar hur AutoGen-ramverket stöder dynamiska gruppchatt mellan agenter genom att anvĂ€nda "GroupChatManagerâ , en specialagent.
TillÀmpning 6: Konversationsschack
Utvecklarna av AutoGen-ramverket anvÀnde det för att utveckla en Conversational Chess-applikation som Àr ett naturligt interferensspel som har inbyggda agenter för spelare som antingen kan vara en LLM eller mÀnniska, och det finns ocksÄ en tredjepartsagent som tillhandahÄller relevant information och validerar dragen pÄ brÀdet pÄ basis av en uppsÀttning fördefinierade standardregler. Bilden nedan visar Conversational Chess, ett naturligt interferensspel byggt med hjÀlp av AutoGen-ramverket som tillÄter spelare att anvÀnda skÀmt, karaktÀrsspel eller till och med meme-referenser för att uttrycka sina rörelser kreativt, vilket gör schackspelet mer intressant inte bara för spelarna. , men ocksÄ för publik och ÄskÄdare.
Slutsats
I den hÀr artikeln har vi pratat om AutoGen, ett ramverk med öppen kÀllkod som anvÀnder begreppen konversationsprogrammering & konverserbara agenter som syftar till att förenkla orkestreringen och optimeringen av LLM-arbetsflödena genom att introducera automatisering i arbetsflödespipelinen. AutoGen-ramverket erbjuder konverserbara och anpassningsbara agenter som utnyttjar kraften hos avancerade LLM:er som GPT-3 och GPT-4, och samtidigt ÄtgÀrdar deras nuvarande begrÀnsningar genom att integrera LLM:erna med verktyg och mÀnskliga input genom att anvÀnda automatiserade chattar för att initiera konversationer mellan flera agenter.
Ăven om AutoGen-ramverket fortfarande Ă€r i sina tidiga experimentstadier, banar det vĂ€g för framtida utforskningar och forskningsmöjligheter inom omrĂ„det, och AutoGen kan vara verktyget som hjĂ€lper till att förbĂ€ttra hastigheten, funktionaliteten och enkla utvecklingen av applikationer som utnyttjar LLMs kapacitet.