Scatena gli agenti autonomi con i migliori modelli open-source di Qwen-Agent
Esplora il potere dei modelli open-source di Qwen-Agent e impara come liberare agenti autonomi attraverso la chiamata di funzioni e la creazione di agenti personalizzati. Scopri l'impatto della quantizzazione sulle prestazioni dei modelli per applicazioni del mondo reale.
14 febbraio 2025

Sblocca il potere degli agenti autonomi con Qwen-Agent, il rivoluzionario framework open-source che sfrutta i migliori modelli open-weight disponibili. Scopri come integrare in modo fluido le chiamate di funzione e i flussi di lavoro basati su agenti per costruire applicazioni intelligenti in grado di interagire con il mondo reale e adattarsi alle esigenze degli utenti.
Costruisci agenti autonomi con il miglior modello di peso aperto
Chiamata di funzione e agenti: comprendere le differenze
Iniziare con gli agenti Qwen: chiamata di funzione e utilizzo degli agenti
L'impatto della quantizzazione sulle prestazioni dei grandi modelli di linguaggio
Costruisci agenti autonomi con il miglior modello di peso aperto
Costruisci agenti autonomi con il miglior modello di peso aperto
I modelli Quen 2 di Alibaba sono i più recenti e migliori modelli di linguaggio open-source, offrendo capacità impressionanti in una vasta gamma di attività. Questi modelli vanno da 500 milioni a 72 miliardi di parametri, con i modelli più grandi che supportano fino a 128.000 token - un miglioramento significativo rispetto al limite di 8.000 token di GPT-3.
Una delle caratteristiche chiave di Quen 2 è la sua forte prestazione nella codifica e nella matematica, nonché la sua capacità di gestire la comprensione del contesto lungo - cruciale per le applicazioni del mondo reale. Inoltre, i modelli offrono supporto per un set diversificato di lingue, incluso un focus sulle lingue del Medio Oriente e del Sud-Est asiatico, il che rappresenta un cambiamento positivo rispetto al focus sulle lingue occidentali di molti altri modelli.
Per sfruttare la potenza di Quen 2, possiamo utilizzare il framework Quen Agent, che fornisce l'accesso a un assistente browser integrato, un interprete di codice e la possibilità di creare assistenti personalizzati. Ciò ci consente di costruire agenti autonomi in grado di pianificare, eseguire e adattare le loro azioni in base al compito da svolgere.
In questa sezione, esploreremo come utilizzare Quen Agent per creare un agente di generazione di immagini personalizzato. L'agente sarà in grado di generare immagini in base all'input dell'utente, scaricare le immagini generate e persino aggiornare il proprio codice se incontra problemi. Combinando la potente comprensione del linguaggio di Quen 2 con le capacità di pianificazione ed esecuzione di Quen Agent, possiamo creare agenti veramente autonomi e capaci in grado di affrontare una vasta gamma di attività.
Chiamata di funzione e agenti: comprendere le differenze
Chiamata di funzione e agenti: comprendere le differenze
La chiamata di funzioni e gli agenti sono due concetti distinti nel mondo dei modelli di linguaggio su larga scala (LLM). Ecco una spiegazione concisa delle differenze tra i due:
Chiamata di funzioni (uso degli strumenti):
- La chiamata di funzioni, o l'uso degli strumenti, consente all'LLM di interagire con il mondo esterno accedendo ad API o funzioni esterne.
- L'LLM determina quale funzione utilizzare in base all'input dell'utente, genera gli input necessari per la funzione e restituisce i risultati all'utente.
- Tuttavia, l'LLM stesso non può eseguire la chiamata di funzione; l'utente o un sistema separato deve effettuare la chiamata di funzione effettiva e restituire i risultati all'LLM.
Agenti:
- Gli agenti sono istanze più sofisticate di LLM che hanno accesso a un set di strumenti, proprio come nella chiamata di funzioni.
- Gli agenti possono anche eseguire la pianificazione, scomporre i compiti in sotto-obiettivi ed eseguire azioni utilizzando gli strumenti disponibili.
- Gli agenti hanno accesso sia alla memoria a breve termine che a quella a lungo termine, consentendo loro di tenere traccia dei loro progressi e pianificare i loro prossimi passi di conseguenza.
- Gli agenti sono fondamentali per rendere gli LLM veramente utili nelle applicazioni del mondo reale, in quanto possono eseguire in modo autonomo compiti complessi.
In sintesi, la chiamata di funzioni è un'interazione più limitata in cui l'LLM può solo generare gli input necessari per una funzione, mentre gli agenti hanno la capacità di pianificare, eseguire e adattare le loro azioni per raggiungere un risultato desiderato.
Iniziare con gli agenti Qwen: chiamata di funzione e utilizzo degli agenti
Iniziare con gli agenti Qwen: chiamata di funzione e utilizzo degli agenti
Per iniziare con gli agenti Qwen, utilizzeremo la versione da 72 miliardi di Qwen 2 ed eseguiremo il tutto in locale utilizzando AMA. È anche possibile utilizzare il loro API esterno, ma per utilizzare Qwen Agent, abbiamo due opzioni:
- Installare il pacchetto utilizzando pip come pacchetto Python indipendente.
- Clonare il repository ed eseguire l'installazione in locale se si desidera la versione di sviluppo più recente.
Eseguirò il tutto in locale utilizzando AMA. Innanzitutto, avvia un server AMA e utilizza il comando olama Run Qwen 272 billion
. Questo scaricherà AMA e il modello, il che potrebbe richiedere del tempo a seconda della velocità di Internet.
Successivamente, crea un ambiente virtuale utilizzando conda e attivalo:
conda create -n qwen python=3.10
conda activate qwen
Ora, installa il pacchetto Qwen Agent utilizzando pip:
pip install qwen-agent
Inizieremo con la chiamata di funzioni. Il modello deve scegliere la funzione da utilizzare, determinare gli input e passarli a un interprete Python. L'interprete eseguirà la funzione, otterrà la risposta e la restituirà all'LLM.
Ecco un esempio di chiamata di funzione per ottenere il meteo attuale:
# Crea l'istanza LLM
llm = QwenLLM(base_api="http://localhost:8000/v1", model_name="qwen-2-72b", version="v1")
# Messaggio dell'utente
messaggio_utente = "Che tempo fa a Parigi?"
# Definisci la funzione
call_funzione = {
"description": "Ottieni il meteo attuale per una determinata posizione",
"function": "get_weather",
"arguments": {
"location": "Parigi",
"unit": "celsius"
}
}
# Chiama l'LLM ed esegui la funzione
risultato = llm.call_with_function(messaggio_utente, [call_funzione])
print(risultato)
Questo genererà le informazioni sul meteo attuale per Parigi e le restituirà all'LLM.
Ora, diamo un'occhiata a un esempio di utilizzo di Qwen Agent. Creeremo un agente personalizzato in grado di generare immagini e scaricarle in una cartella locale. L'agente utilizzerà uno strumento personalizzato per la generazione di immagini e l'interprete di codice per eseguire il codice necessario.
from qwen_agent import Assistant, CodeInterpreter, CustomTool
# Definisci lo strumento personalizzato per la generazione di immagini
class MyImageGeneration(CustomTool):
def __init__(self):
self.description = "Genera immagini in base all'input dell'utente utilizzando l'API di Pollinations.AI."
def run(self, args):
# Genera l'immagine utilizzando l'API
url_immagine = genera_immagine(args["prompt"])
# Scarica l'immagine in una cartella locale
scarica_immagine(url_immagine, "immagini")
return "Immagine generata e salvata nella cartella 'immagini'."
# Crea l'agente
agente = Assistant(
llm=QwenLLM(base_api="http://localhost:8000/v1", model_name="qwen-2-72b", version="v1"),
tools=[MyImageGeneration(), CodeInterpreter()]
)
# Chiedi all'agente di generare un'immagine
agente.run("Crea un'immagine di una lama che indossa occhiali da sole.")
Questo agente utilizzerà lo strumento personalizzato di generazione di immagini per creare l'immagine, scaricarla nella cartella "immagini" e restituire il risultato.
Infine, diamo un'occhiata all'impatto della quantizzazione sulle prestazioni dei modelli Qwen. Il team di Qwen ha fornito valutazioni dettagliate su metriche MML, C-Evolve e I-Evolve per diversi livelli di quantizzazione.
I risultati mostrano che per i modelli più grandi (72 miliardi), la differenza tra la quantizzazione a 16 bit e a 8 bit non è significativa, ma la quantizzazione a 4 bit può avere un impatto più evidente sulle prestazioni. Per i modelli più piccoli (0,5 miliardi), le differenze sono più pronunciate, con la quantizzazione a 4 bit che mostra un calo di 5 punti nei punteggi medi.
In generale, si consiglia di utilizzare almeno la quantizzazione a 8 bit o a 16 bit per le distribuzioni di produzione, in quanto la quantizzazione a 4 bit può avere un impatto più significativo sulle prestazioni del modello, soprattutto per i modelli più piccoli.
FAQ
FAQ