AI Engineering Academy · Oppitunti

Mallin toiminnan ohjaaminen parametreilla

Kokeilette temperature-, max_tokens- ja top_p-parametreja nähdäksenne, miten ne vaikuttavat tulosteen tyyliin, pituuteen ja luovuuteen, ja valitsette käyttötarkoitukseenne sopivat asetukset.

Oppitunti 3/413 vaihetta

Mallin toiminnan ohjaaminen parametreilla on ilmainen AI Engineering Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu AI Engineering Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. AI Engineering Academy-kurssilla on yhteensä 4 oppituntia.

Tärkeimmät perusparametrit

Muutamat parametrit vaikuttavat tulokseen eniten: temperature, max_tokens, top_p, frequency_penalty ja presence_penalty. Kun hallitsette nämä viisi, hallitsette mallin toimintaa.

Temperature: satunnaisuuden hallinta

Temperature hallitsee satunnaisuutta. Lähellä arvoa 0 malli valitsee turvallisimman sanan ja pysyy johdonmukaisena — tämä sopii hyvin faktatietoon. Arvoilla noin 0,7–1,0 tuloksista tulee vaihtelevampia ja luovempia. Katsokaa koodi.

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: vastauksen pituuden hallinta

max_tokens rajoittaa vastauksen enimmäispituutta — kyseessä on turvaraja, ei tavoite. Liian pieni arvo katkaisee vastaukset; liian suuri tuhlaa rahaa ja aikaa. Lisätkää puskuria ja seuratkaa finish_reason-arvoa.

# 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: nucleus-otanta

top_p on toinen satunnaisuussäädin: se ottaa näytteitä vain niistä todennäköisimmistä tokeneista, joiden yhteenlaskettu todennäköisyys vastaa top_p-arvoa. Vinkki: säätäkää joko temperature- tai top_p-arvoa, älkää molempia samanaikaisesti.

# 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: toiston vähentäminen

frequency_penalty vähentää samojen sanojen toistamista suhteessa siihen, kuinka usein ne ovat esiintyneet. Käyttäkää sitä, kun pitkät vastaukset alkavat toistaa itseään — kokeilkaa arvoja 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: aiheiden monipuolisuuden lisääminen

presence_penalty ohjaa mallia kohti uusia aiheita: se rankaisee jokaisesta sanasta, joka on jo esiintynyt, vaikka vain kerran. Se sopii hyvin ideointiin, jossa haluatte tuoreita ja vaihtelevia ajatuksia.

# 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)

stop-sekvenssit: mukautetut pysäytyskohdat

stop-parametri sisältää merkkijonoja, jotka pysäyttävät generoinnin heti niiden esiintyessä (eikä niitä sisällytetä vastaukseen). Pysäyttäkää generointi rivinvaihtoon, kun haluatte siistin yksirivisen vastauksen. Katsokaa koodi.

# 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: toistettavat tulokset

seed-parametri tekee tuloksista toistettavia: sama seed-arvo yhdessä temperature-arvon 0 kanssa tuottaa saman vastauksen. Tämä sopii hyvin testaamiseen — tarkkailkaa kuitenkin system_fingerprint-arvoa taustajärjestelmän muutosten varalta.

# 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)

Parametrien valitseminen yleisiin käyttötapauksiin

Välttäkää arvailu käyttämällä nopeita esiasetuksia: temperature 0 luokitteluun, 0,2 faktapohjaisiin kysymyksiin ja 0,8–1,0 luovaan kirjoittamiseen. Aloittakaa näistä ja säätäkää sitten tehtävän mukaan. Katsokaa koodi.

# 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: mallin varmuuden ymmärtäminen

logprobs palauttaa tiedon siitä, kuinka varma malli oli kustakin tokenista, sekä sen harkitsemat vaihtoehdot. Heikko varmuus faktan kohdalla varoittaa hallusinoinnista — tämä on hyödyllistä turvallisempien järjestelmien rakentamisessa.

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%}')

Parametrien vaikutusten järjestelmällinen testaaminen

Älkää arvailko parametreja — testatkaa niitä. Rakentakaa pieni ristihaku, joka suorittaa saman kehotteen eri yhdistelmillä ja pisteyttää jokaisen tuloksen. Näin säätämisestä tulee taiteen sijaan insinöörityötä. Katsokaa koodi.

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
    })

Pikatarkistus

Testatkaa tämän oppitunnin AI Engineering -käsitteiden ymmärtämistänne.

Oppitunnin yhteenveto

Opitte ohjaamaan mallia: temperature määrittää satunnaisuuden, max_tokens rajoittaa pituutta (seuratkaa finish_reason-arvoa!), ja rangaistusparametrit vähentävät toistoa sekä lisäävät vaihtelua. Seuraavaksi: virheenkäsittely.

Aloita maksutta

Opi Python tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”Mallin toiminnan ohjaaminen parametreilla” ilmainen?

Kyllä – oppitunnin ”Mallin toiminnan ohjaaminen parametreilla” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko AI Engineering Academy-kurssin, päivitä CoddyKit PROhon. AI Engineering Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Mallin toiminnan ohjaaminen parametreilla”?

Kokeilette temperature-, max_tokens- ja top_p-parametreja nähdäksenne, miten ne vaikuttavat tulosteen tyyliin, pituuteen ja luovuuteen, ja valitsette käyttötarkoitukseenne sopivat asetukset. Harjoittelet AI Engineering Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni AI Engineering Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin AI Engineering Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Mallin toiminnan ohjaaminen parametreilla”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä AI Engineering Academy-oppitunnilla?

Kyllä. Jokainen AI Engineering Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Python-ympäristön määrittäminen
  2. Chat Completions -päätepiste
  3. Mallin toiminnan ohjaaminen parametreilla
  4. Virheenkäsittely ja nopeusrajoitukset
← Takaisin: AI Engineering Academy