0Pricing
AI Prompt Engineering · Lezione

Quando usare il fine-tuning

Segnali che indicano i limiti del prompting.

Quando usare il fine-tuning è una lezione AI Prompt Engineering gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AI Prompt Engineering, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Prompt Engineering include 4 lezioni in totale.

Il fine-tuning è una decisione basata sulle evidenze

Il fine-tuning è giustificato solo quando può indicare dati che dimostrano che il prompting ha raggiunto un limite. Il fattore decisivo non è mai un'intuizione: è una valutazione su un set separato in cui il miglior prompt realistico si stabilizza al di sotto del livello di qualità richiesto, nonostante sia stata percorsa la scala di ottimizzazione.

  • Il tuning scambia flessibilità con coerenza, un costo inferiore per chiamata e un comportamento appreso
  • Il costo comprende una pipeline di dati, un'infrastruttura di valutazione e un nuovo tuning quando cambia il modello di base
  • Deve poter indicare l'errore specifico che il prompting non è riuscito a correggere

Segnale 1: il plateau del prompt

Il segnale più chiaro è un plateau su un set di valutazione congelato. Aggiunge esempi, scompone il problema, aggiunge verificatori - e il punteggio smette di migliorare mentre gli errori rimangono sistematici, non casuali.

Gli errori residui sistematici (il modello gestisce costantemente in modo errato lo stesso costrutto) indicano che il comportamento è difficile da ottenere tramite istruzioni. Questo è un problema adatto al tuning. Errori casuali e sparsi indicano solitamente che il prompt o i dati sono ancora rumorosi: continui invece a iterare.

# Track eval score vs prompt-iteration; flat tail = plateau
scores = [0.62, 0.71, 0.78, 0.79, 0.795, 0.796]  # diminishing returns
def plateaued(scores, window=3, eps=0.01):
    tail = scores[-window:]
    return (max(tail) - min(tail)) < eps

print(plateaued(scores))  # True -> prompting has stalled

Segnale 2: la lunghezza del prompt diventa il prodotto

Quando il prompt è arrivato a contenere migliaia di token tra esempi e regole solo per mantenere la qualità, sta pagando un costo di latenza e denaro a ogni chiamata per simulare un comportamento appreso.

Se questi token codificano un comportamento stabile e ripetitivo (un formato fisso, uno stile coerente, una decisione di instradamento), il fine-tuning può incorporarlo nei pesi: il prompt si riduce di un ordine di grandezza mantenendo invariato il comportamento. Questa è la distillazione del prompt, il caso d'uso legittimo più comune del tuning.

Segnale 3: un limite rigido di latenza o costo

Se ha bisogno che un modello più piccolo, veloce ed economico riproduca il comportamento di un modello più grande per un'attività circoscritta, il tuning è lo strumento adatto. Distilla gli output del modello grande in un modello piccolo sottoposto a tuning.

Questo è giustificato quando: il volume è superiore al punto di pareggio, il budget di latenza è ristretto e l'attività è sufficientemente circoscritta da poter essere appresa da un modello piccolo. Al di fuori di queste condizioni, il sovraccarico ingegneristico non vale la pena.

# Distillation data: teacher (big model) labels -> student (small) trains
def make_distill_pair(prompt, teacher_fn):
    completion = teacher_fn(prompt)  # high-quality big-model output
    return {'messages': [
        {'role': 'user', 'content': prompt},
        {'role': 'assistant', 'content': completion},
    ]}

Segnale 4: formato o stile idiosincratico

Alcuni output sono così specifici che descriverli costa più che dimostrarli su larga scala: una DSL proprietaria, una voce stilistica interna con mille micro-regole, uno schema di dominio rigido con innumerevoli campi condizionali.

Quando la conformità al formato deve essere quasi perfetta e le regole sono troppo numerose per essere elencate in un prompt, centinaia di esempi insegnano lo schema in modo più affidabile della prosa. Il tuning è eccellente nell'interiorizzare strutture implicite che resistono alle istruzioni esplicite.

Segnale 5: un comportamento a cui il modello resiste

A volte un modello contrasta un'istruzione: continua ad aggiungere avvertenze che aveva proibito, rifiuta un'attività innocua oppure torna allo stile predefinito sotto carico. Se istruzioni forti e ripetute, insieme agli esempi, non riescono a sopprimere il comportamento in modo affidabile, questa resistenza è un prior incorporato nei pesi di base.

Il tuning può sovrascrivere questi prior. Verifichi però prima che la resistenza sia reale e non dipenda da un problema di chiarezza del prompt: attribuire erroneamente la causa alla resistenza porta a eseguire training non necessari.

Contro-segnali: quando NON usare il tuning

È altrettanto importante riconoscere i falsi allarmi. NON ricorra al fine-tuning quando:

  • La lacuna riguarda la conoscenza: la recuperi invece; il tuning incorpora fatti obsoleti e con perdita di informazione
  • La specifica sta ancora cambiando ogni settimana: dovrebbe riaddestrare continuamente il modello
  • Ha meno di qualche centinaio di esempi puliti: il segnale è insufficiente e il rischio di overfitting è elevato
  • Gli errori sono casuali, non sistematici: i dati o il prompt sono ancora rumorosi
  • Le manca un harness di valutazione: non può sapere se il tuning ha realmente migliorato il risultato

