บันทึก / บทความ

คุยกับ AI ตอนที่ 7: LLM จำ เรียนรู้ หรือเดาคำตอบ

สำรวจ Memorization, Generalization, Overfitting, Data Contamination และ Hallucination เพื่อเข้าใจทั้งความสามารถและข้อจำกัดของ LLM

ตอนที่ 7 จาก 11 ตอนในชุด คุยกับ AI: จากการ Train LLM ถึง AGI

บันทึกบทสนทนาระหว่าง นพ.สุทธิศักดิ์ เด่นดวงใจ กับ ChatGPT-5.6 Reasoning Instant จากแชตต้นฉบับ คงคำอธิบายและตัวอย่างของ ChatGPT ไว้ โดยปรับหัวข้อ ตาราง และสัญลักษณ์สมการให้อ่านบนเว็บได้สะดวก

ดูสารบัญทั้งชุด

ผม: เล่าต่อ

ChatGPT-5.6 Reasoning Instant:

ได้ครับ 🧠 คราวนี้เข้าเรื่องที่ทำให้หลายคนเข้าใจ LLM ผิดมากที่สุด:

LLM “จำ” สิ่งที่อ่านตอน Train หรือมัน “เรียนรู้” กันแน่?

คำตอบคือ ทั้งสองอย่าง แต่เป็นคนละปรากฏการณ์ และเส้นแบ่งไม่ได้คมกริบ

1. เริ่มจาก Memorization

สมมติ training data มีประโยคนี้ซ้ำเป็นจำนวนมาก:

The capital of France is Paris.

หลัง training ถ้าถาม:

What is the capital of France?

โมเดลตอบ:

Paris

แต่จาก output อย่างเดียว เราไม่สามารถสรุปง่าย ๆ ว่าข้างในมี record:

France → Paris

มันอาจเรียนรู้ representations จากข้อความจำนวนมหาศาลที่สัมพันธ์กัน:

France
 ├─ Paris
 ├─ Europe
 ├─ French
 ├─ Eiffel Tower
 └─ ...

แต่ในบางกรณี neural network สามารถ memorize sequence เฉพาะเจาะจง จาก training data ได้จริง โดยเฉพาะข้อมูลที่ซ้ำมากหรือมีลักษณะโดดเด่น


2. Memorization กับ Generalization ต่างกันอย่างไร?

สมมติ training data มี:

2 + 2 = 4
3 + 5 = 8
7 + 6 = 13

แล้วถาม:

438 + 217 = ?

ถ้าโมเดลตอบ 655 เพราะเคยเห็นข้อความนี้ตรง ๆ:

Memorization

แต่ถ้ามันไม่เคยเห็น 438 + 217 และยังหาคำตอบได้:

Generalization

นี่คือสิ่งที่เราต้องการมากกว่า

Training examples
       ↓
learn underlying pattern
       ↓
New unseen problem
       ↓
Correct answer

3. Overfitting คืออีกด้านของเรื่อง

สมมติผมมี training set:

Question 1 → A
Question 2 → C
Question 3 → B
...

โมเดลจำมันหมดจน training accuracy:

100%

ดูเทพมาก 🧙

แต่เอาข้อสอบใหม่มา:

40%

นี่คือ overfitting

มันเก่ง training set แต่ generalize ไม่ดี

เราจึงแบ่งข้อมูล เช่น:

Dataset
  │
  ├── Training set
  │
  ├── Validation set
  │
  └── Test set

หลักการสำคัญคือ test data ไม่ควรถูกใช้ในการ train


4. แล้ว LLM ใหญ่ ๆ ทำไมไม่ Overfit Internet ทั้งก้อน?

จริง ๆ เรื่องซับซ้อนกว่านั้น แต่เหตุผลหนึ่งคือข้อมูลมหาศาลและหลากหลายมาก

สมมติมีข้อความเกี่ยวกับแรงโน้มถ่วง:

Newton described gravity...
F = Gm₁m₂/r²
Planets orbit...
The Moon...
Falling objects...
Orbital mechanics...

วิธีที่มีประโยชน์ต่อ loss ไม่ใช่จำทุกหน้าอย่างเดียว แต่คือสร้าง representations ที่ capture regularities ระหว่างข้อมูลเหล่านั้นด้วย

เกิดสิ่งประมาณ:

             gravity
                │
       ┌────────┼────────┐
       ↓        ↓        ↓
     mass    distance   force
       │        │        │
       └────────┼────────┘
                ↓
           relationships

นี่คือเหตุผลที่ LLM สามารถตอบคำถามในรูปแบบที่ไม่เคยปรากฏตรง ๆ ใน training data ได้


