AI-modellen en platforms
AutoGen: Het vermogen van volgende generatie Large Language Model-toepassingen

Large Language Models (LLM’s) zijn momenteel een van de meest besproken onderwerpen in de mainstream AI. Ontwikkelaars over de hele wereld verkennen de potentiële toepassingen van LLM’s. Deze modellen zijn AI-algoritmes die diepe leertechnieken en grote hoeveelheden trainingsdata gebruiken om een breed scala aan inhoud te begrijpen, samen te vatten, te voorspellen en te genereren, waaronder tekst, audio, afbeeldingen, video’s en meer.
Grote taalmodellen zijn ingewikkelde AI-algoritmes. Het ontwikkelen van een dergelijk model is een uitputtende taak, en het creëren van een toepassing die de mogelijkheden van een LLM benut, is eveneens een uitdaging. Het vereist aanzienlijke expertise, inspanning en middelen om een workflow te ontwerpen, te implementeren en uiteindelijk te optimaliseren die in staat is om het volledige potentieel van een groot taalmodel te benutten om de beste resultaten te behalen. Gezien de uitgebreide tijd en middelen die nodig zijn om workflows te creëren voor toepassingen die de kracht van LLM’s gebruiken, heeft het automatiseren van deze processen een grote waarde. Dit is vooral waar als workflows naar verwachting nog complexer zullen worden in de nabije toekomst, met ontwikkelaars die steeds geavanceerdere LLM-gebaseerde toepassingen creëren. 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 framework ontwikkeld door het team van Microsoft (MSFT ) dat als doel heeft om de orkestratie en optimalisatie van de LLM-workflows te vereenvoudigen door automatisering toe te voegen aan de workflow-pijplijn. Het AutoGen-framework biedt conversabele en aanpasbare agenten die de kracht van geavanceerde LLM’s zoals GPT-3 en GPT-4 benutten, en tegelijkertijd hun huidige beperkingen aanpakken door de LLM’s te integreren met tools en menselijke invoer door middel van geautomatiseerde chats om conversaties tussen meerdere agenten te initiëren.
Wanneer u het AutoGen-framework gebruikt, zijn er slechts twee stappen nodig bij het ontwikkelen van een complex multi-agent conversatiesysteem.
Stap 1: Definieer een set agenten, elk met hun eigen rollen en mogelijkheden.
Stap 2: Definieer het interactiegedrag tussen agenten, d.w.z. een agent moet weten wat hij moet antwoorden wanneer hij een bericht van een andere agent ontvangt.
Beide bovengenoemde stappen zijn modulair en intuïtief, waardoor deze agenten composable en herbruikbaar zijn. De onderstaande figuur toont een voorbeeld van een workflow die code-gebaseerde vraagbeantwoording in de optimalisatie van de supply chain adresseert. Zoals te zien is, schrijft de auteur eerst de code en interpretatie, waarbij de Safeguard de privacy en veiligheid van de code waarborgt, en de code wordt vervolgens uitgevoerd door de Commander nadat deze de vereiste goedkeuring heeft ontvangen. Als het systeem tijdens de runtime een probleem tegenkomt, wordt het proces herhaald totdat het volledig is opgelost. Het implementeren van het onderstaande framework resulteert in een vermindering van de hoeveelheid handmatige interactie van 3x tot 10x wanneer het wordt geïmplementeerd in toepassingen zoals de optimalisatie van de supply chain. Bovendien vermindert het gebruik van AutoGen ook de hoeveelheid codering die nodig is om dergelijke complexe toepassingen te creëren met maximaal vier keer.

AutoGen kan een game-changer zijn, omdat het de ontwikkeling van complexe toepassingen die de kracht van LLM’s benutten, kan transformeren. Het gebruik van AutoGen kan niet alleen de hoeveelheid handmatige interacties die nodig zijn om de gewenste resultaten te behalen, verminderen, maar het kan ook de hoeveelheid codering die nodig is om dergelijke complexe toepassingen te creëren, verminderen. Het gebruik van AutoGen voor het creëren van LLM-gebaseerde toepassingen kan het proces aanzienlijk versnellen en ook helpen bij het verminderen van de tijd, inspanning en middelen die nodig zijn om deze complexe toepassingen te ontwikkelen.
In dit artikel zullen we dieper ingaan op het AutoGen-framework en zullen we de essentiële componenten en architectuur van het AutoGen-framework onderzoeken, evenals de potentiële toepassingen. Laten we beginnen.
Een introductie tot AutoGen: Het vermogen van volgende generatie Large Language Model-toepassingen
AutoGen is een open-source framework ontwikkeld door het team van Microsoft dat ontwikkelaars de mogelijkheid biedt om toepassingen te creëren die de kracht van LLM’s benutten met behulp van meerdere agenten die met elkaar kunnen communiceren om de gewenste taken succesvol uit te voeren. Agenten in AutoGen zijn conversabele en aanpasbare agenten die in verschillende modi kunnen werken die gebruikmaken van een combinatie van tools, menselijke invoer en LLM’s. Ontwikkelaars kunnen ook het AutoGen-framework gebruiken om het interactiegedrag van agenten te definiëren, en ontwikkelaars kunnen zowel computercode als natuurlijke taal gebruiken om flexibele conversatiepatronen te programmeren die in verschillende toepassingen worden geïmplementeerd. Als een open-source framework kan AutoGen worden beschouwd als een generisch framework dat ontwikkelaars kunnen gebruiken om toepassingen en frameworks van verschillende complexiteitsniveaus te bouwen die de kracht van LLM’s benutten.

