AI-modeller og plattformer

AutoGen: Drevet av neste generasjons store språkmodellapplikasjoner

mm
Legg til Unite.AI blant dine foretrukne kilder på Google
The AutoGen Framework

Store språkmodeller (LLM) er for tiden ett av de mest diskuterte emnene i mainstream AI. Utviklere over hele verden utforsker mulighetene for å bruke LLM. Disse modellene er AI-algoritmer som bruker dypt lærings-teknikker og store mengder treningdata for å forstå, summerere, forutsie og generere en rekke innhold, inkludert tekst, lyd, bilder, videoer og mer.

Store språkmodeller er komplekse AI-algoritmer. Å utvikle en slik modell er en omfattende oppgave, og å konstruere en applikasjon som kan utnytte kapasiteten til en LLM er like vanskelig. Det krever betydelig ekspertise, innsats og ressurser for å designe, implementere og til slutt optimalisere en arbeidsflyt som kan utnytte fullt potensialet til en stor språkmodell for å gi de beste resultatene. Gitt den omfattende tiden og resursene som kreves for å etablere arbeidsflyter for applikasjoner som bruker kraften til LLM, har automatisering av disse prosessene stor verdi. Dette er spesielt sant ettersom arbeidsflytene forventes å bli enda mer komplekse i nær fremtid, med utviklere som lager stadig mer sofistikerte LLM-baserte applikasjoner. I tillegg er designrommet nødvendig for disse arbeidsflytene både intrikat og omfattende, noe som ytterligere øker utfordringene ved å lage en optimal og robust arbeidsflyt som møter ytelsesforventningene.

AutoGen er et rammeverk utviklet av teamet i Microsoft (MSFT ) som har som mål å forenkle orkestrering og optimalisering av LLM-arbeidsflytene ved å introdusere automatisering i arbeidsflytpipelines. AutoGen-rammeverket tilbyr konverserbar og tilpassbar agenter som kan utnytte kraften til avanserte LLM som GPT-3 og GPT-4, og samtidig adresse deres nåværende begrensninger ved å integrere LLM med verktøy og menneskelige inndata ved å bruke automatiserte samtaler for å initiere samtaler mellom flere agenter.

Når du bruker AutoGen-rammeverket, er det bare to trinn når du utvikler et komplekst multi-agent-samtale system.

Trinn 1: Definer en sett med agenter, hver med sine roller og evner.

Trinn 2: Definer samhandling-atferd mellom agenter, dvs. en agent skal vite hva den skal svare når den mottar en melding fra en annen agent.

Begge ovennevnte trinn er modulære og intuitive, noe som gjør at disse agentene er komponerbar og gjenbrukbar. Figuren under demonstrerer en eksempel-arbeidsflyt som addreser kodebasert spørsmål i optimalisering av leverandørkjeden. Som det kan ses, skriver forfatteren først koden og tolkningen, Safeguard sikrer privatliv og sikkerhet for koden, og koden blir deretter kjørt av Commander etter å ha mottatt den nødvendige godkjenningen. Hvis systemet møter noen problemer under kjøring, gjentas prosessen helt til den er fullstendig løst. Å distribuere ovennevnte rammeverk resulterer i reduksjon av mengden manuell interaksjon fra 3x til 10x når det brukes i applikasjoner som optimalisering av leverandørkjeden. I tillegg reduserer bruken av AutoGen også mengden kodeinnsats med opptil fire ganger.

AutoGen kan være en game-changer ettersom det har som mål å transformere utviklingsprosessen for komplekse applikasjoner som utnytter kraften til LLM. Bruken av AutoGen kan ikke bare redusere mengden manuell interaksjon som kreves for å oppnå ønskede resultater, men det kan også redusere mengden kodeinnsats som kreves for å lage slike komplekse applikasjoner. Bruken av AutoGen for å lage LLM-baserte applikasjoner kan ikke bare øke prosessen betydelig, men det vil også hjelpe med å redusere mengden tid, innsats og ressurser som kreves for å utvikle disse komplekse applikasjonene.

I denne artikkelen vil vi gå dypere inn i AutoGen-rammeverket og utforske de essensielle komponentene og arkitekturen til AutoGen-rammeverket, sammen med dets potensielle applikasjoner. La oss begynne.

En introduksjon til AutoGen: Drevet av neste generasjons store språkmodellapplikasjoner