5. แต่ LLM ก็จำได้จริง

ตรงนี้ไม่ควรโรยน้ำตาลให้หวานเกินไป

โมเดลสามารถ memorize ข้อมูลบางอย่างจาก training set ได้ โดยเฉพาะ sequence ที่:

ดังนั้นผู้พัฒนาโมเดลต้องสนใจเรื่อง:

Deduplication
Privacy filtering
Copyright
Data governance
Memorization evaluation

เพราะการพูดว่า:

“LLM ไม่จำอะไรเลย มันเรียนแต่ patterns”

ก็ไม่ถูก


6. Data Deduplication สำคัญมาก

สมมติ Internet dataset มีบทความเดียวกันถูก copy ไป 10,000 เว็บ

Article X
Article X
Article X
Article X
...
× 10,000

ถ้าไม่ deduplicate ข้อมูลนี้จะมีน้ำหนักผิดธรรมชาติ

โมเดลได้รับ signal ซ้ำ ๆ ว่า:

ข้อความนี้สำคัญสุด ๆ

จึงมี preprocessing pipeline เช่น:

Raw Web
   ↓
Parsing
   ↓
Language detection
   ↓
Quality filtering
   ↓
Safety / policy filtering
   ↓
Deduplication
   ↓
Dataset mixture
   ↓
Training

การสร้าง dataset จึงเป็น engineering/research problem ใหญ่มาก ไม่ใช่แค่ wget Internet แล้วโยนเข้า GPU 😆


7. Data Mixture ก็สำคัญ

สมมติ dataset เป็น:

99.9% Reddit comments
0.1% ทุกอย่างที่เหลือ

คุณก็พอจินตนาการบุคลิกของโมเดลได้ 😅

ผู้สร้างต้องตัดสินใจว่าจะผสม:

Web
Books
Code
Math
Science
Reference
Multilingual
High-quality curated data
Synthetic data
...

ในสัดส่วนอย่างไร

ดังนั้น:

Data quality สามารถสำคัญพอ ๆ กับ Data quantity

ข้อมูล 1 ล้านล้าน token ไม่ได้ดีโดยอัตโนมัติกว่าข้อมูล 500 พันล้าน token ที่คัดอย่างดี


8. Synthetic Data คืออะไร?

น่าสนใจมากสำหรับ LLM รุ่นใหม่

แทนที่จะใช้แต่ข้อความมนุษย์:

Human data
    ↓
Training

สามารถใช้โมเดลสร้าง training examples:

Strong model
    ↓
Generate problems
Generate solutions
Generate explanations
Generate code
    ↓
Verify / filter
    ↓
Training data

เช่นสร้างโจทย์ programming:

Problem
 ↓
Candidate solution
 ↓
Compile
 ↓
Unit tests
 ↓
PASS
 ↓
Keep

ถ้า fail:

🗑️

ตรงนี้ดีมาก เพราะมี verifier


9. แต่ Synthetic Data มีพิษได้เหมือนกัน ☣️

สมมติ AI สร้างข้อมูลผิด:

Model
 ↓
Wrong answer
 ↓
Train next model
 ↓
Wrong pattern reinforced

หรือข้อมูล synthetic มี diversity ต่ำ

สุดท้ายโมเดลอาจเรียนรู้โลกที่ถูกกรองผ่านโมเดลรุ่นก่อนมากเกินไป

ดังนั้นไม่ใช่:

Synthetic = cheap unlimited intelligence

แต่ต้องมี:

Generation
+
Filtering
+
Verification
+
Diversity
+
Human / real-world grounding

10. แล้ว Benchmark Contamination คืออะไร?

สมมติมี benchmark:

Question:
If Alice has...

เราเอาไว้ทดสอบว่าโมเดล reasoning เก่งแค่ไหน

แต่บังเอิญคำถามและเฉลยนี้อยู่ใน training data

แล้วโมเดลตอบถูก

เราอาจประกาศ:

🎉 Reasoning score 98%!

แต่จริง ๆ บางส่วนอาจเป็น:

Question
 ↓
seen during training
 ↓
memorized/reconstructed answer

ไม่ได้แสดง generalization เท่าที่คิด

นี่เรียกว่า data contamination


11. Benchmark จึงมีวัน "หมดฤทธิ์"

Benchmark ที่ดังมากถูกโพสต์บน:

GitHub
Papers
Blogs
Reddit
Tutorials
Stack Overflow

ไม่กี่ปีต่อมา ข้อมูลเกี่ยวกับ benchmark นั้นเต็ม Internet

