🔬 LLM Dissection Lab

เปิดดูข้างในโมเดล AI จริง ๆ — ในไฟล์เก็บอะไรไว้ แล้วมันทำงานยังไง
ทุกตัวเลขในหน้านี้คำนวณจากโมเดลโอเพนซอร์สจริง Qwen2.5-0.5B (~494 ล้านตัวเลข)

ส่วนที่ 1 — ในไฟล์โมเดลมีอะไร?

"โมเดล" คือโฟลเดอร์ที่มีไฟล์ไม่กี่ไฟล์ หัวใจคือไฟล์ตัวเลขมหาศาล (weights)

โครงสร้างไฟล์จริง (จากโมเดล Qwen2.5-0.5B)
ไฟล์คืออะไร
config.jsonพิมพ์เขียว — บอกว่าโมเดลมีกี่ชั้น กว้างเท่าไหร่
model.safetensorsสมอง — ตัวเลขทศนิยมหลายร้อยล้านตัว
tokenizer.jsonพจนานุกรม แปลง ข้อความ ↔ เลข

อยากเห็นข้างในไฟล์จริง ๆ? กดดูได้เลย 👇

โมเดลเล็กในแล็บนี้ เทียบกับ DeepSeek (ตัวจริงระดับโลก)

ชิ้นส่วนเหมือนกันเป๊ะ ต่างกันแค่ "จำนวน" ประมาณ 1,000 เท่า

Qwen2.5-0.5B (แล็บนี้)DeepSeek-V3
จำนวนตัวเลข (parameters)0.5 พันล้าน671 พันล้าน
จำนวนชั้น (layers)2461
ความกว้าง (hidden size)8967,168
คลังคำ (vocab)151,936129,280
ขนาดไฟล์จริง~0.5 GB689 GB

ส่วนที่ 2 — ดูมันทำงาน

เลือกประโยคตัวอย่าง แล้วดูว่ามันไหลผ่าน 5 ขั้นยังไง (ทุกตัวเลขเป็นของจริงจากโมเดล)

เลือกประโยค:
1หั่นเป็น Tokens — ข้อความแตกเป็นชิ้น ๆ แต่ละชิ้นมีเลขประจำตัว (คลิกเพื่อดูตัวเลขข้างใน)

2กลายเป็นตัวเลข (Embedding)
คอมพิวเตอร์อ่านตัวอักษรไม่ออก รู้จักแต่ "ตัวเลข" จึงทำ 2 ขั้น:
  • ขั้น 1: เปิดพจนานุกรม เอาคำไปแลกเป็น "เลขประจำตัว" (id) — เลขตัวเดียว เป็นแค่ "ที่อยู่/เลขแถว" ไม่ใช่ความหมาย (เหมือนเลขล็อกเกอร์)
  • ขั้น 2: เอา id ไปเปิดตารางยักษ์ ได้ ลิสต์ตัวเลข 896 ตัว ออกมา — ลิสต์นี้มีชื่อจริงว่า embedding (เวกเตอร์)
embedding คืออะไรกันแน่? = "พิกัด" ของคำในปริภูมิความหมาย — เหมือน GPS แต่แทนที่จะใช้ 2 เลข (ละติจูด/ลองจิจูด) บอกตำแหน่งบนแผนที่ มันใช้ 896 เลข บอกตำแหน่งของคำใน "แผนที่ความหมาย"
  • 1 ช่องสี = 1 พิกัด (ตำแหน่งตามแกนหนึ่ง) · 🔴 บวก 🔵 ลบ เข้ม = ค่ามาก
  • ต้องมีหลายช่อง เพราะแผนที่ความหมายมีหลายแกน (โมเดลนี้ 896 แกน คิดขึ้นเอง)
  • ตำแหน่ง = ความหมาย: คำที่ความหมายใกล้กัน จะอยู่ใกล้กันในแผนที่นี้ (ลองเทียบดูข้างล่าง)

ทำไมต้องมีหลายช่อง? เพราะมันทำให้ "คำที่ความหมายใกล้กัน → ตัวเลขคล้ายกัน"

กดเทียบสองคำ: ดูว่าลายเส้นสีคล้ายกันแค่ไหน + คะแนนความใกล้เคียง

3ทำนายคำต่อไป — โมเดลจัดอันดับว่าคำถัดไปน่าจะเป็นอะไร นี่คือสิ่งที่มันทำจริง ๆ
4เขียนต่อ (Generate) — ทีละคำ — กดทีละครั้ง: แต่ละคำคือ "คำที่ทำนายว่ามาต่อ" (ข้อ 3) เติมเข้าไป แล้ววนกลับไปทำใหม่

5Attention — เติม "บริบท" ให้แต่ละคำ
จำข้อ 2 ได้ไหม: แต่ละคำกลายเป็นตัวเลข แต่เป็นความหมาย "ลอย ๆ" ที่ยังไม่รู้บริบท เช่น คำว่า "bank" ตอนนี้ยังไม่รู้ว่าหมายถึง "ริมฝั่งแม่น้ำ" หรือ "ธนาคาร"
Attention คือขั้นตอนทางคณิตศาสตร์ (ชื่อเทคนิค: self-attention) ที่ให้แต่ละคำ "ดึงข้อมูล" จากคำอื่นที่เกี่ยวข้องในประโยค มาปรับความหมายตัวเองให้เข้ากับบริบท
  • ไม่ต้องรู้คณิตศาสตร์ข้างใน — รู้แค่ว่ามันทำให้คำ "เข้าใจบริบท": "bank" ที่อยู่ใกล้ "river" กับใกล้ "money" จะได้ความหมายต่างกัน ทั้งที่เริ่มจากตัวเลขชุดเดียวกัน
  • แต่ละคำ ดึงจากหลายคำพร้อมกัน (มากบ้างน้อยบ้าง) ไม่ใช่จับคู่กับคำเดียว
  • กฎเดียวที่ต้องจำ: คำ ดึงได้แค่จากคำ "ก่อนหน้า" (ตอนกำลังเขียน ยังไม่เห็นคำข้างหน้า)
ที่นั่งในไปป์ไลน์: ข้อ 2 (คำ → ตัวเลขลอย ๆ)ข้อ 5 Attention (เติมบริบท) → ข้อ 3 (ทายคำต่อไป)

👆 คลิกคำในประโยค เพื่อดู "ส่วนผสม" ว่ามันดึงข้อมูลจากคำไหนบ้าง (ยิ่งเขียวเข้ม = ดึงมาก):