Verifica di preparazione dei dati

La qualità del fine-tuning è limitata dalla qualità dei dati. Prima di impegnarsi, superi una verifica di preparazione: un numero sufficiente di esempi, bilanciati rispetto ai casi di interesse, con etichette coerenti e privi di data leakage che gonfi i punteggi di valutazione.

Qualche centinaio di esempi selezionati meticolosamente è meglio di decine di migliaia di esempi rumorosi. Se le etichette non concordano tra loro, il modello imparerà il rumore.

def data_ready(examples, min_n=300, max_dupe_ratio=0.05):
    n = len(examples)
    texts = [e['messages'][0]['content'] for e in examples]
    dupe_ratio = 1 - (len(set(texts)) / n)
    return n >= min_n and dupe_ratio <= max_dupe_ratio

# Returns False until you have enough deduped, curated examples

Scelga il metodo di tuning

Non tutto il tuning consiste nell'addestrare tutti i pesi. Abbini il metodo al segnale:

  • LoRA / adapter - economici, rapidi e reversibili; ideali per la distillazione di stile e formato
  • Fine-tuning completo - più impegnativo; per cambiamenti comportamentali profondi su modelli open capaci
  • Preference tuning (in stile DPO) - quando dispone di giudizi a coppie positivo/negativo anziché di completamenti di riferimento

Inizi con il metodo più leggero richiesto dal segnale. Gli adapter in stile LoRA coprono la maggior parte dei casi di produzione a una frazione del costo.

Protocollo pre-impegno

Prima di avviare un training, definisca l'esperimento in modo che il risultato sia interpretabile:

  • Congeli un set di valutazione separato che il modello non vedrà mai durante il training
  • Registri il punteggio migliore della baseline ottenuta con il solo prompt su quel set
  • Stabilisca in anticipo il miglioramento obiettivo e il tetto di costo
  • Definisca il rollback: se il modello sottoposto a tuning non supera la baseline del miglioramento obiettivo, distribuisca il prompt

Senza una baseline e un obiettivo definiti in anticipo, non può dimostrare che il tuning abbia giustificato il proprio costo.

Mettere insieme i segnali

Combini i segnali in un'unica verifica go/no-go. Il tuning procede solo quando il prompting ha raggiunto un plateau, i dati sono pronti e la lacuna riguarda il comportamento, non quando si verifica un singolo segnale isolato.

def should_fine_tune(plateaued, data_ready, gap_is_behavior,
                     spec_stable, has_eval_harness):
    return all([
        plateaued,        # prompting stalled on frozen eval
        data_ready,       # enough clean, deduped examples
        gap_is_behavior,  # not a knowledge gap (else use RAG)
        spec_stable,      # task definition has settled
        has_eval_harness, # can measure the lift
    ])

print(should_fine_tune(True, True, True, True, True))  # True -> proceed

Verifica rapida

Su un set di valutazione congelato, gli errori di un modello sono casuali e sparsi tra molti tipi diversi di input, e il punteggio aumenta ancora quando modifica gli esempi. Che cosa indica questo riguardo alla preparazione per il fine-tuning?

Riepilogo

Applichi il fine-tuning sulla base delle evidenze, non dell'intuizione. I segnali legittimi sono: un vero plateau con errori sistematici, una lunghezza del prompt che è diventata il prodotto, un limite rigido di latenza o costo, formati idiosincratici oppure un comportamento a cui il modello di base resiste.

  • Contro-segnali: lacune di conoscenza, specifiche in evoluzione, dati insufficienti, errori casuali, assenza di un harness di valutazione
  • Superi una verifica di preparazione dei dati prima del training: la qualità limita il risultato
  • Scelga il metodo più leggero (prima di tutto uno in stile LoRA) richiesto dal segnale
  • Definisca in anticipo una valutazione congelata, una baseline, un miglioramento obiettivo e un rollback
  • Proceda solo quando sono presenti contemporaneamente plateau, dati pronti e lacuna comportamentale

Domande Frequenti

La lezione «Quando usare il fine-tuning» è gratuita?

Sì — il testo completo di «Quando usare il fine-tuning» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AI Prompt Engineering, passa a CoddyKit PRO. Il corso AI Prompt Engineering include 4 lezioni in totale.

Cosa imparerò in «Quando usare il fine-tuning»?

Segnali che indicano i limiti del prompting. Eserciti AI Prompt Engineering con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare AI Prompt Engineering?

Non è richiesta alcuna esperienza precedente. AI Prompt Engineering su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Quando usare il fine-tuning»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione AI Prompt Engineering?

Sì. Ogni lezione AI Prompt Engineering include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Quando basta il prompting
  2. Quando usare il fine-tuning
  3. Ibrido: prompt e tuning leggero
  4. Valutare la scelta
← Torna a AI Prompt Engineering