AutoGen er et åpen kilde-rammeverk utviklet av teamet i Microsoft som utstyrer utviklere med kraften til å lage applikasjoner som utnytter kraften til LLM ved å bruke flere agenter som kan ha samtaler med hverandre for å utføre ønskede oppgaver. Agenter i AutoGen er konverserbar, tilpassbar og kan operere i forskjellige moduser som utnytter kombinasjonen av verktøy, menneskelige inndata og LLM. Utviklere kan også bruke AutoGen-rammeverket til å definere samhandling-atferd mellom agenter, og utviklere kan bruke både datamaskinkode og naturlig språk for å programmere fleksible samtale-mønster som brukes i forskjellige applikasjoner. Som et åpen kilde-rammeverk kan AutoGen betraktes som et generisk rammeverk som utviklere kan bruke til å bygge applikasjoner og rammeverk av forskjellig kompleksitet som utnytter kraften til LLM.

Store språkmodeller spiller en avgjørende rolle i utvikling av agenter som bruker LLM-rammeverk for å tilpasse seg nye observasjoner, verktøybruk og resonnering i mange virkelige applikasjoner. Men å utvikle slike applikasjoner som kan utnytte fullt potensialet til LLM er en kompleks sak, og gitt den økende etterspørselen og applikasjonene til LLM, samt økningen i oppgavekompleksitet, er det viktig å skalle opp kraften til disse agentene ved å bruke flere agenter som arbeider sammen. Men hvordan kan en multi-agent-tilnærming brukes til å utvikle LLM-baserte applikasjoner som kan brukes i en rekke domener med forskjellig kompleksitet?Hvordan kan AutoGen-rammeverket svare på ovennevnte spørsmål ved å bruke multi-agent-samtaler?AutoGen-rammeverket forsøker å svare på ovennevnte spørsmål 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 som bruker LLM-kapasiteter over en rekke domener, er den grunnleggende prinsippet til AutoGen å konsolidere og strømlinje multi-agent-arbeidsflyter ved å bruke multi-agent-samtaler, og samtidig maksimere gjenbrukbarheten av disse implementerte agentene. AutoGen bruker flere agenter som kan ha samtaler med hverandre for å utføre ønskede oppgaver, og rammeverket er bygget på to grunnleggende konsepter: Konverserbar agenter og Konverserbar programmering.

Konverserbar 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 konverserbar agenter. En konverserbar agent opprettholder sin interne kontekst basert på mottatte eller sendte meldinger, og utviklere kan konfigurere disse agentene til å ha en unik sett med evner, som å være aktivert av LLM-verktøy eller å ta menneskelige inndata.

Agent-egenskaper drevet av mennesker, verktøy og LLM

En agents evner relatere direkte til hvordan den prosesserer og responderer på meldinger, som er den primære grunnen til at agentene i AutoGen-rammeverket tillater utviklere å gi forskjellige evner til agentene. AutoGen støtter flere vanlige komponerbar evner for agenter som inkluderer

  1. LLM: Agenter bak LLM utnytter kapasiteten til avanserte LLM-rammeverk som implicit tilstandsinferens, rollespill, å gi tilbakemelding og å kode. Utviklere kan bruke nye prompt-teknikker for å kombinere disse evnene for å øke autonomien eller ferdighetene til en agent.
  2. Mennesker: Flere applikasjoner ønsker eller krever en viss grad av menneskelig involvering, og AutoGen-rammeverket tillater LLM-baserte applikasjoner å fasilitere menneskelig deltakelse i agent-samtaler ved å bruke menneske-baserte agenter som kan be menneskelige inndata under bestemte runder av samtalen basert på agentens konfigurasjon.
  3. Verktøy: Verktøy-baserte agenter har vanligvis evnen til å bruke kodekøring eller funksjonskøring for å kjøre verktøy.

Agent-samarbeid og tilpasning

Basert på de spesifikke behovene og kravene til en applikasjon, kan utviklere konfigurere enkelt-agenter til å ha en kombinasjon av essensielle bak-end-typer for å vise kompleks atferd involvert i multi-agent-samtaler. AutoGen-rammeverket tillater utviklere å enkelt lage agenter med spesialiserte roller og evner ved å utvide eller gjenbruke de innebygde agentene. Figuren under demonstrerer den grunnleggende strukturen til innebygde agenter i AutoGen-rammeverket. ConversableAgent-klassen kan bruke mennesker, verktøy og LLM som standard, siden det er den høyeste agent-abstraksjonen. UserProxyAgent og AssistantAgent er forhåndsdefinerte klasser av ConversableAgent, og hver av dem representerer en vanlig bruksmodus, dvs. hver av disse to agentene fungerer som en AI-assistent (når den er bak LLM), og ber om menneskelig inndata eller kjører funksjonskall eller kode (når den er bak verktøy og/eller mennesker) ved å fungere som en menneskelig proxy.

