Vai al contenuto principale

Tutorial torchchat di PyTorch: configurazione locale con Python

Impara a configurare torchchat di PyTorch in locale con Python in questo tutorial pratico, con istruzioni passo passo ed esempi.
Aggiornato 29 set 2026

Scopri con l'IA

ChatGPTClaudePerplexity

I large language model (LLM) sono ormai centrali in numerosi ambiti tech, e la maggior parte dei prodotti integra oggi funzionalità basate su LLM. Tuttavia, l’esecuzione di questi modelli su dispositivi personali come laptop, desktop o smartphone ha incontrato ostacoli significativi a causa dei limiti hardware.

Per rispondere a questa esigenza, il team PyTorch ha introdotto Torchchat, un framework flessibile pensato per migliorare l’efficienza degli LLM su diverse piattaforme hardware. Questo approccio apre alla possibilità di un’elaborazione locale efficace su un’ampia gamma di dispositivi, rendendo potenzialmente più accessibili i modelli di IA avanzati.

PyTorch è un framework open-source di machine learning sviluppato dal laboratorio di ricerca sull’IA di Facebook (FAIR). Supporta varie applicazioni, tra cui la computer vision e il natural language processing.

In questo articolo daremo una panoramica delle funzionalità di Torchchat e vedremo come configurarlo in locale.

Funzionalità di Torchchat

Torchchat offre quattro funzionalità principali:

  1. Esecuzione di LLM con Python e PyTorch.
  2. Esecuzione di modelli self-contained su un’app desktop o su un server senza Python.
  3. Esecuzione di modelli su un dispositivo mobile.
  4. Valutazione delle prestazioni di un modello.

Esegui LLM con Python e PyTorch

Questa modalità consente di eseguire un LLM su una macchina con Python e PyTorch installati. Possiamo interagire con il modello direttamente dal terminale oppure avviare un server con una REST API. È ciò su cui ci concentreremo in questo articolo.

Esecuzione di modelli self-contained

Torchchat utilizza AOT Inductor (Ahead-of-Time Inductor) per creare un eseguibile distribuibile e autonomo per programmi di inferenza PyTorch, nello specifico sotto forma di libreria dinamica senza dipendenze da Python e PyTorch.

Questo approccio risponde all’esigenza di distribuire modelli in ambienti di produzione in cui è richiesta stabilità del runtime del modello tra aggiornamenti e cambiamenti dell’ambiente di serving, garantendo che i modelli restino operativi senza necessità di ricompilazione. 

AOT Inductor si concentra sull’ottimizzazione della distribuzione dei modelli abilitando formati binari efficienti, veloci da caricare e pronti all’esecuzione, superando i limiti e l’overhead associati a formati testuali come TorchScript. Sfrutta tecniche di generazione del codice e di ottimizzazione per prestazioni sia su CPU che su GPU, con l’obiettivo di ridurre l’overhead e migliorare la velocità di esecuzione. 

Esecuzione su dispositivi mobili

Per l’esecuzione su dispositivi mobili, Torchchat si basa su ExecuTorch. In modo simile ad AOT Inductor, ExecuTorch ottimizza il modello per l’esecuzione su dispositivi mobili o embedded. Produce un artefatto PTE che può essere usato successivamente per eseguire il modello.

Valutazione di un modello

La modalità di valutazione di Torchchat può essere utilizzata per valutare le prestazioni di un LLM su vari task disponibili in lm_eval. È una funzionalità importante per chi fa ricerca e vuole valutare i nuovi modelli su benchmark comunemente utilizzati.

Perché usare Torchchat

Eseguire un LLM in locale invece di affidarsi a un’API cloud di terze parti come l’API di OpenAI offre diversi casi d’uso e vantaggi, adatti a molte esigenze e scenari. 

  • Applicazioni sensibili alla privacy: per settori che trattano dati sensibili, come sanità, finanza e legale, l’esecuzione locale degli LLM assicura che le informazioni riservate non lascino l’infrastruttura dell’organizzazione, rispettando le normative sulla protezione dei dati.
  • Applicazioni in tempo reale: applicazioni che richiedono risposte a bassa latenza, come chatbot interattivi, generazione di contenuti in tempo reale e sistemi di monitoraggio live, possono beneficiare dell’esecuzione locale degli LLM, eliminando la latenza dovuta alla trasmissione di rete da e verso un’API cloud.
  • Scenari offline o a bassa connettività: in ambienti con connettività Internet scarsa o assente, la distribuzione locale consente l’uso di applicazioni LLM, ad esempio per ricerca sul campo, istruzione a distanza e sistemi di intrattenimento in volo.
  • Controllo e ottimizzazione dei costi: per casi d’uso ad alto volume o continuativi, la distribuzione locale può essere più conveniente, evitando i modelli di prezzo a richiesta delle API cloud e sfruttando risorse computazionali già disponibili.

Se ti interessa approfondire l’esecuzione di un modello di IA in locale su un dispositivo invece che nel cloud, ti consiglio questo post sul blog dedicato all’Edge AI.

Configurazione locale con Python

