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

คุยกับ AI ตอนที่ 1: การ Train LLM คืออะไร

เริ่มจากคำถามว่าการฝึก LLM ทำอะไรกับ weights แล้วแยก Pre-training, Fine-tuning, RAG และการใส่ข้อมูลในบริบทออกจากกัน

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

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

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

ผม: อะไรคือการ Train LLM

ChatGPT-5.6 Reasoning Instant:

การ Train LLM (Large Language Model) คือการทำให้โมเดลเรียนรู้รูปแบบของภาษา ความรู้ และวิธีแก้ปัญหา จากข้อมูลจำนวนมหาศาล โดยปรับค่าตัวเลขภายในโมเดลที่เรียกว่า weights/parameters ให้ทำนายสิ่งที่ควรตามมาได้ดีขึ้น

ถ้าพูดแบบง่ายที่สุด:

LLM คือเครื่องทำนาย token ถัดไปที่ถูกฝึกจนเก่งมากเสียจนพฤติกรรมที่เกิดขึ้นดูเหมือนการอ่าน เขียน อธิบาย เขียนโปรแกรม และใช้เหตุผล

1. ตอนเริ่ม Train มันทำอะไร?

สมมติในข้อมูลมีประโยค:

The cat sat on the ___

เราอาจต้องการให้โมเดลทำนายว่า

mat

แต่ตอนโมเดลยังไม่เก่ง มันอาจทำนาย:

car     30%
table   20%
mat      5%  ← คำตอบจริง
banana   2%
...

ระบบคำนวณว่าโมเดลผิดมากแค่ไหน เรียกว่า Loss

จากนั้นใช้ backpropagation + optimizer คำนวณว่าควรขยับ parameters ของ neural network ไปทางไหน

Training data
     ↓
Tokenizer
     ↓
Tokens
     ↓
Transformer
     ↓
Predict next token
     ↓
Compare with actual token
     ↓
Loss
     ↓
Backpropagation
     ↓
Update weights
     ↺
ทำซ้ำมหาศาล

นี่คือหัวใจของคำว่า training จริง ๆ


2. แต่ LLM สมัยใหม่ไม่ได้ Train แค่รอบเดียว

โมเดลอย่าง GPT, Claude, Gemini หรือ Llama โดยคร่าว ๆ จะผ่านหลายขั้นตอน

ขั้นแรก: Pre-training 🏋️

เอาข้อมูลจำนวนมหาศาล เช่น

Books
Web pages
Wikipedia
Academic papers
Code
Documentation
Forums
...

มาให้โมเดลเรียนรู้การทำนาย token

เช่น

ประเทศไทยมีเมืองหลวงคือ → กรุงเทพฯ