Figuren under demonstrerer hvordan utviklere kan bruke AutoGen-rammeverket til å utvikle et to-agentsystem som har en tilpasset svar-funksjon, samt en illustrasjon av den resulterende automatiske agent-samtalen som bruker det to-agentsystemet under kjøring av programmet.

Ved å tillate bruk av tilpassbare agenter som kan ha samtaler med hverandre, fungerer disse konverserbar agentene som en grunnleggende byggestein i AutoGen-rammeverket. Men utviklere må spesifisere og forme disse multi-agent-samtalene for å utvikle applikasjoner hvor disse agentene kan gjøre betydelig fremgang på de spesifiserte oppgavene.

Samtale-programmering

For å løse ovennevnte problem, bruker AutoGen-rammeverket samtale-programmering, en datamaskin-paradigme bygget på to essensielle konsepter: beregning, handlingene som utføres av agenter i en multi-agent-samtale for å beregne deres svar og kontrollflyt, betingelsene eller sekvensen under hvilken disse beregningene skjer. Evnen til å programmere disse tillater utviklere å implementere flere fleksible multi-agent-samtale-mønster. I tillegg, i AutoGen-rammeverket, er beregningene samtale-sentrert. Handlingene som utføres av en agent er relevante for samtalen agenten er involvert i, og handlingene som utføres av agentene resulterer deretter i sending av meldinger for påfølgende samtaler helt til en termineringsbetingelse er oppfylt. I tillegg er kontrollflyt i AutoGen-rammeverket drevet av samtaler, siden det er avgjørelsen til de deltagende agentene om hvilke agenter som skal sende meldinger til og fra beregningsprosessen.

Figuren over demonstrerer en enkel illustrasjon av hvordan enkelt-agenter utfører deres rolle-spesifikke operasjoner og samtale-sentrerte beregninger for å generere de ønskede svarene, som kodekøring og LLM-inferens-kall. Oppgaven går videre med hjelp av samtaler som vises i dialogboksen.

For å fasilitere samtale-programmering, har AutoGen-rammeverket følgende design-mønster.

  • Auto-svar-mekanismer og forent grensesnitt for automatiske agent-samtaler

AutoGen-rammeverket har et forent grensesnitt for å utføre den tilhørende beregningen som er samtale-sentrert i naturen, inkludert en “motta eller send”-funksjon for å motta eller sende meldinger, samt en “generer_svar”-funksjon som genererer et svar basert på den mottatte meldingen, og tar den nødvendige handlingen. AutoGen-rammeverket introduserer og distribuerer også agent-auto-svar-mekanismen som standard for å realisere samtale-drevet kontroll.

  • Kontroll ved kombinasjon av naturlig språk og programmering

AutoGen-rammeverket fasiliteter bruken av naturlig språk og programmering i forskjellige kontrollflyt-håndtering-mønster som inkluderer: Naturlig språk-kontroll ved hjelp av LLM, programmering-språk-kontroll og kontroll-overgang mellom programmering og naturlig språk.

Videre, i tillegg til statiske samtaler som vanligvis følges av en forhåndsdefinert flyt, støtter AutoGen-rammeverket også dynamiske samtale-flyter ved å bruke flere agenter, og rammeverket gir utviklere to alternativer for å oppnå dette

  1. Ved å bruke funksjonskall.
  2. Ved å bruke en tilpasset generer_svar-funksjon.

Applikasjoner av AutoGen

For å illustrere potensialet til AutoGen-rammeverket i utvikling av komplekse multi-agent-applikasjoner, er her seks potensielle applikasjoner av AutoGen som er valgt basert på deres relevans i den virkelige verden, problemløsningsevner forbedret av AutoGen-rammeverket og deres innovative potensial.

Disse seks applikasjonene av AutoGen-rammeverket er

  1. Matematisk problemløsning.
  2. Henting-forsterket samtaler.
  3. ALF-samtaler.
  4. Flere-agents-koding.
  5. Dynamisk gruppe-samtale.
  6. Konversasjons-sjakk.

Applikasjoner av AutoGen-rammeverket

Applikasjon 1: Matematisk problemløsning

