Intelligenza artificiale
AutoGen: Potenziamento delle Applicazioni di Modelli Linguistici di Nuova Generazione

I Modelli Linguistici di Grande Portata (LLM) sono attualmente uno degli argomenti più discussi nel mainstream dell’intelligenza artificiale. Gli sviluppatori di tutto il mondo stanno esplorando le potenziali applicazioni dei 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 portata sono algoritmi di intelligenza artificiale intricati. Sviluppare un tale modello è un compito esaustivo e costruire un’applicazione che sfrutta le capacità di un LLM è altrettanto impegnativo. Richiede una notevole esperienza, sforzo e risorse per progettare, implementare e ottimizzare un flusso di lavoro in grado di sfruttare appieno le potenzialità di un modello linguistico di grande portata per ottenere i migliori risultati. Data la quantità di tempo e risorse necessarie per stabilire flussi di lavoro per applicazioni che utilizzano il potere dei LLM, l’automazione di questi processi ha un valore immenso. Ciò è particolarmente vero poiché i flussi di lavoro sono previsti diventare ancora più complessi nel prossimo futuro, con gli sviluppatori che creano applicazioni basate su LLM sempre più sofisticate.
AutoGen è un framework sviluppato dal team di Microsoft che mira a semplificare l’orchestrazione e l’ottimizzazione dei flussi di lavoro dei LLM introducendo l’automazione nella pipeline del 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, affrontano le loro limitazioni attuali integrando i 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 deve sapere cosa rispondere quando riceve un messaggio da un altro agente.
Entrambi i passaggi sopra sono moduli e intuitivi, il che rende questi agenti composti e riutilizzabili. La figura in basso 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 la necessaria autorizzazione. Se il sistema incontra problemi durante l’esecuzione, il processo viene ripetuto fino a quando non viene risolto completamente. La distribuzione del framework sopra menzionato riduce la quantità di interazione manuale da 3 a 10 volte quando viene 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 dei LLM. L’utilizzo di AutoGen non solo riduce la quantità di interazioni manuali necessarie per ottenere i risultati desiderati, ma riduce anche la quantità di sforzo di codifica necessaria per creare tali applicazioni complesse. L’utilizzo di AutoGen per creare applicazioni basate su LLM non solo accelera notevolmente il processo, ma aiuta anche a ridurre la quantità di tempo, sforzo e risorse necessarie per sviluppare queste applicazioni complesse.
In questo articolo, faremo un’analisi più approfondita del framework AutoGen e esploreremo i componenti essenziali e l’architettura del framework AutoGen, insieme alle sue potenziali applicazioni. Quindi, iniziamo.
Introduzione ad AutoGen: Potenziamento delle Applicazioni di Modelli Linguistici di Nuova Generazione
AutoGen è un framework open-source sviluppato dal team di Microsoft che fornisce agli sviluppatori il potere di creare applicazioni che sfruttano il potere dei LLM utilizzando più agenti che possono conversare 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 utilizzare sia codice informatico che 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 dei LLM.

I modelli linguistici di grande portata 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à dei LLM è un affare complesso e, data la crescente domanda e le applicazioni dei 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 essere applicate a una vasta gamma di domini con complessità diverse? Il framework AutoGen tenta di rispondere alla domanda sopra menzionata utilizzando conversazioni multi-agente.
AutoGen: Componenti e Framework
Nel tentativo di ridurre la quantità di sforzo che gli sviluppatori devono mettere per creare applicazioni complesse che utilizzano le capacità dei LLM in una vasta gamma di domini, il principio fondamentale di AutoGen è consolidare e semplificare i flussi di lavoro multi-agente utilizzando conversazioni multi-agente, aumentando così la riutilizzabilità di questi agenti implementati. AutoGen utilizza più agenti che possono conversare tra loro per eseguire con successo i compiti desiderati e il framework è costruito 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 ricevere input umani.
Capacità degli Agenti Supportate da Umani, Strumenti e LLM
Le capacità di un agente sono direttamente correlate a come elabora e risponde ai messaggi, il 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à comuni 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: Molte 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 di solito hanno la capacità di utilizzare l’esecuzione del codice o l’esecuzione della funzione per eseguire gli 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 in basso dimostra la struttura di base degli agenti predefiniti nel framework AutoGen. La classe ConversableAgent può utilizzare umani, strumenti e LLM per impostazione predefinita poiché è l’astrazione di agente di livello più alto. L’UserProxyAgent e l’AssistantAgent sono classi preconfigurate di ConversableAgent e ciascuna di esse 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 funzioni o codice (quando supportato da strumenti e/o umani) agendo come proxy umano.

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

Gli agenti conversabili, consentendo l’utilizzo di agenti personalizzabili che possono conversare tra loro, 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 significativi 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 flusso di controllo, le condizioni o la sequenza in cui queste operazioni si verificano. La capacità di programmare queste operazioni consente agli sviluppatori di implementare numerosi modelli di conversazione multi-agente flessibili. Inoltre, nel framework AutoGen, i calcoli sono centrati 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 flusso di controllo nel framework AutoGen è guidato dalle conversazioni poiché è la decisione degli agenti partecipanti su quali agenti invieranno messaggi al e dal procedimento di calcolo.

La figura in basso dimostra una semplice illustrazione di come gli agenti individuali eseguono operazioni specifiche del ruolo e calcoli centrati 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 nel riquadro del 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 il calcolo corrispondente che è di natura centrata sulla conversazione, tra cui una “funzione di invio o ricezione” per l’invio o la ricezione di messaggi e una “funzione di generazione di risposta” che genera una risposta in base al messaggio ricevuto e intraprende l’azione necessaria. 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 consente 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 che utilizzano più agenti e il framework fornisce agli sviluppatori due opzioni per raggiungere ciò
- Utilizzando le chiamate di funzione.
- 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, alla capacità di risoluzione dei problemi migliorata dal framework AutoGen e al loro potenziale innovativo.
Queste sei applicazioni del framework AutoGen sono
- Risoluzione di problemi matematici.
- Chat con 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 assistere nella risoluzione di problemi matematici complessi, aprendo un mondo di potenziali applicazioni, tra cui assistenza alla ricerca AI e insegnamento personalizzato AI.

La figura in basso dimostra l’applicazione del framework AutoGen per ottenere prestazioni competitive nella risoluzione di problemi matematici.
Applicazione 2: Risposta alle domande e generazione di codice con recupero aumentato
Negli ultimi mesi, la generazione di codice con recupero aumentato è emersa come un approccio efficace e pratico per superare le limitazioni dei LLM nell’incorporazione di documenti esterni. La figura in basso dimostra l’applicazione del framework AutoGen per un recupero efficace e per migliorare le 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 in basso dimostra come gli sviluppatori possano utilizzare il framework AutoGen per progettare un sistema di conversazione a tre agenti con un agente di base per migliorare 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 in basso dimostra che l’utilizzo del framework AutoGen per creare una progettazione multi-agente aiuta a migliorare notevolmente le prestazioni, in particolare nell’esecuzione di compiti di codifica che richiedono un salvaguardia.

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

La figura in basso 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 valida le mosse sulla scacchiera in base a un set di regole standard predefinite. La figura in basso 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 dei LLM introducendo l’automazione nella pipeline del 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 i 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à dei LLM.












