Verbind je met ons

Artificial Intelligence

AutoGen: maakt de volgende generatie grote taalmodeltoepassingen mogelijk

mm
Het AutoGen-framework

Grote taalmodellen (LLM’s) zijn momenteel een van de meest besproken onderwerpen in de reguliere AI. Ontwikkelaars over de hele wereld onderzoeken de mogelijke toepassingen van LLM's. Deze modellen zijn AI-algoritmen die gebruik maken van deep learning-technieken en enorme hoeveelheden trainingsgegevens om een ​​breed scala aan inhoud, waaronder tekst, audio, afbeeldingen, video's en meer, te begrijpen, samen te vatten, te voorspellen en te genereren.

Grote taalmodellen zijn ingewikkelde AI-algoritmen. Het ontwikkelen van een dergelijk model is een uitputtende taak, en het bouwen van een applicatie die de mogelijkheden van een LLM benut, is net zo uitdagend. Het vergt aanzienlijke expertise, inspanning en middelen om een ​​workflow te ontwerpen, implementeren en uiteindelijk te optimaliseren die het volledige potentieel van een groot taalmodel kan benutten om de beste resultaten te behalen. Gezien de uitgebreide tijd en middelen die nodig zijn om workflows op te zetten voor applicaties die gebruik maken van de kracht van LLM's, is het automatiseren van deze processen van enorme waarde. Dit geldt met name omdat wordt verwacht dat workflows in de nabije toekomst nog complexer zullen worden, waarbij ontwikkelaars steeds geavanceerder worden LLM-gebaseerde applicaties. Bovendien is de ontwerpruimte die nodig is voor deze workflows zowel ingewikkeld als uitgebreid, waardoor de uitdagingen van het creëren van een optimale, robuuste workflow die aan de prestatieverwachtingen voldoet nog groter worden.

Autogen is een raamwerk ontwikkeld door het team van Microsoft dat tot doel heeft de orkestratie en optimalisatie van de LLM-workflows te vereenvoudigen door automatisering in de workflow-pijplijn te introduceren. Het AutoGen-framework biedt converseerbare en aanpasbare agenten die gebruikmaken van de kracht van geavanceerde LLM's zoals GPT-3 en GPT-4, en tegelijkertijd hun huidige beperkingen aanpakken door de LLM's te integreren met tools en menselijke input door geautomatiseerde chats te gebruiken om gesprekken te initiĂ«ren tussen meerdere agenten. 

Wanneer u het AutoGen-framework gebruikt, zijn er slechts twee stappen nodig bij het ontwikkelen van een complex gesprekssysteem met meerdere agenten. 

Stap 1: Definieer een set agenten, elk met zijn eigen rollen en mogelijkheden. 

Stap 2: Definieer het interactiegedrag tussen agenten, dat wil zeggen dat een agent moet weten wat hij moet antwoorden als hij een bericht van een andere agent ontvangt. 

Beide bovenstaande stappen zijn modulair en intuĂŻtief, waardoor deze agenten samenstelbaar en herbruikbaar zijn. De onderstaande afbeelding demonstreert een voorbeeldworkflow die het op code gebaseerde beantwoorden van vragen bij de optimalisatie van de toeleveringsketen aanpakt. Zoals u kunt zien, schrijft de schrijver eerst de code en interpretatie, zorgt de Safeguard voor de privacy en veiligheid van de code, en wordt de code vervolgens uitgevoerd door de commandant nadat deze de vereiste toestemming heeft gekregen. Als het systeem tijdens de runtime een probleem tegenkomt, wordt het proces herhaald totdat het volledig is opgelost. Het implementeren van het onderstaande raamwerk resulteert in het verminderen van de hoeveelheid handmatige interactie van 3x naar 10x bij implementatie in toepassingen zoals optimalisatie van de supply chain. Bovendien vermindert het gebruik van AutoGen de hoeveelheid codeerinspanningen tot wel vier keer. 

