0Pricing
AI Engineering Academy · บทเรียน

ควบคุมพฤติกรรมของโมเดลด้วยพารามิเตอร์

ทดลองใช้ temperature, max_tokens และ top_p เพื่อดูว่าพารามิเตอร์เหล่านี้เปลี่ยนรูปแบบ ความยาว และความสร้างสรรค์ของผลลัพธ์อย่างไร จากนั้นเลือกการตั้งค่าที่เหมาะกับกรณีใช้งาน

ควบคุมพฤติกรรมของโมเดลด้วยพารามิเตอร์ เป็นบทเรียน AI Engineering Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Engineering Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Engineering Academy มีบทเรียนทั้งหมด 4 บทเรียน

พารามิเตอร์หลักที่สำคัญ

มีพารามิเตอร์เพียงไม่กี่ตัวที่มีอิทธิพลต่อผลลัพธ์มากที่สุด ได้แก่ temperature, max_tokens, top_p, frequency_penalty และ presence_penalty เมื่อเข้าใจทั้งห้าตัวนี้ คุณก็จะควบคุมโมเดลได้

Temperature: การควบคุมความสุ่ม

Temperature ควบคุมความสุ่ม เมื่อค่าใกล้ 0 โมเดลจะเลือกคำที่ปลอดภัยที่สุดและให้ผลสม่ำเสมอ เหมาะกับข้อเท็จจริง ส่วนค่าประมาณ 0.7–1.0 จะทำให้ผลลัพธ์หลากหลายและสร้างสรรค์มากขึ้น ดูโค้ดได้เลย

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: การควบคุมความยาวคำตอบ

max_tokens จำกัดความยาวสูงสุดของคำตอบ ซึ่งเป็นขีดจำกัดเพื่อความปลอดภัย ไม่ใช่เป้าหมาย หากตั้งค่าต่ำเกินไป คำตอบจะถูกตัด หากตั้งค่าสูงเกินไปจะเสียเงินและเวลาโดยเปล่าประโยชน์ ควรเผื่อพื้นที่ไว้และตรวจสอบ 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: การสุ่มแบบกลุ่มแกนกลาง

top_p เป็นปุ่มควบคุมความสุ่มอีกแบบหนึ่ง โดยสุ่มเฉพาะโทเคนกลุ่มบนสุดที่มีความน่าจะเป็นรวมกันถึงค่า top_p เคล็ดลับคือควรปรับ temperature หรือ top_p เพียงตัวใดตัวหนึ่งในแต่ละครั้ง

# 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 จะลดแรงจูงใจของโมเดลในการใช้คำเดิมซ้ำ โดยปรับตามจำนวนครั้งที่คำนั้นปรากฏ ใช้ค่านี้เมื่อคำตอบยาว ๆ เริ่มซ้ำซาก ลองเริ่มที่ 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 จะผลักดันให้โมเดลนำเสนอหัวข้อใหม่ โดยลงโทษคำที่เคยปรากฏแล้วแม้เพียงครั้งเดียว เหมาะอย่างยิ่งกับการระดมความคิดที่ต้องการไอเดียสดใหม่และหลากหลาย

# 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: จุดหยุดที่กำหนดเอง

พารามิเตอร์ stop จะรับรายการสตริงที่ทำให้การสร้างข้อความหยุดทันทีเมื่อพบสตริงเหล่านั้น (และจะไม่รวมสตริงดังกล่าวในผลลัพธ์) คุณสามารถหยุดที่การขึ้นบรรทัดใหม่เพื่อรับคำตอบบรรทัดเดียวที่สะอาด ดูโค้ดได้เลย

# 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: ผลลัพธ์ที่ทำซ้ำได้

พารามิเตอร์ seed ทำให้ได้ผลลัพธ์ที่ทำซ้ำได้: เมื่อใช้ seed เดิมร่วมกับ temperature 0 จะได้คำตอบเหมือนเดิม เหมาะสำหรับการทดสอบ แต่ควรตรวจสอบ system_fingerprint เผื่อมีการเปลี่ยนแปลงระบบเบื้องหลัง

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

การเลือกพารามิเตอร์สำหรับกรณีใช้งานทั่วไป

ไม่ต้องเดาค่าเองด้วยค่าที่ตั้งไว้ล่วงหน้าอย่างรวดเร็ว: ใช้ temperature 0 สำหรับการจัดประเภท 0.2 สำหรับคำถามและคำตอบเชิงข้อเท็จจริง และ 0.8–1.0 สำหรับการเขียนเชิงสร้างสรรค์ เริ่มจากค่าเหล่านี้แล้วปรับให้เหมาะกับงานของคุณ ดูโค้ดได้เลย

# 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: การทำความเข้าใจความมั่นใจของโมเดล

logprobs จะบอกว่าโมเดลมั่นใจในโทเคนแต่ละตัวเพียงใด รวมถึงตัวเลือกอื่นที่โมเดลพิจารณา หากโมเดลมีความมั่นใจต่ำเกี่ยวกับข้อเท็จจริง นั่นอาจเป็นสัญญาณเตือนการสร้างข้อมูลหลอน ซึ่งมีประโยชน์ต่อการสร้างระบบที่ปลอดภัยยิ่งขึ้น

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

การทดสอบผลของพารามิเตอร์อย่างเป็นระบบ

อย่าเดาค่าพารามิเตอร์ ให้ทดสอบแทน สร้างการค้นหาแบบตารางขนาดเล็กที่ใช้พรอมต์เดียวกันกับชุดค่าต่าง ๆ และให้คะแนนแต่ละชุด วิธีนี้เปลี่ยนการปรับแต่งจากงานเชิงศิลป์ให้กลายเป็นงานวิศวกรรม ดูโค้ดได้เลย

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

ตรวจสอบความเข้าใจ

ทดสอบความเข้าใจแนวคิดวิศวกรรม AI จากบทเรียนนี้

ทบทวนบทเรียน

คุณได้เรียนรู้วิธีควบคุมโมเดลแล้ว: temperature กำหนดความสุ่ม max_tokens จำกัดความยาว (อย่าลืมตรวจสอบ finish_reason!) ส่วนค่าปรับต่าง ๆ ช่วยลดการซ้ำและเพิ่มความหลากหลาย ขั้นต่อไป: การจัดการข้อผิดพลาด

คำถามที่พบบ่อย

บทเรียน “ควบคุมพฤติกรรมของโมเดลด้วยพารามิเตอร์” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ควบคุมพฤติกรรมของโมเดลด้วยพารามิเตอร์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Engineering Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Engineering Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ควบคุมพฤติกรรมของโมเดลด้วยพารามิเตอร์”

ทดลองใช้ temperature, max_tokens และ top_p เพื่อดูว่าพารามิเตอร์เหล่านี้เปลี่ยนรูปแบบ ความยาว และความสร้างสรรค์ของผลลัพธ์อย่างไร จากนั้นเลือกการตั้งค่าที่เหมาะกับกรณีใช้งาน คุณปฏิบัติ AI Engineering Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Engineering Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Engineering Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “ควบคุมพฤติกรรมของโมเดลด้วยพารามิเตอร์” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน AI Engineering Academy นี้ได้ไหม

ได้ บทเรียน AI Engineering Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การตั้งค่าสภาพแวดล้อม Python
  2. ปลายทางการเติมข้อความสนทนา
  3. ควบคุมพฤติกรรมของโมเดลด้วยพารามิเตอร์
  4. การจัดการข้อผิดพลาดและขีดจำกัดอัตราการเรียกใช้
← กลับไปที่ AI Engineering Academy