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

ความแตกต่างของโมเดลการให้เหตุผล

การคิดเป็นลำดับภายในเทียบกับโมเดลมาตรฐาน: สิ่งที่เปลี่ยนไปสำหรับผู้เขียนพรอมต์

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

โมเดลการให้เหตุผลคืออะไร

โมเดลการให้เหตุผลคือ LLM ที่ได้รับการฝึกและกำหนดค่าโดยเฉพาะให้ดำเนินการพิจารณาภายในเป็นเวลานานก่อนสร้างคำตอบ ตัวอย่างเช่น ชุดโมเดล o1/o3/o4 ของ OpenAI และ Claude ของ Anthropic ที่เปิดใช้การคิดแบบขยาย

โมเดลมาตรฐานจะสร้างข้อความทีละโทเค็นโดยตรงจากพรอมต์ของคุณ แต่โมเดลการให้เหตุผลจะสร้างลำดับความคิดภายในที่ยาวก่อน แล้วจึงสรุปเป็นคำตอบสุดท้าย

โมเดลมาตรฐานเทียบกับโมเดลการให้เหตุผล: สิ่งที่คุณเห็น

จากมุมมองของผู้ใช้ส่วนเชื่อมต่อโปรแกรมประยุกต์ ความแตกต่างคือ:

  • โมเดลมาตรฐาน: ข้อมูลนำเข้า → ผลลัพธ์ (รวดเร็ว ตรงไปตรงมา)
  • โมเดลการให้เหตุผล: ข้อมูลนำเข้า → [การคิดภายใน ซึ่งซ่อนอยู่หรือส่งเป็นกระแส] → ผลลัพธ์ (ช้ากว่า แต่แม่นยำกว่าในปัญหายาก)

กระบวนการคิดคือพื้นที่จดร่างส่วนตัวของโมเดล ซึ่งอาจมีการลองผิดทาง การแก้ไขตนเอง และการคำนวณระหว่างทางที่ไม่ปรากฏในคำตอบสุดท้าย

ชุดโมเดล o ของ OpenAI: พฤติกรรมของส่วนเชื่อมต่อโปรแกรมประยุกต์

โมเดล o1/o3/o4 ของ OpenAI จัดการการคิดภายใน คุณจะไม่เห็นโทเค็นการให้เหตุผลตามค่าเริ่มต้น คุณสามารถดูจำนวนโทเค็นการคิดได้ในข้อมูลเมทาดาทาการใช้งาน แต่ไม่สามารถดูเนื้อหาได้

import openai

client = openai.OpenAI(api_key='sk-...')

# o3 — reasoning happens internally
response = client.chat.completions.create(
    model='o3',
    messages=[
        {'role': 'user', 'content': 'Solve: A train leaves Chicago at 9am going 60mph. Another leaves NYC at 10am going 80mph. If the distance is 790 miles, when do they meet?'}
    ],
    # reasoning_effort='high'  # Optional: 'low', 'medium', 'high'
)

print(response.choices[0].message.content)
# Check how many tokens were used for thinking:
print('Input tokens:', response.usage.prompt_tokens)
print('Output tokens:', response.usage.completion_tokens)

การคิดแบบขยายของ Claude: พฤติกรรมของส่วนเชื่อมต่อโปรแกรมประยุกต์

Claude ของ Anthropic เปิดเผยโทเค็นการคิดแบบขยายผ่านส่วนเชื่อมต่อโปรแกรมประยุกต์ คุณสามารถส่งและดูขั้นตอนการให้เหตุผลของโมเดลได้แบบเรียลไทม์ เนื้อหาการคิดจะปรากฏก่อนการตอบสนองสุดท้าย

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-...')

# Enable extended thinking
response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=16000,
    thinking={
        'type': 'enabled',
        'budget_tokens': 10000  # Max tokens for thinking
    },
    messages=[{
        'role': 'user',
        'content': 'What is the 100th prime number?'
    }]
)

# Response contains both thinking blocks and text blocks
for block in response.content:
    if block.type == 'thinking':
        print('THINKING:', block.thinking[:200], '...')
    elif block.type == 'text':
        print('ANSWER:', block.text)

การส่งโทเค็นการคิดเป็นกระแส

คุณสามารถส่งการคิดแบบขยายเป็นกระแสแบบเรียลไทม์ เพื่อดูการให้เหตุผลของโมเดลขณะที่กำลังดำเนินไป วิธีนี้มีประโยชน์ต่อประสบการณ์ผู้ใช้ เช่น การแสดงภาพเคลื่อนไหว “กำลังคิด” หรือเปิดให้ผู้ใช้ขั้นสูงสังเกตกระบวนการให้เหตุผล

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-...')

