Intelligenza artificiale
AutoGen: Potenziamento delle Prossime Generazioni di Applicazioni di Modelli Linguistici di Grande Scala

I Modelli Linguistici di Grande Scala (LLM) sono attualmente uno degli argomenti più discussi nel mainstream dell’IA. Gli sviluppatori di tutto il mondo stanno esplorando le potenziali applicazioni degli LLM. Questi modelli sono algoritmi di intelligenza artificiale che utilizzano tecniche di apprendimento profondo e grandi quantità di dati di training per comprendere, riassumere, prevedere e generare una vasta gamma di contenuti, tra cui testo, audio, immagini, video e altro.
I modelli linguistici di grande scala sono algoritmi di intelligenza artificiale intricati. Sviluppare un tale modello è un compito esauriente e costruire un’applicazione che sfrutta le capacità di un LLM è altrettanto sfidante. Richiede una notevole esperienza, sforzo e risorse per progettare, implementare e ottimizzare infine un flusso di lavoro in grado di sfruttare appieno le potenzialità di un modello linguistico di grande scala per ottenere i migliori risultati. Considerando il tempo e le risorse estensive necessarie per stabilire flussi di lavoro per applicazioni che utilizzano il potere degli LLM, l’automatizzazione di questi processi ha un valore immenso. Ciò è particolarmente vero poiché i flussi di lavoro sono destinati a diventare ancora più complessi nel prossimo futuro, con gli sviluppatori che creano applicazioni sempre più sofisticate basate su LLM. Inoltre, lo spazio di progettazione necessario per questi flussi di lavoro è sia intricato che estensivo, aumentando ulteriormente le sfide di creare un flusso di lavoro ottimale e robusto che soddisfi le aspettative di prestazione.
AutoGen è un framework sviluppato dal team di Microsoft che mira a semplificare l’orchestrazione e l’ottimizzazione dei flussi di lavoro degli LLM introducendo l’automazione nel pipeline di flusso di lavoro. Il framework AutoGen offre agenti conversabili e personalizzabili che sfruttano il potere di LLM avanzati come GPT-3 e GPT-4, e allo stesso tempo, affronta le loro limitazioni attuali integrando gli LLM con strumenti e input umani utilizzando chat automatizzate per avviare conversazioni tra più agenti.
Quando si utilizza il framework AutoGen, sono necessari solo due passaggi per sviluppare un sistema di conversazione multi-agente complesso.
Passo 1: Definire un set di agenti, ciascuno con i propri ruoli e capacità.
Passo 2: Definire il comportamento di interazione tra gli agenti, ovvero un agente dovrebbe sapere cosa rispondere quando riceve un messaggio da un altro agente.
Entrambi i passaggi sopra sono moduli e intuitivi, il che rende questi agenti componibili e riutilizzabili. La figura seguente dimostra un flusso di lavoro di esempio che affronta la risposta alle domande basate sul codice nell’ottimizzazione della catena di approvvigionamento. Come si può vedere, lo scrittore scrive prima il codice e l’interpretazione, il Safeguard assicura la privacy e la sicurezza del codice, e il codice viene eseguito dal Commander dopo aver ricevuto l’autorizzazione richiesta. Se il sistema incontra problemi durante l’esecuzione, il processo viene ripetuto fino a quando non viene completamente risolto. La distribuzione del framework seguente riduce la quantità di interazione manuale da 3x a 10x quando distribuito in applicazioni come l’ottimizzazione della catena di approvvigionamento. Inoltre, l’utilizzo di AutoGen riduce anche la quantità di sforzo di codifica necessaria fino a quattro volte.

