Corso
Di recente ho scritto un articolo su come eseguire LLM con Python e Torchchat. Torchchat è un framework flessibile pensato per eseguire LLM in modo efficiente su varie piattaforme hardware. Eseguire un LLM in locale offre diversi vantaggi, tra cui:
- Accesso offline: dato che il modello gira sul nostro dispositivo, non serve essere connessi a Internet per usarlo.
- Privacy: poiché eseguiamo noi stessi il modello, i prompt e i dati inseriti restano privati.
- Costo: possiamo eseguire il modello gratuitamente.
In seguito al recente rilascio di Llama 3.2 da parte di Facebook, ho deciso di ampliare il mio articolo precedente per spiegare come distribuirlo sui nostri telefoni, concentrandomi su Android.
Ecco una panoramica ad alto livello di ciò che dobbiamo fare:
- Scaricare i file del modello, che sono liberamente disponibili perché il modello è open source.
- Generare i file necessari per eseguire il modello su un dispositivo mobile.
- Configurare un'app di chat Android che esegua il modello.
Torchchat offre una soluzione per tutti questi passaggi. Dispone di comandi per scaricare il modello e generare i file necessari per eseguirlo. In più, include un'app demo di chat per Android, così non dobbiamo crearne una da zero.
Scaricare Torchchat
Il primo passo è clonare il repository Torchchat usando Git:
git clone git@github.com:pytorch/torchchat.git
Possiamo farlo anche senza Git scaricandolo con il pulsante di download su GitHub:

Nota importante: dopo aver clonato (o scaricato) il repository, sul nostro computer sarà disponibile una cartella chiamata torchchat. Tutti i comandi menzionati in questo articolo vanno eseguiti all'interno di quella cartella.
Installazione di Torchchat
Supponiamo che Python e Anaconda siano già installati. In caso contrario, consulta questi due tutorial: Installare Anaconda su Windows e Come installare Anaconda su Mac OS X.
In alternativa, segui i passaggi sul repository Torchchat, che usa un ambiente virtuale invece di Anaconda.
Iniziamo creando un ambiente Anaconda con il comando:
conda create -yn llama python=3.10.0
Questo crea un ambiente chiamato llama che usa la versione 3.10 di Python. L'opzione -yn combina -y e -n:
- L'opzione
-yconsente al comando di procedere senza chiedere conferma prima di creare l'ambiente. - L'opzione
-nspecifica il nome dell'ambiente, che in questo caso èllama. Dopo aver creato l'ambiente, lo attiviamo e installiamo le dipendenze.
Per attivarlo, usiamo il seguente comando:
conda activate llama
Per installare le dipendenze necessarie, utilizziamo lo script di installazione fornito da TorchChat:
./install/install_requirements.sh
Scaricare il modello Llama 3.2 1B
In questo tutorial useremo il modello Llama 3.2 1B, un modello da un miliardo di parametri. Possiamo scaricarlo con il comando:
python torchchat.py download llama3.2-1b
Il processo è lo stesso per sperimentare con altri modelli: dobbiamo sostituire llama3.2-1b con l'alias del modello desiderato. È importante selezionare solo i modelli contrassegnati come adatti al mobile.
Torchchat sfrutta Hugging Face per la gestione dei modelli. Di conseguenza, per scaricare un modello serve un account Hugging Face. Per una guida completa su come creare un account ed effettuare l'accesso dal terminale, consulta la sezione "Downloading a model" in questo tutorial su Torchchat.
In alternativa, il modello può essere scaricato anche dal sito ufficiale di Llama. Tuttavia, usare Torchchat è più comodo, perché facilita l'esportazione dei file del modello per la distribuzione su mobile.
Esportare il modello
Per distribuire su un dispositivo mobile, esportiamo prima il modello per generare l'.pte artifact, un file usato da Executorch. Executorch è il motore che Torchchat utilizza per eseguire l'LLM su un dispositivo mobile.
Per generare il file PTE, dobbiamo prima installare Executorch. Per farlo, esegui i seguenti comandi:
export TORCHCHAT_ROOT=${PWD}
./torchchat/utils/scripts/install_et.sh
Al termine dell'installazione, possiamo generare il file PTE con il comando:
python torchchat.py export llama3.2-1b --quantize torchchat/quant_config/mobile.json --output-pte-path llama3_2-1b.pte
Questo comando quantizzerà anche il modello, riducendone le dimensioni e aumentando la velocità di inferenza. Usiamo la configurazione predefinita di Torchchat in torchchat/quant_config/mobile.json.
Al termine del processo, nella cartella torchchat verrà creato un file chiamato llama3_2-1b.pte.
Preparare l'app mobile
Torchchat offre un'app demo per Android che ci permette di usare Llama direttamente sugli smartphone. Questo progetto demo si trova nella cartella Torchchat scaricata. Il percorso relativo è torchchat/edge/android/torchchat. Nota che il primo riferimento a torchchat nel percorso indica una cartella all'interno del repository, non la cartella radice del repository.
Scaricare e configurare la libreria Java
- Scarica il file
.aarfornito da Torchchat. Contiene la libreria Java e la corrispondente libreria JNI per compilare ed eseguire l'app. - Vai alla directory dell'app:
torchchat/edge/android/torchchat/app/ - Crea una directory chiamata
libs(se non esiste già) - Rinomina il file scaricato in
executorch.aare incollalo nella cartellalibs.
Caricare il progetto Android su Android Studio
Scarica e installa Android Studio dal sito ufficiale. Una volta completata l'installazione, apri il progetto:

Il progetto demo si trova in torchchat/edge/android/torchchat.
Quando apriamo il progetto, ci viene mostrata questa finestra che ci chiede se ci fidiamo del codice:

