Følg os

Kunstig intelligens

AutoGen: Driver næste generation af store sprogmodelapplikationer

mm
AutoGen Framework

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

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

  1. Ved at bruge funktionskald. 
  2. 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

  1. Matematik problemløsning. 
  2. Hent udvidede chats. 
  3. ALF chatter. 
  4. Multi-agent kodning. 
  5. Dynamisk gruppechat. 
  6. Samtaleskak. 

Anvendelser af AutoGen Framework

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. 

"En ingeniør af profession, en forfatter udenad". Kunal er en teknisk skribent med en dyb kærlighed og forståelse for AI og ML, dedikeret til at forenkle komplekse begreber på disse områder gennem sin engagerende og informative dokumentation.