AutoGen potrebbe essere un fattore di cambiamento poiché mira a trasformare il processo di sviluppo di applicazioni complesse che sfruttano il potere degli LLM. L’utilizzo di AutoGen non solo può ridurre la quantità di interazioni manuali necessarie per ottenere i risultati desiderati, ma può anche ridurre la quantità di sforzo di codifica necessaria per creare tali applicazioni complesse. L’utilizzo di AutoGen per creare applicazioni basate su LLM non solo può accelerare notevolmente il processo, ma aiuterà anche a ridurre la quantità di tempo, sforzo e risorse necessarie per sviluppare queste applicazioni complesse.
In questo articolo, esploreremo più in profondità il framework AutoGen e esamineremo i componenti essenziali e l’architettura del framework AutoGen, insieme alle sue potenziali applicazioni. Quindi, iniziamo.
Introduzione ad AutoGen: Potenziamento delle Prossime Generazioni di Applicazioni di Modelli Linguistici di Grande Scala
AutoGen è un framework open-source sviluppato dal team di Microsoft che fornisce agli sviluppatori il potere di creare applicazioni che sfruttano il potere degli LLM utilizzando più agenti che possono avere conversazioni tra loro per eseguire con successo i compiti desiderati. Gli agenti in AutoGen sono conversabili, personalizzabili e possono operare in modalità diverse che utilizzano la combinazione di strumenti, input umani e LLM. Gli sviluppatori possono anche utilizzare il framework AutoGen per definire il comportamento di interazione degli agenti e gli sviluppatori possono utilizzare sia il codice del computer che il linguaggio naturale per programmare modelli di conversazione flessibili distribuiti in varie applicazioni. Essendo un framework open-source, AutoGen può essere considerato un framework generico che gli sviluppatori possono utilizzare per costruire applicazioni e framework di varie complessità che sfruttano il potere degli LLM.

I modelli linguistici di grande scala stanno giocando un ruolo cruciale nello sviluppo di agenti che utilizzano i framework LLM per adattarsi a nuove osservazioni, utilizzo di strumenti e ragionamento in numerose applicazioni del mondo reale. Tuttavia, sviluppare queste applicazioni che possono sfruttare appieno le potenzialità degli LLM è un affare complesso e, considerando la crescente domanda e le applicazioni degli LLM, nonché l’aumento della complessità dei compiti, è vitale aumentare il potere di questi agenti utilizzando più agenti che lavorano in sincronia tra loro. Ma come può essere utilizzato un approccio multi-agente per sviluppare applicazioni basate su LLM che possono quindi essere applicate a una vasta gamma di domini con complessità variabili? Il framework AutoGen tenta di rispondere alla suddetta domanda utilizzando le conversazioni multi-agente.
AutoGen: Componenti e Framework
Nel tentativo di ridurre la quantità di sforzo che gli sviluppatori devono fare per creare applicazioni complesse che utilizzano le capacità degli LLM in una vasta gamma di domini, il principio fondamentale di AutoGen è quello di consolidare e semplificare i flussi di lavoro multi-agente utilizzando le conversazioni multi-agente, massimizzando così anche la riutilizzabilità di questi agenti implementati. AutoGen utilizza più agenti che possono avere conversazioni tra loro per eseguire con successo i compiti desiderati e il framework si basa su due concetti fondamentali: Agenti Conversabili e Programmazione Conversazionale.
Agenti Conversabili
Un agente conversabile in AutoGen è un’entità con un ruolo predefinito che può passare messaggi per inviare e ricevere informazioni da e verso altri agenti conversabili. Un agente conversabile mantiene il proprio contesto interno in base ai messaggi ricevuti o inviati e gli sviluppatori possono configurare questi agenti per avere un set unico di capacità come essere abilitati da strumenti LLM o prendere input umani.
Capacità degli Agenti Potenziate da Umani, Strumenti e LLM
Le capacità di un agente sono direttamente correlate a come l’agente elabora e risponde ai messaggi, che è il motivo principale per cui gli agenti nel framework AutoGen consentono agli sviluppatori di dotare vari agenti di diverse capacità. AutoGen supporta numerose capacità componibili per gli agenti che includono
- LLM: Gli agenti supportati da LLM sfruttano le capacità dei framework LLM avanzati come l’interferenza dello stato implicito, il gioco di ruolo, la fornitura di feedback e anche la codifica. Gli sviluppatori possono utilizzare tecniche di prompt innovative per combinare queste capacità nel tentativo di aumentare l’autonomia o la competenza di un agente.
- Umani: Diverse applicazioni desiderano o richiedono un certo grado di coinvolgimento umano e il framework AutoGen consente alle applicazioni basate su LLM di facilitare la partecipazione umana nella conversazione degli agenti utilizzando agenti supportati da umani che potrebbero sollecitare input umani durante certe fasi della conversazione in base alla configurazione dell’agente.
- Strumenti: Gli agenti supportati da strumenti hanno generalmente la capacità di utilizzare l’esecuzione del codice o l’esecuzione della funzione per eseguire strumenti.
Cooperazione e Personalizzazione degli Agenti
In base alle esigenze specifiche e ai requisiti di un’applicazione, gli sviluppatori possono configurare singoli agenti per avere una combinazione di tipi di backend essenziali per visualizzare il comportamento complesso coinvolto nelle conversazioni multi-agente. Il framework AutoGen consente agli sviluppatori di creare facilmente agenti con ruoli e capacità specializzate estendendo o riutilizzando gli agenti predefiniti. La figura allegata dimostra la struttura di base degli agenti predefiniti nel framework AutoGen. La classe ConversableAgent può utilizzare umani, strumenti e LLM per impostazione predefinita poiché è la più alta astrazione di agente. Gli agenti UserProxyAgent e AssistantAgent sono classi preconfigurate di ConversableAgent e ciascuno di essi rappresenta un modo di utilizzo comune, ovvero ciascuno di questi due agenti agisce come un assistente AI (quando supportato da LLM) e sollecita input umano o esegue chiamate a funzioni o codice (quando supportato da strumenti e/o umani) agendo come un proxy umano.