Matematikk er en av de grunnleggende disiplinene for å utnytte LLM-modeller for å hjelpe med å løse komplekse matematiske problemer som åpner opp en helt ny verden av potensielle applikasjoner, inkludert AI-forskningstøtte og personlig AI-undervisning.

Figuren over demonstrerer applikasjonen av AutoGen-rammeverket for å oppnå konkurrerende resultater på å løse matematiske problemer.

Applikasjon 2: Spørsmål og svar og henting-forsterket kode-generering

I de siste månedene har henting-forsterket kode-generering vist seg å være en effektiv og praktisk tilnærming for å overvinne begrensningene til LLM i å inkorporere eksterne dokumenter. Figuren under demonstrerer applikasjonen av AutoGen-rammeverket for effektiv henting-forsterkning og å forbedre resultater på spørsmål og svar-oppgaver.

Applikasjon 3: Beslutningstaking i tekst-verden-miljøer

AutoGen-rammeverket kan brukes til å lage applikasjoner som fungerer med online eller interaktiv beslutningstaking. Figuren under demonstrerer hvordan utviklere kan bruke AutoGen-rammeverket til å designe et tre-agents-samtale-system med en grunn-agents for å betydelig forbedre resultater.

Applikasjon 4: Flere-agents-koding

Utviklere som arbeider med AutoGen-rammeverket kan bruke OptiGuide-rammeverket til å bygge et flere-agents-kodesystem som kan skrive kode for å implementere optimerte løsninger og svare på brukerspørsmål. Figuren under demonstrerer at bruken av AutoGen-rammeverket til å lage et flere-agents-design hjelper med å forbedre den totale resultater betydelig, spesielt i å utføre kode-oppgaver som krever en sikkerhetsagent.

Applikasjon 5: Dynamisk gruppe-samtale

AutoGen-rammeverket gir støtte for en kommunikasjonsmønster som dreier seg om dynamiske gruppe-samtaler hvor de deltagende flere agentene deler konteksten, og i stedet for å følge en forhåndsdefinert rekkefølge, samtaler de med hverandre på en dynamisk måte. Disse dynamiske gruppe-samtalene er avhengige av pågående samtaler for å guide flyten av interaksjon mellom agentene.

Figuren over illustrerer hvordan AutoGen-rammeverket støtter dynamiske gruppe-samtaler mellom agenter ved å bruke “GroupChatManager”, en spesiell agent.

Applikasjon 6: Konversasjons-sjakk

Utviklerne av AutoGen-rammeverket brukte det til å utvikle en konversasjons-sjakk-applikasjon som er en naturlig interferens-spill som har innebygde agenter for spillere som kan være enten LLM eller mennesker, og det er også en tredje-part-agents som gir relevante informasjon og validerer bevegelser på brettet basert på en sett med forhåndsdefinerte standard-regler. Figuren under demonstrerer konversasjons-sjakk, et naturlig interferens-spill bygget med AutoGen-rammeverket som tillater spillere å bruke vitser, rollespill eller selv meme-referanser for å uttrykke bevegelser kreativt, noe som gjør sjakk-spillet mer interessant ikke bare for spillerne, men også for publikum og observatører.

Konklusjon

I denne artikkelen har vi diskutert AutoGen, et åpen kilde-rammeverk som bruker konseptene samtale-programmering og konverserbar agenter for å forenkle orkestrering og optimalisering av LLM-arbeidsflytene ved å introdusere automatisering i arbeidsflytpipelines. AutoGen-rammeverket tilbyr konverserbar og tilpassbar agenter som kan utnytte kraften til avanserte LLM som GPT-3 og GPT-4, og samtidig adresse deres nåværende begrensninger ved å integrere LLM med verktøy og menneskelige inndata ved å bruke automatiserte samtaler for å initiere samtaler mellom flere agenter.

Selv om AutoGen-rammeverket fortsatt er i sine tidlige eksperimentelle faser, åpner det veien for fremtidige utforskninger og forskningsmuligheter i feltet, og AutoGen kan være verktøyet som hjelper med å forbedre hastigheten, funksjonene og lettheten ved å utvikle applikasjoner som utnytter kapasiteten til LLM.

En ingeniør av yrke, en forfatter av hjerte. Kunal er en teknisk forfatter med en dyp kjærlighet og forståelse av AI og ML, dedikert til å forenkle komplekse konsepter i disse feltene gjennom sin engasjerende og informerende dokumentasjon.