Fine-tuning, retrieval-augmented generation (RAG) e semplice prompting risolvono ciascuno una diversa classe di problemi per i grandi modelli linguistici (LLM). Scegliere quello sbagliato spreca cicli GPU, gonfia i costi del cloud e lascia comunque gli utenti con risposte errate. Di seguito è riportato un framework passo dopo passo che consente agli sviluppatori di decidere quale strumento si adatta al proprio caso d'uso e come combinarli quando necessario.
Le tre leve
| Cosa cambia | Come funziona | Uso tipico |
|---|---|---|
| RAG | Aggiunge fatti esterni al contesto del modello durante l'inferenza | Aggiornamento dei prezzi, recupero degli ultimi documenti di policy, citazione di dati privati |
| Fine-tuning | Regola i pesi interni del modello per alterare stile, formato o comportamento ripetibile | Tono coerente, strutture di output complesse, classificazione ad alto throughput |
| Prompting | Modella la risposta immediata del modello con istruzioni ed esempi chiari | Ragionamento generale, prototipi rapidi, rilascio di una funzionalità in pochi giorni |
La domanda fondamentale da porsi all'inizio di ogni progetto è: la carenza è un gap di conoscenza o un gap di comportamento? Un gap di conoscenza significa che il modello semplicemente non possiede i fatti corretti; un gap di comportamento significa che conosce i fatti ma non li esprime nel modo in cui ne hai bisogno.
Quando il problema è un gap di conoscenza – punta sulla RAG
Se il modello allucina, restituisce numeri obsoleti o non riesce a indicare una fonte, il problema è la mancanza di informazioni o la loro obsolescenza. La RAG risolve il problema recuperando il documento o il punto dati corretto all'interno del prompt durante l'esecuzione.
- Usa la RAG quando i fatti cambiano frequentemente: ad esempio livelli di inventario, prezzi di mercato o tabelle normative.
- Usala quando devi fornire citazioni o tracciabilità per scopi di conformità o audit.
- Usala per corpora privati che non possono essere esposti a un modello pubblico; lo strato di recupero mantiene i dati dietro il tuo firewall.
Aggiornare un documento è facile. Riaddestrare un modello è difficile.
Quando il problema è un gap di comportamento – fai fine-tuning
Se il modello conosce già i fatti corretti ma li presenta nel formato o nel tono sbagliato, o con una struttura incoerente, devi modellarne il comportamento interno. Il fine-tuning riscrive i pesi del modello affinché lo stile desiderato diventi quello predefinito.
- Ideale per la voce specifica di un brand, il linguaggio legale o qualsiasi output che debba seguire un template rigoroso.
- Funziona bene per compiti ripetitivi ad alto volume, come la classificazione massiva, dove un piccolo costo del prompt per ogni chiamata si accumula.
- Può accorciare i prompt, riducendo l'uso di token e, di conseguenza, il costo dell'inferenza.
Un errore comune è fare il fine-tuning di un modello solo per insegnargli dei fatti. Ciò spreca risorse di calcolo e lascia comunque il modello vulnerabile al futuro data drift. I fatti appartengono a uno strato di recupero; il fine-tuning appartiene allo strato di comportamento.
Quando il problema è un gap di istruzioni – inizia con il prompting
Il prompt engineering è il modo più economico e veloce per testare se il modello sia in grado di risolvere un compito. Istruzioni chiare, esempi few-shot e il prompting chain-of-thought spesso colmano il divario senza apportare modifiche al modello.
- Usalo per esplorare come appare una risposta "buona" prima di impegnarsi in una soluzione più costosa.
- Applicalo a compiti che richiedono molto ragionamento, brainstorming o qualsiasi scenario in cui sia necessario un rapido turnaround.
- Se riesci a ottenere risultati soddisfacenti con un prompt ben strutturato, eviti il sovraccarico di raccolta dati, addestramento del modello o pipeline di recupero.
Se non hai esaurito le opzioni di un prompting chiaro e di alcuni esempi, non sei pronto per investire in infrastrutture di fine-tuning o RAG.
Flusso decisionale
Passa il tuo caso d'uso attraverso la checklist sottostante. Fermati al primo "sì" e applica quella tecnica. Se si applica più di una condizione, combina le soluzioni.
- Hai provato il prompting con istruzioni esplicite ed esempi few-shot? No → inizia con il prompting.
- Il fallimento deriva da fatti mancanti o obsoleti, o hai bisogno di citare le fonti? Sì → aggiungi uno strato RAG.
- Il fallimento deriva da uno stile o da una formattazione incoerenti, o dalla necessità di un output ripetibile ad alto throughput? Sì → fai il fine-tuning del modello.
Quando esistono sia gap di conoscenza che di comportamento, combina RAG e fine-tuning: recupera prima i fatti corretti, poi lascia che il modello sottoposto a fine-tuning li renda nello stile desiderato.
Misurare il successo
Non affidarti mai alle "sensazioni". Crea un piccolo set di valutazione rappresentativo che catturi gli input principali e gli output attesi. Esegui lo stesso set su ogni soluzione candidata: solo prompt, prompt + RAG, prompt + fine-tuning o l'intero stack. Confronta accuratezza, qualità delle citazioni, costo dei token e latenza. I dati ti diranno quale livello aggiunge valore reale e quale rappresenta un overhead inutile.
Scegliere la leva giusta fin dall'inizio fa risparmiare tempo, denaro e frustrazione. Inizia con il prompt, aggiungi il retrieval quando i fatti sono il collo di bottiglia e procedi con il fine-tuning quando lo è il comportamento. Misura, itera e eviterai l'errore comune di sprecare potenza GPU sul problema sbagliato.
