Anslut dig till vÄrt nÀtverk!

Artificiell intelligens

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

mm

publicerade

 on

AutoGen Framework

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

  1. 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. 
  2. 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. 
  3. 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 LLMStyrning 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

  1. Genom att anvĂ€nda funktionsanrop. 
  2. 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

  1. Matematisk problemlösning. 
  2. HĂ€mta utökade chattar. 
  3. ALF chattar. 
  4. Multi-agent kodning. 
  5. Dynamisk gruppchatt. 
  6. Konversationsschack. 

TillÀmpningar av AutoGen Framework

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. 

"En ingenjör till yrket, en författare utantill". Kunal Àr en teknisk skribent med en djup kÀrlek och förstÄelse för AI och ML, dedikerad till att förenkla komplexa koncept inom dessa omrÄden genom sin engagerande och informativa dokumentation.