Kunstig intelligens
AutoGen: Driver næste generation af store sprogmodelapplikationer

Store sprogmodeller (LLM'er) er i øjeblikket et af de mest diskuterede emner i mainstream AI. Udviklere over hele verden udforsker de potentielle anvendelser af LLM'er. Disse modeller er AI-algoritmer, der anvender dyb læringsteknikker og enorme mængder træningsdata til at forstå, opsummere, forudsige og generere en bred vifte af indhold, herunder tekst, lyd, billeder, videoer og mere.
Store sprogmodeller er indviklede AI-algoritmer. At udvikle en sådan model er en udtømmende opgave, og det er lige så udfordrende at konstruere en applikation, der udnytter mulighederne i en LLM. Det kræver betydelig ekspertise, indsats og ressourcer at designe, implementere og i sidste ende optimere en arbejdsgang, der er i stand til at udnytte det fulde potentiale af en stor sprogmodel for at give de bedste resultater. I betragtning af den omfattende tid og de ressourcer, der kræves for at etablere arbejdsgange for applikationer, der udnytter kraften i LLM'er, har automatisering af disse processer enorm værdi. Dette gælder især, da arbejdsgange forventes at blive endnu mere komplekse i den nærmeste fremtid, hvor udviklere laver mere og mere sofistikeret LLM-baserede applikationer. Derudover er designrummet, der er nødvendigt for disse arbejdsgange, både indviklet og ekspansivt, hvilket yderligere løfter udfordringerne ved at skabe en optimal, robust arbejdsgang, der opfylder forventningerne til ydeevnen.
AutoGen er en ramme udviklet af teamet hos Microsoft, der har til formål at forenkle orkestreringen og optimeringen af ​​LLM-arbejdsgangene ved at introducere automatisering til workflow-pipelinen. AutoGen-rammen tilbyder konversable og tilpasselige agenter, der udnytter kraften i avancerede LLM'er som GPT-3 og GPT-4, og som samtidig adresserer deres nuværende begrænsninger ved at integrere LLM'erne med værktøjer og menneskelige input ved at bruge automatiserede chats til at starte samtaler mellem flere agenter.
Når du bruger AutoGen-rammeværket, er det kun to trin, der skal til, når du udvikler et komplekst multi-agent samtalesystem.
Trin 1: Definer et sæt agenter, hver med sine roller og muligheder.
Trin 2: Definer interaktionsadfærden mellem agenter, dvs. en agent skal vide, hvad den skal svare, når den modtager en besked fra en anden agent.
Begge ovenstående trin er modulære og intuitive, hvilket gør disse midler komponerbare og genanvendelige. Figuren nedenfor viser et eksempel på en arbejdsgang, der adresserer kodebaseret spørgsmålssvar i optimeringen af ​​forsyningskæden. Som det kan ses, skriver forfatteren først koden og fortolkningen, sikkerhedskontrollen sikrer kodens privatliv og sikkerhed, og koden udføres derefter af kommandøren, efter at den har modtaget den nødvendige godkendelse. Hvis systemet støder på et problem under kørselstiden, gentages processen, indtil den er løst fuldstændigt. Implementering af nedenstående rammer resulterer i at reducere mængden af ​​manuel interaktion fra 3x til 10x, når det implementeres i applikationer som optimering af forsyningskæden. Desuden reducerer brugen af ​​AutoGen også mængden af ​​kodningsindsats med op til fire gange.
AutoGen kan være en game changer, da den har til formål at transformere udviklingsprocessen for komplekse applikationer, der udnytter kraften i LLM'er. Brugen af ​​AutoGen kan ikke kun reducere mængden af ​​manuelle interaktioner, der er nødvendige for at opnå de ønskede resultater, men den kan også reducere mængden af ​​kodningsindsats, der er nødvendig for at skabe så komplekse applikationer. Brugen af ​​AutoGen til at skabe LLM-baserede applikationer kan ikke kun fremskynde processen betydeligt, men det vil også hjælpe med at reducere mængden af ​​tid, indsats og ressourcer, der er nødvendige for at udvikle disse komplekse applikationer.
I denne artikel vil vi tage et dybere dyk ned i AutoGen-rammeværket, og vi vil udforske de væsentlige komponenter og arkitektur i AutoGen-rammeværket sammen med dets potentielle applikationer. Så lad os begynde.
En introduktion til AutoGen: Driver næste generation af store sprogmodelapplikationer
AutoGen er en open source-ramme udviklet af teamet hos Microsoft, der udstyrer udviklere med magten til at skabe applikationer, der udnytter kraften fra LLM'er ved hjælp af flere agenter, der kan have samtaler med hinanden for at udføre de ønskede opgaver med succes. Agenter i AutoGen kan konverseres, tilpasses, og de kan fungere i forskellige tilstande, der anvender kombinationen af ​​værktøjer, menneskelig input og LLM'er. Udviklere kan også bruge AutoGen-rammeværket til at definere agenters interaktionsadfærd, og udviklere kan bruge både computerkode og naturligt sprog til at programmere fleksible samtalemønstre, der er implementeret i forskellige applikationer. Da AutoGen er en open source-ramme, kan den betragtes som en generisk ramme, som udviklere kan bruge til at bygge applikationer og rammer af forskellig kompleksitet, der udnytter kraften i LLM'er.
Store sprogmodeller spiller en afgørende rolle i udviklingen af ​​agenter, der gør brug af LLM-rammerne til at tilpasse sig nye observationer, værktøjsbrug og ræsonnement i adskillige applikationer i den virkelige verden. Men at udvikle disse applikationer, der kan udnytte det fulde potentiale af LLM, er en kompleks affære, og i betragtning af den stadigt stigende efterspørgsel og anvendelser af LLM'er sammen med stigningen i opgavekompleksitet, er det afgørende at opskalere disse agenters magt ved at bruge flere agenter der arbejder synkroniseret med hinanden. Men hvordan kan en multi-agent tilgang bruges til at udvikle LLM-baserede applikationer, som derefter kan anvendes på en bred vifte af domæner med varierende kompleksitet? AutoGen-rammen forsøger at besvare ovenstående spørgsmål ved at gøre brug af multi-agent samtaler.
AutoGen: Komponenter og rammer
I et forsøg på at reducere mængden af ​​indsats, som udviklere skal lægge for at skabe komplekse applikationer ved hjælp af LLM-funktioner på tværs af en bred vifte af domæner, er det grundlæggende princip i AutoGen at konsolidere og strømline multi-agent arbejdsgange ved at gøre brug af multi-agent samtaler , hvilket også maksimerer genanvendeligheden af ​​disse implementerede midler. AutoGen bruger flere agenter, der kan føre samtaler med hinanden for at udføre de ønskede opgaver med succes, og rammen er bygget på to grundlæggende koncepter: Konversable Agenter og Konverserbar programmering.
Konversable Agenter
En konversabel agent i AutoGen er en enhed med en foruddefineret rolle, der kan sende beskeder til at sende og modtage information til og fra andre konversable agenter. En konverserbar agent bevarer sin interne kontekst baseret på modtagne eller sendte beskeder, og udviklere kan konfigurere disse agenter til at have et unikt sæt funktioner som at blive aktiveret af LLM-værktøjer eller modtage menneskelige input.
Agentkapaciteter drevet af mennesker, værktøjer og LLM'er
En agents evner er direkte relateret til, hvordan den behandler og reagerer på beskeder, hvilket er den primære årsag til, at agenterne i AutoGen-rammeværket giver udviklere fleksibilitet til at give deres agenter forskellige muligheder. AutoGen understøtter adskillige fælles komponerbare funktioner for agenter, der inkluderer
- LLM'er: Agenter støttet af LLM udnytter mulighederne i avancerede LLM-rammer som implicit tilstandsinterferens, rollespil, give feedback og endda kodning. Udviklere kan bruge nye tilskyndelsesteknikker til at kombinere disse egenskaber i et forsøg på at øge en agents autonomi eller dygtighed.
- Mennesker: Adskillige applikationer ønsker eller kræver en vis grad af menneskelig involvering, og AutoGen-rammen gør det muligt for LLM-baserede applikationer at lette menneskelig deltagelse i agentsamtaler med brug af menneskestøttede agenter, der kunne anmode om menneskelige input under bestemte samtalerunder på basis af konfiguration af agenten.
- Værktøjer: Værktøjsstøttede agenter har normalt evnerne til at bruge kodeudførelse eller funktionsudførelse til at udføre værktøjer.
Agentsamarbejde og tilpasning
Baseret på de specifikke behov og krav til en applikation kan udviklere konfigurere individuelle agenter til at have en kombination af essentielle back-end-typer for at vise den komplekse adfærd, der er involveret i samtaler med flere agenter. AutoGen-rammen giver udviklere mulighed for nemt at oprette agenter med specialiserede roller og kapaciteter ved at udvide eller genbruge de indbyggede agenter. Figuren vedhæftet nedenfor viser den grundlæggende struktur af indbyggede agenter i AutoGen-rammerne. ConversableAgent-klassen kan som standard bruge mennesker, værktøjer og LLM'er, da det er agentabstraktionen på højeste niveau. UserProxyAgent og AssistantAgent er prækonfigurerede klasser af ConversableAgent, og hver af dem repræsenterer en fælles brugstilstand, dvs. hver af disse to agenter fungerer som en AI-assistent (når de understøttes af LLM'er) og beder om menneskelige input eller udfører funktionskald eller koder (når de understøttes af værktøjer og/eller mennesker) ved at fungere som en menneskelig proxy.
Nedenstående figur viser, hvordan udviklere kan bruge AutoGen-rammen til at udvikle et to-agent-system, der har en tilpasset svarfunktion, sammen med en illustration af den resulterende automatiserede agentchat, der bruger to-agent-systemet under afviklingen af ​​programmet.
Ved at tillade brugen af ​​brugerdefinerede agenter, der kan tale med hinanden, fungerer disse konverserbare agenter som en grundlæggende byggesten i AutoGen-rammen. Udviklere skal dog specificere og forme disse multi-agent samtaler for at udvikle applikationer, hvor disse agenter er i stand til at gøre væsentlige fremskridt med de specificerede opgaver.
Samtale programmering
For at løse det ovenfor anførte problem bruger AutoGen-rammen samtaleprogrammering, et computerparadigme bygget på to væsentlige koncepter: beregning, handlingerne foretaget af agenter i en samtale med flere agenter for at beregne deres svar og kontrolstrøm, betingelserne eller rækkefølgen, hvorunder disse beregninger finder sted. Evnen til at programmere disse giver udviklere mulighed for at implementere adskillige fleksible multi-agent samtalemønstre. Desuden er beregningerne i AutoGen-rammerne samtalecentrerede. De handlinger, en agent foretager, er relevante for de samtaler, agenten er involveret i, og de handlinger, agenterne foretager, resulterer derefter i videregivelse af beskeder til efterfølgende samtaler, indtil det tidspunkt, hvor en opsigelsesbetingelse er opfyldt. Ydermere er kontrolflowet i AutoGen-rammerne drevet af samtaler, da det er de deltagende agenters beslutning om, hvilke agenter der skal sende beskeder til og fra beregningsproceduren.
Ovenstående figur demonstrerer en simpel illustration af, hvordan individuelle agenter udfører deres rollespecifikke operationer, og samtalecentrerede beregninger for at generere de ønskede svar som kodeeksekvering og LLM-interferenskald. Opgaven skrider frem ved hjælp af samtaler, der vises i dialogboksen.
For at lette samtaleprogrammering har AutoGen-rammeværket følgende designmønstre.
- Automatiske svarmekanismer og ensartet grænseflade til automatiserede agentchats
AutoGen-rammen har en samlet grænseflade til at udføre den tilsvarende beregning, der er samtalecentreret af natur, herunder en "modtag eller send funktion" til enten at modtage eller sende beskeder sammen med en "generere_svar” funktion, der genererer et svar på baggrund af den modtagne besked, og udfører den nødvendige handling. AutoGen-rammen introducerer og implementerer også agent-auto svar mekanisme som standard for at realisere den samtaledrevne kontrol.
- Kontrol ved sammenlægning af naturligt sprog og programmering
AutoGen-rammen letter brugen af ​​naturligt sprog og programmering i forskellige kontrolflowstyringsmønstre, der inkluderer: Naturligt sprog kontrollerer ved hjælp af LLM'er, Programmeringssprog kontrolog Styr overgangen mellem programmering og naturligt sprog.
Udover statiske samtaler, der normalt ledsages af et foruddefineret flow, understøtter AutoGen-frameworket også dynamiske samtaleflows ved hjælp af flere agenter, og frameworket giver udviklere to muligheder for at opnå dette
- Ved at bruge funktionskald.
- Ved at bruge en tilpasset generer-svar funktion.
Anvendelser af AutoGen
For at illustrere potentialet i AutoGen-rammen i udviklingen af ​​komplekse multi-agent-applikationer, er her seks potentielle applikationer af AutoGen, der er udvalgt på grundlag af deres relevans i den virkelige verden, problemløsningsevner forbedret af AutoGen-rammen, og deres innovative potentiale.
Disse seks applikationer af AutoGen-rammeværket er
- Matematik problemløsning.
- Hent udvidede chats.
- ALF chatter.
- Multi-agent kodning.
- Dynamisk gruppechat.
- Samtaleskak.
Anvendelse 1: Løsning af matematikproblemer
Matematik er en af ​​de grundlæggende discipliner til at udnytte LLM-modeller til at hjælpe med at løse komplekse matematiske problemer, der åbner op for en helt ny verden af ​​potentielle applikationer, herunder AI-forskningsassistance og personlig AI-undervisning.
Figuren vedhæftet ovenfor demonstrerer anvendelsen af ​​AutoGen-rammen til at opnå konkurrencedygtig præstation ved løsning af matematiske problemer.
Anvendelse 2: Spørgsmålsbesvarelse og genfinding-Augmented Code Generation
I de seneste par måneder er Retrieval Augmented Code Generation dukket op som en effektiv og praktisk tilgang til at overvinde begrænsningerne ved LLM'er ved at inkorporere eksterne dokumenter. Nedenstående figur viser anvendelsen af ​​AutoGen-rammeværket til effektiv genfindingsforøgelse og øget ydeevne på spørgsmål og svar-opgaver.
Anvendelse 3: Beslutningstagning i tekstverdensmiljøer
AutoGen-rammen kan bruges til at skabe applikationer, der fungerer med online eller interaktiv beslutningstagning. Figuren nedenfor viser, hvordan udviklere kan bruge AutoGen-rammen til at designe et samtalesystem med tre agenter med en jordforbindelsesagent for at øge ydeevnen markant.
Anvendelse 4: Multi-Agent-kodning
Udviklere, der arbejder på AutoGen-rammeværket, kan bruge OptiGuide-rammerne til at bygge et multi-agent-kodningssystem, der er i stand til at skrive kode for at implementere optimerede løsninger og besvare brugerspørgsmål. Figuren nedenfor viser, at brugen af ​​AutoGen-rammen til at skabe et multi-agent-design hjælper med at øge den overordnede ydeevne betydeligt, især ved udførelse af kodningsopgaver, der kræver en beskyttelse.

