หลักการทำงานของโมเดลภาษาขนาดใหญ่อย่าง Llama

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

อ่าน 18 นาทีอัปเดตเมื่อ

Loose threads passing through layered frames and coming out woven

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

โทเคน (Token): วิธีที่โมเดลอ่านข้อความ

โมเดลภาษาไม่ได้มองเห็นเป็นตัวอักษรหรือคำเต็ม ๆ แต่ข้อความจะถูกแยกออกเป็นโทเคน (tokens) คำที่พบบ่อยมักจะเป็น 1 โทเคน ส่วนคำที่ยาวหรือพบได้ยากจะถูกตัดออกเป็นหลายส่วน รวมถึงเครื่องหมายวรรคตอนต่าง ๆ ด้วย จากนั้นแต่ละโทเคนจะถูกแปลงเป็นชุดตัวเลขเพื่อให้โมเดลนำไปคำนวณต่อได้

โทเคนช่วยอธิบายพฤติกรรมแปลก ๆ บางอย่างได้ เช่น ถ้าคุณขอให้โมเดลนับว่ามีตัวอักษร "r" กี่ตัวในคำยาว ๆ หรือให้สะกดคำแบบย้อนกลับ โมเดลก็อาจจะตอบผิด เพราะตั้งแต่แรกมันไม่เคยมองเห็นตัวอักษรแยกเป็นตัว ๆ นอกจากนี้ โทเคนยังเป็นเหตุผลว่าทำไมข้อจำกัดต่าง ๆ (เช่น โมเดลอ่านข้อความได้มากแค่ไหน หรือคำตอบยาวได้เท่าใด) ถึงวัดกันเป็นโทเคนแทนที่จะเป็นคำ ภาษาที่ต้องใช้จำนวนโทเคนต่อประโยคมากกว่าจึงถึงขีดจำกัดเหล่านี้ได้เร็วกว่า

การคาดการณ์: ทีละโทเคน

โดยเนื้อแท้แล้ว LLM ทำงานเพียงอย่างเดียว คือ เมื่อดูจากข้อความทั้งหมดที่มีอยู่ก่อนหน้า มันจะประเมินความน่าจะเป็นของโทเคนถัดไปที่เป็นไปได้ จากนั้นเลือกมา 1 โทเคน นำไปต่อท้ายข้อความเดิม แล้วทำซ้ำกระบวนการนี้ไปเรื่อย ๆ คำตอบยาว ๆ จึงเกิดจากการทำขั้นตอนนี้ซ้ำหลายร้อยหรือหลายพันครั้ง

แต่โมเดลไม่ได้เลือกโทเคนที่น่าจะเป็นไปได้มากที่สุดเสมอไป มีการใส่การสุ่มแบบควบคุมไว้เล็กน้อย ซึ่งมักกำหนดโดยค่าพารามิเตอร์ที่เรียกว่า temperature เพื่อให้คำตอบมีความหลากหลายและดูเป็นธรรมชาติ นั่นคือเหตุผลที่คำถามเดิมอาจได้สำนวนภาษาต่างกันในแต่ละครั้ง และการกดสร้างคำตอบใหม่ (regenerate) อาจช่วยให้ได้คำตอบที่ดีกว่าเดิม

การฝึกฝน: จากตัวทำนายข้อความสู่ผู้ช่วยอัจฉริยะ

Pre-training (การฝึกฝนขั้นต้น)

เริ่มแรก โมเดลจะอ่านข้อความจำนวนมหาศาลและเรียนรู้ที่จะทำนายโทเคนถัดไป ข้อมูล Model Card ของ Meta ระบุว่าข้อมูลพรีเทรนของ Llama 3.3 และ 3.1 เป็น "ชุดข้อมูลออนไลน์ที่เปิดเผยต่อสาธารณะที่ผสมผสานขึ้นใหม่" ซึ่งมีมากกว่า 15 ล้านล้านโทเคน ส่วน Llama 4 ได้รับการฝึกจากข้อมูลสาธารณะ ข้อมูลลิขสิทธิ์ และข้อมูลจากผลิตภัณฑ์ของ Meta รวมกันประมาณ 40 ล้านล้านโทเคนสำหรับ Scout และ 22 ล้านล้านโทเคนสำหรับ Maverick ตลอดกระบวนการนี้ โมเดลจะซึมซับไวยากรณ์ ข้อเท็จจริง ลีลาการเขียน โค้ด และรูปแบบการใช้เหตุผล เพราะสิ่งเหล่านี้ช่วยให้มันทำนายได้แม่นยำยิ่งขึ้น

