Nei giorni scorsi abbiamo parlato del rivoluzionario lancio di OpenAI o1, una coppia di modelli generativi che affondano le radici nel concetto di chain-of-thought. L’obiettivo è quello di introdurre funzionalità di “ragionamento” multi-step che consentano al Large Language Model (LLM) di fornire risposte più precise e pertinenti. Il problema complesso di partenza è infatti suddiviso in una serie di passaggi più semplici, offrendo risultati eccellenti nelle elaborazioni aritmetiche, nella logica simbolica e nel ragionamento logico.
Abbiamo descritto nel dettaglio il segreto di OpenAI o1 e il suo funzionamento, osservando che l’idea – ancora una volta – sembra derivare da un documento di ricerca pubblicato da Google e dall’Università di Tokyo nel 2022.
G1: creazione di catene di ragionamento dinamiche con Llama-3.1 e Groq
Pensavate che le abilità di reasoning fossero prerogativa esclusiva di OpenAI o1? Assolutamente no. Benjamin Klieger, dell’Università di Stanford, spiega di aver sviluppato un progetto sperimentale che ha come obiettivo proprio quello di migliorare le capacità di ragionamento dei LLM aperti attraverso strategie di prompting avanzate.
Utilizzando Llama-3.1 70b su Groq, G1 – questo il nome del progetto realizzato da Klieger – genera catene di ragionamento dinamiche simili a quelle adoperate da OpenAI o1, con l’obiettivo di risolvere problemi logici complessi. A differenza di o1, che provvede a nasconderli “dietro le quinte”, G1 visualizza tutti i passaggi del meccanismo di “ragionamento”, fornendo agli utenti un’interfaccia aperta e accessibile per l’interpretazione delle soluzioni.
Llama-3.1 70b e Groq
Llama-3.1 70b è una versione avanzata dell’LLM sviluppato da Meta per svolgere attività di comprensione del linguaggio naturale. Il numero 70b indica che il modello è composto da 70 miliardi di parametri, un aspetto che ne migliora l’accuratezza e la capacità di affrontare problemi complessi rispetto a versioni con meno parametri.
Il modello è concesso a tutti gli interessati sotto una licenza che permette agli sviluppatori di utilizzare i risultati per migliorare altri sistemi di intelligenza artificiale. La licenza promuove un uso ampio e flessibile dei modelli Llama, inclusa la possibilità di integrazione nelle applicazioni commerciali, a condizione che non si superino i 700 milioni di utenti attivi mensili.
Groq non è un chatbot come ChatGPT quanto piuttosto una piattaforma che consente agli sviluppatori di eseguire modelli di linguaggio preaddestrati con una notevole velocità, permettendo interazioni quasi in tempo reale. L’architettura hardware Language Processing Unit (LPU), sui cui si basa Groq, è progettata specificamente per supportare i LLM garantendo prestazioni fino a 10 volte superiori rispetto alle tradizionali GPU.
Funzionamento di G1
La soluzione G1, proposta da Klieger, è open source e sfrutta le potenzialità delle chain-of-thought. Ad ogni fase, il sistema valuta se continuare con ulteriori passaggi logici o fornire la risposta finale. L’innovazione risiede nella combinazione di strategie di ragionamento multiple: il modello deve esplorare risposte alternative, riesaminare soluzioni precedenti e riconoscere i propri limiti. La tecnica ha dimostrato un’accuratezza del 70% nel risolvere lo “strawberry problem“, un noto test di logica. Ad esempio: Quante lettere “r” ci sono nella parola inglese “strawberry”? Basti pensare che senza alcuna forma di chain-of-thought Llama-3.1 70b non fornisce mai una risposta esatta (0%), mentre ChatGPT-4o non supera il 30% di accuratezza.
Il prompt di G1 invita il LLM a seguire alcune importanti best practice, utilizzando almeno tre metodi distinti per derivare la risposta corretta. Ogni passaggio è descritto dettagliatamente in formato JSON, con i titoli che descrivono il “ragionamento” di volta in volta utilizzato. Inoltre, il prompt incoraggia l’uso di approcci alternativi per correggere eventuali errori e riesaminare a fondo le soluzioni proposte.
G1 rappresenta un’opportunità per la comunità open source di esplorare nuove tecniche di ragionamento con i modelli LLM, senza ricorrere al reinforcement learning su larga scala. Sebbene il sistema sia ancora in fase sperimentale, i risultati preliminari mostrano un miglioramento significativo nella risoluzione di problemi logici rispetto ai modelli tradizionali.
Come provare G1 sui propri sistemi
Per provare G1, si possono seguire alcuni passaggi per configurare l’ambiente e avviare l’applicazione. In primis si allestisce un ambiente virtuale (opzionale ma consigliato):
python3 -m venv venv
source venv/bin/activate # Su Windows:`venv\Scripts\activate`
A questo punto è possibile clonare il repository GitHub di G1 e installare le dipendenze:
git clone https://github.com/bklieger-groq/g1.git
cd g1
pip install -r requirements.txt
Prima di eseguire l’app, è indispensabile impostare l’API key di Groq. È possibile farlo esportando la variabile di ambiente nel terminale:
export GROQ_API_KEY=your_api_key_here
Per utilizzare l’interfaccia Streamlit, utile per interagire con l’app G1, basta eseguire il seguente comando:
streamlit run app.py
Una volta avviata l’applicazione, ci si può interfacciare con G1 tramite Streamlit. È possibile inserire le domande o i problemi logici da risolvere e osservare come il modello sviluppa catene di ragionamento per arrivare alla risposta più corretta.
Credit immagine in apertura: iStock.com – BlackJack3D