Configuriamo Torchchat in locale passo dopo passo. Inizieremo clonando il repository Torchchat.

Clona o scarica il codice

Il primo passo per configurare Torchchat in locale è clonare il repository Torchchat. Con Git installato, possiamo clonare il repository aprendo un terminale ed eseguendo il comando:

git clone git@github.com:pytorch/torchchat.git

In alternativa, possiamo scaricare il repository dall’interfaccia di GitHub.

Come scaricare torchchat da GitHub.

Installazione

Assumiamo che Python 3.10 sia già installato. Per una guida all’installazione di Python, dai un’occhiata a questo articolo.

Per installare Torchchat, apri un terminale nella cartella Torchchat. Iniziamo creando un ambiente virtuale:

python -m venv .venv

In breve, un ambiente virtuale è una directory autonoma per un progetto, che contiene le directory di installazione per librerie e pacchetti Python, e talvolta anche una specifica versione di Python. Questo garantisce che ogni progetto disponga esattamente delle versioni di software di cui ha bisogno per funzionare, senza interferenze da altri progetti e dalle loro dipendenze.

Creato l’ambiente virtuale, dobbiamo attivarlo. Possiamo farlo con il comando:

source .venv/bin/activate

Infine, dobbiamo predisporre l’ambiente installando tutte le dipendenze necessarie per l’esecuzione di Torchchat. Torchchat fornisce uno script di installazione, install_requirements.sh, che possiamo eseguire con il comando:

./install_requirements.sh

A questo punto Torchchat dovrebbe essere installato e pronto all’uso. Possiamo verificare l’installazione elencando i comandi Torchchat disponibili, ad esempio così:

python torchchat.py --help

Usare Torchchat in locale con Python

Con Torchchat installato, possiamo iniziare a eseguire LLM sulla nostra macchina locale.

Elencare tutti i modelli supportati

Torchchat supporta un’ampia gamma di LLM. Possiamo elencare i modelli supportati con il comando list:

python torchchat.py list

L’elenco completo dei modelli è disponibile nel loro repository GitHub. 

Elenco dei modelli supportati da torchchat

La sezione “Notes” fornisce informazioni utili sul modello, come il caso d’uso ideale e l’alias del modello usato per specificarlo nei comandi Torchchat.

Scaricare un modello

Torchchat usa Hugging Face come canale di distribuzione dei modelli. Hugging Face è una piattaforma collaborativa con strumenti che permettono a chiunque di creare, addestrare e distribuire modelli NLP e ML usando codice open-source. Per saperne di più, leggi questo post sul blog Che cos’è Hugging Face.

Prima di scaricare un modello, dobbiamo:

  1. Installare la riga di comando di Hugging Face
  2. Creare un account su Hugging Face
  3. Creare un access token
  4. Eseguire il login tramite la riga di comando di Hugging Face

Per installare la riga di comando di Hugging Face, usiamo pip:

pip install huggingface_hub

Poi possiamo andare sul sito Hugging Face per creare un account. Dopo aver creato l’account, possiamo generare un access token visitando le impostazioni del profilo:

Impostazioni profilo su Hugging Face

Nel profilo, possiamo aprire il menu “Access Tokens” per creare un nuovo token:

Creazione di un access token su Hugging Face

Per quanto riguarda i permessi del token, per questo articolo sono sufficienti i permessi di sola lettura. Nota che quando il token viene creato, va copiato negli appunti perché non sarà più visibile in seguito. 

Usando il token, possiamo effettuare l’accesso con il seguente comando:

huggingface-cli login

Una volta effettuato l’accesso, possiamo scaricare un modello con il comando download. Tieni presente che alcuni modelli possono essere piuttosto grandi, quindi assicurati di avere spazio su disco sufficiente. Per esempio, useremo il modello stories15M, un piccolo modello per la generazione di storie. È un buon punto di partenza perché si scarica velocemente e non richiede permessi speciali.

Per scaricarlo, eseguiamo:

python torchchat.py download stories15M

Esecuzione di un modello

Dopo aver scaricato il modello, possiamo usare i comandi chat o generate. Per generare testo, dobbiamo fornire un prompt con l’argomento --prompt. Ecco un esempio:

python torchchat.py generate stories15M --prompt “Once upon a time”

Il comando qui sopra chiederà a Torchchat di generare testo usando il modello stories15M con il prompt ”Once upon a time”.

Per eseguire il modello in modalità chat, usiamo il comando chat senza prompt.

python torchchat.py chat stories15M 

Il comando chat avvierà una chat interattiva nel terminale in cui possiamo conversare con l’LLM. Nota che alcuni modelli sono più adatti alla modalità generate, mentre altri rendono meglio in modalità chat. Questa informazione è disponibile nella sezione “Notes” della documentazione dei modelli.

Richiedere l’accesso a un modello

Alcuni modelli come llama3 richiedono un accesso speciale per essere scaricati. Se proviamo a scaricare un modello di questo tipo, otterremo un messaggio di errore:

Access to model meta-llama/Meta-Llama-3-8B-Instruct is restricted and you are not in the authorized list. Visit https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct to ask for access.