Grote taalmodellen spelen een cruciale rol bij het ontwikkelen van agenten die gebruikmaken van de LLM-frameworks voor het aanpassen aan nieuwe observaties, het gebruik van tools en redeneren in talloze echte toepassingen. Maar het ontwikkelen van deze toepassingen die de volledige potentie van LLM’s kunnen benutten, is een complexe aangelegenheid, en gezien de steeds groter wordende vraag en toepassingen van LLM’s, evenals de toename van de complexiteit van taken, is het essentieel om de kracht van deze agenten te vergroten door meerdere agenten te gebruiken die samenwerken. Maar hoe kan een multi-agentbenadering worden gebruikt om LLM-gebaseerde toepassingen te ontwikkelen die vervolgens kunnen worden toegepast op een breed scala aan domeinen met verschillende complexiteitsniveaus? Het AutoGen-framework probeert deze vraag te beantwoorden door het gebruik van multi-agentconversaties.
AutoGen: Componenten en framework
In een poging om de hoeveelheid inspanning te verminderen die ontwikkelaars moeten leveren om complexe toepassingen te creëren met behulp van LLM-mogelijkheden over een breed scala aan domeinen, is het fundamentele principe van AutoGen om multi-agentworkflows te consolideren en te stroomlijnen door het gebruik van multi-agentconversaties, waardoor ook de herbruikbaarheid van deze geïmplementeerde agenten wordt gemaximaliseerd. AutoGen gebruikt meerdere agenten die met elkaar kunnen communiceren om de gewenste taken succesvol uit te voeren, en het framework is gebaseerd op twee fundamentele concepten: Conversabele agenten en Conversabele programmering.
Conversabele agenten
Een conversabele agent in AutoGen is een entiteit met een vooraf gedefinieerde rol die berichten kan verzenden en ontvangen om informatie te delen met andere conversabele agenten. Een conversabele agent onderhoudt zijn interne context op basis van ontvangen of verzonden berichten, en ontwikkelaars kunnen deze agenten configureren om een unieke set mogelijkheden te hebben, zoals het gebruik van LLM-tools of het ontvangen van menselijke invoer.
Agentmogelijkheden die worden aangedreven door mensen, tools en LLM’s
De mogelijkheden van een agent zijn rechtstreeks gerelateerd aan hoe het berichten verwerkt en reageert, en dat 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 verschillende veelvoorkomende, composable mogelijkheden voor agenten, waaronder
- LLM’s: Agenten die zijn ondersteund door LLM’s, benutten de mogelijkheden van geavanceerde LLM-frameworks zoals impliciete staatinterferentie, rolspel, feedback geven en zelfs coderen. Ontwikkelaars kunnen nieuwe prompttechnieken gebruiken om deze mogelijkheden te combineren om de autonomie of vaardigheid van een agent te vergroten.
- Mensen: Verschillende toepassingen vereisen of wensen een zekere mate van menselijke betrokkenheid, en het AutoGen-framework biedt LLM-gebaseerde toepassingen de mogelijkheid om menselijke deelname te faciliteren in agentconversaties met behulp van menselijke agenten die menselijke invoer kunnen opvragen tijdens bepaalde ronden van conversatie op basis van de configuratie van de agent.
- Tools: Tools-ondersteunde agenten hebben meestal de mogelijkheid om codeuitvoering of functie-uitvoering te gebruiken om tools uit te voeren.
Agentcoöperatie en aanpassing
Op basis van de specifieke behoeften en vereisten van een toepassing, kunnen ontwikkelaars individuele agenten configureren om een combinatie van essentiële back-endtypen te hebben om het complexe gedrag dat betrokken is bij multi-agentconversaties weer te geven. Het AutoGen-framework biedt ontwikkelaars de mogelijkheid om gemakkelijk agenten te creëren met gespecialiseerde rollen en mogelijkheden door de ingebouwde agenten uit te breiden of opnieuw te gebruiken. De onderstaande figuur toont de basisstructuur van de ingebouwde agenten in het AutoGen-framework. De ConversableAgent-klasse kan mensen, tools en LLM’s gebruiken als standaard, aangezien het de hoogste agentabstractie is. De UserProxyAgent en de AssistantAgent zijn vooraf geconfigureerde klassen van ConversableAgent, en elk van hen vertegenwoordigt een veelvoorkomend gebruikspatroon, waarbij elk van hen fungeert als een AI-assistent (wanneer ondersteund door LLM’s) en menselijke invoer opvraagt of functieaanroepen of code uitvoert (wanneer ondersteund door tools en/of mensen) door te fungeren als een menselijke proxy.

