AI-modeller och plattformar
AutoGen: Drivande nästa generations stora språkmodellapplikationer

Stora språkmodeller (LLM) är för närvarande ett av de mest diskuterade ämnena inom AI. Utvecklare över hela världen utforskar de potentiella applikationerna 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 en mängd olika innehåll, inklusive text, ljud, bilder, videor och mer.
Stora språkmodeller är invecklade AI-algoritmer. Att utveckla en sådan modell är ett uttömande arbete, och att konstruera en applikation som utnyttjar förmågan hos en LLM är lika utmanande. Det kräver betydande expertis, ansträngning och resurser för att designa, implementera och slutligen optimera en arbetsflöde som kan utnyttja den fulla potentialen hos en stor språkmodell för att ge de bästa resultaten. Med tanke på den omfattande tiden och resurserna som krävs för att etablera arbetsflöden för applikationer som använder kraften hos LLM, har automatisering av dessa processer ett stort värde. Detta är särskilt sant eftersom arbetsflöden förväntas bli ännu mer komplexa i framtiden, med utvecklare som skapar alltmer sofistikerade LLM-baserade applikationer. Dessutom är designutrymmet som krävs för dessa arbetsflöden både invecklat och omfattande, vilket ytterligare förhöjer utmaningarna med att skapa ett optimalt och robustt arbetsflöde som uppfyller prestandaförväntningarna.
AutoGen är ett ramverk som utvecklats av teamet på Microsoft (MSFT ) som syftar till att förenkla orkestreringen och optimeringen av LLM-arbetsflödena genom att införa automatisering i arbetsflödespipelinen. AutoGen-ramverket erbjuder konverserbara och anpassningsbara agenter som utnyttjar kraften hos avancerade LLM som GPT-3 och GPT-4, och samtidigt adresserar deras nuvarande begränsningar genom att integrera LLM med verktyg och mänskliga inmatningar med hjälp av automatiserade samtal för att initiera konversationer mellan flera agenter.
När du använder AutoGen-ramverket behöver du bara två steg för att utveckla ett komplext multi-agentkonversationsystem.
Steg 1: Definiera en uppsättning agenter, var och en med sina roller och förmågor.
Steg 2: Definiera interaktionsbeteendet mellan agenter, d.v.s. en agent ska veta vad den ska svara när den får ett meddelande från en annan agent.
Båda ovanstående steg är modulära och intuitiva, vilket gör att dessa agenter är sammansättbara och återanvändbara. Figuren nedan visar ett exempel på en arbetsflöde som hanterar kodbaserad frågesvar i optimeringen av leverantörskedjan. Som det kan ses skriver författaren först koden och tolkningen, Safeguard säkerställer sekretessen och säkerheten för koden, och koden körs sedan av Commander efter att den har fått den erforderliga godkännandet. Om systemet stöter på något problem under körningen upprepas processen tills det är helt löst. Att distribuera ramverket nedan resulterar i att den manuella interaktionen minskar från 3x till 10x när det distribueras i applikationer som optimering av leverantörskedjan. Dessutom minskar användningen av AutoGen också den mängd kodningsansträngning som krävs med upp till fyra gånger.

AutoGen kan vara en spelväxlare eftersom det syftar till att transformera utvecklingsprocessen för komplexa applikationer som utnyttjar kraften hos LLM. Användningen av AutoGen kan inte bara minska den mängd manuell interaktion som krävs för att uppnå önskade resultat, utan det kan också minska den mängd kodningsansträngning 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 hjälpa till att minska den 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 titt på 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: Drivande nästa generations stora språkmodellapplikationer
AutoGen är ett öppen källkodsramverk som utvecklats av teamet på Microsoft som utrustar utvecklare med möjligheten att skapa applikationer som utnyttjar kraften hos LLM med hjälp av flera agenter som kan ha konversationer med varandra för att framgångsrikt utföra önskade uppgifter. Agenterna i AutoGen är konverserbara, anpassningsbara och kan fungera i olika lägen som använder en kombination av verktyg, mänskliga inmatningar och LLM. Utvecklare kan också använda AutoGen-ramverket för att definiera interaktionsbeteendet hos agenterna, och utvecklare kan använda både dator kod och naturligt språk för att programmera flexibla konversationsmönster som distribueras i olika applikationer. Eftersom AutoGen är ett öppen källkodsramverk kan det anses vara ett generiskt ramverk som utvecklare kan använda för att bygga applikationer och ramverk av olika komplexitetsgrader som utnyttjar kraften hos LLM.