Instruction tuning (การปรับแต่งตามคำสั่ง)

ตัวทำนายข้อความเปล่า ๆ ทำได้แค่นำคำมาต่อกันไปเรื่อย ๆ แต่ยังไม่สามารถตอบคำถามอย่างเป็นประโยชน์ได้ โมเดลจึงต้องผ่านการฝึกฝนเพิ่มเติมด้วยตัวอย่างคำสั่งพร้อมคำตอบที่ดี รวมถึงฟีดแบ็กจากมนุษย์ว่าคำตอบใดดีกว่ากัน ข้อมูล Model Card สำหรับ Llama 3.x ของ Meta เรียกขั้นตอนนี้ว่า Supervised Fine-Tuning (SFT) และ Reinforcement Learning with Human Feedback (RLHF) ผลลัพธ์ที่ได้ก็คือเวอร์ชัน "Instruct" ที่คุณกำลังคุยด้วยอยู่นั่นเอง

จุดตัดของความรู้ (Knowledge cut-off)

ข้อมูลที่ใช้ฝึกฝนจะสิ้นสุดลง ณ วันที่ใดวันหนึ่ง และโมเดลจะไม่รู้อะไรเลยหลังจากนั้น ตามข้อมูล Model Card ของ Meta จุดตัดความรู้ของ Llama 4 Maverick และ Scout อยู่ที่เดือนสิงหาคม 2024 ส่วน Llama 3.3 70B และ Llama 3.1 8B อยู่ที่เดือนธันวาคม 2023 หากคุณถามถึงสิ่งที่เกิดขึ้นหลังจากนั้น โมเดลจะบอกว่าไม่รู้ หรือแย่กว่านั้นคือเดาคำตอบขึ้นมาเอง แชทของเราไม่สามารถเชื่อมต่ออินเทอร์เน็ตเพื่อดึงข้อมูลล่าสุดมาอุดช่องว่างตรงนี้ได้

บริบท (Context): หน่วยความจำชั่วคราวของโมเดล

ทุกสิ่งที่โมเดลนำมาพิจารณาขณะเขียนคำตอบ (คำสั่งระบบ, ประวัติการสนทนาที่ผ่านมา และข้อความใหม่ของคุณ) เรียกว่าบริบท (context) โมเดลจะไม่มีความทรงจำใด ๆ นอกเหนือจากบริบทนี้ เมื่อคุณเปิดแชทใหม่ โมเดลจะไม่รู้อะไรเลยเกี่ยวกับสิ่งที่คุณเคยคุยไว้ก่อนหน้านี้

ขนาดสูงสุดที่รับได้เรียกว่าหน้าต่างบริบท (context window) ซึ่งวัดเป็นหน่วยโทเคน ข้อมูล Model Card ของ Meta ระบุว่า Llama 3.3 และ 3.1 รับได้ 128K โทเคน, Llama 4 Maverick รับได้ 1M และ Llama 4 Scout รับได้ 10M ส่วนผู้ให้บริการที่เราใช้นั้นรองรับประมาณ 524K สำหรับ Maverick และประมาณ 1.3M สำหรับ Scout ทั้งนี้ แชทของเราจะส่งข้อความเพียงบางส่วนของการสนทนาไปประมวลผลเพื่อให้ตอบกลับได้รวดเร็ว ซึ่งเป็นเหตุผลว่าทำไมข้อความแรก ๆ ในบทสนทนาที่ยาวมาก ๆ อาจหมดอิทธิพลต่อคำตอบในภายหลังได้

Mixture of Experts: โครงสร้างภายในของ Llama 4