Qui, scegli l'opzione "Trust Project".
Dopo aver aperto il progetto, Android Studio avrà bisogno di un po' di tempo per caricare la configurazione e completare il setup iniziale. È importante attendere che questo processo finisca. Possiamo monitorare lo stato nell'angolo in basso a destra della finestra. Una volta pronto, il pulsante Esegui in alto dovrebbe diventare verde:

Attivare la modalità sviluppatore su Android
Per poter eseguire l'app sul telefono tramite Android Studio, dobbiamo abilitare la modalità sviluppatore sul dispositivo. Ecco come fare:
- Vai su "Impostazioni"
- Seleziona "Info sul dispositivo" o "Info sul telefono"
- Apri "Informazioni software"
- Trova "Numero build" e premilo sette volte
Fatto! Ora possiamo usare il dispositivo per eseguire l'app da Android Studio. Quando lo facciamo, l'app rimarrà sul telefono, permettendoci di eseguirla anche senza connessione al computer.
Installare adb
L'app ha bisogno che i file del modello si trovino in una cartella specifica del telefono. Per inviare quei file al telefono, usiamo adb (Android Debug Bridge). Possiamo installarlo tramite Android Studio seguendo questi passaggi:
- Vai alle impostazioni e inizia a digitare "Android SDK" nella barra di ricerca
- Trova il menu chiamato "Android SDK" e cliccaci sopra
- Seleziona l'opzione "Android SDK command line tools (latest)"
- Clicca su "Apply" per installarla

Nota che nella parte alta della finestra Android Studio mostra la posizione dell'SDK Android:

Copiamo quel percorso ed eseguiamo il seguente comando (sostituendo <android_skd_location> qui sotto con il percorso appena copiato):
export PATH=$PATH:<android_skd_location>/platform-tools/
Per confermare che adb sia stato installato correttamente, usa il comando adb --version, che mostrerà la versione di adb.
Impostare l'app sul telefono
Collega il telefono al computer con un cavo. Il nome del dispositivo apparirà nell'elenco dei dispositivi accanto al pulsante Esegui:

Prima di eseguire l'app sul telefono, ora usiamo adb per copiare i file del modello necessari sul dispositivo.
- Trova l'id del dispositivo con il comando
adb devices. Potrebbero esserci più righe nell'output. Individua quella con la forma<device_code>device e copia il codice del dispositivo. - Crea la directory per archiviare i file del modello con
adb -s <device_code> shell mkdir -p /data/local/tmp/llama. - Copia il file
.ptepresente nella cartella torchchat conadb -s <device_code> push llama3_2-1b.pte /data/local/tmp/llama. - Individua il file tokenizer del modello con
python torchchat.py where llama3.2-1b. Verranno mostrate diverse righe: ci interessa il percorso riportato nell'ultima riga.
![]()
- Copia il file del tokenizer sul dispositivo con
adb -s <device_code> push <model_path>/tokenizer.model /data/local/tmp/llamasostituendo<model_path>con il percorso ottenuto nel passaggio precedente.
Dopo questi passaggi, i file del modello dovrebbero essere sul nostro telefono e pronti all'uso. Possiamo verificarlo elencando tutti i file presenti nella cartella del dispositivo appena creata:
adb -s <device_code> shell ls
L'output dovrebbe mostrare i due file appena copiati:
llama3_2-1b.pte
tokenizer.model
Eseguire l'app
Ora è tutto pronto per eseguire l'app demo sul nostro telefono. Possiamo cliccare sulla freccia verde per avviarla.

Questo aprirà l'app sul nostro dispositivo. L'app ci chiede di selezionare i file del modello e del tokenizer.

Usare l'app Llama 3.2 1B
Possiamo iniziare a chattare con Llama 3.2 1B sul nostro telefono! L'interfaccia dell'app è piuttosto semplice. Possiamo usare la casella di testo "Prompt" per scrivere un prompt e inviarlo al modello con il pulsante "Generate".
Poiché il modello funziona offline, potrei usarlo in aereo verso la mia prossima destinazione per chiedere, ad esempio, qualche consiglio sui piatti:

Con questa interazione, notiamo alcune limitazioni dell'app demo:
- La risposta ripete il nostro prompt.
- La formattazione della risposta inizia con "I’ve been to Taiwan…", indicando che l'app non è progettata per usare il modello direttamente come assistente.
- Le risposte vengono tagliate bruscamente, probabilmente perché è stato raggiunto il limite di token.
Possiamo confrontare il comportamento eseguendo lo stesso modello sul terminale con il comando:
python torchchat.py chat llama3.2-1b
Abbiamo fornito lo stesso prompt per vedere se il comportamento fosse diverso. In effetti, in questo caso la risposta sembra molto più naturale e utile, sebbene anche qui venga tagliata:

Ho contattato il team dietro Torchchat e mi hanno detto che Llama 3.2 era troppo recente e che l'app demo necessitava di un piccolo aggiornamento per supportarlo.
Tuttavia, il processo di setup rimarrà lo stesso e le conoscenze acquisite qui saranno comunque valide per la versione aggiornata. È possibile che, quando leggerai questo articolo, sia già stata aggiornata e funzioni correttamente.
Conclusione
In questa guida abbiamo visto come configurare Llama 3.2 1B direttamente su un dispositivo Android usando Torchchat. Abbiamo coperto il processo passo passo di download e installazione dei componenti necessari, compresi i file del modello e l'app Android demo.
Sebbene l'attuale app demo presenti alcune limitazioni, in particolare nella formattazione e nella lunghezza delle risposte, il potenziale alla base di implementazioni di questo tipo è enorme.
Se vuoi leggere altro su Llama 3.2, ti consiglio questi blog:


