Kunstig intelligens
AutoGen: Driver neste generasjons store språkmodellapplikasjoner

Store språkmodeller (LLMs) er for tiden et av de mest diskuterte temaene i mainstream AI. Utviklere over hele verden utforsker de potensielle bruksområdene til LLM-er. Disse modellene er AI-algoritmer som bruker dyplæringsteknikker og enorme mengder treningsdata for å forstå, oppsummere, forutsi og generere et bredt spekter av innhold, inkludert tekst, lyd, bilder, videoer og mer.
Store språkmodeller er intrikate AI-algoritmer. Å utvikle en slik modell er en uttømmende oppgave, og det er like utfordrende å konstruere en applikasjon som utnytter mulighetene til en LLM. Det krever betydelig ekspertise, innsats og ressurser for å designe, implementere og til slutt optimalisere en arbeidsflyt som er i stand til å utnytte det fulle potensialet til en stor språkmodell for å gi de beste resultatene. Gitt den omfattende tiden og ressursene som kreves for å etablere arbeidsflyter for applikasjoner som utnytter kraften til LLM-er, har automatisering av disse prosessene enorm verdi. Dette gjelder spesielt ettersom arbeidsflyter forventes å bli enda mer komplekse i nær fremtid, med utviklere som lager stadig mer sofistikert LLM-baserte applikasjoner. I tillegg er designplassen som er nødvendig for disse arbeidsflytene både intrikat og ekspansiv, noe som øker utfordringene med å lage en optimal, robust arbeidsflyt som oppfyller ytelsesforventningene ytterligere.
AutoGen er et rammeverk utviklet av teamet hos Microsoft som har som mål å forenkle orkestreringen og optimaliseringen av LLM-arbeidsflytene ved å introdusere automatisering i arbeidsflyten. AutoGen-rammeverket tilbyr samtalerbare og tilpassbare agenter som utnytter kraften til avanserte LLM-er som GPT-3 og GPT-4, og som samtidig adresserer deres nåværende begrensninger ved å integrere LLM-ene med verktøy og menneskelige input ved å bruke automatiserte chatter for å starte samtaler mellom flere agenter.
Når du bruker AutoGen-rammeverket, er det bare to trinn som skal til når du utvikler et komplekst samtalesystem med flere agenter.
Trinn 1: Definer et sett med agenter, hver med sine roller og evner.
Trinn 2: Definer interaksjonsatferden mellom agenter, dvs. at en agent skal vite hva den skal svare når den mottar en melding fra en annen agent.
Begge trinnene ovenfor er modulære og intuitive som gjør disse agentene komponerbare og gjenbrukbare. Figuren nedenfor viser et eksempel på en arbeidsflyt som tar for seg kodebasert spørsmålssvar i optimaliseringen av forsyningskjeden. Som det kan sees, skriver forfatteren først koden og tolkningen, sikkerhetskontrollen sikrer personvernet og sikkerheten til koden, og koden blir deretter utført av fartøysjefen etter at den har mottatt den nødvendige godkjenningen. Hvis systemet støter på problemer i løpet av kjøretiden, gjentas prosessen til den er løst fullstendig. Implementering av rammeverket nedenfor resulterer i å redusere mengden manuell interaksjon fra 3x til 10x når det distribueres i applikasjoner som optimalisering av forsyningskjeden. Videre reduserer bruken av AutoGen også mengden av kodeinnsats med opptil fire ganger.
AutoGen kan være en game changer ettersom den har som mål å transformere utviklingsprosessen til komplekse applikasjoner som utnytter kraften til LLM-er. Bruken av AutoGen kan ikke bare redusere mengden manuelle interaksjoner som trengs for å oppnå de ønskede resultatene, men den kan også redusere mengden koding som trengs for å lage slike komplekse applikasjoner. Bruken av AutoGen for å lage LLM-baserte applikasjoner kan ikke bare fremskynde prosessen betydelig, men det vil også bidra til å redusere mengden tid, innsats og ressurser som trengs for å utvikle disse komplekse applikasjonene.
I denne artikkelen vil vi ta et dypere dykk inn i AutoGen-rammeverket, og vi vil utforske de essensielle komponentene og arkitekturen til AutoGen-rammeverket, sammen med dets potensielle applikasjoner. Så la oss begynne.
En introduksjon til AutoGen: Driver neste generasjons store språkmodellapplikasjoner
AutoGen er et åpen kildekode-rammeverk utviklet av teamet hos Microsoft som utstyrer utviklere med kraften til å lage applikasjoner som utnytter kraften til LLM-er ved å bruke flere agenter som kan ha samtaler med hverandre for å lykkes med å utføre de ønskede oppgavene. Agenter i AutoGen er konverserbare, kan tilpasses og de kan operere i forskjellige moduser som bruker kombinasjonen av verktøy, menneskelig input og LLM-er. Utviklere kan også bruke AutoGen-rammeverket til å definere interaksjonsatferden til agenter, og utviklere kan bruke både datakode og naturlig språk for å programmere fleksible samtalemønstre distribuert i ulike applikasjoner. Som et rammeverk med åpen kildekode, kan AutoGen betraktes som et generisk rammeverk som utviklere kan bruke til å bygge applikasjoner og rammeverk med ulike kompleksiteter som utnytter kraften til LLM-er.
Store språkmodeller spiller en avgjørende rolle i utviklingen av agenter som bruker LLM-rammeverket for å tilpasse seg nye observasjoner, verktøybruk og resonnement i en rekke virkelige applikasjoner. Men å utvikle disse applikasjonene som kan utnytte det fulle potensialet til LLM er en kompleks affære, og gitt den stadig økende etterspørselen og applikasjonene til LLMer sammen med økningen i oppgavekompleksitet, er det viktig å skalere opp kraften til disse agentene ved å bruke flere agenter som fungerer synkronisert med hverandre. Men hvordan kan en multiagent-tilnærming brukes til å utvikle LLM-baserte applikasjoner som deretter kan brukes på et bredt spekter av domener med varierende kompleksitet? AutoGen-rammeverket forsøker å svare på spørsmålet ovenfor ved å bruke multi-agent samtaler.
AutoGen : Komponenter og rammeverk
I et forsøk på å redusere mengden innsats utviklere må legge ned for å lage komplekse applikasjoner ved å bruke LLM-funksjoner på tvers av et bredt spekter av domener, er det grunnleggende prinsippet til AutoGen å konsolidere og effektivisere arbeidsflyter for flere agenter ved å bruke multiagentsamtaler , og maksimerer dermed også gjenbrukbarheten til disse implementerte midlene. AutoGen bruker flere agenter som kan ha samtaler med hverandre for å lykkes med å utføre de ønskede oppgavene, og rammeverket er bygget på to grunnleggende konsepter: Konverserende agenter og Konverserbar programmering.
Konverserende agenter
En konverserbar agent i AutoGen er en enhet med en forhåndsdefinert rolle som kan sende meldinger for å sende og motta informasjon til og fra andre konverserbare agenter. En konverserbar agent opprettholder sin interne kontekst basert på mottatte eller sendte meldinger, og utviklere kan konfigurere disse agentene til å ha et unikt sett med funksjoner som å bli aktivert av LLM-verktøy, eller ta menneskelige innspill.
Agentfunksjoner drevet av mennesker, verktøy og LLM-er
En agents evner er direkte relatert til hvordan den behandler og svarer på meldinger, som er den primære grunnen til at agentene i AutoGen-rammeverket gir utviklere fleksibiliteten til å gi agentene sine ulike funksjoner. AutoGen støtter en rekke vanlige komponerbare funksjoner for agenter som inkluderer
- LLM-er: Agenter støttet av LLM utnytter mulighetene til avanserte LLM-rammeverk som implisitt tilstandsforstyrrelse, rollespill, tilbakemelding og til og med koding. Utviklere kan bruke nye spørsmålsteknikker for å kombinere disse egenskapene i et forsøk på å øke autonomien eller ferdigheten til en agent.
- Mennesker: Flere applikasjoner ønsker eller krever en viss grad av menneskelig involvering, og AutoGen-rammeverket lar LLM-baserte applikasjoner lette menneskelig deltakelse i agentsamtaler med bruk av menneskestøttede agenter som kan be om menneskelige innspill under visse samtalerunder på grunnlag av konfigurasjon av agenten.
- Verktøy: Verktøystøttede agenter har vanligvis muligheten til å bruke kodekjøring eller funksjonskjøring for å utføre verktøy.
Agentsamarbeid og tilpasning
Basert på de spesifikke behovene og kravene til en applikasjon, kan utviklere konfigurere individuelle agenter til å ha en kombinasjon av essensielle backend-typer for å vise den komplekse oppførselen som er involvert i samtaler med flere agenter. AutoGen-rammeverket lar utviklere enkelt lage agenter med spesialiserte roller og evner ved å utvide eller gjenbruke de innebygde agentene. Figuren vedlagt nedenfor viser den grunnleggende strukturen til innebygde agenter i AutoGen-rammeverket. ConversableAgent-klassen kan bruke mennesker, verktøy og LLM-er som standard siden det er agentabstraksjonen på høyeste nivå. UserProxyAgent og AssistantAgent er forhåndskonfigurerte klasser av ConversableAgent, og hver av dem representerer en felles bruksmodus, dvs. hver av disse to agentene fungerer som en AI-assistent (når støttet av LLM-er), og ber om menneskelige input eller utfører funksjonskall eller koder (når de støttes av verktøy og/eller mennesker) ved å fungere som en menneskelig proxy.
Figuren nedenfor viser hvordan utviklere kan bruke AutoGen-rammeverket til å utvikle et to-agent-system som har en tilpasset svarfunksjon, sammen med en illustrasjon av den resulterende automatiserte agentchatten som bruker to-agent-systemet under kjøringen av programmet.
Ved å tillate bruk av tilpassede agenter som kan snakke med hverandre, fungerer disse konverserbare agentene som en grunnleggende byggestein i AutoGen-rammeverket. Utviklere må imidlertid spesifisere og forme disse multi-agent-samtalene for å utvikle applikasjoner der disse agentene er i stand til å gjøre betydelige fremskritt med de spesifiserte oppgavene.
Samtaleprogrammering
For å løse problemet nevnt ovenfor, bruker AutoGen-rammeverket samtaleprogrammering, et databehandlingsparadigme bygget på to essensielle konsepter: beregning, handlingene utført av agenter i en samtale med flere agenter for å beregne deres svar og kontrollstrøm, betingelsene eller sekvensen som disse beregningene finner sted under. Muligheten til å programmere disse lar utviklere implementere en rekke fleksible multi-agent samtalemønstre. Videre, i AutoGen-rammeverket, er beregningene samtalesentriske. Handlingene som utføres av en agent er relevante for samtalene agenten er involvert i, og handlingene som utføres av agentene resulterer da i at meldinger sendes for påfølgende samtaler til det tidspunktet når en oppsigelsesbetingelse er oppfylt. Videre er kontrollflyten i AutoGen-rammeverket drevet av samtaler ettersom det er beslutningen til de deltakende agentene om hvilke agenter som skal sende meldinger til og fra beregningsprosedyren.
Figuren ovenfor viser en enkel illustrasjon av hvordan individuelle agenter utfører sine rollespesifikke operasjoner, og samtalesentriske beregninger for å generere de ønskede svarene som kodekjøring og LLM-interferensanrop. Oppgaven går videre ved hjelp av samtaler som vises i dialogboksen.
For å lette samtaleprogrammering har AutoGen-rammeverket følgende designmønstre.
- Automatiske svarmekanismer og enhetlig grensesnitt for automatiserte agentchatter
AutoGen-rammeverket har et enhetlig grensesnitt for å utføre den tilsvarende beregningen som er samtalesentrert, inkludert en "mottak eller send funksjon" for enten å motta eller sende meldinger sammen med en "generere_svar” funksjon som genererer et svar på grunnlag av den mottatte meldingen, og tar den nødvendige handlingen. AutoGen-rammeverket introduserer og distribuerer også agent-auto svar mekanisme som standard for å realisere den samtaledrevne kontrollen.
- Kontroll ved sammenslåing av naturlig språk og programmering
AutoGen-rammeverket forenkler bruken av naturlig språk og programmering i ulike styringsmønstre for kontrollflyt som inkluderer: Naturlig språkkontroll ved hjelp av LLM-er, Programmeringsspråkkontrollog Kontroller overgangen mellom programmering og naturlig språk.
I tillegg til statiske samtaler som vanligvis ledsages av en forhåndsdefinert flyt, støtter AutoGen-rammeverket også dynamiske samtaleflyter ved bruk av flere agenter, og rammeverket gir utviklere to alternativer for å oppnå dette
- Ved å bruke funksjonskall.
- Ved å bruke en tilpasset generer-svar-funksjon.
Applikasjoner av AutoGen
For å illustrere potensialet til AutoGen-rammeverket i utviklingen av komplekse multiagent-applikasjoner, her er seks potensielle applikasjoner av AutoGen som er valgt på grunnlag av deres relevans i den virkelige verden, problemløsningsevner forbedret av AutoGen-rammeverket, og deres innovative potensial.
Disse seks applikasjonene til AutoGen-rammeverket er
- Matematisk problemløsning.
- Hent utvidede chatter.
- ALF chatter.
- Multi-agent koding.
- Dynamisk gruppechat.
- Samtalesjakk.
Søknad 1: Løsning av matematiske problemer
Matematikk er en av de grunnleggende disiplinene for å utnytte LLM-modeller for å hjelpe til med å løse komplekse matematiske problemer som åpner opp en helt ny verden av potensielle applikasjoner, inkludert AI-forskningsassistanse og personlig AI-veiledning.
Figuren vedlagt ovenfor demonstrerer bruken av AutoGen-rammeverket for å oppnå konkurransedyktig ytelse på å løse matematiske problemer.
Applikasjon 2: Spørsmålssvar og gjenfinning-utvidet kodegenerering
I løpet av de siste månedene har Retrieval Augmented Code Generation dukket opp som en effektiv og praktisk tilnærming for å overvinne begrensningene til LLM-er ved å inkludere eksterne dokumenter. Figuren nedenfor viser bruken av AutoGen-rammeverket for effektiv gjenfinningsforsterkning, og øke ytelsen på spørsmål og svar-oppgaver.
Søknad 3: Beslutningstaking i tekstverdenmiljøer
AutoGen-rammeverket kan brukes til å lage applikasjoner som fungerer med online eller interaktiv beslutningstaking. Figuren nedenfor viser hvordan utviklere kan bruke AutoGen-rammeverket til å designe et samtalesystem med tre agenter med en jordingsagent for å øke ytelsen betydelig.
Søknad 4: Multi-Agent-koding
Utviklere som jobber med AutoGen-rammeverket kan bruke OptiGuide-rammeverket til å bygge et multi-agent-kodesystem som er i stand til å skrive kode for å implementere optimaliserte løsninger, og svare på brukerspørsmål. Figuren nedenfor viser at bruken av AutoGen-rammeverket for å lage en multiagent-design bidrar til å øke den generelle ytelsen betraktelig, spesielt når det gjelder å utføre kodeoppgaver som krever en beskyttelse.