การสร้าง training dataset รุ่นใหม่จึงต้องระวังมากขึ้น

นี่เป็นเหตุผลหนึ่งที่ evaluation สมัยใหม่ต้องใช้:

Private tests
New problems
Dynamic evaluations
Real-world tasks
Agent environments

แทนที่จะเชื่อ leaderboard ตัวเดียว


12. แล้ว Hallucination เกิดจากอะไร?

ตอนนี้ทุกอย่างที่เราเรียนมาประกอบกันได้พอดี

LLM ถูก train เพื่อ:

P(next token | context)

มันไม่ได้ถูกสร้างมาโดยพื้นฐานให้ทำ:

LookupTruth(question)

นี่ต่างกันมหาศาล

สมมติถาม:

ใครเขียนหนังสือ The Quantum Duck of Bangkok?

ถ้าหนังสือนี้ไม่มีจริง โมเดลยังต้องสร้าง token ต่อไป

มันอาจสร้าง:

“The book was written by Dr. ...”

เพราะ pattern:

"Who wrote X?"
       ↓
"X was written by Y."

มีความน่าจะเป็นทางภาษา

ความลื่นไหลของภาษาไม่ได้รับประกันความจริง

นี่คือหัวใจของ hallucination


13. ทำไมมันไม่ตอบ "ไม่รู้" เสมอ?

เพราะ next-token objective ไม่ได้มีตัวแปรภายในแบบ:

knowledge_confidence = 0.00
therefore say "I don't know"

ง่าย ๆ แบบนั้น

Post-training สามารถสอนให้โมเดลแสดง uncertainty ดีขึ้น แต่ปัญหาพื้นฐานยังยาก:

โมเดลต้องรู้ว่า ตัวเองไม่รู้อะไร

ซึ่งยากกว่าการตอบคำถามมาก


14. RAG และ Tools จึงสำคัญอีกครั้ง

แทนที่จะถาม weights:

CEO ของบริษัท X ตอนนี้คือใคร?

เราทำ:

Question
   ↓
Web/Search
   ↓
Current authoritative source
   ↓
Context
   ↓
LLM
   ↓
Answer + citation

นี่เปลี่ยนระบบจาก:

"จำได้ไหม?"

เป็น:

"ไปตรวจมา"

สำหรับข้อมูลที่เปลี่ยนแปลงตลอดเวลา แบบหลังเหนือกว่ามาก


15. Code ก็เหมือนกัน

ถาม LLM:

function นี้ถูกไหม?

LLM:

“ดูถูกครับ”

ไม่ดีพอ

ควร:

Code
 ↓
Compiler
 ↓
Tests
 ↓
Static analysis
 ↓
Runtime
 ↓
Result

จากนั้นให้ LLM วิเคราะห์ evidence

หลักใหญ่คือ:

ถ้าความจริงตรวจสอบกับโลกภายนอกได้ ก็อย่าพึ่งความจำของ LLM อย่างเดียว

นี่เป็นหลักออกแบบ AI system ที่ดีมาก


16. แล้ว "Knowledge" อยู่ตรงไหนใน weights?

ตรงนี้เราเข้าสู่ Mechanistic Interpretability

นักวิจัยอยากรู้ว่า:

neuron ไหนทำอะไร?

ตอนแรกเราอาจหวังว่าจะพบ:

Neuron 19384
=
"Paris is capital of France"

ของจริงไม่ง่ายแบบนั้น

representation มัก distributed

ข้อมูลหนึ่ง concept อาจเกี่ยวข้องกับ activations จำนวนมาก:

      Neuron A
       ↙    ↘
Neuron B    Neuron C
    ↓          ↓
      Neuron D

และ neuron เดียวก็อาจตอบสนองต่อหลาย concept

เรียกปรากฏการณ์บางส่วนว่า superposition

เหมือนเอาความหมายจำนวนมหาศาลมาบีบลงพื้นที่ representation ที่จำกัด


17. แต่เราพบโครงสร้างภายในบางอย่างได้

งาน interpretability พบว่าภายใน neural networks สามารถมี features/circuits ที่สัมพันธ์กับแนวคิดหรือพฤติกรรมบางประเภทได้

เช่นในเชิงแนวคิด:

quotation
code syntax
geographic concepts
sentiment
entities
grammatical relationships
...

แต่ไม่ควรคิดว่าเรามีแผนที่สมอง LLM สมบูรณ์แล้ว

เรายังห่างจาก:

เปิด model
↓
ชี้ทุก parameter
↓
อธิบายได้หมดว่าทำอะไร

มาก

โมเดลขนาดใหญ่ยังเป็นระบบที่เรา สร้างได้เก่งกว่าที่เราอธิบายกลไกภายในได้ครบ