Applikation 5: Dynamisk gruppechat
AutoGen-rammen giver støtte til et kommunikationsmønster, der kredser om dynamiske gruppechats, hvor de deltagende flere agenter deler konteksten, og i stedet for at følge et sæt foruddefinerede ordrer, taler de med hinanden på en dynamisk måde. Disse dynamiske gruppechats er afhængige af igangværende samtaler for at guide strømmen af ​​interaktion i agenterne.
Ovenstående figur illustrerer, hvordan AutoGen-rammeværket understøtter dynamiske gruppechat mellem agenter ved at gøre brug af "GroupChatManager”, en speciel agent.
Anvendelse 6: Samtaleskak
Udviklerne af AutoGen-frameworket brugte det til at udvikle en Conversational Chess-applikation, der er et naturligt interferensspil, der har indbyggede agenter for spillere, der enten kan være en LLM eller et menneske, og der er også en tredjepartsagent, der leverer relevante information og validerer bevægelserne på tavlen på basis af et sæt foruddefinerede standardregler. Figuren vedhæftet nedenfor demonstrerer Conversational Chess, et naturligt interferensspil bygget ved hjælp af AutoGen-rammen, der giver spillere mulighed for at bruge vittigheder, karakterspil eller endda memereferencer til at udtrykke deres træk kreativt, hvilket gør skakspillet mere interessant ikke kun for spillerne , men også for publikum og observatører.
Konklusion
I denne artikel har vi talt om AutoGen, en open source-ramme, der bruger begreberne samtaleprogrammering & konversable agenter, der har til formål at forenkle orkestreringen og optimeringen af ​​LLM-arbejdsgangene ved at introducere automatisering til workflow-pipelinen. AutoGen-rammen tilbyder konversable og tilpasselige agenter, der udnytter kraften i avancerede LLM'er som GPT-3 og GPT-4, og som samtidig adresserer deres nuværende begrænsninger ved at integrere LLM'erne med værktøjer og menneskelige input ved at bruge automatiserede chats til at starte samtaler mellem flere agenter.
Selvom AutoGen-rammen stadig er i sine tidlige eksperimentelle stadier, baner den vejen for fremtidige udforskninger og forskningsmuligheder på området, og AutoGen kan være værktøjet, der hjælper med at forbedre hastigheden, funktionaliteten og den nemme udvikling af applikationer, der udnytter LLM'ers muligheder.