Stora språkmodeller spelar en avgörande roll i utvecklingen av agenter som använder LLM-ramverk för att anpassa sig till nya observationer, verktygsanvändning och resonemang i många verkliga applikationer. Men att utveckla dessa applikationer som kan utnyttja den fulla potentialen hos LLM är en komplex angelägenhet, och med tanke på den ökande efterfrågan och applikationerna av LLM tillsammans med den ökande uppgiftskomplexiteten, är det viktigt att skala upp kraften hos dessa agenter genom att använda flera agenter som arbetar i samklang med varandra.Men hur kan en multi-agentansats användas för att utveckla LLM-baserade applikationer som sedan kan tillämpas på en mängd olika domäner med varierande komplexitetsgrader? AutoGen-ramverket försöker besvara ovanstående fråga genom att använda multi-agentkonversationer.
AutoGen: Komponenter och ramverk
I ett försök att minska den mängd ansträngning som utvecklare behöver lägga ner för att skapa komplexa applikationer som använder LLM-förmågor över en mängd olika domäner, är den grundläggande principen i AutoGen att konsolidera och strömlinjeforma multi-agentarbetsflöden genom att använda multi-agentkonversationer, vilket också maximalt utnyttjar återanvändbarheten hos dessa implementerade agenter. AutoGen använder flera agenter som kan ha konversationer med varandra för att framgångsrikt utföra önskade uppgifter, och ramverket byggs 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 upprätthåller sin interna kontext baserat på mottagna eller skickade meddelanden, och utvecklare kan konfigurera dessa agenter för att ha en unik uppsättning förmågor, såsom att vara aktiverad av LLM-verktyg eller ta mänskliga inmatningar.
Agentförmågor som drivs av människor, verktyg och LLM
En agents förmågor är direkt relaterade till hur den bearbetar och svarar på meddelanden, vilket är den primära anledningen till att agenterna i AutoGen-ramverket tillåter utvecklare att ge olika förmågor till sina agenter. AutoGen stöder många vanliga sammansatta förmågor för agenter som inkluderar
- LLM: Agenter som backas upp av LLM utnyttjar förmågorna hos avancerade LLM-ramverk som implicit tillståndsinterferens, rollspel, feedback och även kodning. Utvecklare kan använda nya prompttekniker för att kombinera dessa förmågor i ett försök att öka autonomi eller färdighet hos en agent.
- Människor: Många applikationer önskar eller kräver en viss grad av mänsklig inblandning, och AutoGen-ramverket tillåter LLM-baserade applikationer att underlätta mänskligt deltagande i agentkonversationer med hjälp av mänskligt backade agenter som kan begära mänskliga inmatningar under vissa omgångar av konversationer baserat på agentens konfiguration.
- Verktyg: Verktygsbackade agenter har vanligtvis förmågan att använda kodkörning eller funktionskörning för att köra verktyg.
Agentssamarbete och anpassning
Baserat på de specifika behoven och kraven för en applikation kan utvecklare konfigurera enskilda agenter för att ha en kombination av väsentliga bakomliggande typer för att visa det komplexa beteendet som är involverat i multi-agentkonversationer. AutoGen-ramverket tillåter utvecklare att enkelt skapa agenter med specialiserade roller och förmågor genom att utöka eller återanvända de inbyggda agenterna. Figuren nedan visar den grundläggande strukturen för inbyggda agenter i AutoGen-ramverket. KonverserbarAgent-klassen kan använda människor, verktyg och LLM som standard eftersom det är den högsta nivån av agentabstraktion. UserProxyAgent och AssistantAgent är förkonfigurerade klasser av KonverserbarAgent, och var och en av dem representerar en vanlig användningsmodus, d.v.s. var och en av dessa två agenter fungerar som en AI-assistent (när den backas upp av LLM) och begär mänsklig inmatning eller kör funktioner eller kod (när den backas upp av verktyg och/eller människor) genom att fungera som en mänsklig proxy.