public static void Main( → string[] args

Newton's second law is → F = ma

หลังจากทำแบบนี้จำนวนมหาศาล โมเดลไม่ได้แค่จำประโยค แต่ parameters เริ่ม encode patterns และ relationships ต่าง ๆ

เช่น

Paris → France
Tokyo → Japan

C# → .NET
Python → pip

dog → animal
salmon → fish

รวมถึง pattern ที่ซับซ้อนกว่านั้นมาก


3. Post-training 🎓

Pre-trained model อย่างเดียวอาจเก่งเรื่องภาษา แต่ยังไม่จำเป็นต้องเป็น assistant ที่ดี

ตัวอย่าง เราถาม:

อธิบาย Docker ให้ผมหน่อย

โมเดลอาจตอบต่อข้อความแบบหนังสือ หรือสร้างข้อความแปลก ๆ เพราะเป้าหมายเดิมของมันคือ predict tokens ไม่ใช่ ช่วยมนุษย์

จึงมีขั้นตอนเพิ่มเติม เช่น Supervised Fine-Tuning (SFT)

ให้ตัวอย่างประมาณ:

USER:
Explain Docker simply.

ASSISTANT:
Docker lets you package an application...

โมเดลเรียนรู้ว่าเมื่อได้รับ instruction ลักษณะนี้ ควรตอบอย่างไร


4. Preference / Reinforcement Learning

ขั้นต่อมาคือสอนว่า คำตอบแบบไหนดีกว่า

เช่นให้โมเดลตอบ 3 แบบ:

A: ยาวมากแต่ผิด

B: ถูกต้อง กระชับ เข้าใจง่าย

C: ถูกบางส่วน

แล้วมีข้อมูล preference ว่า

B > C > A

จากนั้นใช้เทคนิคอย่าง RLHF, RLAIF, reward models หรือ preference-optimization approaches ต่าง ๆ เพื่อผลักพฤติกรรมของโมเดลไปในทิศทางที่ต้องการ

ดังนั้น assistant ที่เราใช้อยู่จึงไม่ใช่แค่

Pretrained LLM

แต่ประมาณว่า

Raw data
   ↓
Pre-training
   ↓
Base model
   ↓
Instruction / supervised training
   ↓
Preference + reinforcement/post-training
   ↓
Safety & behavior training
   ↓
Assistant model

รายละเอียดจริงแตกต่างกันตามแต่ละบริษัทและแต่ละ generation ของโมเดล


5. สิ่งสำคัญมาก: Training ≠ ใส่ข้อมูลเข้า Database

อันนี้คนมักเข้าใจผิด

สมมติเรา train ด้วยประโยคว่า

Suttisak likes The Sims.

ไม่ได้หมายความว่าข้างในโมเดลมีตารางแบบนี้:

SELECT fact
FROM knowledge
WHERE person = 'Suttisak';

ไม่มี database แบบนั้น

สิ่งที่เปลี่ยนคือ weights จำนวนมหาศาลของ neural network

ประมาณ:

Before training

weight_123 = 0.03721

After training

weight_123 = 0.03724

และมี parameters อื่นอีกมหาศาลเปลี่ยนพร้อมกัน

ความรู้จึงถูก กระจายอยู่ใน parameters ไม่ได้เก็บเป็น record ชัด ๆ

นี่เป็นเหตุผลหนึ่งที่ LLM สามารถรู้เรื่องมาก แต่บางครั้ง hallucinate ได้ เพราะมันไม่ได้เปิดฐานข้อมูลแล้ว retrieve fact ที่ถูกต้องทุกครั้ง


6. แล้ว Fine-tuning ต่างจาก Training อย่างไร?

จริง ๆ fine-tuning ก็เป็น training ชนิดหนึ่ง แต่ต่างกันที่จุดเริ่มต้น

Pre-training

Random / initial weights
        ↓
ข้อมูลมหาศาล
        ↓
General-purpose LLM

ส่วน

Fine-tuning

Existing LLM
     ↓
ข้อมูลเฉพาะทางจำนวนเล็กกว่ามาก
     ↓
Specialized model

เช่นคุณอาจมีโมเดลทั่วไป แล้ว fine-tune ด้วยตัวอย่างรายงานเฉพาะทางเพื่อให้ รูปแบบการตอบ และศัพท์ตรงกับงานมากขึ้น

แต่ถ้าจุดประสงค์คือให้มันรู้ข้อมูลล่าสุดจากเอกสารขององค์กร การ fine-tune มัก ไม่ใช่คำตอบที่ดีที่สุด

ตรงนั้นจะเข้าสู่เรื่อง RAG แทน:

Question
   ↓
Search documents
   ↓
Retrieve relevant passages
   ↓
Give them to LLM
   ↓
Generate answer

RAG ไม่ได้เปลี่ยน weights เลย

นี่คือความแตกต่างใหญ่:

วิธี: Pre-training

  • เปลี่ยน weights?: ✅
  • เหมาะกับ: สร้าง LLM

วิธี: Fine-tuning

  • เปลี่ยน weights?: ✅
  • เหมาะกับ: เปลี่ยนพฤติกรรม/ความเชี่ยวชาญ

วิธี: RAG

  • เปลี่ยน weights?: ❌
  • เหมาะกับ: ให้ข้อมูลจากเอกสารภายนอก

วิธี: Prompting

  • เปลี่ยน weights?: ❌
  • เหมาะกับ: บอกว่าจะให้ทำอะไร

วิธี: Context window

  • เปลี่ยน weights?: ❌
  • เหมาะกับ: ให้ข้อมูลชั่วคราวในบทสนทนา

ถ้าจะเข้าใจ LLM ให้ทะลุจริง ๆ จุดที่น่าสนใจต่อคือ “ทำไมแค่บังคับให้ทาย token ถัดไป ถึงกลายเป็นโมเดลที่เขียน C#, แปลภาษา และแก้โจทย์คณิตศาสตร์ได้?” ตรงนั้นคือส่วนที่มหัศจรรย์และแปลกประหลาดที่สุดของ LLM 🧠⚙️


ตอนถัดไป: ทาย token ถัดไป แล้วเขียนโปรแกรมได้อย่างไร →

อ่านทั้งชุด

  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

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