Scelta dei parametri per il proprio caso d’uso
Impostazioni consigliate per domande e risposte fattuali, scrittura creativa, codice e chat
Scelta dei parametri per il proprio caso d’uso è una lezione AI Prompt Engineering gratuita su CoddyKit. Questa è la lezione 4 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 framework per scegliere i parametri
La scelta dei parametri di campionamento non è una questione di tentativi casuali: segue una logica basata sui requisiti dell'attività. Due dimensioni fondamentali determinano la configurazione corretta:
- Accuratezza dell'output: quanto è importante che l'output sia corretto e prevedibile?
- Diversità dell'output: quanto è importante che gli output varino e favoriscano l'esplorazione?
Accuratezza elevata → temperatura bassa. Diversità elevata → temperatura alta. La maggior parte delle attività si colloca tra questi due estremi.
Domande e risposte fattuali: l'accuratezza è tutto
Nel rispondere a domande fattuali, in genere esiste una sola risposta corretta. Qualsiasi elemento di casualità aumenta la probabilità di una risposta errata. Utilizzi:
- temperature = 0: decodifica greedy, completamente deterministica
- top_p = 1.0: lasciarlo senza restrizioni; con temperature=0, top-p non ha effetto
In questo modo il modello seleziona sempre la risposta di cui è più convinto, ovvero quella con la maggiore probabilità di essere corretta.
import openai
client = openai.OpenAI(api_key='sk-...')
# Factual Q&A configuration
def factual_qa(question):
resp = client.chat.completions.create(
model='gpt-4o',
messages=[
{'role': 'system', 'content': 'Answer factual questions concisely and accurately.'},
{'role': 'user', 'content': question}
],
temperature=0,
top_p=1.0
)
return resp.choices[0].message.content
answer = factual_qa('What is the boiling point of water at sea level?')
print(answer) # Always: '100 degrees Celsius (212 degrees Fahrenheit).'Generazione di codice: quasi greedy
Il codice deve essere sintatticamente corretto e semanticamente preciso. La casualità può causare errori di sintassi, nomi di variabili errati o una logica non corretta. Utilizzi:
- temperature = 0–0.2: quasi greedy — consente piccole variazioni, ma privilegia nettamente le scelte corrette dei token
- top_p = 0.95: elimina i token della coda estrema che potrebbero causare errori di sintassi
# Code generation configuration
def generate_code(task):
resp = client.chat.completions.create(
model='gpt-4o',
messages=[
{'role': 'system', 'content': 'You are an expert Python programmer. Write clean, correct code.'},
{'role': 'user', 'content': task}
],
temperature=0.1,
top_p=0.95
)
return resp.choices[0].message.content
code = generate_code('Write a Python function that merges two sorted lists.')
print(code)Riepilogo automatico: impostazioni moderate
Il riepilogo automatico richiede accuratezza (non bisogna distorcere i fatti), ma beneficia di una lieve variazione (esecuzioni diverse possono mettere in risalto aspetti diversi). Utilizzi:
- temperature = 0.3–0.5: una casualità contenuta preserva una formulazione naturale
- top_p = 1.0: a una temperatura bassa non è necessaria alcuna restrizione del nucleo
# Summarization configuration
def summarize(text):
resp = client.chat.completions.create(
model='gpt-4o',
messages=[
{'role': 'system', 'content': 'Summarize the following text in 3 sentences.'},
{'role': 'user', 'content': text}
],
temperature=0.4,
top_p=1.0
)
return resp.choices[0].message.content
summary = summarize(long_article)
print(summary)Chat conversazionale: variazione naturale
Le risposte in chat beneficiano di una variazione naturale: la stessa domanda non dovrebbe produrre sempre la stessa identica formulazione. Un'eccessiva casualità rende le risposte incoerenti. Utilizzi:
- temperature = 0.7–0.9: conversazione naturale e varia
- top_p = 0.9–0.95: elimina i token improbabili della coda che producono formulazioni innaturali
# Chat configuration
def chat_response(user_message, history):
messages = history + [{'role': 'user', 'content': user_message}]
resp = client.chat.completions.create(
model='gpt-4o',
messages=[
{'role': 'system', 'content': 'You are a friendly, helpful assistant.'},
*messages
],
temperature=0.8,
top_p=0.9
)
reply = resp.choices[0].message.content
history.append({'role': 'user', 'content': user_message})
history.append({'role': 'assistant', 'content': reply})
return reply, historyScrittura creativa: alta diversità
La scrittura creativa valorizza l'originalità e gli elementi inattesi. Le temperature basse producono output pieni di cliché e prevedibili. Le temperature alte producono scelte vivide e sorprendenti, anche se valori eccessivi causano incoerenza. Utilizzi:
- temperature = 0.9–1.2: vocabolario diversificato, scelte lessicali non ovvie
- top_p = 0.95: previene i token incoerenti della coda, consentendo al contempo un'ampia esplorazione
# Creative writing configuration
def write_story_opening(prompt):
resp = client.chat.completions.create(
model='gpt-4o',
messages=[
{'role': 'system', 'content': 'You are a creative fiction writer. Write vivid, original prose.'},
{'role': 'user', 'content': f'Write a story opening for: {prompt}'}
],
temperature=1.1,
top_p=0.95
)
return resp.choices[0].message.content
opening = write_story_opening('A detective discovers her partner is the killer.')
print(opening)Brainstorming e ideazione
Nel brainstorming, l'obiettivo è massimizzare la diversità delle idee, comprese quelle insolite o inattese. Utilizzi la temperatura pratica più alta:
- temperature = 1.0–1.5: ampia esplorazione dello spazio delle idee
- top_p = 0.95–1.0: restrizione minima
Esegua il processo più volte e raccolga tutti gli output, quindi selezioni manualmente le idee migliori. I prompt per il brainstorming traggono beneficio da richieste esplicite di varietà: 'Mi fornisca 10 approcci diversi, compresi quelli insoliti.'
# Brainstorming: run multiple times for variety
def brainstorm(topic, n_runs=5):
ideas = []
for _ in range(n_runs):
resp = client.chat.completions.create(
model='gpt-4o',
messages=[
{'role': 'system', 'content': 'Generate creative, diverse ideas. Include unusual approaches.'},
{'role': 'user', 'content': f'Give me 3 ideas for: {topic}'}
],
temperature=1.3,
top_p=0.95
)
ideas.append(resp.choices[0].message.content)
return ideas
all_ideas = brainstorm('reducing customer churn')Test di sensibilità dei parametri
Prima di fissare i parametri, esegua test di sensibilità dei parametri: mantenga costante il prompt, modifichi un solo parametro alla volta e valuti la qualità dell'output per ogni impostazione.
def sensitivity_test(prompt, evaluator, temperatures, n_samples=5):
results = {}
for temp in temperatures:
scores = []
for _ in range(n_samples):
resp = client.chat.completions.create(
model='gpt-4o',
messages=[{'role': 'user', 'content': prompt}],
temperature=temp
)
score = evaluator(resp.choices[0].message.content)
scores.append(score)
results[temp] = sum(scores) / len(scores)
for temp, score in sorted(results.items()):
print(f'T={temp}: avg score = {score:.2f}')
best_temp = max(results, key=results.get)
print(f'Best temperature: {best_temp}')
return best_tempQuando mantenere i valori predefiniti
Non tutte le applicazioni richiedono parametri personalizzati. Mantenga i valori predefiniti quando:
- Il caso d'uso è una chat generica: la temperatura predefinita (1.0 per la maggior parte delle API) è ben calibrata
- Sta realizzando un prototipo e non conosce ancora le impostazioni corrette
- L'attività è in equilibrio tra accuratezza e creatività (ad esempio, la stesura di e-mail)
Regola generale: personalizzi i parametri solo quando, durante i test, il comportamento predefinito causa un problema di qualità misurabile. Ottimizzare i parametri troppo presto aggiunge complessità senza un beneficio misurabile.
# Defaults are often correct
default_resp = client.chat.completions.create(
model='gpt-4o',
messages=[{'role': 'user', 'content': 'Draft a professional email declining a meeting.'}]
# No temperature or top_p specified — API defaults apply
# OpenAI default: temperature=1, top_p=1
)
print(default_resp.choices[0].message.content)Scheda di riferimento rapido
Tabella riepilogativa delle impostazioni consigliate in base al caso d'uso:
PARAMETER_PRESETS = {
# task: (temperature, top_p, notes)
'factual_qa': (0.0, 1.0, 'greedy, max accuracy'),
'classification': (0.0, 1.0, 'deterministic labels'),
'code_generation': (0.1, 0.95, 'near-greedy, avoid tail tokens'),
'data_extraction': (0.2, 1.0, 'slight variation for robustness'),
'summarization': (0.4, 1.0, 'preserve facts, vary phrasing'),
'translation': (0.3, 1.0, 'accurate but natural'),
'chat': (0.8, 0.9, 'natural conversation'),
'email_drafting': (0.7, 0.9, 'professional but varied'),
'creative_writing': (1.1, 0.95, 'vivid, original'),
'brainstorming': (1.3, 0.95, 'maximum diversity'),
}
for task, (temp, top_p, notes) in PARAMETER_PRESETS.items():
print(f'{task:22} temp={temp}, top_p={top_p} | {notes}')Penalità di frequenza e di presenza
Due parametri aggiuntivi completano temperatura e top-p:
- frequency_penalty (0–2): riduce la probabilità dei token in proporzione alla frequenza con cui sono già comparsi nell'output, evitando la ripetizione delle parole
- presence_penalty (0–2): riduce la probabilità di qualsiasi token già comparso, favorendo la diversità degli argomenti
Per la scrittura creativa: aggiunga frequency_penalty=0.5 per ridurre la ripetizione delle scelte lessicali senza modificare la temperatura.
resp = client.chat.completions.create(
model='gpt-4o',
messages=[{'role': 'user', 'content': 'Write a paragraph about coffee.'}],
temperature=1.0,
top_p=0.95,
frequency_penalty=0.5, # discourage repeating the same words
presence_penalty=0.3 # encourage introducing new topics/aspects
)
print(resp.choices[0].message.content)Verifica delle conoscenze
Per un'attività che genera codice Python destinato all'esecuzione in produzione, quale configurazione dei parametri è più appropriata?
Riepilogo: scelta dei parametri di campionamento
Adatti i parametri alle Sue esigenze di accuratezza e diversità:
- Fattuale/codice: temp=0–0.2, top_p=0.95 — accuratezza prima di tutto
- Riepilogo automatico: temp=0.3–0.5 — equilibrio
- Chat: temp=0.7–0.9, top_p=0.9 — variazione naturale
- Creatività: temp=0.9–1.2, top_p=0.95 — diversità
- Brainstorming: temp=1.3, top_p=0.95 — massima esplorazione
Esegua test di sensibilità dei parametri. Mantenga i valori predefiniti quando non si osservano problemi di qualità. Aggiunga frequency_penalty in caso di problemi di ripetizione. Questo conclude il Corso 19. Prossimo argomento: test dei prompt e regressione.
Domande Frequenti
La lezione «Scelta dei parametri per il proprio caso d’uso» è gratuita?
Sì — il testo completo di «Scelta dei parametri per il proprio caso d’uso» è 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 «Scelta dei parametri per il proprio caso d’uso»?
Impostazioni consigliate per domande e risposte fattuali, scrittura creativa, codice e chat 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 4 di 4.
Quanto tempo richiede la lezione «Scelta dei parametri per il proprio caso d’uso»?
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
- Che cos’è la temperatura negli LLM?
- Nucleus sampling con top-p
- Sampling con top-k
- Scelta dei parametri per il proprio caso d’uso