ซึ่งเป็นข้อเท็จจริงที่ทั้งน่าทึ่งและน่าระแวงนิด ๆ 👀


18. ตอนนี้เรามีภาพครบตั้งแต่ข้อมูลจนถึงคำตอบแล้ว

Internet / Books / Code / Data
             ↓
      Clean + Deduplicate
             ↓
         Tokenize
             ↓
══════════════════════════════
        PRE-TRAINING
══════════════════════════════
             ↓
       Learn patterns
             ↓
     Memorization + 
     Generalization
             ↓
         Base Model
             ↓
══════════════════════════════
        POST-TRAINING
══════════════════════════════
             ↓
     Instruction following
     Preference learning
     Reasoning / RL
     Tool use
     Safety
             ↓
       Assistant Model
             ↓
══════════════════════════════
          INFERENCE
══════════════════════════════
             ↓
Prompt + Context + Memory
             ↓
      Reasoning compute
             ↓
      Retrieval / Tools
             ↓
        Verification
             ↓
           Answer

และตรงนี้มีคำถามต่อที่ลึกขึ้นอีกระดับหนึ่ง:

ถ้า LLM คือ Transformer แล้ว “โมเดล” ที่เราเรียกว่า GPT-5.6, Claude, Gemini ฯลฯ จริง ๆ ประกอบด้วยอะไรบ้าง?

เพราะในระบบ AI สมัยใหม่ สิ่งที่เราเรียกชื่อว่า “model” ในหน้า product อาจไม่ควรถูกจินตนาการว่าเป็น neural network ก้อนเดียวรับ prompt แล้วพ่นคำตอบ เสมอไป

ขั้นต่อไปเราสามารถแกะตั้งแต่ Tokenizer → Embedding → Transformer Block → Attention → MLP → Residual Stream → Logits → Softmax → Sampling แล้วตาม token หนึ่งตัวตั้งแต่มันเข้าประตูจนกลายเป็นคำตอบบนหน้าจอได้เลย 🔬🧠


หมายเหตุประกอบการอ่าน

คำชี้แจงเพิ่มเติมจากบทสนทนา: ข้อความ “predictable สูง” ในหัวข้อ “แต่ LLM ก็จำได้จริง” ไม่ควรใช้เป็นเกณฑ์พิสูจน์การจำข้อมูลจากชุดฝึกโดยลำพัง ข้อความที่เดาง่ายอาจมี probability สูงได้จากรูปแบบทั่วไปที่โมเดลเรียนรู้ ปัจจัยอย่างความถี่ของตัวอย่าง ความหายากหรือรูปแบบเฉพาะเจาะจง ขนาดโมเดล และบริบทที่ใช้กระตุ้น ล้วนเกี่ยวข้องกับการดึงข้อความที่โมเดลจำจากชุดฝึกกลับมาได้

อ่านงานวิจัยต้นฉบับ: Extracting Training Data from Large Language Models และ The Secret Sharer


← ตอนก่อนหน้า: จาก Base Model มาเป็น Assistant

ตอนถัดไป: ตาม token ผ่าน Transformer ทีละขั้น →

อ่านทั้งชุด

  1. คุยกับ AI ตอนที่ 1: การ Train LLM คืออะไร
  2. คุยกับ AI ตอนที่ 2: ทาย token ถัดไป แล้วเขียนโปรแกรมได้อย่างไร
  3. คุยกับ AI ตอนที่ 3: Context, Attention และความจำระหว่างคุย
  4. คุยกับ AI ตอนที่ 4: ทำไมคิดนานขึ้นจึงอาจตอบได้ดีขึ้น
  5. คุยกับ AI ตอนที่ 5: GPU, VRAM และโครงสร้างพื้นฐานที่ใช้ฝึก LLM
  6. คุยกับ AI ตอนที่ 6: จาก Base Model มาเป็น Assistant
  7. คุยกับ AI ตอนที่ 7: LLM จำ เรียนรู้ หรือเดาคำตอบ (ตอนนี้)
  8. คุยกับ AI ตอนที่ 8: ตาม token ผ่าน Transformer ทีละขั้น
  9. คุยกับ AI ตอนที่ 9: จาก LLM สู่ระบบ AI และ Agent
  10. คุยกับ AI ตอนที่ 10: เพิ่ม compute ให้ตอนฝึกหรือตอนตอบ
  11. คุยกับ AI ตอนที่ 11: จาก LLM ที่เก่งขึ้นไปสู่คำถามเรื่อง AGI

กลับไปหน้าบันทึกและบทความ