Di Meta Platforms - about.facebook.com (direct link), Pubblico dominio, https://commons.wikimedia.org/w/index.php?curid=111957412

Primi esperimenti con Meta Llama2 su Google Colab con Huggingface

Ciao a tuttə e bentrovatə.

In questi giorni è uscito Llama2 di Meta (qui la pagina per il download): non ho resistito alla tentazione di provarlo!

IMHO il modo più veloce di fare una prova era utilizzare l’ecosistema di Huggingface; per chi non conoscesse questi signori, diciamo che stanno provando a democratizzare l’AI rilasciando tool e modelli open-source per fare di tutto.

Nonostante il caldo e una scarsa connessione cellulare sono riuscito nell’impresa e ora vi racconto come.

Indice

Due parole sul modello Llama2

Credo che prima di iniziare a parlare di codice possa essere utile spendere due parole sul modello in sé. Llama2 di Meta è un LLM (Large Language Model); si occupa di generare testo a partire da un input (è veramente una blackbox 🙂 ).

Ne sono state rilasciate tre versioni: da 7, 13 e 70 miliardi di parametri; in aggiunta a ciò ne esistono di due tipi: ottimizzato per una singola richiesta oppure ottimizzato per chatbot (si capisce in quanto viene aggiunto un -chat finale al file).

Due parole su Huggingface

Come ci informa Wikipedia, Hugging Face, Inc. è una società americana che sviluppa strumenti per la creazione di applicazioni utilizzando l’apprendimento automatico; forniscono una serie di API di alto livello per “comandare” modelli di AI (non solamente LLM ma anche text-to-image, speech-to-text, etc.).

Premessa operativa

Allora: premetto che in realtà in questo tutorial utilizzeremo Google Colab per lavorare operativamente (tranne che non abbiate tempo, voglia e competenze per settarvi una macchina in maniera decentemente carrozzata come RAM); tra l’altro io (sono anche un po’ in vacanza) ho a disposizione solo una connessione cellulare in questo momento e il modello da 13 miliardi di parametri scarica qualcosa come 30 Gb di roba e ha bisogno di circa 50 Gb di RAM per lavorare (senza chiedere cose troppo complicate, eh 🙂 ).

screenshot da google colab

Todo per avere accesso al modello

Di seguito gli step necessari per potere utilizzare proficuamente il codice fornito di seguito:

  1. Andare sulla pagina di download di Llama2 e richiedere l’accesso (https://ai.meta.com/llama/)
  2. Creare un account su Huggingface (https://huggingface.co/) con la stessa email utilizzata per il download di Llama2
  3. Sempre su Huggingface richiedere l’accesso a Llama2 tramite la loro piattaforma (io ho fatto questo passaggio ma forse adesso non è più necessario)
  4. Generare un token di autenticazione su Huggingface

Fare girare il modello

Come dicevo serve una macchina veramente ben carrozzata; io ho comprato 11,28€ di credito Pay-As-You-Go su Google Colab, altrimenti sul mio pc mi potevo scordare di vederlo girare.

In sé fare girare il modello è veramente banale: basta installare le seguenti dipendenze:

pip install transformers
pip install torch
pip install xformers

Per farle girare basta scriverne una per cella e cliccare su play, se non siete avezzi a Colab.

Per quanto riguarda il codice, basta copincollare questo blocchetto di python:

# Local Llama2-13b-chat
# Import stuffs
from transformers import pipeline
 
# Set the prompt
prompt = 'Scrivi un codice python per estrarre testo da un file pdf.'
 
# Allocate pipeline
pipe = pipeline("text-generation", model="meta-llama/Llama-2-13b-chat-hf", use_auth_token='put-your-huggingface-token-here')
 
# Call the pipeline
output = pipe(prompt, max_new_tokens=256)
 
# Print output from pipeline
print(output[0]['generated_text'])

Lascio anche il pastebin, forse a qualcuno viene più facile copiarlo da lì: https://pastebin.com/ehbeMymh.

Ricordatevi di mettere il vs token di autenticazione al posto di put-your-huggingface-token-here 🙂

Se tutto è andato bene dovreste avere in output del testo come da prompt.

Conclusioni

Che dire… secondo me con i modelli LLM opensource si apre una nuova era… certo servono ingegnti risorse per fare girare tutto correttamente ma porterà nuovi business che devono solamente essere immaginati. 🙂


Pubblicato

in

,

da

Commenti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.