Controllare il comportamento del modello con i parametri
Sperimenterà con temperature, max_tokens e top_p per osservare come cambiano stile, lunghezza e creatività dell'output, quindi sceglierà le impostazioni adatte al proprio caso d'uso.
Controllare il comportamento del modello con i parametri è una lezione AI Engineering Academy gratuita su CoddyKit. Questa è la lezione 3 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 Engineering Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Engineering Academy include 4 lezioni in totale.
I parametri fondamentali più importanti
Alcuni parametri influenzano l'output più di tutti: temperature, max_tokens, top_p, frequency_penalty e presence_penalty. Padroneggi questi cinque e avrà il controllo del modello.
Temperature: controllare la casualità
Temperature controlla la casualità. Vicino a 0, il modello sceglie la parola più sicura e rimane coerente, caratteristica ideale per i fatti. Intorno a 0.7-1.0, produce risultati più vari e creativi. Veda il codice.
from openai import OpenAI
client = OpenAI()
for temp in [0.0, 0.7, 1.5]:
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': 'Name a color.'}],
temperature=temp,
max_tokens=5
)
print(f'Temp {temp}: {response.choices[0].message.content}')
# Temp 0.0: Red (always most common)
# Temp 0.7: Blue (varied but sensible)
# Temp 1.5: Vermillion (surprising choices)max_tokens: controllare la lunghezza della risposta
max_tokens limita la lunghezza massima della risposta: è un limite di sicurezza, non un obiettivo. Se è troppo basso, le risposte vengono troncate; se è troppo alto, spreca denaro e tempo. Aggiunga un margine e controlli finish_reason.
# Different max_tokens for different use cases
# Classification: short answer expected
classification_response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': 'Is this positive or negative? "Great product!"'}],
max_tokens=5 # Only need 1-2 words
)
# Detailed analysis: longer output needed
analysis_response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': 'Analyze the pros and cons of microservices.'}],
max_tokens=800 # Need space for detailed explanation
)top_p: campionamento nucleus
top_p è un altro comando per regolare la casualità: esegue il campionamento solo tra i token più probabili, la cui probabilità cumulativa raggiunge top_p. Suggerimento: regoli temperature oppure top_p, non entrambi contemporaneamente.
# top_p usage example
response_narrow = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': 'Continue: The sky is...'}],
top_p=0.1, # only very likely tokens (conservative, predictable)
temperature=1.0 # keep temperature at 1 when using top_p
)
response_wide = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': 'Continue: The sky is...'}],
top_p=0.95, # most tokens eligible (creative, varied)
temperature=1.0
)Frequency penalty: ridurre le ripetizioni
frequency_penalty scoraggia il modello dal ripetere le stesse parole, in proporzione alla frequenza con cui compaiono. Lo utilizzi quando le risposte lunghe diventano ripetitive: provi valori da 0.3 a 0.7.
# Frequency penalty to reduce repetition in long outputs
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{
'role': 'user',
'content': 'Write 5 tips for better sleep.'
}],
max_tokens=300,
frequency_penalty=0.5 # reduces repeating the same words/phrases
)
print(response.choices[0].message.content)Presence penalty: favorire la varietà degli argomenti
presence_penalty spinge il modello verso argomenti nuovi: penalizza qualsiasi parola già comparsa, anche una sola volta. È ideale per il brainstorming, quando desidera idee nuove e diversificate.
# Presence penalty for diverse brainstorming output
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{
'role': 'user',
'content': 'List 10 creative ways to use AI in a small business.'
}],
max_tokens=400,
presence_penalty=0.8 # encourages introducing different topics per item
)
print(response.choices[0].message.content)Sequenze stop: punti di arresto personalizzati
Il parametro stop elenca le stringhe che interrompono la generazione non appena compaiono (e vengono escluse). Interrompa la generazione a un ritorno a capo per ottenere una risposta pulita su una sola riga. Veda il codice.
# Use stop sequences to get clean single-line output
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{
'role': 'user',
'content': 'What is the Python keyword for a function definition?\nAnswer:'
}],
max_tokens=20,
stop=['\n', '.'] # stop at newline or period - gets just the keyword
)
print(repr(response.choices[0].message.content)) # 'def'seed: output riproducibili
Il parametro seed rende l'output riproducibile: lo stesso seed insieme a temperature 0 produce la stessa risposta. È ideale per i test, ma controlli system_fingerprint per rilevare cambiamenti nel backend.
# Reproducible output with seed parameter
response1 = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': 'Pick a random number from 1 to 10.'}],
temperature=0,
seed=42
)
response2 = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': 'Pick a random number from 1 to 10.'}],
temperature=0,
seed=42
)
print(response1.choices[0].message.content) # same
print(response2.choices[0].message.content) # same
print('Fingerprint:', response1.system_fingerprint)Scegliere i parametri per i casi d'uso comuni
Eviti di procedere per tentativi con preset rapidi: temperature 0 per la classificazione, 0.2 per le domande e risposte fattuali, 0.8-1.0 per la scrittura creativa. Parta da questi valori e poi li adatti all'attività. Veda il codice.
# Parameter presets for different task types
PRESETS = {
'classify': {'temperature': 0, 'max_tokens': 20},
'factual_qa': {'temperature': 0.2, 'max_tokens': 400},
'creative': {'temperature': 0.9, 'max_tokens': 1000, 'frequency_penalty': 0.3},
'code': {'temperature': 0.1, 'max_tokens': 2000},
'summary': {'temperature': 0.3, 'max_tokens': 300, 'frequency_penalty': 0.2},
}
def complete(prompt, task_type='factual_qa', **overrides):
params = {**PRESETS[task_type], **overrides}
return client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': prompt}],
**params
)Logprobs: capire la sicurezza del modello
logprobs restituisce il livello di sicurezza del modello per ogni token, oltre alle alternative prese in considerazione. Una bassa sicurezza su un fatto è un segnale di possibile allucinazione, utile per creare sistemi più sicuri.
import math
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': 'The capital of France is?'}],
max_tokens=3,
logprobs=True,
top_logprobs=3 # show top 3 alternative tokens at each position
)
for token_log in response.choices[0].logprobs.content:
prob = math.exp(token_log.logprob) # convert log prob to probability
print(f'Token: {token_log.token!r} | Probability: {prob:.2%}')
for alt in token_log.top_logprobs:
print(f' Alt: {alt.token!r} -> {math.exp(alt.logprob):.2%}')Testare sistematicamente gli effetti dei parametri
Non indovini i parametri: li testi. Crei una piccola ricerca a griglia che esegua lo stesso prompt con diverse combinazioni e assegni un punteggio a ciascuna. In questo modo la regolazione diventa ingegneria anziché arte. Veda il codice.
from itertools import product
# Systematic parameter grid search
temperatures = [0.0, 0.3, 0.7]
max_tokens_options = [100, 300]
test_prompt = 'Summarize the benefits of unit testing in 2 sentences.'
results = []
for temp, max_tok in product(temperatures, max_tokens_options):
resp = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': test_prompt}],
temperature=temp,
max_tokens=max_tok
)
results.append({
'temperature': temp,
'max_tokens': max_tok,
'output': resp.choices[0].message.content,
'actual_tokens': resp.usage.completion_tokens
})Verifica rapida
Verifichi la Sua comprensione dei concetti di AI Engineering trattati in questa lezione.
Riepilogo della lezione
Ha imparato a guidare il modello: temperature imposta la casualità, max_tokens limita la lunghezza (controlli finish_reason!) e le penalità riducono le ripetizioni e aumentano la varietà. Prossimo argomento: la gestione degli errori.
Domande Frequenti
La lezione «Controllare il comportamento del modello con i parametri» è gratuita?
Sì — il testo completo di «Controllare il comportamento del modello con i parametri» è 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 Engineering Academy, passa a CoddyKit PRO. Il corso AI Engineering Academy include 4 lezioni in totale.
Cosa imparerò in «Controllare il comportamento del modello con i parametri»?
Sperimenterà con temperature, max_tokens e top_p per osservare come cambiano stile, lunghezza e creatività dell'output, quindi sceglierà le impostazioni adatte al proprio caso d'uso. Eserciti AI Engineering Academy 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 Engineering Academy?
Non è richiesta alcuna esperienza precedente. AI Engineering Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Controllare il comportamento del modello con i parametri»?
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 Engineering Academy?
Sì. Ogni lezione AI Engineering Academy 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
- Configurare l'ambiente Python
- L'endpoint Chat Completions
- Controllare il comportamento del modello con i parametri
- Gestione degli errori e limiti di frequenza