0Pricing
AI Prompt Engineering · Lezione

Prompting chain-of-thought

Ottenere ragionamenti passo per passo.

Prompting chain-of-thought è una lezione AI Prompt Engineering gratuita su CoddyKit. Questa è la lezione 1 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 ragionamento come budget di token

Il prompting chain-of-thought (CoT) induce passaggi intermedi di ragionamento prima della risposta finale. L'intuizione fondamentale è che i transformer eseguono una quantità fissa di calcolo per token; consentire al modello di generare token di ragionamento gli fornisce di fatto più capacità di calcolo sequenziale per arrivare alla risposta.

Imporre una risposta immediata limita il calcolo disponibile per un problema difficile; il CoT rimuove questo limite distribuendo il calcolo sui token generati.

# Direct: model must compute everything before the first token
DIRECT = 'Q: ' + q + '\nA:'
# CoT: model can use tokens as scratch space
COT = 'Q: ' + q + '\nA: Let us reason step by step.'

CoT zero-shot

La famosa frase trigger Let us think step by step (Kojima et al., 2022) induce il ragionamento con nessun esempio. Funziona perché i modelli ottimizzati sulle istruzioni hanno interiorizzato lo schema secondo cui questa frase precede una soluzione svolta.

Il CoT zero-shot è economico e sorprendentemente efficace, ma la qualità del ragionamento è meno controllabile rispetto al CoT few-shot con esempi curati.

def zero_shot_cot(question):
    stage1 = llm('Q: ' + question + '\nA: Let us think step by step.')
    # Extract the final answer in a second, constrained call
    stage2 = llm(stage1 + '\nTherefore, the final answer is:')
    return parse_answer(stage2)

CoT few-shot

Il CoT few-shot (Wei et al., 2022) fornisce esempi che includono la traccia di ragionamento, non solo la risposta. Insegna sia come ragionare sia il formato desiderato, producendo catene più affidabili e coerenti rispetto al metodo zero-shot.

Selezioni esempi il cui stile, livello di dettaglio e lunghezza del ragionamento corrispondano a ciò che desidera far riprodurre. Un ragionamento incoerente negli esempi produce catene incoerenti.

FS_COT = (
    'Q: Roger has 5 balls, buys 2 cans of 3. How many balls?\n'
    'A: 5 + 2*3 = 5 + 6 = 11. The answer is 11.\n\n'
    'Q: ' + question + '\nA:'
)

Separare il ragionamento dalla risposta

Renda sempre la risposta finale estraibile automaticamente: termini la catena con un marcatore fisso (ad esempio The answer is X o un campo JSON). Analizzare catene in formato libero è fragile.

Per i prodotti rivolti agli utenti, può nascondere la catena e mostrare solo la risposta estratta, mantenendo il ragionamento come area di lavoro interna.

import re

def extract(chain):
    m = re.search(r'[Tt]he answer is\s*(.+?)[.\n]', chain)
    if not m:
        raise ValueError('no answer marker found')
    return m.group(1).strip()

La fedeltà non è garantita

Un'avvertenza fondamentale: la catena di ragionamento verbalizzata potrebbe non riflettere il calcolo effettivo del modello. Gli studi mostrano che i modelli possono produrre ragionamenti plausibili che razionalizzano a posteriori una risposta determinata da bias nascosti (ad esempio la posizione di un'opzione).

Non consideri il CoT una spiegazione fedele o una traccia di audit. Migliora l'accuratezza in molti task, ma non offre una visione del meccanismo effettivo del modello.

# Faithfulness probe: perturb an irrelevant cue (e.g., always make
# option A correct in the few-shot). If the chain still 'justifies'
# choosing A, the stated reasoning is unfaithful to the real cause.

Impostazioni di decoding per il CoT

Per una singola catena deterministica, una temperatura bassa riduce la varianza. Tuttavia, il CoT si combina efficacemente con il campionamento: a temperatura moderata può generare più catene diversificate e aggregarle, come illustrato nella self-consistency.

Eviti la decodifica greedy quando intende campionare più percorsi; la strategia greedy annulla la diversità e impedisce l'aggregazione.

single = llm(COT, temperature=0.0)            # one stable chain
paths  = [llm(COT, temperature=0.7) for _ in range(10)]  # diverse

Ragionamento strutturato e tabellare

Per i problemi complessi, imponga una struttura alla catena: passaggi numerati, una tabella dello stato oppure una separazione tra pianificazione ed esecuzione. La struttura riduce i passaggi saltati e rende verificabile lo stato intermedio.

Gli approcci assistiti da programmi si spingono oltre: generano codice eseguibile come ragionamento e delegano i calcoli aritmetici a un interprete, eliminando un'intera classe di errori di calcolo.