De onderstaande figuur toont hoe ontwikkelaars het AutoGen-framework kunnen gebruiken om een tweede agentsysteem te ontwikkelen met een aangepaste antwoordfunctie, evenals een illustratie van de resulterende geautomatiseerde agentconversatie die het tweede agentsysteem gebruikt tijdens de uitvoering van het programma.

Door het gebruik van aangepaste agenten die met elkaar kunnen communiceren, fungeren deze conversabele agenten als een fundamentele bouwsteen in het AutoGen-framework. Echter, ontwikkelaars moeten deze multi-agentconversaties specificeren en vormgeven om toepassingen te ontwikkelen waarin deze agenten significante vooruitgang kunnen boeken op de gespecificeerde taken.
Conversatieprogrammering
Om het bovengenoemde probleem op te lossen, gebruikt het AutoGen-framework conversatieprogrammering, een computatieparadigma dat is gebaseerd op twee essentiële concepten: computatie, de acties die door agenten in een multi-agentconversatie worden uitgevoerd om hun reactie te berekenen, en controlestroom, de voorwaarden of volgorde waarin deze berekeningen plaatsvinden. De mogelijkheid om deze te programmeren, stelt ontwikkelaars in staat om talloze flexibele multi-agentconversatiepatronen te implementeren. Bovendien zijn de berekeningen in het AutoGen-framework conversatiegericht. De acties die door een agent worden uitgevoerd, zijn relevant voor de conversaties waarin de agent is betrokken, en de acties die door de agenten worden uitgevoerd, resulteren in het verzenden van berichten voor vervolgconversaties totdat een beëindigingsvoorwaarde is bereikt. Bovendien is de controlestroom in het AutoGen-framework door conversaties gedreven, aangezien het de beslissing is van de deelnemende agenten om te bepalen welke agenten berichten zullen verzenden en ontvangen van de berekening.

De bovengenoemde figuur toont een eenvoudige illustratie van hoe individuele agenten hun rol-specifieke operaties uitvoeren en conversatiegerichte berekeningen genereren om de gewenste reacties te produceren, zoals code-uitvoering en LLM-interferentieaanroepen. De taak gaat verder met behulp van conversaties die in het dialoogvenster worden weergegeven.
Om conversatieprogrammering te faciliteren, heeft het AutoGen-framework de volgende ontwerppatronen.
- Auto-antwoordmechanismen en unified interface voor geautomatiseerde agentconversaties
Het AutoGen-framework heeft een unified interface voor het uitvoeren van de overeenkomstige berekening die conversatiegericht is, waaronder een “ontvangen of verzenden”-functie voor het ontvangen of verzenden van berichten, evenals een “genereer_antwoord”-functie die een reactie genereert op basis van het ontvangen bericht en de vereiste actie uitvoert. Het AutoGen-framework introduceert en implementeert ook het agent-auto-antwoordmechanisme als standaard om de conversatiegedreven controle te realiseren.
- Controle door combinatie van natuurlijke taal en programmeren
Het AutoGen-framework faciliteert het gebruik van natuurlijke taal en programmeren in verschillende controlestroombeheerpatronen, waaronder natuurlijke taalcontrole met behulp van LLM’s, programmeringstaalcontrole en controleovergang tussen programmeren en natuurlijke taal.
Verder, naast statische conversaties die meestal worden gevolgd door een vooraf gedefinieerde stroom, ondersteunt het AutoGen-framework ook dynamische conversiestromen met behulp van meerdere agenten, en het framework biedt ontwikkelaars twee opties om dit te bereiken
- Door middel van functieaanroepen.
- Door middel van een aangepaste genereer_antwoord-functie.
Toepassingen van AutoGen
Om het potentieel van het AutoGen-framework te illustreren bij het ontwikkelen van complexe multi-agenttoepassingen, zijn hier zes potentiële toepassingen van AutoGen die zijn geselecteerd op basis van hun relevantie in de echte wereld, probleemoplossende mogelijkheden die zijn verbeterd door het AutoGen-framework, en hun innovatieve potentieel.
Deze zes toepassingen van het AutoGen-framework zijn
- Wiskundig probleemoplossing.
- Opvraging-versterkte chats.
- ALF-chats.
- Multi-agentcodering.
- Dynamische groepschat.
- Conversational Chess.

