LoRA permette di specializzare un modello linguistico addestrando una piccola quantità di parametri aggiuntivi, mentre il modello di base rimane congelato. È una delle tecniche più utili per rendere il fine-tuning accessibile anche a team e aziende che non dispongono dell’infrastruttura necessaria per riaddestrare miliardi di parametri.
Il vantaggio, però, non è automatico. LoRA non sostituisce un buon dataset, non aggiorna la conoscenza del modello come farebbe un sistema RAG e non corregge ogni problema con pochi esempi. Questa guida spiega quando usarla, come preparare una prova e quali controlli applicare prima della produzione.
In breve: LoRA mantiene fermi i pesi del modello di base e addestra piccole matrici aggiuntive, chiamate adapter. Il risultato è molto più leggero da conservare e distribuire rispetto a una copia completa del modello modificato.
Indice
- Che cos’è LoRA
- Perché consuma meno del fine-tuning completo
- LoRA, QLoRA, RAG e prompt: quale scegliere
- Quando LoRA è utile in una PMI
- Dataset: la parte che determina il risultato
- Parametri principali
- Procedura pratica in otto passi
- Distribuzione con Ollama
- Sicurezza, licenze e governance
- Errori da evitare
- FAQ
Che cos’è LoRA
LoRA significa Low-Rank Adaptation. La tecnica nasce per adattare modelli molto grandi senza aggiornare tutti i loro parametri.
Durante un fine-tuning completo, l’addestramento modifica le grandi matrici che compongono il modello. LoRA lascia invece invariata la matrice originale e apprende la sua variazione attraverso due matrici molto più piccole. Durante l’uso, il modello combina il comportamento di base con l’aggiornamento appreso dall’adapter.
Il paper originale mostra che questo approccio può ridurre drasticamente il numero di parametri addestrabili e la memoria necessaria. Non significa che ogni adapter eguagli sempre un fine-tuning completo: qualità del modello di partenza, dati, parametri e metodo di valutazione restano decisivi.
LoRA appartiene alla famiglia PEFT, Parameter-Efficient Fine-Tuning. La definizione generale di fine-tuning aiuta a collocarla nel processo più ampio di adattamento dei modelli.
Perché LoRA consuma meno
Immagina un modello composto da miliardi di valori. Nel fine-tuning completo bisogna calcolare e conservare aggiornamenti per una parte molto grande di questi valori, insieme agli stati necessari all’ottimizzatore. LoRA interviene soltanto su un insieme ridotto di parametri aggiuntivi.
Questo comporta vantaggi concreti:
- minore memoria durante l’addestramento;
- checkpoint e adapter molto più piccoli;
- possibilità di mantenere più specializzazioni sullo stesso modello di base;
- trasferimento e versionamento più semplici;
- possibilità di attivare, sostituire o rimuovere un adapter;
- fusione dell’adapter nel modello quando serve una distribuzione autonoma.
Il risparmio non riguarda necessariamente l’inferenza del modello di base: per generare una risposta bisogna comunque caricare quel modello. LoRA rende più leggero soprattutto l’adattamento e la gestione delle varianti.
LoRA, QLoRA, RAG o prompt engineering?
Prima di addestrare qualcosa, identifica quale problema stai cercando di risolvere.
| Esigenza | Approccio iniziale consigliato | Perché |
|---|---|---|
| Dare istruzioni, tono e formato | Prompt engineering | È rapido, reversibile e non richiede addestramento |
| Rispondere usando documenti aggiornati | RAG | Mantiene le fonti separabili, aggiornabili e citabili |
| Rendere stabile uno stile o un comportamento | LoRA | Insegna regolarità attraverso esempi |
| Adattare con poca VRAM | QLoRA | Carica il modello di base quantizzato e addestra adapter LoRA |
| Modificare profondamente tutte le capacità | Fine-tuning completo | Offre più libertà, ma richiede più dati e risorse |
Una regola utile: usa LoRA per insegnare un comportamento, non come archivio di informazioni aziendali. Se prezzi, procedure o cataloghi cambiano, è preferibile recuperarli al momento della domanda tramite RAG o strumenti collegati.
Che differenza c’è tra LoRA e QLoRA?
LoRA congela il modello di base e addestra matrici a basso rango. QLoRA aggiunge un passaggio: carica il modello congelato in forma quantizzata, tipicamente a 4 bit, e propaga l’addestramento verso gli adapter. In questo modo riduce ulteriormente la memoria richiesta.
La quantizzazione permette quindi di lavorare con modelli più grandi sull’hardware disponibile. Introduce però dipendenze e scelte tecniche aggiuntive: formato, tipo numerico, compatibilità della GPU, precisione di calcolo e modalità di esportazione.
Quando LoRA è utile per professionisti e PMI
Classificazione coerente delle richieste
Un’azienda riceve ticket molto diversi, ma vuole che il modello restituisca sempre categoria, priorità, reparto e motivazione in JSON. Un buon prompt può bastare; LoRA diventa interessante se la tassonomia è particolare e il comportamento deve rimanere stabile su molti esempi.
Stile e struttura dei documenti
Un adapter può insegnare come trasformare appunti tecnici in una relazione con sezioni, terminologia e livello di dettaglio coerenti. Non dovrebbe però memorizzare dati personali o documenti dei clienti.
Estrazione da testi specialistici
LoRA può adattare un modello a riconoscere campi, abbreviazioni e formulazioni ricorrenti in preventivi, rapportini o richieste di assistenza, purché il dataset rappresenti bene anche eccezioni e casi incompleti.
Tool calling specializzato
Può aiutare un modello a scegliere con maggiore regolarità uno strumento e compilare gli argomenti nel formato previsto. Le autorizzazioni reali devono comunque essere applicate dall’applicazione: l’adapter non è un controllo di sicurezza.
Quando non conviene
LoRA non è la prima scelta quando:
- mancano esempi corretti e rappresentativi;
- il problema si risolve con istruzioni più chiare;
- le informazioni cambiano spesso;
- servono citazioni verificabili dai documenti;
- non esiste un set di test separato;
- l’obiettivo è “rendere il modello genericamente più intelligente”;
- l’organizzazione non può mantenere versioni, licenze e infrastruttura.
Prima di iniziare, confronta anche licenza e requisiti del modello open weights scelto. Poter scaricare i pesi non garantisce automaticamente il diritto di produrre o distribuire una variante.
Il dataset determina il risultato
L’adapter apprende i pattern presenti negli esempi, inclusi errori, incoerenze e scorciatoie. Centinaia di esempi puliti possono essere più utili di migliaia di righe raccolte senza controllo.
Per un progetto supervisionato, ogni esempio può contenere una conversazione:
{
"messages": [
{"role": "user", "content": "Il centralino della sede non riceve chiamate."},
{"role": "assistant", "content": "{\"categoria\":\"telefonia\",\"priorita\":\"alta\",\"reparto\":\"UC\"}"}
]
}La documentazione di Hugging Face TRL supporta dataset testuali, conversazionali e prompt-completion. Se l’obiettivo è apprendere la risposta dell’assistente, è importante configurare il training affinché la loss non premi inutilmente la riproduzione delle istruzioni dell’utente.
Regole pratiche per i dati
- rimuovi o anonimizza dati personali non necessari;
- definisci una sola risposta corretta per la stessa situazione;
- includi casi normali, casi limite e richieste da rifiutare;
- separa training, validazione e test prima di addestrare;
- evita duplicati quasi identici tra training e test;
- conserva origine, licenza e versione del dataset;
- fai revisionare un campione a chi conosce il processo reale.
Il set di test deve rimanere fuori dall’addestramento. Se lo usi ripetutamente per correggere il dataset, rischia di diventare indirettamente parte del training; prepara allora un’ulteriore verifica finale.
I parametri principali senza perdersi nella matematica
Rank (r)
Definisce la capacità delle matrici aggiuntive. Un rank più alto introduce più parametri addestrabili e maggiore flessibilità, ma aumenta memoria e dimensione dell’adapter. Non partire automaticamente dal valore massimo: confronta alcune configurazioni sul set di validazione.
Alpha
Controlla la scala con cui l’aggiornamento LoRA influenza il modello. Va considerato insieme al rank e all’implementazione utilizzata.
Target modules
Indica a quali livelli applicare LoRA. I nomi cambiano tra architetture. La libreria PEFT permette anche di selezionare tutti i livelli lineari, approccio usato frequentemente nelle configurazioni QLoRA.
Dropout
Può ridurre l’overfitting quando i dati sono limitati, ma non compensa un dataset incoerente.
Learning rate, epoche e lunghezza
Un learning rate eccessivo o troppe epoche possono far apprendere rigidamente gli esempi. La lunghezza delle sequenze influisce in modo rilevante sulla memoria. Registra ogni configurazione invece di affidarti a tentativi non riproducibili.
Procedura pratica in otto passi
1. Definisci una metrica
Per l’estrazione JSON puoi misurare validità sintattica, correttezza dei campi e gravità degli errori. Per lo stile, prepara una griglia di valutazione e revisori umani.
2. Crea una baseline
Prova prima il modello originale con un prompt ben costruito. Il miglioramento dell’adapter deve essere misurato rispetto a questa baseline, non rispetto a una sensazione.
3. Scegli il modello di base
Valuta lingua italiana, licenza, dimensione, contesto e compatibilità con il framework. Per l’uso locale consulta la checklist hardware e architetturale.
4. Prepara e valida i dati
Correggi formati, duplicati e informazioni sensibili. Congela il test set e assegna una versione al dataset.
5. Avvia una prova piccola
Usa una configurazione conservativa e pochi cicli. Controlla andamento della loss, esempi generati e consumo di memoria.
6. Confronta base e adapter
Esegui gli stessi prompt, con le stesse impostazioni di generazione. Valuta anche se sono peggiorate capacità che vuoi preservare.
7. Salva artefatti e documentazione
Conserva adapter, configurazione, modello base esatto, commit, tokenizer, template di chat, dataset, metriche e licenze.
8. Distribuisci con rollback
Rilascia inizialmente a un piccolo gruppo. Mantieni modello base e adapter precedente pronti, registra le segnalazioni e definisci quando disattivare la nuova versione.
Usare un adapter LoRA con Ollama
Ollama permette di creare un modello a partire da un modello base e da un adapter compatibile. Un Modelfile essenziale può essere:
FROM modello-base-usato-nel-training
ADAPTER /percorso/adapterPoi:
ollama create assistente-specializzato -f Modelfile
ollama run assistente-specializzatoIl modello in FROM deve corrispondere a quello usato per produrre l’adapter. La documentazione ufficiale di Ollama avverte che una base diversa può generare risultati erratici. Anche formato e metodo di quantizzazione devono essere compatibili.
Se non hai ancora l’ambiente, parti dalla guida per installare Ollama e usa Open WebUI con Ollama per una prima prova controllata. Non confondere però l’importazione di un adapter con il suo addestramento: LoRA deve essere prodotto in precedenza con un framework compatibile.
Sicurezza, licenze e governance
Un adapter è un artefatto software e può modificare il comportamento del modello in modi non immediatamente visibili.
Prima della produzione:
- scaricalo soltanto da origini affidabili o addestralo internamente;
- preferisci formati che non eseguano codice arbitrario;
- verifica hash, provenienza, modello base e licenza;
- prova jailbreak, input ostili e richieste fuori dominio;
- non affidare all’adapter permessi o autorizzazioni;
- conserva log e versione per poter ricostruire una risposta;
- testa nuovamente dopo ogni merge o quantizzazione;
- documenta chi approva dataset, training e rilascio.
Se il modello genera decisioni o azioni con conseguenze significative, mantieni controlli applicativi, approvazione umana e procedure di arresto. LoRA modifica probabilità e comportamento; non garantisce verità, conformità o rispetto delle policy.
Errori da evitare
- Addestrare dati che dovrebbero stare nel RAG. Le informazioni aggiornabili devono restare separabili dal modello.
- Valutare sugli stessi esempi del training. Il risultato apparirà migliore di quanto sia.
- Dimenticare il modello base. Un adapter senza identità e versione della base non è riproducibile.
- Usare troppi esempi sintetici non revisionati. Il modello può amplificare errori e formule artificiali.
- Cambiare più parametri contemporaneamente. Diventa difficile capire quale scelta abbia migliorato o peggiorato il risultato.
- Distribuire senza test regressivi. La specializzazione può danneggiare risposte generali utili.
- Confondere QLoRA con una garanzia di qualità. Riduce la memoria, ma non corregge dati o obiettivi sbagliati.
FAQ
LoRA rende il modello più aggiornato?
Non nel modo più controllabile. Per conoscenze che cambiano, usa RAG, ricerca o strumenti collegati. LoRA è più adatta a comportamento, stile e compiti ricorrenti.
Quanti esempi servono?
Non esiste un numero universale. Dipende dalla varietà del compito, dalla qualità della base e dalla precisione richiesta. Inizia con un dataset piccolo ma revisionato e misura gli errori per capire quali esempi mancano.
Posso addestrare LoRA su una GPU consumer?
Spesso sì con modelli contenuti e soprattutto con QLoRA, ma VRAM, lunghezza delle sequenze, batch e architettura cambiano molto il requisito. Esegui una prova prima di acquistare hardware.
Un adapter contiene i dati di training?
Non è un archivio leggibile dei record originali, ma può memorizzare o riprodurre informazioni presenti nei dati. Non inserire segreti o dati personali senza una valutazione specifica.
Conviene fondere l’adapter nel modello?
Il merge semplifica alcune distribuzioni e può evitare l’overhead dell’adapter separato. Riduce però la facilità con cui puoi sostituirlo o disattivarlo. Conserva sempre adapter e base originali.
LoRA sostituisce un buon prompt?
No. Istruzioni, template e contesto restano importanti. La baseline con prompt è anche il riferimento necessario per dimostrare che il training abbia prodotto un beneficio reale.
Conclusioni
LoRA rende possibile adattare un modello senza replicare e riaddestrare tutti i suoi parametri. Per una PMI il vantaggio più interessante non è soltanto il risparmio di memoria, ma la possibilità di gestire piccoli adapter specializzati e versionati sopra una base comune.
La sequenza corretta è: prima prompt e baseline, poi dati revisionati, quindi prova LoRA o QLoRA, valutazione separata e rilascio con rollback. Se non puoi misurare il miglioramento, non sei ancora pronto ad addestrare.
Fonti ufficiali e primarie
- LoRA: Low-Rank Adaptation of Large Language Models
- LoRA nella libreria PEFT — Hugging Face
- SFTTrainer e adapter PEFT — Hugging Face TRL
- QLoRA: Efficient Finetuning of Quantized LLMs
- Importare adapter con Ollama
Vuoi ricevere guide pratiche su AI locale, modelli e governance? Iscriviti gratuitamente alla newsletter di Basi di AI.