PAL = (
    'Solve by writing Python. Q: ' + q + '\n'
    'A:\ndef solve():\n'
    '    # the model writes code here, then we exec() it\n'
)
# Offload arithmetic to a deterministic interpreter

Lunghezza, costi e latenza

Il CoT moltiplica i token di output, aumentando costi e latenza. Per gli elementi semplici, questo sovraccarico non porta vantaggi; per quelli difficili è essenziale. Un approccio pragmatico è il ragionamento adattivo: attivi il CoT solo quando una stima economica della difficoltà o una risposta diretta a bassa confidenza lo giustifica.

Nei modelli di ragionamento dotati di thinking integrato, invece, controlli un budget di reasoning-effort anziché richiedere direttamente la catena tramite il prompt.

def adaptive(question):
    direct = llm('Q: ' + question + '\nA (answer only):', temperature=0)
    if confidence(direct) > 0.85:
        return direct
    return zero_shot_cot(question)  # escalate to reasoning only if needed

CoT sui modelli nativamente orientati al ragionamento

I moderni modelli di ragionamento eseguono automaticamente una deliberazione interna estesa. Riempirli di istruzioni prolisse come Let us think step by step può essere ridondante o persino controproducente, interferendo con il processo di ragionamento appreso.

Per questi modelli, preferisca istruzioni concise sul task e requisiti espliciti sul formato della risposta, e regoli il parametro reasoning-effort invece di creare manualmente le catene.

# Reasoning-native model: let it think, just constrain the output
resp = reasoning_model(
    prompt=question,
    reasoning_effort='medium',
    output_format='Final answer on the last line as: ANSWER=<x>'
)

Quando la CoT è controproducente

La CoT può peggiorare i risultati nelle attività in cui la deliberazione prevale sull'intuizione corretta, nel semplice riconoscimento di schemi o quando la verbalizzazione introduce errori che il modello non commetterebbe implicitamente. Inoltre, amplia la superficie d'attacco per la prompt injection all'interno di catene lunghe.

È opportuno confrontare la CoT con una risposta diretta per ogni attività; non bisogna mai dare per scontato che i prompt di ragionamento siano vantaggiosi in ogni situazione.

def should_use_cot(task_acc_cot, task_acc_direct, cot_cost_mult):
    gain = task_acc_cot - task_acc_direct
    # Only adopt CoT if accuracy gain justifies the token multiplier
    return gain > MIN_GAIN and gain / cot_cost_mult > MIN_EFFICIENCY

Portare la CoT in produzione

Per usare la CoT in produzione, selezionare esempi coerenti (oppure affidarsi al ragionamento nativo del modello), imporre un indicatore della risposta analizzabile automaticamente, campionare più catene per gli elementi difficili, convalidare l'aritmetica tramite l'esecuzione di codice quando possibile e attivare il ragionamento in base a una stima della difficoltà per controllare i costi.

Registrare le catene per l'analisi offline, ma non esporle mai come spiegazioni di riferimento.

def production_solve(q):
    if easy(q):
        return extract(llm(DIRECT_PROMPT.format(q=q), temperature=0))
    chains = [llm(FS_COT.format(q=q), temperature=0.7) for _ in range(8)]
    return majority_vote([extract(c) for c in chains])

Verifica rapida

Analizzare perché la CoT è utile e in quali situazioni non lo è.

Riepilogo

Punti chiave:

  • La CoT scambia token aggiuntivi con calcolo seriale aggiuntivo; è utile per le attività in più passaggi, non per quelle banali.
  • La CoT zero-shot utilizza una frase di attivazione; la CoT few-shot fornisce esempi coerenti di ragionamento.
  • Terminare sempre con un indicatore della risposta estraibile automaticamente; le catene non sono spiegazioni fedeli.
  • Campionare più catene per gli elementi difficili, delegare l'aritmetica al codice e attivare la CoT in base alla difficoltà.
  • Con i modelli dotati di ragionamento nativo, preferire prompt concisi e un budget per lo sforzo di ragionamento anziché istruzioni verbose sulle catene di ragionamento.

Domande Frequenti

La lezione «Prompting chain-of-thought» è gratuita?

Sì — il testo completo di «Prompting chain-of-thought» è 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 «Prompting chain-of-thought»?

Ottenere ragionamenti passo per passo. 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 1 di 4.

Quanto tempo richiede la lezione «Prompting chain-of-thought»?

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. Prompting chain-of-thought
  2. Campionamento self-consistency
  3. Esplorazione tree-of-thought
  4. Quando i prompt di ragionamento sono utili
← Torna a AI Prompt Engineering