Potenziare le capacità degli LLM con l’uso di strumenti
I modelli linguistici di grandi dimensioni (LLM) hanno dimostrato una notevole competenza in un’ampia gamma di attività di elaborazione del linguaggio naturale. Tuttavia, il loro vero potenziale si sblocca attraverso una perfetta integrazione con strumenti esterni come API e framework computazionali. Questi strumenti consentono agli LLM di accedere a dati in tempo reale, eseguire calcoli specifici del dominio e recuperare informazioni precise, migliorando così la loro affidabilità e versatilità.
Considera l’integrazione di un’API meteorologica, che consente agli LLM di fornire previsioni meteorologiche accurate e aggiornate. Allo stesso modo, un’API di Wikipedia può fornire agli LLM la possibilità di accedere a un vasto archivio di informazioni, consentendo loro di rispondere a query complesse con maggiore precisione. In contesti scientifici, strumenti come calcolatrici e motori simbolici possono aiutare gli LLM a superare le imprecisioni numeriche, rendendoli più affidabili per calcoli complessi.
Integrandosi perfettamente con questi strumenti, gli LLM si evolvono in sistemi robusti e consapevoli del dominio, in grado di gestire attività dinamiche e specializzate con utilità reale.
Modelli Amazon Nova e Amazon Bedrock
I modelli Amazon Nova, presentati all’AWS re:Invent nel dicembre 2024, sono progettati per offrire un eccezionale rapporto qualità-prezzo. Questi modelli offrono prestazioni all’avanguardia sui principali benchmark di comprensione del testo, pur mantenendo la redditività. La serie comprende tre varianti:
- Micro: Un modello solo testo ottimizzato per l’uso periferico, che offre prestazioni ultra efficienti.
- Lite: Un modello multimodale che raggiunge un equilibrio tra versatilità e prestazioni.
- Pro: Un modello multimodale ad alte prestazioni progettato per affrontare attività complesse.
I modelli Amazon Nova possono essere impiegati per un’ampia gamma di attività, tra cui la generazione e lo sviluppo di flussi di lavoro agentic. Questi modelli possiedono la capacità di interagire con strumenti o servizi esterni attraverso un processo noto come tool calling. Questa funzionalità è accessibile tramite la console Amazon Bedrock e API come Converse e Invoke.
Oltre a utilizzare i modelli pre-addestrati, gli sviluppatori hanno la possibilità di ottimizzare questi modelli con dati multimodali (Pro e Lite) o dati di testo (Pro, Lite e Micro). Questa flessibilità consente agli sviluppatori di raggiungere i livelli desiderati di accuratezza, latenza ed efficienza dei costi. Inoltre, gli sviluppatori possono sfruttare la console Amazon Bedrock e le API per eseguire l’ottimizzazione personalizzata self-service e la distillazione di modelli più grandi in modelli più piccoli.
Panoramica della soluzione
La soluzione prevede la preparazione di un set di dati personalizzato specificamente progettato per l’utilizzo degli strumenti. Questo set di dati viene quindi utilizzato per valutare le prestazioni dei modelli Amazon Nova tramite Amazon Bedrock, utilizzando le API Converse e Invoke. Successivamente, i modelli AmazonNova Micro e Amazon Nova Lite vengono ottimizzati utilizzando il set di dati preparato tramite Amazon Bedrock. Al termine del processo di ottimizzazione, questi modelli personalizzati vengono valutati tramite il throughput fornito.
Strumenti
L’utilizzo degli strumenti negli LLM comprende due operazioni essenziali: la selezione degli strumenti e l’estrazione o la generazione degli argomenti. Ad esempio, considera uno strumento progettato per recuperare informazioni meteorologiche per una posizione specifica. Quando viene presentata una query come “Che tempo fa a Londra in questo momento?”, l’LLM valuta i suoi strumenti disponibili per determinare se esiste uno strumento appropriato. Se viene identificato uno strumento adatto, il modello lo seleziona ed estrae gli argomenti necessari, in questo caso, “Londra”, per costruire la chiamata dello strumento.
Ogni strumento è meticolosamente definito con una specifica formale che ne delinea la funzionalità prevista, gli argomenti obbligatori e facoltativi e i tipi di dati associati. Queste definizioni precise, denominate tool config, assicurano che le chiamate degli strumenti vengano eseguite correttamente e che l’analisi degli argomenti sia allineata ai requisiti operativi dello strumento. Aderendo a questo requisito, il set di dati utilizzato in questo esempio definisce otto strumenti distinti, ciascuno con i propri argomenti e configurazioni, tutti strutturati in formato JSON. Gli otto strumenti definiti sono i seguenti:
- weather_api_call: Uno strumento personalizzato progettato per recuperare informazioni meteorologiche.
- stat_pull: Uno strumento personalizzato per l’identificazione delle statistiche.
- text_to_sql: Uno strumento personalizzato per la conversione di testo in query SQL.
- terminal: Uno strumento per l’esecuzione di script all’interno di un ambiente terminale.
- wikipedia: Uno strumento API di Wikipedia per la ricerca tra le pagine di Wikipedia.
- duckduckgo_results_json: Uno strumento di ricerca su Internet che utilizza DuckDuckGo per eseguire ricerche.
- youtube_search: Uno strumento di ricerca API di YouTube per la ricerca di elenchi di video.
- pubmed_search: Uno strumento di ricerca PubMed per la ricerca di abstract di PubMed.
Set di dati
Il set di dati utilizzato in questa soluzione è un set di dati di chiamata di strumenti sintetici, creato con l’assistenza di un modello di base (FM) di Amazon Bedrock e successivamente convalidato e regolato manualmente. Questo set di dati è stato sviluppato per l’insieme di otto strumenti precedentemente discussi, con l’obiettivo di generare una raccolta diversificata di domande e invocazioni di strumenti che consentano a un altro modello di apprendere da questi esempi e generalizzare a invocazioni di strumenti non visibili.
Ogni voce all’interno del set di dati è strutturata come un oggetto JSON, contenente coppie chiave-valore che definiscono la domanda (una query utente in linguaggio naturale per il modello), lo strumento di verità di base richiesto per rispondere alla query utente, i suoi argomenti (un dizionario contenente i parametri necessari per eseguire lo strumento) e vincoli aggiuntivi come order_matters: boolean
, che indica se l’ordine degli argomenti è fondamentale, e arg_pattern: optional
, un’espressione regolare (regex) per la convalida o la formattazione degli argomenti. Queste etichette di verità di base vengono utilizzate per supervisionare l’addestramento dei modelli Amazon Nova pre-addestrati, adattandoli all’uso degli strumenti. Questo processo, noto come supervised fine-tuning, viene ulteriormente esplorato nelle sezioni seguenti.
Il set di addestramento comprende 560 domande, mentre il set di test contiene 120 domande. Il set di test è strutturato per includere 15 domande per categoria di strumento, per un totale di 120 domande.
Preparazione del set di dati per Amazon Nova
Per utilizzare efficacemente questo set di dati con i modelli Amazon Nova, è necessario formattare i dati in base a un modello di chat specifico. La chiamata di strumenti nativa incorpora un livello di traduzione che formatta gli input nel formato appropriato prima di passarli al modello. In questa soluzione, viene adottato un approccio di utilizzo degli strumenti fai-da-te, utilizzando un modello di prompt personalizzato. Nello specifico, il prompt di sistema, il messaggio dell’utente incorporato con la configurazione dello strumento e le etichette di verità di base devono essere aggiunti come messaggio dell’assistente.
Caricamento del set di dati su Amazon S3
Questo passaggio è essenziale per consentire ad Amazon Bedrock di accedere ai dati di addestramento durante il processo di ottimizzazione. Il set di dati può essere caricato tramite la console Amazon Simple Storage Service (Amazon S3) o a livello di programmazione.
Chiamata di strumenti con modelli di base tramite l’API Amazon Bedrock
Con il set di dati di utilizzo degli strumenti creato e formattato come richiesto, può essere utilizzato per testare i modelli Amazon Nova. Sia le API Converse che Invoke possono essere utilizzate per l’uso degli strumenti in Amazon Bedrock. L’API Converse abilita conversazioni dinamiche e sensibili al contesto, consentendo ai modelli di impegnarsi in dialoghi multi-turno, mentre l’API Invoke consente agli utenti di chiamare e interagire con i modelli sottostanti all’interno di Amazon Bedrock.
Per utilizzare l’API Converse, i messaggi, il prompt di sistema (se presente) e la configurazione dello strumento vengono inviati direttamente all’API.
Per analizzare lo strumento e gli argomenti dalla risposta LLM, considera la domanda: “Ehi, qual è la temperatura a Parigi in questo momento?”. L’output verrà analizzato per identificare lo strumento e gli argomenti necessari per rispondere alla domanda.
Ottimizzazione dei modelli Amazon Nova per un utilizzo degli strumenti migliorato
L’ottimizzazione è un passaggio cruciale nell’adattamento dei modelli linguistici pre-addestrati come Amazon Nova a attività specifiche. Addestrando il modello su un set di dati adattato all’applicazione desiderata, il modello può imparare a eseguire l’attività con maggiore accuratezza ed efficienza. Nel contesto dell’utilizzo degli strumenti, l’ottimizzazione può migliorare significativamente la capacità del modello di selezionare lo strumento appropriato ed estrarre gli argomenti corretti.
Il processo di ottimizzazione prevede la regolazione dei parametri interni del modello per ridurre al minimo la differenza tra le sue previsioni e le etichette di verità di base nel set di dati di addestramento. Ciò si ottiene in genere attraverso un processo iterativo, in cui il modello viene ripetutamente esposto ai dati di addestramento e i suoi parametri vengono regolati in base agli errori osservati.
Preparazione del set di dati per l’ottimizzazione
Il set di dati per l’ottimizzazione deve essere accuratamente curato per riflettere i tipi di domande e invocazioni di strumenti che il modello dovrebbe gestire in scenari reali. Il set di dati deve includere una vasta gamma di esempi, che coprano diverse categorie di strumenti e modelli di argomenti.
Ogni esempio nel set di dati deve essere costituito da una domanda, lo strumento corrispondente da chiamare e gli argomenti necessari per eseguire lo strumento. Gli argomenti devono essere formattati in modo strutturato, in genere come un oggetto JSON.
Processo di ottimizzazione
Il processo di ottimizzazione può essere eseguito utilizzando la console Amazon Bedrock o le API. Il processo prevede la specifica del modello da ottimizzare, il set di dati per l’ottimizzazione e i parametri di addestramento desiderati.
I parametri di addestramento controllano vari aspetti del processo di ottimizzazione, come il tasso di apprendimento, la dimensione del batch e il numero di epoche. Il tasso di apprendimento determina l’entità delle regolazioni dei parametri effettuate durante ogni iterazione. La dimensione del batch determina il numero di esempi elaborati in ogni iterazione. Il numero di epoche determina il numero di volte in cui il modello viene esposto all’intero set di dati di addestramento.
Valutazione del modello ottimizzato
Al termine del processo di ottimizzazione, è essenziale valutare le prestazioni del modello ottimizzato. Ciò può essere fatto testando il modello su un set di dati di test separato che non è stato utilizzato durante il processo di ottimizzazione.
Il set di dati di test deve essere rappresentativo dei tipi di domande e invocazioni di strumenti che il modello dovrebbe gestire in scenari reali. Le prestazioni del modello possono essere valutate misurando metriche come accuratezza, precisione, richiamo e punteggio F1.
Vantaggi della personalizzazione dei modelli Amazon Nova per l’utilizzo degli strumenti
La personalizzazione dei modelli Amazon Nova per l’utilizzo degli strumenti offre numerosi vantaggi:
- Accuratezza migliorata: L’ottimizzazione del modello su un set di dati specifico per l’attività può migliorare significativamente l’accuratezza della selezione degli strumenti e dell’estrazione degli argomenti.
- Maggiore efficienza: I modelli ottimizzati possono spesso eseguire attività di utilizzo degli strumenti in modo più efficiente rispetto ai modelli pre-addestrati.
- Maggiore adattabilità: L’ottimizzazione consente al modello di adattarsi a domini e casi d’uso specifici.
- Costi ridotti: In alcuni casi, l’ottimizzazione può ridurre le risorse computazionali necessarie per eseguire le attività di utilizzo degli strumenti.
Conclusione
La personalizzazione dei modelli Amazon Nova per l’utilizzo degli strumenti è una tecnica preziosa per migliorare le prestazioni e l’adattabilità degli LLM. Ottimizzando il modello su un set di dati specifico per l’attività, gli sviluppatori possono migliorare significativamente l’accuratezza, l’efficienza e l’adattabilità delle applicazioni di utilizzo degli strumenti. Man mano che le industrie richiedono sempre più soluzioni di intelligenza artificiale in grado di prendere decisioni informate, la personalizzazione degli LLM per l’utilizzo degli strumenti diventerà sempre più importante.