def stream_with_thinking(question):
    with client.messages.stream(
        model='claude-opus-4-5',
        max_tokens=16000,
        thinking={'type': 'enabled', 'budget_tokens': 8000},
        messages=[{'role': 'user', 'content': question}]
    ) as stream:
        current_block_type = None
        for event in stream:
            # Track which block type we're in
            if hasattr(event, 'type'):
                if 'thinking' in str(event.type):
                    current_block_type = 'thinking'
                elif 'text' in str(event.type):
                    current_block_type = 'text'
            # Print text delta
            if hasattr(event, 'delta') and hasattr(event.delta, 'text'):
                prefix = '[THINK] ' if current_block_type == 'thinking' else '[ANS] '
                print(prefix + event.delta.text, end='', flush=True)

stream_with_thinking('Explain why P != NP is unproven.')

สิ่งที่เกิดขึ้นภายใน: พื้นที่จดร่าง

การคิดภายในของโมเดลเป็นพื้นที่จดร่างที่โมเดลสามารถใช้เพื่อ:

  • สำรวจแนวทางหลายรูปแบบก่อนเลือกแนวทางหนึ่ง
  • คำนวณและตรวจสอบผลลัพธ์
  • ระบุข้อผิดพลาดของตนเองและย้อนกลับไปแก้ไข
  • พิจารณากรณีขอบ
  • วางแผนวิธีแก้ปัญหาหลายขั้นตอน

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

budget_tokens: การควบคุมระดับการคิด

budget_tokens (Claude) หรือ reasoning_effort (OpenAI) เป็นตัวควบคุมว่าโมเดลจะใช้การคิดมากน้อยเพียงใด การคิดมากขึ้นทำให้แม่นยำขึ้นสำหรับปัญหายาก แต่ก็มีค่าใช้จ่ายและความหน่วงสูงขึ้น

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-...')

def ask_with_budget(question, budget):
    r = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=budget + 2048,  # must exceed budget_tokens
        thinking={'type': 'enabled', 'budget_tokens': budget},
        messages=[{'role': 'user', 'content': question}]
    )
    thinking_tokens = sum(
        len(b.thinking.split()) * 1.3  # rough estimate
        for b in r.content if b.type == 'thinking'
    )
    answer = next(b.text for b in r.content if b.type == 'text')
    return answer, int(thinking_tokens)

# Same hard question with different budgets
q = 'Prove that the square root of 2 is irrational.'
ans_small, tok_small = ask_with_budget(q, 1024)
ans_large, tok_large = ask_with_budget(q, 8000)
print(f'Small budget ({tok_small} thinking tokens): {ans_small[:100]}')
print(f'Large budget ({tok_large} thinking tokens): {ans_large[:100]}')

อุณหภูมิและโมเดลให้เหตุผล

โมเดลให้เหตุผลมีพฤติกรรมแตกต่างกันเมื่อใช้การตั้งค่าอุณหภูมิ:

  • สำหรับโมเดลตระกูล o ของ OpenAI: ค่าอุณหภูมิเริ่มต้นเป็น 1 และไม่สามารถเปลี่ยนได้เสมอไป
  • สำหรับการคิดแบบขยายของ Claude: โดยทั่วไปจะตั้งอุณหภูมิเป็น 1 ระหว่างการคิด

อย่าพยายามใช้อุณหภูมิเพื่อควบคุมพฤติกรรมของโมเดลให้เหตุผล — ให้ใช้ budget_tokens หรือ reasoning_effort แทน

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-...')

# For Claude with extended thinking, temperature=1 is the default
# and best practice
response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=10000,
    temperature=1,  # Required to be 1 when extended thinking is enabled
    thinking={
        'type': 'enabled',
        'budget_tokens': 5000
    },
    messages=[{
        'role': 'user',
        'content': 'Write a Python function to find all prime numbers up to N.'
    }]
)
print(response.content[-1].text[:300])

เกณฑ์วัดประสิทธิภาพ: จุดที่การให้เหตุผลได้เปรียบ