Figuren 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 automatiserade agentchatten som använder tvåagentsystemet under programmets körning.

Genom att tillåta användningen av anpassade agenter som kan ha konversationer med varandra, fungerar dessa konverserbara agenter som en grundläggande byggsten i AutoGen-ramverket. Men utvecklare behöver specificera och forma dessa multi-agentkonversationer för att utveckla applikationer där dessa agenter kan göra betydande framsteg på de angivna uppgifterna.
Konverserbar programmering
För att lösa problemet ovan använder AutoGen-ramverket konverserbar programmering, en beräkningsparadigm som bygger på två grundläggande koncept: beräkning, de åtgärder som vidtas av agenter i en multi-agentkonversation för att beräkna deras svar och kontrollflöde, de villkor eller sekvenser under vilka dessa beräkningar sker. Förmågan att programmera dessa möjliggör för utvecklare att implementera många flexibla multi-agentkonversationsmönster. Dessutom, i AutoGen-ramverket, är beräkningarna konversationscentrerade. Åtgärderna som vidtas av en agent är relevanta för konversationerna som agenten är involverad i, och åtgärderna som vidtas av agenterna resulterar sedan i att meddelanden skickas för efterföljande konversationer tills dess att en avslutningsvillkor är uppfyllt. Dessutom är kontrollflödet i AutoGen-ramverket driven av konversationer eftersom det är beslutet av de deltagande agenterna om vilka agenter som ska skicka meddelanden till och från beräkningsförfarandet.

Figuren ovan visar en enkel illustration av hur enskilda agenter utför sina rollspecifika operationer och konversationscentrerade beräkningar för att generera önskade svar, såsom kodkörning och LLM-interferenssamtal. Uppgiften fortskrider med hjälp av konversationer som visas i dialogrutan.
För att underlätta konverserbar programmering har AutoGen-ramverket följande designmönster.
- Auto-svarsmechanismer och enhetlig gränssnitt för automatiserad agentchatt
AutoGen-ramverket har ett enhetligt gränssnitt för att utföra den motsvarande beräkningen som är konversationscentrerad till naturen, inklusive en “mottag eller skicka-funktion” för att antingen motta eller skicka meddelanden, tillsammans med en “generera_svar”-funktion som genererar ett svar baserat på det mottagna meddelandet och vidtar den erforderliga åtgärden. AutoGen-ramverket introducerar och distribuerar också agent-auto-svars-mekanismen som standard för att förverkliga konversationsdriven kontroll.
- Kontroll genom kombination 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: Naturligt språkkontroll med LLM, programmeringsspråkskontroll och kontrollövergång mellan programmering och naturligt språk.
Fortsättning, utöver statiska konversationer som vanligtvis åtföljs av en fördefinierad flöde, stöder AutoGen-ramverket också dynamiska konversationsflöden med hjälp av 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.
Applikationer av AutoGen
För att illustrera potentialen i AutoGen-ramverket i utvecklingen av komplexa multi-agentapplikationer, presenteras här sex potentiella applikationer av AutoGen som valts ut baserat på deras relevans i den verkliga världen, problemlösningsförmåga som förbättras av AutoGen-ramverket och deras innovativa potential.
Dessa sex applikationer av AutoGen-ramverket är
- Matematisk problemlösning.
- Hämtning förbättrad chatt.
- ALF-chatt.
- Multi-agentkodning.
- Dynamisk gruppkonversation.
- Konversationschess.