Possiamo richiedere l’accesso seguendo l’URL indicato nel messaggio di errore. Dovremo compilare un breve modulo con informazioni personali e accettare i termini di servizio. Riceverai un’e-mail quando l’accesso verrà concesso.

Modulo di richiesta accesso per un LLM su Hugging Face

Uso avanzato

Torchchat offre alcune opzioni aggiuntive per l’esecuzione degli LLM in locale, rendendo possibile adattarli alle nostre esigenze e all’hardware disponibile. Vediamone alcune.

Controllare la precisione

Gli LLM fanno ampio uso di moltiplicazioni di matrici, che comportano il prodotto di molti numeri in virgola mobile. Esistono diversi tipi di dati per rappresentare i numeri in virgola mobile nel computer con precisione variabile. 

Una precisione più elevata può garantire che le sfumature apprese in addestramento siano rappresentate fedelmente in inferenza, soprattutto per compiti complessi o con un linguaggio ricco di sottigliezze. Tuttavia, usare numeri ad alta precisione può rallentare sensibilmente l’inferenza. Il tipo di dato giusto dipende dal compromesso tra velocità e accuratezza.

Per impostare il tipo di dato durante l’esecuzione dell’LLM, possiamo usare il parametro --dtype, ad esempio:

python torchchat.py chat --dtype fast stories15M

Compilazione Just-In-Time

Il flag --compile abilita la compilazione Just-In-Time (JIT) del modello. La JIT è una tecnica che ottimizza le prestazioni di inferenza compilando dinamicamente parti del modello in codice macchina a runtime invece di interpretarli a ogni esecuzione. Questo approccio può migliorare significativamente efficienza e velocità su varie piattaforme hardware.

Usare la JIT comporta tempi di avvio più lunghi a causa del passaggio di compilazione extra, ma l’inferenza sarà più veloce. Ecco come useremmo chat insieme alla JIT:

python torchchat.py chat --compile stories15M

Nota che questa opzione potrebbe non essere supportata su tutti i tipi di hardware. In tal caso, Torchchat ignorerà la compilazione ed eseguirà l’LLM senza di essa.

Quantizzazione

La quantizzazione è una tecnica per ridurre la dimensione del modello e aumentarne la velocità di inferenza senza compromettere in modo significativo prestazioni o accuratezza. È particolarmente importante per distribuire LLM su dispositivi edge o in ambienti con risorse computazionali, memoria e banda limitate.

In poche parole, la quantizzazione consiste nel convertire pesi e attivazioni di una rete neurale dalla rappresentazione in virgola mobile (solitamente float a 32 bit) a rappresentazioni a meno bit, come interi a 16 bit, a 8 bit o persino binarie in alcuni casi. 

Questo è diverso dall’impostare la precisione con --dtype. La quantizzazione agisce direttamente sui pesi del modello, creando un modello più piccolo, mentre il tipo di dato specifica il formato usato nei calcoli di inferenza.

Usare la quantizzazione in Torchchat richiede un file di configurazione JSON e può essere fatto così:

python torchchat.py chat --quantize config.json stories15M

Per maggiori dettagli sul formato del file di configurazione config.json o su come funziona la quantizzazione in Torchchat, consulta la pagina della documentazione sulla quantizzazione.

Specificare il dispositivo

Possiamo specificare il dispositivo su cui eseguire l’LLM usando l’opzione --device. Ad esempio, per eseguirlo su CUDA, useremmo:

python torchchat.py chat --device cuda stories15M

Conclusione

Torchchat è un grande passo verso la democratizzazione dell’inferenza con LLM. Rende semplice per chiunque eseguire LLM in modo efficiente su un’ampia gamma di dispositivi.

Torchchat offre molte più funzionalità rispetto a quelle introdotte in questo articolo. Abbiamo fornito le spiegazioni necessarie per iniziare a eseguire LLM in locale sul tuo computer usando Python e PyTorch. Ti incoraggio vivamente a esplorare ulteriormente Torchchat.


François Aubry's photo
Author
François Aubry
LinkedIn
Ingegnere full‑stack e fondatore di CheapGPT. Insegnare è sempre stata la mia passione. Fin dai primi anni da studente, cercavo con entusiasmo occasioni per fare da tutor e aiutare altri studenti. Questa passione mi ha portato a intraprendere un dottorato, durante il quale ho anche svolto il ruolo di assistente alla didattica a supporto del mio percorso accademico. In quegli anni ho trovato enorme soddisfazione nell'ambiente tradizionale dell'aula, creando connessioni e facilitando l'apprendimento. Con l'avvento delle piattaforme di apprendimento online, però, ho riconosciuto il potenziale trasformativo dell'educazione digitale. Di fatto, ho partecipato attivamente allo sviluppo di una di queste piattaforme nella nostra università. Sono profondamente impegnato a integrare i principi dell'insegnamento tradizionale con metodologie digitali innovative. La mia passione è creare corsi non solo coinvolgenti e informativi, ma anche accessibili a chi apprende in questa era digitale.
Argomenti
Intelligenza artificiale
AI generativa
Correlato

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

Mostra AltroMostra Altro