Søknad 5: Dynamisk gruppechat
AutoGen-rammeverket gir støtte for et kommunikasjonsmønster som dreier seg om dynamiske gruppechatter der de deltakende flere agentene deler konteksten, og i stedet for å følge et sett med forhåndsdefinerte ordrer, snakker de med hverandre på en dynamisk måte. Disse dynamiske gruppechattene er avhengige av pågående samtaler for å veilede flyten av interaksjon mellom agentene.
Figuren ovenfor illustrerer hvordan AutoGen-rammeverket støtter dynamiske gruppechatter mellom agenter ved å bruke "GroupChatManager” , en spesialagent.
Søknad 6: Samtalesjakk
Utviklerne av AutoGen-rammeverket brukte det til å utvikle en Conversational Chess-applikasjon som er et naturlig interferensspill som har innebygde agenter for spillere som enten kan være en LLM eller et menneske, og det er også en tredjepartsagent som gir relevant informasjon, og validerer trekkene på brettet på grunnlag av et sett med forhåndsdefinerte standardregler. Figuren vedlagt nedenfor demonstrerer Conversational Chess, et naturlig interferensspill bygget ved hjelp av AutoGen-rammeverket som lar spillere bruke vitser, karakterspilling eller til og med meme-referanser for å uttrykke bevegelsene sine kreativt, noe som gjør sjakkspillet mer interessant ikke bare for spillerne , men også for publikum og observatører.
Konklusjon
I denne artikkelen har vi snakket om AutoGen, et åpen kildekode-rammeverk som bruker konseptene samtaleprogrammering og konverserbare agenter som har som mål å forenkle orkestreringen og optimaliseringen av LLM-arbeidsflytene ved å introdusere automatisering til arbeidsflyt-pipelinen. AutoGen-rammeverket tilbyr samtalerbare og tilpassbare agenter som utnytter kraften til avanserte LLM-er som GPT-3 og GPT-4, og som samtidig adresserer deres nåværende begrensninger ved å integrere LLM-ene med verktøy og menneskelige input ved å bruke automatiserte chatter for å starte samtaler mellom flere agenter.
Selv om AutoGen-rammeverket fortsatt er i sine tidlige eksperimentelle stadier, baner det vei for fremtidige utforskninger og forskningsmuligheter på feltet, og AutoGen kan være verktøyet som bidrar til å forbedre hastigheten, funksjonaliteten og enkel utvikling av applikasjoner som utnytter evnene til LLM-er.