AutoGen zou een gamechanger kunnen zijn, omdat het tot doel heeft het ontwikkelingsproces van complexe applicaties te transformeren door gebruik te maken van de kracht van LLM's. Het gebruik van AutoGen kan niet alleen de hoeveelheid handmatige interacties verminderen die nodig is om de gewenste resultaten te bereiken, maar het kan ook de hoeveelheid codeerinspanningen verminderen die nodig zijn om dergelijke complexe applicaties te creĂ«ren. Het gebruik van AutoGen voor het maken LLM-gebaseerde applicaties kan het proces niet alleen aanzienlijk versnellen, maar het zal ook helpen bij het verminderen van de hoeveelheid tijd, moeite en middelen die nodig zijn om deze complexe toepassingen te ontwikkelen. 

In dit artikel gaan we dieper in op het AutoGen-framework en verkennen we de essentiĂ«le componenten en architectuur van het AutoGen-framework, samen met de mogelijke toepassingen ervan. Dus laten we beginnen. 

Een inleiding tot AutoGen: het mogelijk maken van toepassingen voor grote taalmodellen van de volgende generatie

AutoGen is een open-source raamwerk ontwikkeld door het team van Microsoft dat ontwikkelaars de mogelijkheid geeft om applicaties te creĂ«ren die gebruik maken van de kracht van LLM's met behulp van meerdere agenten die met elkaar kunnen praten om de gewenste taken met succes uit te voeren. Agenten in AutoGen zijn converseerbaar, aanpasbaar en kunnen in verschillende modi werken waarbij gebruik wordt gemaakt van de combinatie van tools, menselijke input en LLM's. Ontwikkelaars kunnen het AutoGen-framework ook gebruiken om het interactiegedrag van agenten te definiĂ«ren, en ontwikkelaars kunnen zowel computercode als natuurlijke taal gebruiken om flexibele gesprekspatronen te programmeren die in verschillende applicaties worden ingezet. Omdat het een open source-framework is, kan AutoGen worden beschouwd als een generiek raamwerk dat ontwikkelaars kunnen gebruiken om applicaties en raamwerken met verschillende complexiteiten te bouwen die de kracht van LLM's benutten. 

Grote taalmodellen spelen een cruciale rol bij het ontwikkelen van agenten die gebruik maken van de LLM-frameworks voor aanpassing aan nieuwe observaties, gereedschapsgebruik en redenering in tal van toepassingen in de echte wereld. Maar het ontwikkelen van deze toepassingen die het volledige potentieel van LLM kunnen benutten, is een complexe aangelegenheid, en gezien de steeds toenemende vraag en toepassingen van LLM's, samen met de toename van de taakcomplexiteit, is het van cruciaal belang om de kracht van deze agenten op te schalen door meerdere agenten in te zetten. die synchroon met elkaar werken. Maar hoe kan een multi-agentbenadering worden gebruikt om op LLM gebaseerde applicaties te ontwikkelen die vervolgens kunnen worden toegepast op een breed scala aan domeinen met verschillende complexiteiten? Het AutoGen-framework probeert bovenstaande vraag te beantwoorden door gebruik te maken van gesprekken met meerdere agenten. 

AutoGen: componenten en raamwerk

In een poging om de hoeveelheid moeite die ontwikkelaars moeten doen om complexe applicaties te creĂ«ren met behulp van LLM-mogelijkheden in een breed scala aan domeinen te verminderen, is het fundamentele principe van AutoGen het consolideren en stroomlijnen van multi-agent-workflows door gebruik te maken van multi-agent-gesprekken. , waardoor ook de herbruikbaarheid van deze geĂŻmplementeerde agenten wordt gemaximaliseerd. AutoGen gebruikt meerdere agenten die met elkaar kunnen praten om de gewenste taken succesvol uit te voeren, en het raamwerk is gebouwd op twee fundamentele concepten: Conversabele agenten en Converseerbare programmering. 

Conversabele agenten

Een converseerbare agent in AutoGen is een entiteit met een vooraf gedefinieerde rol die berichten kan doorgeven om informatie te verzenden en te ontvangen van en naar andere converseerbare agenten. Een conversable agent onderhoudt zijn interne context op basis van ontvangen of verzonden berichten, en ontwikkelaars kunnen deze agenten zo configureren dat ze over een unieke reeks mogelijkheden beschikken, zoals ingeschakeld door LLM-tools of het nemen van menselijke input. 