La figura seguente dimostra come gli sviluppatori possano utilizzare il framework AutoGen per sviluppare un sistema a due agenti con una funzione di risposta personalizzata, insieme a un’illustrazione della conversazione automatizzata dell’agente che utilizza il sistema a due agenti durante l’esecuzione del programma.

Gli agenti conversabili servono come blocco fondamentale nel framework AutoGen. Tuttavia, gli sviluppatori devono specificare e plasmare queste conversazioni multi-agente per sviluppare applicazioni in cui questi agenti possano fare progressi sostanziali sui compiti specificati.
Programmazione Conversazionale
Per risolvere il problema sopra menzionato, il framework AutoGen utilizza la programmazione conversazionale, un paradigma di calcolo costruito su due concetti essenziali: calcolo, le azioni intraprese dagli agenti in una conversazione multi-agente per calcolare la loro risposta e controllo del flusso, le condizioni o la sequenza in base alla quale queste computazioni si verificano. La capacità di programmare queste consente agli sviluppatori di implementare numerosi modelli di conversazione multi-agente flessibili. Inoltre, nel framework AutoGen, le computazioni sono centrate sulla conversazione. Le azioni intraprese da un agente sono rilevanti per le conversazioni in cui l’agente è coinvolto e le azioni intraprese dagli agenti risultano nel passaggio di messaggi per conversazioni successive fino a quando non viene soddisfatta una condizione di terminazione. Inoltre, il controllo del flusso nel framework AutoGen è guidato dalle conversazioni poiché è la decisione degli agenti partecipanti su quali agenti invieranno messaggi da e verso la procedura di calcolo.

La figura sopra dimostra una semplice illustrazione di come gli agenti individuali eseguono le loro operazioni specifiche del ruolo e le computazioni centrate sulla conversazione per generare le risposte desiderate come l’esecuzione del codice e le chiamate di interferenza LLM. Il compito procede con l’aiuto delle conversazioni visualizzate nella finestra di dialogo.
Per facilitare la programmazione conversazionale, il framework AutoGen presenta i seguenti modelli di progettazione.
- Mecanismi di risposta automatica e interfaccia unificata per chat di agenti automatizzati
Il framework AutoGen ha un’interfaccia unificata per eseguire la computazione corrispondente che è di natura conversazionale, inclusa una “funzione di ricezione o invio” per ricevere o inviare messaggi e una “funzione di generazione di risposta” che genera una risposta in base al messaggio ricevuto e intraprende l’azione richiesta. Il framework AutoGen introduce e distribuisce anche il meccanismo di risposta automatica dell’agente per default per realizzare il controllo guidato dalla conversazione.
- Controllo tramite combinazione di linguaggio naturale e programmazione
Il framework AutoGen facilita l’utilizzo del linguaggio naturale e della programmazione in vari modelli di gestione del flusso di controllo che includono: controlli del linguaggio naturale che utilizzano LLM, controllo del linguaggio di programmazione e transizione di controllo tra programmazione e linguaggio naturale.
Proseguendo, oltre alle conversazioni statiche che sono solitamente accompagnate da un flusso predefinito, il framework AutoGen supporta anche flussi di conversazione dinamici utilizzando più agenti e il framework fornisce agli sviluppatori due opzioni per raggiungere questo
- Utilizzando le chiamate a funzioni.
- Utilizzando una funzione di generazione di risposta personalizzata.
Applicazioni di AutoGen
Per illustrare il potenziale del framework AutoGen nello sviluppo di applicazioni multi-agente complesse, ecco sei potenziali applicazioni di AutoGen selezionate in base alla loro rilevanza nel mondo reale, capacità di risoluzione dei problemi migliorate dal framework AutoGen e loro potenziale innovativo.
Queste sei applicazioni del framework AutoGen sono
- Risoluzione di problemi matematici.
- Chat di recupero aumentato.
- Chat ALF.
- Codifica multi-agente.
- Chat di gruppo dinamico.
- Scacchi conversazionali.