โมเดลตระกูล Llama 3 เป็นแบบ Dense กล่าวคือจะเรียกใช้ทุกพารามิเตอร์ (ชุดตัวเลขที่เรียนรู้ภายในโมเดล) ในทุก ๆ โทเคน แต่ Llama 4 เปลี่ยนมาใช้สถาปัตยกรรมแบบ Mixture of Experts (MoE) แทน ภายในโมเดลจะประกอบด้วยเครือข่ายย่อยเฉพาะทางจำนวนมากที่เรียกว่า Experts และในแต่ละโทเคนจะมีเพียงบาง Experts เท่านั้นที่ถูกเรียกใช้งาน ข้อมูล Model Card ของ Meta ระบุตัวเลขไว้ว่า Llama 4 Scout มีพารามิเตอร์ที่ทำงานจริง (active) 17 พันล้านตัว จากทั้งหมด 109 พันล้านตัว โดยมี 16 experts ส่วน Llama 4 Maverick มีพารามิเตอร์ที่ทำงานจริง 17 พันล้านตัว จากทั้งหมด 400 พันล้านตัว พร้อม 128 experts ข้อดีคือโมเดลสามารถจุความรู้ได้มหาศาล แต่ใช้ต้นทุนในการประมวลผลต่อโทเคนน้อยกว่าโมเดลแบบ Dense ที่มีขนาดรวมเท่ากัน

นอกจากนี้ Llama 4 ยังเป็นแบบ Natively Multimodal โดย Meta อธิบายว่าเป็นแบบ "Early Fusion" ที่ข้อความและรูปภาพจะถูกประมวลผลร่วมกันในโมเดลเดียว ไม่ได้ใช้โมดูลอื่นมาต่อเติมภายหลัง นั่นคือเหตุผลที่ Maverick และ Scout สามารถตอบคำถามเกี่ยวกับรูปภาพที่คุณแนบไปได้ ในขณะที่ Llama 3 ซึ่งรองรับเฉพาะข้อความไม่สามารถทำได้

ทำไมโมเดลถึงชอบ "มโน" ข้อมูลขึ้นมาเอง

โมเดลภาษาถูกฝึกมาเพื่อสร้างข้อความที่ฟังดูน่าเชื่อถือ ไม่ได้ถูกฝึกมาเพื่อตรวจสอบว่าข้อความนั้นถูกต้องตามความเป็นจริงหรือไม่ เมื่อเป็นข้อเท็จจริงที่มันเรียนรู้มาเป็นอย่างดี สิ่งที่น่าเชื่อถือกับความจริงก็จะตรงกัน แต่เมื่อเป็นเรื่องที่มันไม่รู้จริง (เช่น ชื่อเฉพาะที่ไม่ค่อยมีใครรู้จัก, ตัวเลขที่แน่นอน, เหตุการณ์ที่เพิ่งเกิดขึ้น หรือเอกสารอ้างอิง) มันก็ยังคงสร้างข้อความที่ฟังดูเข้าท่าขึ้นมาอยู่ดี ภาวะนี้มักเรียกว่าอาการประสาทหลอน (hallucination) ซึ่งไม่ได้แปลว่าโมเดลจงใจโกหก แต่เป็นเพราะมันไม่มีฐานข้อมูลข้อเท็จจริงแยกต่างหากไว้ให้ตรวจสอบ

  • ตัวเลขที่แน่นอน วันที่ ข้อความคำพูด และการอ้างอิง มักเป็นจุดที่มีโอกาสผิดพลาดมากที่สุด
  • การถามย้ำว่า "แน่ใจไหม?" อาจทำให้โมเดลแก้คำตอบ หรือแม้กระทั่งขอโทษในสิ่งที่ตัวเองตอบถูกไปแล้ว จึงไม่ใช่วิธีตรวจสอบที่เชื่อถือได้
  • การใส่ข้อความต้นฉบับให้โมเดลอ่าน แล้วสั่งให้ตอบโดยอ้างอิงจากข้อความนั้นเท่านั้น มักช่วยลดข้อผิดพลาดได้มาก

คุณจะเห็นความแตกต่างได้ชัดเจนจากตัวอย่างคำสั่ง 2 แบบนี้:

ตอบจากความจำ (เสี่ยงผิดพลาดมากกว่า):
ห้องสมุดประชาชนใน [เมืองของฉัน] ก่อตั้งขึ้นเมื่อใด และใครเป็นผู้สนับสนุนงบประมาณ?

