Intelligenza artificiale
Llama 2: Un’analisi approfondita del concorrente open-source di ChatGPT

Large Language Models (LLM) in grado di eseguire compiti di ragionamento complesso hanno mostrato promettenti risultati in domini specializzati come la programmazione e la scrittura creativa. Tuttavia, il mondo degli LLM non è semplicemente un paradiso plug-and-play; ci sono sfide nell’usabilità, nella sicurezza e nelle richieste computazionali. In questo articolo, esploreremo approfonditamente le capacità di Llama 2, fornendo una dettagliata guida per la configurazione di questo LLM ad alte prestazioni tramite Hugging Face e T4 GPU su Google Colab.
Sviluppato da Meta in partnership con Microsoft, questo modello linguistico open-source mira a ridefinire i confini dell’intelligenza artificiale generativa e della comprensione del linguaggio naturale. Llama 2 non è solo un altro modello statistico addestrato su terabyte di dati; è l’incarnazione di una filosofia. Una filosofia che sottolinea l’approccio open-source come fondamento dello sviluppo dell’IA, in particolare nello spazio dell’IA generativa.
Llama 2 e il suo sostituto ottimizzato per il dialogo, Llama 2-Chat, sono dotati di fino a 70 miliardi di parametri. Sottoposti a un processo di fine-tuning progettato per allinearli strettamente con le preferenze umane, rendendoli più sicuri ed efficaci di molti altri modelli pubblicamente disponibili. Questo livello di granularità nel fine-tuning è spesso riservato ai modelli LLM “chiusi” come ChatGPT e BARD, che non sono generalmente disponibili per la verifica pubblica o la personalizzazione.
Analisi tecnica approfondita di Llama 2
Per l’addestramento del modello Llama 2; come i suoi predecessori, utilizza un’architettura auto-regressiva transformer, pre-addestrata su un ampio corpus di dati auto-supervisionati. Tuttavia, aggiunge un ulteriore livello di sofisticazione utilizzando il Reinforcement Learning con feedback umano (RLHF) per allinearsi meglio con il comportamento e le preferenze umane. Ciò è computazionalmente costoso ma vitale per migliorare la sicurezza e l’efficacia del modello.
Pre-addestramento e efficienza dei dati
L’innovazione fondamentale di Llama 2 risiede nel suo regime di pre-addestramento. Il modello prende spunto dal suo predecessore, Llama 1, ma introduce diverse migliorie cruciali per elevare le sue prestazioni. In particolare, un aumento del 40% del numero totale di token addestrati e una duplice espansione della lunghezza del contesto si distinguono. Inoltre, il modello sfrutta l’attenzione raggruppata (GQA) per amplificare la scalabilità dell’inferenza.
Fine-tuning supervisionato (SFT) e Reinforcement Learning con feedback umano (RLHF)
Llama-2-chat è stato sottoposto a un rigoroso fine-tuning utilizzando sia SFT che Reinforcement Learning con feedback umano (RLHF). In questo contesto, SFT serve come componente integrale del framework RLHF, raffinando le risposte del modello per allinearle strettamente con le preferenze e le aspettative umane.
OpenAI ha fornito un’illustrazione istruttiva che spiega le metodologie SFT e RLHF impiegate in InstructGPT. Allo stesso modo, LLaMa 2 sfrutta queste tecniche di addestramento avanzate per ottimizzare le prestazioni del modello.
Step 1 nell’immagine seguente si concentra sul fine-tuning supervisionato (SFT), mentre i passaggi successivi completano il processo di Reinforcement Learning con feedback umano (RLHF).
Il fine-tuning supervisionato (SFT) è un processo specializzato volto a ottimizzare un modello linguistico pre-addestrato per un compito downstream specifico. A differenza dei metodi non supervisionati, che non richiedono la convalida dei dati, SFT impiega un set di dati che è stato pre-convalidato e etichettato.
In generale, la creazione di questi set di dati è costosa e richiede molto tempo. L’approccio di Llama 2 è stato quello della qualità sulla quantità. Con solo 27.540 annotazioni, il team di Meta ha raggiunto livelli di prestazione competitivi con gli annotatori umani. Ciò si allinea bene con studi recenti che mostrano come anche set di dati limitati ma puliti possano guidare risultati di alta qualità.
Nel processo SFT, il modello linguistico pre-addestrato è esposto a un set di dati etichettati, dove entrano in gioco gli algoritmi di apprendimento supervisionato. I pesi interni del modello vengono ricambiati in base ai gradienti calcolati da una funzione di perdita specifica del compito.
Questa ottimizzazione consente al modello di cogliere i pattern intricati e le sfumature incorporate nel set di dati etichettato. Di conseguenza, il modello non è solo uno strumento generalizzato, ma si evolve in un asset specializzato, adatto a eseguire il compito target con un alto grado di accuratezza.
Il reinforcement learning è il passaggio successivo, volto a allineare il comportamento del modello con le preferenze umane più da vicino.
La fase di fine-tuning ha sfruttato il Reinforcement Learning con feedback umano (RLHF), impiegando tecniche come Importance Sampling e Proximal Policy Optimization per introdurre rumore algoritmico, evitando così gli optimum locali. Questo fine-tuning iterativo non solo ha migliorato il modello, ma ha anche allineato la sua uscita con le aspettative umane.
Llama 2-Chat ha utilizzato un protocollo di confronto binario per raccogliere dati di preferenza umana, segnando una tendenza significativa verso approcci più qualitativi. Questo meccanismo ha informato i Modelli di Ricompensa, che sono stati utilizzati per fine-tuning il modello di intelligenza artificiale conversazionale.
Ghost Attention: dialoghi multi-turn
Meta ha introdotto una nuova funzionalità, Ghost Attention (GAtt), progettata per migliorare le prestazioni di Llama 2 nei dialoghi multi-turn. Ciò risolve efficacemente il problema persistente della perdita di contesto nelle conversazioni in corso. GAtt agisce come un ancoraggio, collegando le istruzioni iniziali a tutti i messaggi utente successivi. Abbinato con tecniche di reinforcement learning, aiuta a produrre risposte coerenti, rilevanti e allineate con l’utente su dialoghi più lunghi.
Da Meta Git Repository utilizzando download.sh
- Visita il sito web di Meta: Naviga fino al sito ufficiale di Llama 2 di Meta e clicca su ‘Scarica il modello’
- Compila i dettagli: Leggi e accetta i termini e le condizioni per procedere.
- Conferma email: Una volta inviato il modulo, riceverai un’email da Meta con un link per scaricare il modello dal loro repository Git.
- Esegui download.sh: Clona il repository Git ed esegui lo script
download.sh. Questo script ti chiederà di autenticarti utilizzando un URL da Meta che scade in 24 ore. Sceglierai anche la dimensione del modello—7B, 13B o 70B.
Da Hugging Face
- Ricevi l’email di accettazione: Dopo aver ottenuto l’accesso da Meta, vai su Hugging Face.
- Richiedi l’accesso: Scegli il modello desiderato e invia una richiesta per ottenere l’accesso.
- Conferma: Aspetta un’email di ‘accesso concesso’ entro 1-2 giorni.
- Genera token di accesso: Naviga fino alle ‘Impostazioni’ nel tuo account Hugging Face per creare token di accesso.
La versione 4.31 di Transformers è completamente compatibile con LLaMa 2 e apre molte funzionalità all’interno dell’ecosistema Hugging Face. Dalle script di addestramento e inferenza a 4-bit quantization con bitsandbytes e Parameter Efficient Fine-tuning (PEFT), il toolkit è estensivo. Per iniziare, assicurati di utilizzare l’ultima versione di Transformers e di essere connesso al tuo account Hugging Face.
Ecco una guida semplificata per eseguire l’inferenza del modello LLaMa 2 in un ambiente Google Colab, sfruttando una GPU:
Installazione del pacchetto
!pip install transformers !huggingface-cli login
Importa le librerie Python necessarie.
from transformers import AutoTokenizer import transformers import torch
Inizializza il modello e il tokenizzatore
In questo passaggio, specifica quale modello Llama 2 userai. Per questa guida, utilizziamo meta-llama/Llama-2-7b-chat-hf.
model = "meta-llama/Llama-2-7b-chat-hf" tokenizer = AutoTokenizer.from_pretrained(model)