Toepassing 1: Wiskundig probleemoplossing
Wiskunde is een van de fundamentale disciplines die LLM-modellen gebruiken om complexe wiskundige problemen op te lossen, waardoor een hele nieuwe wereld van potentiële toepassingen ontstaat, waaronder AI-onderzoeksassistentie en gepersonaliseerde AI-onderwijs.

De bovengenoemde figuur toont de toepassing van het AutoGen-framework om concurrerende prestaties te behalen bij het oplossen van wiskundige problemen.
Toepassing 2: Vraagbeantwoording en opvraging-versterkte codegeneratie
In de afgelopen maanden is opvraging-versterkte codegeneratie een effectieve en praktische aanpak gebleken om de beperkingen van LLM’s te overwinnen bij het incorporeren van externe documenten. De onderstaande figuur toont de toepassing van het AutoGen-framework voor effectieve opvraging-versterking en prestatieverbetering bij vraag- en antwoordtaken.

Toepassing 3: Besluitvorming in tekstwereldomgevingen
Het AutoGen-framework kan worden gebruikt om toepassingen te creëren die werken met online of interactieve besluitvorming. De onderstaande figuur toont hoe ontwikkelaars het AutoGen-framework kunnen gebruiken om een drietal conversatiesysteem te ontwerpen met een grondingsagent om de prestaties aanzienlijk te verbeteren.

Toepassing 4: Multi-agentcodering
Ontwikkelaars die werken aan het AutoGen-framework, kunnen het OptiGuide-framework gebruiken om een multi-agentcoderingssysteem te bouwen dat in staat is om code te schrijven om geoptimaliseerde oplossingen te implementeren en gebruikersvragen te beantwoorden. De onderstaande figuur toont dat het gebruik van het AutoGen-framework om een multi-agentontwerp te creëren, de algehele prestatie aanzienlijk verbetert, vooral bij het uitvoeren van coderingstaken die een safeguard vereisen.

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, met elkaar communiceren in een dynamische manier. Deze dynamische groepschats zijn afhankelijk van voortdurende conversaties om de interactiestroom binnen de agenten te leiden.

De bovengenoemde figuur toont hoe het AutoGen-framework dynamische groepschats tussen agenten ondersteunt door het gebruik van “GroupChatManager”, een speciale agent.
Toepassing 6: Conversational Chess
De ontwikkelaars van het AutoGen-framework hebben het gebruikt om een Conversational Chess-toepassing te ontwikkelen, die een natuurlijke interferentiegame is die ingebouwde agenten voor spelers heeft die een LLM of mens kunnen zijn, en er is ook een derde partijagent die relevante informatie biedt en de zetten op het bord valideert op basis van een reeks vooraf gedefinieerde standaardregels. De onderstaande figuur toont Conversational Chess, een natuurlijke interferentiegame die is gebouwd met het AutoGen-framework, waardoor spelers hun zetten creatief kunnen uitdrukken met behulp van grappen, karakteracteren of zelfs memen, waardoor het spel van schaken interessanter wordt, niet alleen voor de spelers, maar ook voor het publiek en de toeschouwers.

Conclusie
In dit artikel hebben we het over AutoGen gehad, een open-source framework dat de concepten van conversatieprogrammering en conversabele agenten gebruikt om de orkestratie en optimalisatie van de LLM-workflows te vereenvoudigen door automatisering toe te voegen aan de workflow-pijplijn. Het AutoGen-framework biedt conversabele en aanpasbare agenten die de kracht van geavanceerde LLM’s zoals GPT-3 en GPT-4 benutten, en tegelijkertijd hun huidige beperkingen aanpakken door de LLM’s te integreren met tools en menselijke invoer door middel van geautomatiseerde chats om conversaties tussen meerdere agenten te initiëren.
Hoewel het AutoGen-framework nog in de vroege experimentele fasen zit, baant het de weg voor toekomstige onderzoeken en onderzoeksmogelijkheden op het gebied, en AutoGen kan het instrument zijn dat helpt om de snelheid, functionaliteiten en de gemakkelijkheid van ontwikkeling van toepassingen die de mogelijkheden van LLM’s benutten, te verbeteren.












