Agenti alimentati da Llama 3.1: Test delle capacità di chiamata delle funzioni
Esplora le capacità di Llama 3.1 nella chiamata di funzioni e nell'utilizzo degli strumenti. Impara come sfruttare gli strumenti di osservabilità come LangTrace per monitorare le prestazioni del LLM. Scopri i punti di forza e i limiti delle diverse dimensioni del modello Llama nella gestione di compiti complessi.
24 febbraio 2025

Sblocca il potere di Llama 3.1 con questa guida completa sulle sue capacità di chiamata di funzioni. Scopri come questo modello linguistico all'avanguardia può essere sfruttato come agente intelligente, integrandosi perfettamente con le API per affrontare compiti complessi. Esplora gli aspetti di osservabilità e ottieni informazioni sulle prestazioni del modello, permettendoti di prendere decisioni informate per il tuo prossimo progetto.
Capacità di Llama 3.1 e del sistema agenziale di Meta
Configurazione di LangTrace per l'osservabilità
Test delle chiamate di funzione con i modelli Llama 3.1 70B e 8B
Chiamate di funzione parallele e chiamate di funzione sequenziali nidificate
Le difficoltà del modello Llama 3.1 8B con le chiamate di funzione
Il modello Llama 3 affinato da Groq per le chiamate di funzione
Conclusione
Capacità di Llama 3.1 e del sistema agenziale di Meta
Capacità di Llama 3.1 e del sistema agenziale di Meta
Una delle principali capacità di Llama 3.1 che Meta ha evidenziato nel rilascio è la chiamata di funzioni o l'utilizzo di strumenti. L'autore ha voluto mettere alla prova questa capacità.
L'autore ha prima impostato gli strumenti e le API necessari, inclusa l'API Groq, che fornisce una delle API più veloci per interagire con Llama 3.1. Hanno testato i modelli Llama 3.1 da 70 miliardi e 8 miliardi, nonché una versione specifica di Groq del modello da 70 miliardi.
L'autore ha iniziato con un semplice esempio di una singola chiamata di funzione, per poi passare a scenari più complessi che coinvolgono chiamate di funzioni parallele e nidificate. Hanno utilizzato la piattaforma di osservabilità LangTrace per monitorare l'utilizzo dei token e altre metriche durante gli esperimenti.
I risultati hanno mostrato che il modello Llama 3.1 da 70 miliardi ha avuto ottime prestazioni, gestendo in modo efficace sia le chiamate di funzioni parallele che quelle nidificate. Il modello da 8 miliardi ha avuto difficoltà con i compiti più complessi, mentre il modello specifico di Groq ha avuto il maggior numero di problemi, richiedendo spesso informazioni o chiarimenti aggiuntivi dall'utente.
Complessivamente, l'autore ha concluso che il modello Llama 3.1 da 70 miliardi è la migliore opzione per casi d'uso seri di chiamata di funzioni o uso agenziale, dimostrando capacità impressionanti in quest'area. L'autore ha anche evidenziato l'utilità della piattaforma di osservabilità LangTrace per monitorare e comprendere il comportamento dei modelli di linguaggio di grandi dimensioni durante questo tipo di esperimenti.
Configurazione di LangTrace per l'osservabilità
Configurazione di LangTrace per l'osservabilità
In questa sezione, configureremo LangTrace, una piattaforma di osservabilità open-source e open-telemetry per applicazioni LLM. LangTrace ci consente di tenere traccia del numero di richieste e token comunicati tra il nostro ambiente locale e l'API LLM.
Innanzi tutto, dobbiamo installare i pacchetti richiesti, inclusi l'SDK Python di LangTrace, l'SDK Python di Groq e l'SDK Python di OpenAI (anche se non stiamo utilizzando il modello LLM di OpenAI, è una dipendenza dell'SDK di LangTrace).
Successivamente, imposteremo le nostre chiavi API. Per questo esperimento, non abbiamo strettamente bisogno di LangTrace, ma può fornire informazioni preziose sull'utilizzo dei nostri token. LangTrace ha una funzionalità simile a LangSmith, una piattaforma di osservabilità di LangChain, ma supporta un'ampia gamma di fornitori, tra cui OpenAI, Groq, Cohere e Perplexity.
Utilizzeremo la versione cloud-hosted di LangTrace, quindi dovremo creare un nuovo account e un nuovo progetto. Una volta ottenuta la nostra chiave API, possiamo aggiungerla come segreto nel nostro notebook.
Con la configurazione completata, possiamo iniziare a utilizzare LangTrace per osservare l'utilizzo dei token e altre metriche durante i nostri esperimenti di chiamata di funzioni con l'API LLM di Groq. LangTrace ci fornirà informazioni dettagliate sul numero di token scambiati e sui costi associati (se applicabili, poiché Groq non addebita per l'utilizzo dell'API).
Utilizzando LangTrace, possiamo ottenere informazioni preziose sulle prestazioni e l'efficienza delle nostre applicazioni alimentate da LLM, il che può essere particolarmente utile quando si testano capacità avanzate come le chiamate di funzioni parallele e nidificate.
Test delle chiamate di funzione con i modelli Llama 3.1 70B e 8B
Test delle chiamate di funzione con i modelli Llama 3.1 70B e 8B
L'autore inizia evidenziando il rilascio da parte di Meta di un sistema agenziale intorno alla chiamata di funzioni in Llama 3.1. Poiché l'autore non ha configurato il sistema a livello locale, decide di utilizzare l'API Groq, che fornisce una delle API più veloci per interagire con Llama 3.1.
L'autore testa i modelli Llama 3.1 da 70B e 8B, nonché una versione specifica di Groq del modello da 70B. Utilizzano LangTrace, una piattaforma di osservabilità open-source per applicazioni LLM, per tenere traccia del numero di richieste e token scambiati tra l'ambiente locale e l'API LLM.
L'autore inizia con un semplice esempio, in cui il modello deve utilizzare una funzione "ottieni punteggi delle partite" per determinare il vincitore di una partita NBA. Il modello da 70B esegue questo compito con successo e l'autore esamina i dati di LangTrace per comprendere il meccanismo interno.
Successivamente, l'autore testa la capacità dei modelli di gestire le chiamate di funzioni parallele, dove l'utente chiede informazioni relative a meteo, voli, hotel e attrazioni. Il modello da 70B è in grado di decomporre il prompt iniziale, effettuare chiamate di funzioni parallele e generare una risposta completa. Il modello da 8B, tuttavia, fatica con questo compito, allucinando informazioni e non riuscendo a fornire risposte complete.
L'autore introduce quindi uno scenario più complesso, in cui l'utente vuole pianificare un viaggio da New York a Londra e poi a Tokyo, includendo meteo, voli, hotel e attrazioni. Anche in questo caso, il modello da 70B si comporta bene, mentre il modello da 8B ha difficoltà.
Infine, l'autore testa il modello da 70B specifico di Groq, che sorprendentemente fatica anche con il semplice compito di "ottieni punteggi delle partite", chiedendo ripetutamente più dettagli specifici invece di utilizzare la funzione fornita.
In conclusione, l'autore ritiene che il modello Llama 3.1 da 70B sia il migliore in termini di chiamata di funzioni e utilizzo di strumenti, in grado di gestire chiamate di funzioni parallele e nidificate. Il modello da 8B, d'altra parte, non è consigliato per compiti seri di chiamata di funzioni. Anche il modello specifico di Groq sottoperforma nei test dell'autore.
Chiamate di funzione parallele e chiamate di funzione sequenziali nidificate
Chiamate di funzione parallele e chiamate di funzione sequenziali nidificate
Il modello Llama 3.1, in particolare la versione da 70B, ha dimostrato capacità impressionanti nel gestire le chiamate di funzioni parallele e le chiamate di funzioni sequenziali nidificate.
Quando presentato con un prompt complesso per pianificare un viaggio da New York a Parigi, incluso il controllo del meteo, la ricerca di voli, hotel e attrazioni, il modello da 70B è stato in grado di decomporre il compito e effettuare chiamate di funzioni parallele per raccogliere le informazioni necessarie. Ha quindi combinato i risultati delle varie funzioni per fornire un riepilogo completo dei dettagli del viaggio.
Il modello ha anche dimostrato la sua capacità di gestire le chiamate di funzioni nidificate, dove l'output di una funzione veniva utilizzato come input per un'altra. Nello scenario di raccomandazione di film, il modello è stato in grado di prima selezionare un film in base alle preferenze dell'utente e poi raccomandare uno snack e una piattaforma di streaming adatti per guardare il film.
Invece, il modello Llama 3.1 più piccolo da 8B ha avuto difficoltà con questi casi d'uso più avanzati. Non è stato in grado di fornire in modo coerente risposte accurate e complete quando gli è stato chiesto di gestire chiamate di funzioni parallele o chiamate di funzioni nidificate. Il modello spesso allucinava informazioni o non riusciva a utilizzare in modo efficace gli strumenti forniti.
Inoltre, il modello di chiamata di funzioni specializzato di Groq ha anche sottoperformato nei test, non riuscendo a utilizzare correttamente le funzioni fornite e richiedendo input più specifici dall'utente.
Complessivamente, il modello Llama 3.1 da 70B ha dimostrato una forte capacità di gestire compiti complessi e multi-step che coinvolgono chiamate di funzioni parallele e nidificate, mostrando il suo potenziale come sistema capace di agire in modo autonomo. Il modello più piccolo da 8B e il modello di chiamata di funzioni di Groq, tuttavia, hanno ancora margini di miglioramento in queste aree.
Le difficoltà del modello Llama 3.1 8B con le chiamate di funzione
Le difficoltà del modello Llama 3.1 8B con le chiamate di funzione
Il modello Llama 3.1 da 8B ha avuto difficoltà significative con i compiti di chiamata di funzioni più complessi rispetto al modello più grande da 70B. Alcune osservazioni chiave:
-
Per la semplice funzione "ottieni punteggi delle partite", il modello da 8B è stato in grado di gestirla senza problemi, in modo simile al modello da 70B.
-
Tuttavia, quando si è trattato di chiamate di funzioni parallele per compiti come la pianificazione del viaggio, il modello da 8B è venuto meno. Non è stato in grado di fornire informazioni complete su meteo, voli, hotel e attrazioni, spesso allucinando dettagli o non riuscendo a elencare le opzioni disponibili.
-
Con l'insieme ampliato di funzioni, il modello da 8B ha avuto ancora più difficoltà, allucinando informazioni su eventi e dettagli meteorologici non richiesti.
-
Il modello da 8B ha anche avuto problemi con le chiamate di funzioni nidificate per il compito di raccomandazione di film. Non è stato in grado di utilizzare correttamente gli strumenti forniti e si è limitato a suggerire direttamente i film.
-
Anche il modello di chiamata di funzioni specializzato di Groq ha avuto prestazioni scarse nei test, chiedendo spesso più dettagli specifici invece di utilizzare in modo efficace gli strumenti forniti.
Invece, il modello Llama 3.1 da 70B ha dimostrato capacità molto più forti nella gestione delle chiamate di funzioni parallele e nidificate, fornendo risposte complete e accurate. Il modello da 8B semplicemente non sembra pronto per compiti seri di chiamata di funzioni o di tipo agenziale, e il modello specializzato di Groq ha anche sottoperformato in questi test.
Per l'osservabilità e il tracciamento di queste chiamate di funzioni LLM, la piattaforma open-source LangTrace si è rivelata uno strumento utile per monitorare l'utilizzo dei token e le interazioni con l'API.
Il modello Llama 3 affinato da Groq per le chiamate di funzione
Il modello Llama 3 affinato da Groq per le chiamate di funzione
Il modello Llama 3 affinato da Groq per la chiamata di funzioni ha avuto difficoltà nei test rispetto al più grande modello Llama 3.1 da 70B. Alcune scoperte chiave:
- Quando gli è stato chiesto di fornire il punteggio di una partita dei Warriors, il modello ha richiesto più dettagli specifici come la data o la squadra avversaria, invece di utilizzare la funzione "ottieni punteggi delle partite" fornita.
- Per le richieste di pianificazione del viaggio, il modello ha ripetutamente chiesto più dettagli specifici come le date di viaggio, invece di utilizzare le funzioni fornite per generare una risposta.
- Per il compito di raccomandazione di una serata cinematografica, il modello ha avuto difficoltà a utilizzare le funzioni nidificate e spesso si è limitato a fornire una raccomandazione diretta di un film.
Complessivamente, il modello Llama 3 affinato da Groq non ha avuto prestazioni altrettanto buone del modello Llama 3.1 da 70B nei test di chiamata di funzioni e utilizzo di strumenti. Il modello da 70B ha dimostrato forti capacità nelle chiamate di funzioni parallele e nidificate, mentre il modello affinato ha avuto difficoltà a sfruttare gli strumenti e le funzioni forniti. Potrebbero essere necessari ulteriori ottimizzazioni o affinamenti per il modello di Groq per eguagliare le prestazioni della versione più grande di Llama 3.1 in questo tipo di compiti.
Conclusione
Conclusione
Il modello LLAMA 3.1 da 70 miliardi di Groq ha avuto prestazioni eccezionali nei test di chiamata di funzioni e utilizzo di strumenti. È stato in grado di gestire le chiamate di funzioni parallele e le chiamate di funzioni nidificate con facilità, dimostrando le sue forti capacità come sistema agenziale.
Invece, il modello LLAMA 3.1 da 8 miliardi ha avuto difficoltà con questi compiti più complessi, evidenziando l'importanza di utilizzare modelli di linguaggio più grandi e più capaci per tali applicazioni.
Il modello di chiamata di funzioni specializzato di Groq, tuttavia, non ha avuto prestazioni altrettanto buone come previsto, anche con l'esempio fornito. Ciò suggerisce che il processo di affinamento per questo modello potrebbe non essere stato così efficace come sperato.
Ai fini dell'osservabilità e del tracciamento, la piattaforma open-source LangTrace AI si è rivelata uno strumento prezioso, fornendo informazioni dettagliate sull'utilizzo dei token e sulle chiamate API effettuate dai modelli di linguaggio durante gli esperimenti.
Complessivamente, i risultati dimostrano il potenziale dei grandi modelli di linguaggio come LLAMA 3.1 per la chiamata di funzioni e l'utilizzo di strumenti, ma evidenziano anche la necessità di una ricerca e uno sviluppo continui per migliorare le capacità dei modelli più piccoli e specializzati in quest'area.
FAQ
FAQ