Nel mondo dell'AI moderna, i Large Language Models (LLM) come GPT, Llama e Claude hanno dimostrato capacità straordinarie. Tuttavia, spesso questi modelli "out-of-the-box" non performano al meglio per le nostre specifiche esigenze aziendali. È qui che entra in gioco il finetuning.
Cos'è il Finetuning dei Large Language Models?
Il finetuning è il processo di adattamento di un modello pre-addestrato a un compito specifico attraverso ulteriore training. A differenza del prompt engineering (che adatta il modello tramite istruzioni), il finetuning modifica direttamente i pesi del modello.
Vantaggi del Finetuning
Migliora le capacità domain-specific (medicina, legale, codice)
Aumenta la capacità di seguire istruzioni specifiche
Garantisce formati di output consistenti (JSON, YAML)
Riduce le allucinazioni quando fatto con dati di qualità
Il Problema: La Memoria
Tuttavia, il finetuning tradizionale presenta una sfida enorme: il consumo di memoria.
Nel diagramma che ho mostrato, l'input word passa attraverso tre matrici neurali che generano KEYS, QUERIES e VALUES. Ogni matrice produce 12 vettori (uno per ogni attention head). LoRA interviene proprio su queste matrici! Invece di aggiornare completamente le matrici 4096×4096 durante il finetuning, le decompone in matrici molto più piccole.
Come Funziona LoRA
LoRA si basa sul concetto di low-rank factorization applicato alle matrici dei transformer:
Decomposizione: Prende una matrice di pesi W (dimensione n×m) e la decompone nel prodotto di due matrici più piccoli A (n×r) e B (r×m)
Aggiornamento selettivo: Durante il finetuning, mantiene W frozen e aggiorna solo A e B
Efficienza Memoria: Riduce drasticamente i parametri trainabili
Efficienza Dati: Spesso bastano poche centinaia/migliaia di esempi
Modularità: Gli adapter possono essere facilmente combinati e condivisi
Zero Latenza Aggiuntiva: Può essere mergiato nel modello base
Multi-Task Serving: Un modello base + multipli adapter LoRA
Configurazione LoRA
Rank (r): Tipicamente tra 4-64.
Alpha (α): Controlla quanto i pesi LoRA influenzano il modello finale. Rapporto α:r tipicamente tra 1:8 e 8:1.
Target Matrices: Comunemente applicato alle matrici query, key, value e output dell'attention.
Finetuning vs RAG: Quando Usare Cosa?
Usa RAG quando:
Il modello fallisce per mancanza di informazioni
Hai bisogno di dati aggiornati in tempo reale
Le risposte sono fattualisticamente sbagliate
Usa Finetuning quando:
Il modello ha problemi comportamentali
Hai bisogno di formati output specifici
Vuoi migliorare lo stile di risposta
Devi seguire sintassi specializzate
Regola d'oro: "Finetuning is for form, RAG is for facts"
Workflow Pratico
Inizia con prompt engineering - testa vari prompt sistematicamente
Aggiungi esempi - 1-50 esempi nel prompt
Considera RAG - se il problema è informativo
Prova LoRA - se il problema è comportamentale
Combina approcci - RAG + LoRA per performance ottimali
Model Merging: Combinare Modelli
LoRA permette tecniche avanzate come il model merging:
Il model merging rappresenta una delle frontiere più innovative nell'AI engineering: la capacità di combinare più modelli specializzati in un unico modello che eredita le competenze di tutti i componenti. Immagina di avere un modello eccellente in matematica, uno specializzato in coding e un altro ottimizzato per scrittura creativa - il model merging ti permette di creare un "super-modello" che eccelle in tutti e tre i domini.
La magia del model merging risiede nel fatto che non stai semplicemente mettendo insieme tre modelli separati (il che richiederebbe 3x la memoria e computazione), ma stai fondendo i loro "saperi" a livello di parametri. È come se tre esperti condividessero le loro conoscenze per creare un quarto esperto che possiede tutte le loro competenze specialistiche.
Con LoRA, questo processo diventa estremamente elegante. Invece di mergiare interi modelli da miliardi di parametri, puoi combinare solo gli adapter - le piccole matrici A e B che contengono l'essenza delle specializzazioni. Un adapter LoRA per matematica (poche decine di MB) può essere facilmente combinato con uno per coding, creando un modello versatile senza i costi computazionali del mantenere modelli separati.
Approcci:
Linear Combination: Media pesata di adapter
SLERP: Interpolazione sferica
Task Arithmetic: Aggiungere/sottrarre capacità specifiche
Casi d'uso:
Multi-task: Un modello per compiti diversi
On-device deployment: Ridurre il footprint memoria
LoRA ha democratizzato il finetuning, rendendolo accessibile a sviluppatori con risorse limitate. La sua efficienza, modularità e facilità d'uso l'hanno resa lo standard de facto per l'adattamento di LLM.
Key Takeaways:
Inizia sempre con prompt engineering
LoRA è perfetto per problemi comportamentali
Combina RAG + LoRA per risultati ottimali
La memoria è il bottleneck principale del finetuning
QLoRA rende possibile il finetuning anche con hardware limitato
Il futuro del finetuning sarà probabilmente ancora più efficiente, ma LoRA rimarrà una tecnica fondamentale per chiunque lavori seriamente con i Large Language Models.
Questo post è basato sul libro "AI Engineering" di Chip Huyen, una risorsa essenziale per chiunque voglia approfondire l'ingegneria dell'AI moderna.
Introduzione I Large Language Models (LLM) come GPT, BERT e le loro varianti come DistilBERT rappresentano una delle più straordinarie innovazioni dell'intelligenza artificiale moderna. Alla base di questi sistemi troviamo un'architettura chiamata "Transformer", introdotta nel celebre paper "Attention Is All You Need" pubblicato da Google nel 2017, che ha rivoluzionato l'elaborazione del linguaggio naturale. Ma […]
La vita non è una linea retta "Per tutte le partenze ci son coincidenze... In cerca di coincidenze, non accontentarti"— Marta sui Tubi, "Coincidenze" La vita raramente segue un percorso lineare. Le nostre esperienze, decisioni e incontri creano percorsi tortuosi, cerchi che si intersecano, connessioni impreviste che sfidano ogni previsione. Proprio come canta Marta sui […]