Agentmogelijkheden mogelijk gemaakt door mensen, tools en LLM's 

De mogelijkheden van een agent houden direct verband met hoe deze berichten verwerkt en erop reageert. Dit is de belangrijkste reden waarom de agenten in het AutoGen-framework ontwikkelaars de flexibiliteit bieden om verschillende mogelijkheden aan hun agenten toe te kennen. AutoGen ondersteunt talrijke algemene samenstelbare mogelijkheden voor agenten, waaronder:

  1. LLM's: Agenten ondersteund door LLM maken gebruik van de mogelijkheden van geavanceerde LLM-frameworks, zoals impliciete staatsinmenging, rollenspellen, het geven van feedback en zelfs codering. Ontwikkelaars kunnen nieuwe aanwijzingstechnieken gebruiken om deze mogelijkheden te combineren in een poging de autonomie of vaardigheid van een agent te vergroten. 
  2. Mensen: Verschillende toepassingen vereisen of vereisen een zekere mate van menselijke betrokkenheid, en het AutoGen-framework maakt het mogelijk dat op LLM gebaseerde toepassingen de menselijke deelname aan agentgesprekken vergemakkelijken met behulp van door mensen gesteunde agenten die tijdens bepaalde gespreksrondes om menselijke input kunnen vragen op basis van de configuratie van de agent. 
  3. Tools: Door tools ondersteunde agenten hebben doorgaans de mogelijkheid om code- of functie-uitvoering te gebruiken om tools uit te voeren.

Samenwerking en maatwerk tussen agenten

Op basis van de specifieke behoeften en vereisten van een applicatie kunnen ontwikkelaars individuele agenten configureren om een ​​combinatie van essentiĂ«le back-endtypen te hebben om het complexe gedrag weer te geven dat betrokken is bij gesprekken met meerdere agenten. Met het AutoGen-framework kunnen ontwikkelaars eenvoudig agenten met gespecialiseerde rollen en mogelijkheden maken door de ingebouwde agenten uit te breiden of opnieuw te gebruiken. De onderstaande afbeelding demonstreert de basisstructuur van ingebouwde agenten in het AutoGen-framework. De klasse ConversableAgent kan standaard mensen, tools en LLM's gebruiken, omdat dit de agentabstractie op het hoogste niveau is. De UserProxyAgent en de AssistantAgent zijn vooraf geconfigureerde klassen van ConversableAgent, en elk van hen vertegenwoordigt een gemeenschappelijke gebruiksmodus, dat wil zeggen dat elk van deze twee agenten fungeert als een AI-assistent (indien ondersteund door LLM's), en vraagt ​​om menselijke input of voert functieaanroepen uit. of codes (wanneer ondersteund door hulpmiddelen en/of mensen) door op te treden als menselijke proxy. 

De onderstaande afbeelding laat zien hoe ontwikkelaars het AutoGen-framework kunnen gebruiken om een ​​systeem met twee agenten te ontwikkelen dat een aangepaste antwoordfunctie heeft, samen met een illustratie van de resulterende geautomatiseerde agentchat die het systeem met twee agenten gebruikt tijdens de uitvoering van het programma. 

Door het gebruik van aangepaste agenten toe te staan ​​die met elkaar kunnen communiceren, dienen deze converseerbare agenten als een fundamentele bouwsteen in het AutoGen-framework. Ontwikkelaars moeten deze gesprekken met meerdere agenten echter specificeren en vormgeven om applicaties te ontwikkelen waarbij deze agenten substantiĂ«le vooruitgang kunnen boeken bij de gespecificeerde taken. 

Gespreksprogrammering

