Sterowanie zachowaniem modelu za pomocą parametrów
Uczestnicy poeksperymentują z parametrami temperature, max_tokens i top_p, aby sprawdzić ich wpływ na styl, długość i kreatywność odpowiedzi, a następnie dobiorą ustawienia odpowiednie do swojego przypadku użycia.
Sterowanie zachowaniem modelu za pomocą parametrów to bezpłatna lekcja AI Engineering Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Engineering Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Engineering Academy zawiera 4 lekcji w sumie.
Najważniejsze parametry
Na wynik największy wpływ ma kilka parametrów: temperature, max_tokens, top_p, frequency_penalty i presence_penalty. Opanowanie tych pięciu parametrów daje kontrolę nad modelem.
Temperature: sterowanie losowością
Temperature steruje losowością. W pobliżu wartości 0 model wybiera najbezpieczniejsze słowo i zachowuje spójność — to świetne rozwiązanie w przypadku faktów. Przy wartości około 0,7–1,0 odpowiedzi stają się bardziej zróżnicowane i kreatywne. Zobacz kod.
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: sterowanie długością odpowiedzi
max_tokens ogranicza maksymalną długość odpowiedzi — to limit bezpieczeństwa, a nie cel. Zbyt niska wartość powoduje ucięcie odpowiedzi, a zbyt wysoka marnuje pieniądze i czas. Należy dodać zapas i obserwować 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: próbkowanie jądrowe
top_p to kolejne pokrętło losowości: model próbuje tokeny należące do grupy, której łączne prawdopodobieństwo wynosi top_p. Wskazówka: dostrajaj temperature albo top_p, a nie oba parametry jednocześnie.
# 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: ograniczanie powtórzeń
frequency_penalty zniechęca model do powtarzania tych samych słów, a siła działania zależy od częstotliwości ich występowania. Warto go użyć, gdy długie odpowiedzi stają się powtarzalne — można zacząć od wartości 0,3–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: zwiększanie różnorodności tematów
presence_penalty kieruje model ku nowym tematom: nakłada karę na każde słowo, które już się pojawiło, nawet jeśli wystąpiło tylko raz. Świetnie sprawdza się podczas burzy mózgów, gdy potrzebne są świeże i różnorodne pomysły.
# 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)Sekwencje stop: niestandardowe punkty zatrzymania
Parametr stop zawiera ciągi znaków, które natychmiast zatrzymują generowanie po pojawieniu się (i nie są uwzględniane w wyniku). Można zatrzymać generowanie na znaku nowej linii, aby otrzymać czystą odpowiedź w jednym wierszu. Zobacz kod.
# 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: powtarzalne wyniki
Parametr seed sprawia, że wyniki są powtarzalne: ten sam seed oraz temperature równe 0 dają taką samą odpowiedź. To świetne rozwiązanie do testów — należy tylko obserwować system_fingerprint pod kątem zmian po stronie backendu.
# 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)Dobór parametrów do typowych zastosowań
Nie trzeba zgadywać — można użyć szybkich ustawień wstępnych: temperature 0 dla klasyfikacji, 0,2 dla rzeczowych pytań i odpowiedzi oraz 0,8–1,0 dla kreatywnego pisania. Należy zacząć od tych wartości, a następnie dostosować je do zadania. Zobacz kod.
# 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: rozumienie pewności modelu
logprobs zwraca informację o pewności modelu co do każdego tokenu oraz rozważane przez niego alternatywy. Niska pewność dotycząca faktu jest ostrzeżeniem przed halucynacją — to przydatne w bezpieczniejszych systemach.
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%}')Systematyczne testowanie wpływu parametrów
Nie zgaduj wartości parametrów — przetestuj je. Zbuduj niewielkie przeszukiwanie siatki, które uruchomi ten sam prompt dla różnych kombinacji i oceni każdy wynik. Dzięki temu dostrajanie staje się inżynierią, a nie sztuką. Zobacz kod.
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
})Szybki test
Sprawdź swoją wiedzę na temat koncepcji inżynierii AI z tej lekcji.
Podsumowanie lekcji
Nauczyłeś się sterować modelem: temperature ustawia losowość, max_tokens ogranicza długość (obserwuj finish_reason!), a kary zmniejszają powtórzenia i zwiększają różnorodność. Następnie: obsługa błędów.
Często zadawane pytania
Czy lekcja „Sterowanie zachowaniem modelu za pomocą parametrów” jest bezpłatna?
Tak — pełny tekst „Sterowanie zachowaniem modelu za pomocą parametrów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Engineering Academy, przejdź na CoddyKit PRO. Kurs AI Engineering Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Sterowanie zachowaniem modelu za pomocą parametrów”?
Uczestnicy poeksperymentują z parametrami temperature, max_tokens i top_p, aby sprawdzić ich wpływ na styl, długość i kreatywność odpowiedzi, a następnie dobiorą ustawienia odpowiednie do swojego prz… Ćwiczysz AI Engineering Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć AI Engineering Academy?
Nie wymagamy żadnego doświadczenia. AI Engineering Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Sterowanie zachowaniem modelu za pomocą parametrów”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji AI Engineering Academy?
Tak. Każda lekcja AI Engineering Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Konfigurowanie środowiska Python
- Endpoint Chat Completions
- Sterowanie zachowaniem modelu za pomocą parametrów
- Obsługa błędów i limity zapytań