โมเดลให้เหตุผลมีประสิทธิภาพเหนือกว่าโมเดลมาตรฐานอย่างชัดเจนที่สุดในด้านต่อไปนี้:

  • คณิตศาสตร์แข่งขัน: AIME, AMC (o3 มีความสามารถใกล้เคียงผู้เชี่ยวชาญมนุษย์)
  • การเขียนโปรแกรมที่ซับซ้อน: การเขียนโปรแกรมแข่งขัน (Codeforces)
  • การให้เหตุผลทางวิทยาศาสตร์: GPQA (วิทยาศาสตร์ระดับบัณฑิตศึกษา)
  • ตรรกะหลายขั้นตอน: ปัญหาที่ต้องอาศัยการอนุมานตามลำดับ

สำหรับงานง่าย ๆ เช่น ไวยากรณ์ การสรุปเนื้อหา และคำถาม-คำตอบเชิงข้อเท็จจริง โมเดลมาตรฐานทำได้ดีเทียบเท่ากัน โดยมีค่าใช้จ่ายต่ำกว่าถึง 10–100 เท่า

ความเป็นจริงเกี่ยวกับความหน่วง

โมเดลให้เหตุผลทำงานช้า ปัญหายากที่ใช้ระดับการให้เหตุผลสูงอาจใช้เวลา 30–60 วินาที จึงควรวางแผนประสบการณ์ผู้ใช้ให้เหมาะสม:

  • แสดงตัวบ่งชี้ความคืบหน้า เช่น “กำลังคิด...”
  • ใช้การส่งผลลัพธ์แบบต่อเนื่องเพื่อแสดงผลลัพธ์บางส่วนทันทีที่พร้อมใช้งาน
  • อย่าใช้โมเดลให้เหตุผลสำหรับการสนทนาแบบโต้ตอบทันทีที่ความหน่วงมีความสำคัญ
  • คำนวณผลลัพธ์จากโมเดลให้เหตุผลล่วงหน้าสำหรับคำถามยากที่ทราบอยู่แล้ว
import time
import anthropic

client = anthropic.Anthropic(api_key='sk-ant-...')

def timed_reasoning_call(question, budget):
    start = time.time()
    response = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=budget + 2000,
        thinking={'type': 'enabled', 'budget_tokens': budget},
        messages=[{'role': 'user', 'content': question}]
    )
    elapsed = time.time() - start
    answer = next(b.text for b in response.content if b.type == 'text')
    print(f'Latency: {elapsed:.1f}s | Answer: {answer[:100]}')
    return answer

# Hard problem — expect 20-45 seconds
timed_reasoning_call(
    'Design a database schema for a multi-tenant SaaS billing system.',
    budget=8000
)

โมเดลให้เหตุผลและพรอมป์ตระบบ

โมเดลให้เหตุผลตอบสนองต่อพรอมป์ตระบบแตกต่างจากโมเดลมาตรฐาน เนื่องจากโมเดลจะไตร่ตรองภายในก่อนตอบ จึงทำตามคำสั่งที่ซับซ้อนหลายขั้นตอนในพรอมป์ตระบบได้อย่างน่าเชื่อถือยิ่งขึ้น

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

ตรวจสอบความรู้: การคิดของโมเดลให้เหตุผล

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

สรุป: ความแตกต่างของโมเดลให้เหตุผล

โมเดลให้เหตุผลอย่าง o1/o3 และ Claude ที่ใช้การคิดแบบขยายจะสร้างลำดับความคิดภายในก่อนตอบ ผู้เขียนพรอมป์ตจัดเตรียมปัญหาให้ โมเดลจะไตร่ตรองภายใน สำรวจแนวทางต่าง ๆ และแก้ไขตนเอง จากนั้นจึงสร้างคำตอบสุดท้าย คุณควบคุมระดับการคิดได้ด้วย budget_tokens (Claude) หรือ reasoning_effort (OpenAI) โมเดลให้เหตุผลมีความโดดเด่นด้านคณิตศาสตร์ที่ซับซ้อน การเขียนโค้ด และตรรกะหลายขั้นตอน แต่มีค่าใช้จ่ายสูงกว่าโมเดลมาตรฐาน 10–100 เท่า และทำงานช้ากว่า 10–100 เท่า ใช้การส่งผลลัพธ์แบบต่อเนื่องและตัวบ่งชี้ความคืบหน้าเพื่อจัดการความหน่วงในประสบการณ์ผู้ใช้

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

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

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

คุณจะเรียนรู้อะไรในบทเรียน “ความแตกต่างของโมเดลการให้เหตุผล”

การคิดเป็นลำดับภายในเทียบกับโมเดลมาตรฐาน: สิ่งที่เปลี่ยนไปสำหรับผู้เขียนพรอมต์ คุณปฏิบัติ AI Prompt Engineering ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

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

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

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

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

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

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

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

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