Om het hierboven genoemde probleem op te lossen, maakt het AutoGen-framework gebruik van conversatieprogrammering, een computerparadigma dat is gebouwd op twee essentiĂ«le concepten: berekening, de acties die agenten ondernemen in een gesprek met meerdere agenten om hun reactie te berekenen controle stroom, de omstandigheden of volgorde waarin deze berekeningen plaatsvinden. Dankzij de mogelijkheid om deze te programmeren, kunnen ontwikkelaars talloze flexibele gesprekspatronen met meerdere agenten implementeren. Bovendien zijn de berekeningen in het AutoGen-framework conversatiegericht. De acties die door een agent worden ondernomen, zijn relevant voor de gesprekken waarbij de agent betrokken is, en de acties die door de agenten worden ondernomen, resulteren vervolgens in het doorgeven van berichten voor daaropvolgende gesprekken tot het punt waarop aan een beĂ«indigingsvoorwaarde is voldaan. Bovendien wordt de controlestroom in het AutoGen-framework aangestuurd door gesprekken, aangezien het de beslissing is van de deelnemende agenten over welke agenten berichten van en naar de berekeningsprocedure zullen sturen. 

De bovenstaande afbeelding demonstreert een eenvoudige illustratie van hoe individuele agenten hun rolspecifieke handelingen uitvoeren, en conversatiegerichte berekeningen om de gewenste reacties te genereren, zoals het uitvoeren van code en LLM-interferentieoproepen. De taak vordert met behulp van gesprekken die in het dialoogvenster worden weergegeven. 

Om het programmeren van gesprekken te vergemakkelijken, beschikt het AutoGen-framework over de volgende ontwerppatronen. 

  • Automatische antwoordmechanismen en uniforme interface voor geautomatiseerde agentchats

Het AutoGen-framework heeft een uniforme interface voor het uitvoeren van de overeenkomstige berekeningen die gespreksgericht van aard zijn, waaronder een “ontvangst- of verzendfunctie” voor het ontvangen of verzenden van berichten samen met een “genereer_antwoord”-functie die op basis van het ontvangen bericht een reactie genereert en de benodigde actie onderneemt. Het AutoGen-framework introduceert en implementeert ook de agent-automatisch antwoord standaardmechanisme om de gespreksgestuurde controle te realiseren. 

  • Controle door samensmelting van natuurlijke taal en programmeren

Het AutoGen-framework vergemakkelijkt het gebruik van natuurlijke taal en programmering in verschillende controlestroombeheerpatronen, waaronder: Natuurlijke taalcontroles met behulp van LLM'sProgrammeertaalcontroleen Beheer de overgang tussen programmeren en natuurlijke taal

Naast statische gesprekken die meestal gepaard gaan met een vooraf gedefinieerde stroom, ondersteunt het AutoGen-framework ook dynamische gespreksstromen met behulp van meerdere agenten, en het raamwerk biedt ontwikkelaars twee opties om dit te bereiken

  1. Door gebruik te maken van functieaanroepen. 
  2. Door gebruik te maken van een aangepaste functie voor het genereren van antwoorden. 

Toepassingen van de AutoGen

Om het potentieel van het AutoGen-framework bij de ontwikkeling van complexe multi-agent-applicaties te illustreren, zijn hier zes potentiĂ«le toepassingen van AutoGen die zijn geselecteerd op basis van hun relevantie in de echte wereld, probleemoplossende capaciteiten verbeterd door het AutoGen-framework, en hun innovatieve potentieel. 

Deze zes toepassingen van het AutoGen-framework zijn dat wel

  1. Wiskundeproblemen oplossen. 
  2. Uitgebreide chats ophalen. 
  3. ALF-chats. 
  4. Codering met meerdere agenten. 
  5. Dynamische groepschat. 
  6. Conversatief schaken. 

Toepassingen van AutoGen Framework

Toepassing 1: Wiskundeproblemen oplossen

Wiskunde is een van de fundamentele disciplines bij het inzetten van LLM-modellen om te helpen bij het oplossen van complexe wiskundige problemen, wat een hele nieuwe wereld van potentiĂ«le toepassingen opent, waaronder assistentie bij AI-onderzoek en gepersonaliseerde AI-begeleiding. 

De bovenstaande afbeelding demonstreert de toepassing van het AutoGen-framework om concurrerende prestaties te bereiken bij het oplossen van wiskundige problemen. 

Toepassing 2: het beantwoorden van vragen en het genereren van verbeterde code voor het ophalen

De afgelopen maanden is Retrieval Augmented Code Generation naar voren gekomen als een effectieve en praktische aanpak om de beperkingen van LLM's bij het opnemen van externe documenten te overwinnen. De onderstaande afbeelding demonstreert de toepassing van het AutoGen-framework voor effectieve ophaalverbetering en het verbeteren van de prestaties bij vraag- en antwoordtaken. 