Applikation 1: Matematisk problemlösning
Matematik är en av de grundläggande disciplinerna för att utnyttja LLM-modeller för att hjälpa till att lösa komplexa matematiska problem som öppnar upp en hel ny värld av potentiella applikationer, inklusive AI-forskningsstöd och personlig AI-undervisning.

Figuren ovan visar applikationen av AutoGen-ramverket för att uppnå konkurrenskraftig prestanda på att lösa matematiska problem.
Applikation 2: Frågesvar och hämtning förbättrad kodgenerering
Under de senaste månaderna har hämtning förbättrad kodgenerering framkommit som en effektiv och praktisk metod för att övervinna begränsningarna hos LLM i att inkorporera externa dokument. Figuren nedan visar applikationen av AutoGen-ramverket för effektiv hämtning och förbättring av prestanda på frågesvarsuppgifter.

Applikation 3: Beslutsfattande i textvärldsmiljöer
AutoGen-ramverket kan användas för att skapa applikationer som fungerar med online- eller interaktivt beslutsfattande. Figuren nedan visar hur utvecklare kan använda AutoGen-ramverket för att designa ett tre-agents konversationsystem med en grundande agent för att betydligt förbättra prestandan.

Applikation 4: Multi-agentkodning
Utvecklare som arbetar med AutoGen-ramverket kan använda OptiGuide-ramverket för att bygga ett multi-agentkodningssystem som kan skriva kod för att implementera optimerade lösningar och svara på användarfrågor. Figuren nedan visar att användningen av AutoGen-ramverket för att skapa ett multi-agentdesign hjälper till att förbättra den övergripande prestandan avsevärt, särskilt när det gäller att utföra kodningsuppgifter som kräver en säkerhetsåtgärd.

Applikation 5: Dynamisk gruppkonversation
AutoGen-ramverket stöder en kommunikationsmönster som kretsar kring dynamiska gruppkonversationer där de deltagande multi-agenterna delar kontexten och, istället för att följa en uppsättning fördefinierade ordningar, konverserar med varandra på ett dynamiskt sätt. Dessa dynamiska gruppkonversationer förlitar sig på pågående konversationer för att styra flödet av interaktion inom agenterna.

Figuren ovan visar hur AutoGen-ramverket stöder dynamiska gruppkonversationer mellan agenter genom att använda “GroupChatManager”, en specialagent.
Applikation 6: Konversationschess
Utvecklarna av AutoGen-ramverket använde det för att utveckla en Konversationschess-applikation som är ett naturligt interferensspel som har inbyggda agenter för spelare som kan vara antingen en LLM eller en människa, och det finns också en tredje partsagent som tillhandahåller relevant information och validerar drag på brädet baserat på en uppsättning fördefinierade standardregler. Figuren nedan visar Konversationschess, ett naturligt interferensspel som byggts med AutoGen-ramverket som tillåter spelare att använda skämt, rollspel eller till och med meme-referenser för att uttrycka sina drag på ett kreativt sätt som gör schack-spelet mer intressant inte bara för spelarna, utan också för publiken och observatörerna.

Slutsats
I den här artikeln har vi talat om AutoGen, ett öppen källkodsramverk som använder koncepten konverserbar programmering och konverserbara agenter som syftar till att förenkla orkestreringen och optimeringen av LLM-arbetsflödena genom att införa automatisering i arbetsflödespipelinen. AutoGen-ramverket erbjuder konverserbara och anpassningsbara agenter som utnyttjar kraften hos avancerade LLM som GPT-3 och GPT-4, och samtidigt adresserar deras nuvarande begränsningar genom att integrera LLM med verktyg och mänskliga inmatningar med hjälp av automatiserade samtal för att initiera konversationer mellan flera agenter.
Även om AutoGen-ramverket fortfarande är i ett tidigt experimentellt skede, så banar det väg för framtida utforskningar och forskningsmöjligheter inom området, och AutoGen kan vara det verktyg som hjälper till att förbättra hastigheten, funktionerna och utvecklingseffektiviteten hos applikationer som utnyttjar förmågorna hos LLM.












