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
- Due parole su Huggingface
- Premessa operativa
- Todo per avere accesso al modello
- Fare girare il modello
- Conclusioni
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 🙂 ).

Todo per avere accesso al modello
Di seguito gli step necessari per potere utilizzare proficuamente il codice fornito di seguito:
- Andare sulla pagina di download di Llama2 e richiedere l’accesso (https://ai.meta.com/llama/)
- Creare un account su Huggingface (https://huggingface.co/) con la stessa email utilizzata per il download di Llama2
- Sempre su Huggingface richiedere l’accesso a Llama2 tramite la loro piattaforma (io ho fatto questo passaggio ma forse adesso non è più necessario)
- 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. 🙂
Civil Engineer by mistake of youth, Seo Engineer by vocation. Antifascist. Antiracist. He/Him. μολὼν λαβέ! Want more? Google Me!
Lascia un commento