Toepassing 3: besluitvorming in tekstwereldomgevingen

Het AutoGen-framework kan worden gebruikt om applicaties te creĂ«ren die werken met online of interactieve besluitvorming. De onderstaande afbeelding laat zien hoe ontwikkelaars het AutoGen-framework kunnen gebruiken om een ​​conversatiesysteem met drie agenten en een aardingsagent te ontwerpen om de prestaties aanzienlijk te verbeteren. 

Toepassing 4: Coderen met meerdere agenten

Ontwikkelaars die aan het AutoGen-framework werken, kunnen het OptiGuide-framework gebruiken om een ​​multi-agent coderingssysteem te bouwen dat in staat is code te schrijven om geoptimaliseerde oplossingen te implementeren en gebruikersvragen te beantwoorden. De onderstaande afbeelding laat zien dat het gebruik van het AutoGen-framework om een ​​ontwerp met meerdere agenten te creĂ«ren de algehele prestaties aanzienlijk helpt verbeteren, vooral bij het uitvoeren van codeertaken waarvoor beveiliging vereist is. 

Toepassing 5: Dynamische groepschat

Het AutoGen-framework biedt ondersteuning voor een communicatiepatroon dat draait om dynamische groepschats waarin de deelnemende meerdere agenten de context delen, en in plaats van een reeks vooraf gedefinieerde orders te volgen, ze op een dynamische manier met elkaar praten. Deze dynamische groepschats zijn afhankelijk van voortdurende gesprekken om de interactiestroom binnen de agenten te begeleiden. 

De bovenstaande figuur illustreert hoe het AutoGen-framework dynamische groepschats tussen agenten ondersteunt door gebruik te maken van “GroupChatManager”, een speciaal agent. 

Toepassing 6: Conversatief schaken

De ontwikkelaars van het AutoGen-framework hebben het gebruikt om een ​​Conversational Chess-applicatie te ontwikkelen, een spel met natuurlijke interferentie met ingebouwde agenten voor spelers die een LLM of een mens kunnen zijn, en er is ook een agent van derden die relevante informatie biedt informatie, en valideert de zetten op het bord op basis van een reeks vooraf gedefinieerde standaardregels. De onderstaande afbeelding demonstreert Conversational Chess, een spel met natuurlijke interferentie dat is gebouwd met behulp van het AutoGen-framework waarmee spelers grappen, karakterspel of zelfs meme-referenties kunnen gebruiken om hun bewegingen op een creatieve manier uit te drukken, waardoor het schaakspel niet alleen interessanter wordt voor de spelers. , maar ook voor het publiek en de waarnemers. 

Conclusie

In dit artikel hebben we gesproken over AutoGen, een open source-framework dat de concepten van conversatieprogrammering en conversable agents gebruikt en tot doel heeft de orkestratie en optimalisatie van de LLM-workflows te vereenvoudigen door automatisering in de workflow-pijplijn te introduceren. Het AutoGen-framework biedt converseerbare en aanpasbare agenten die gebruikmaken van de kracht van geavanceerde LLM's zoals GPT-3 en GPT-4, en tegelijkertijd hun huidige beperkingen aanpakken door de LLM's te integreren met tools en menselijke input door geautomatiseerde chats te gebruiken om gesprekken te initiĂ«ren tussen meerdere agenten. 

Hoewel het AutoGen-framework zich nog in een vroeg experimenteel stadium bevindt, maakt het de weg vrij voor toekomstige verkenningen en onderzoeksmogelijkheden in het veld, en AutoGen zou het hulpmiddel kunnen zijn dat de snelheid, functionaliteiten en het gemak van de ontwikkeling van applicaties helpt verbeteren door gebruik te maken van de mogelijkheden van LLM’s. 

"Een ingenieur van beroep, een schrijver in hart en nieren". Kunal is een technisch schrijver met een diepe liefde voor en begrip van AI en ML, toegewijd aan het vereenvoudigen van complexe concepten op deze gebieden door middel van zijn boeiende en informatieve documentatie.