Applicazione 1: Risoluzione di problemi matematici
La matematica è una delle discipline fondamentali per sfruttare i modelli LLM per aiutare a risolvere problemi matematici complessi, aprendo un mondo intero di potenziali applicazioni, tra cui assistenza alla ricerca AI e tutoraggio AI personalizzato.

La figura allegata sopra dimostra l’applicazione del framework AutoGen per ottenere prestazioni competitive nella risoluzione di problemi matematici.
Applicazione 2: Risposta alle domande e generazione di codice aumentata
Negli ultimi mesi, la generazione di codice aumentata è emersa come un approccio efficace e pratico per superare le limitazioni degli LLM nell’incorporazione di documenti esterni. La figura seguente dimostra l’applicazione del framework AutoGen per un’efficace aumentazione del recupero e il miglioramento delle prestazioni sui compiti di risposta alle domande.

Applicazione 3: Presa di decisioni in ambienti di testo
Il framework AutoGen può essere utilizzato per creare applicazioni che funzionano con la presa di decisioni online o interattiva. La figura seguente dimostra come gli sviluppatori possano utilizzare il framework AutoGen per progettare un sistema di conversazione a tre agenti con un agente di base per aumentare notevolmente le prestazioni.

Applicazione 4: Codifica multi-agente
Gli sviluppatori che lavorano sul framework AutoGen possono utilizzare il framework OptiGuide per costruire un sistema di codifica multi-agente in grado di scrivere codice per implementare soluzioni ottimizzate e rispondere alle domande degli utenti. La figura seguente dimostra che l’utilizzo del framework AutoGen per creare un design multi-agente aiuta a migliorare le prestazioni complessive in modo significativo, in particolare nell’esecuzione di compiti di codifica che richiedono un safeguard.

Applicazione 5: Chat di gruppo dinamico
Il framework AutoGen fornisce supporto per un modello di comunicazione che ruota attorno a chat di gruppo dinamici in cui gli agenti multipli condividono il contesto e, invece di seguire un set di ordini predefiniti, conversano tra loro in modo dinamico. Queste chat di gruppo dinamici si basano su conversazioni in corso per guidare il flusso di interazione all’interno degli agenti.

La figura sopra illustra come il framework AutoGen supporti le chat di gruppo dinamico tra gli agenti utilizzando il GroupChatManager, un agente speciale.
Applicazione 6: Scacchi conversazionali
Gli sviluppatori del framework AutoGen lo hanno utilizzato per sviluppare un’applicazione di scacchi conversazionali che è un gioco di interferenza naturale che presenta agenti predefiniti per i giocatori che possono essere un LLM o un umano e c’è anche un agente di terze parti che fornisce informazioni rilevanti e convalida le mosse sulla scacchiera in base a un set di regole standard predefinite. La figura allegata dimostra gli scacchi conversazionali, un gioco di interferenza naturale costruito utilizzando il framework AutoGen che consente ai giocatori di utilizzare scherzi, recitazione di personaggi o anche riferimenti a meme per esprimere le loro mosse in modo creativo, rendendo il gioco degli scacchi più interessante non solo per i giocatori, ma anche per il pubblico e gli osservatori.

Conclusione
In questo articolo abbiamo parlato di AutoGen, un framework open-source che utilizza i concetti di programmazione conversazionale e agenti conversabili che mira a semplificare l’orchestrazione e l’ottimizzazione dei flussi di lavoro degli LLM introducendo l’automazione nel pipeline di flusso di lavoro. Il framework AutoGen offre agenti conversabili e personalizzabili che sfruttano il potere di LLM avanzati come GPT-3 e GPT-4, e allo stesso tempo, affronta le loro limitazioni attuali integrando gli LLM con strumenti e input umani utilizzando chat automatizzate per avviare conversazioni tra più agenti.
Sebbene il framework AutoGen sia ancora nella sua fase sperimentale iniziale, esso apre la strada a future esplorazioni e opportunità di ricerca nel campo e AutoGen potrebbe essere lo strumento che aiuta a migliorare la velocità, le funzionalità e la facilità di sviluppo delle applicazioni che sfruttano le capacità degli LLM.