ตอบจากแหล่งข้อมูล (ปลอดภัยกว่า):
ให้ใช้เฉพาะข้อมูลจากข้อความด้านล่างนี้เท่านั้น แล้วตอบว่าห้องสมุดก่อตั้งขึ้นเมื่อใดและใคร
เป็นผู้สนับสนุนงบประมาณ หากในข้อความไม่ได้ระบุไว้ ให้ตอบว่า "ไม่ได้ระบุ"
"""
[วางย่อหน้าจากเว็บไซต์ของห้องสมุดนั้นที่นี่]
"""

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

คู่มือการตรวจสอบความถูกต้องของคำตอบจาก AI ของเราได้รวบรวมวิธีเหล่านี้นำไปปรับใช้จริงทีละขั้นตอน

ความลื่นไหลของภาษาไม่ได้แปลว่าเป็นความจริง ย่อหน้าที่เขียนเรียบเรียงมาอย่างสละสลวยและมั่นใจ บ่งบอกเพียงแค่ว่าโมเดลนั้นเก่งเรื่องภาษา แต่มิได้เป็นสิ่งยืนยันเลยว่าข้อเท็จจริงในนั้นถูกต้อง

สิ่งที่ควรจำไว้เมื่อใช้งานแชท

การทำงานของโมเดลสิ่งที่คุณควรทำ
ทำนายคำจากรูปแบบ ไม่ได้เปิดค้นข้อมูลตรวจเช็กข้อเท็จจริงในเรื่องที่สำคัญเสมอ
รู้เฉพาะข้อมูลที่อยู่ในบริบทเท่านั้นวางเนื้อหาและข้อมูลแวดล้อมที่จำเป็นลงไปด้วย
ความรู้มีจุดสิ้นสุด เชื่อมต่อเว็บไม่ได้ใช้แหล่งข้อมูลปัจจุบันสำหรับข่าวสาร ราคา และข้อกฎหมาย
มีความสุ่มอยู่ในทุกคำตอบเล็กน้อยกดสร้างคำตอบใหม่เพื่อเปรียบเทียบแต่ละเวอร์ชัน
ไม่มีความทรงจำข้ามห้องแชทระบุความต้องการของคุณใหม่ทุกครั้งที่เปิดแชทใหม่
อ่านเป็นโทเคน ไม่ใช่อักษรทีละตัวอย่าหวังพึ่งโมเดลในการนับตัวอักษรหรือจำกัดจำนวนตัวอักษรเป๊ะ ๆ

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

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

Llama เข้าใจสิ่งที่ตัวเองพูดจริง ๆ ไหม?

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

โมเดลได้เรียนรู้จากบทสนทนาของฉันไหม?

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

Llama กับ ChatGPT ต่างกันอย่างไร?

ทั้งคู่ทำงานด้วยโมเดลภาษาขนาดใหญ่ที่พัฒนาขึ้นบนหลักการที่คล้ายกัน โดย Llama เป็นตระกูลโมเดลที่พัฒนาโดย Meta และเปิดให้ใช้งานแบบ Open Weights ภายใต้สัญญาอนุญาตของ Meta ทำให้ทุกคนสามารถดาวน์โหลดไปรันใช้งานเองได้ ส่วน ChatGPT เป็นแอปของ OpenAI ซึ่งรันโมเดลของ OpenAI ในรูปแบบบริการสำเร็จรูป (Hosted Service) อ่านเพิ่มเติมได้ที่ Llama vs ChatGPT

พารามิเตอร์ (Parameters) คืออะไร?

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

ทำไมบางโมเดลถึงรับรูปภาพได้ แต่บางโมเดลทำไม่ได้?

Llama 4 Maverick และ Scout ได้รับการฝึกฝนด้วยข้อความและรูปภาพมาพร้อม ๆ กัน ส่วน Llama 3.3 70B และ Llama 3.1 8B เป็นโมเดลที่รองรับเฉพาะข้อความ จึงไม่สามารถมองเห็นรูปภาพได้ ทั้งนี้ คู่มือการเลือกโมเดล Llama ให้เหมาะกับการใช้งานของเรามีเปรียบเทียบคุณสมบัติของทั้ง 4 โมเดลไว้อย่างละเอียด

เริ่มถามคำถามแรกกับ Llama

ไม่ต้องสมัครบัญชีและไม่ต้องติดตั้งอะไรเพิ่มเติม เพียงเปิดหน้าแชท พิมพ์ข้อความ แล้วสัมผัสความสามารถของ Llama ได้ทันที

เปิดแชท Llama