งานวิจัยสำรวจเชิงครอบคลุมเกี่ยวกับ Small Language Models (SLM) (Small Language Models: Survey, Measurements, and Insights)

แนะนำงานวิจัย

ความก้าวหน้าของโมเดลภาษาช่วงหลังแบ่งออกได้เป็น 2 แนวโน้ม แนวโน้มแรกคือโมเดลภาษาขนาดใหญ่ (LLM, Large Language Model) ซึ่งทำงานอยู่ในดาต้าเซ็นเตอร์ขนาดใหญ่โดยใช้ GPU จำนวนมหาศาล โมเดลเหล่านี้รองรับงานภาษาระดับสูง และมีเป้าหมายเพื่อใช้ปัญญาประดิษฐ์แก้ปัญหาซับซ้อน เช่น งานด้านวิทยาศาสตร์ อย่างไรก็ตาม LLM เหล่านี้ต้องใช้ต้นทุนสูงและทรัพยากรการประมวลผลมหาศาล ทำให้แทบเป็นไปไม่ได้ที่จะนำไปใช้งานบนอุปกรณ์ส่วนบุคคล

ในทางกลับกัน โมเดลภาษาขนาดเล็ก (SLM, Small Language Model) ถูกออกแบบมาเพื่อให้สามารถนำไปใช้งานบนอุปกรณ์ที่มีข้อจำกัดด้านทรัพยากร เช่น สมาร์ทโฟน แท็บเล็ต และอุปกรณ์สวมใส่ เป้าหมายของโมเดลภาษาขนาดเล็กคือทำให้ AI เข้าถึงได้ง่ายสำหรับทุกคน ด้วยการมอบปัญญาประดิษฐ์ที่คุ้มค่าและใช้งานได้จริง งานวิจัยนี้เป็นการสำรวจเชิงครอบคลุมชิ้นแรกเกี่ยวกับ SLM โดยวิเคราะห์โมเดลภาษาขนาดเล็กที่เผยแพร่ในช่วงไม่กี่ปีที่ผ่านมาในแง่ของนวัตกรรมทางเทคนิค ประสิทธิภาพ และต้นทุนการรันบนอุปกรณ์

สถาปัตยกรรม ชุดข้อมูล และการฝึกของ Small Language Models (SLM)

ภาพรวมของ Small Language Models (SLM, Small Language Model)

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

งานวิจัยนี้พิจารณา SLM ที่เพิ่มขึ้นอย่างรวดเร็วตั้งแต่ปลายปี 2023 และคัดเลือก SLM จำนวน 59 โมเดลตามเกณฑ์ต่อไปนี้เพื่อนำมาศึกษาทั้งด้านประสิทธิภาพและต้นทุน:

  • กำหนดขนาดของ SLM เป็นโมเดลในช่วง 100M ~ 5B และพิจารณาเฉพาะโมเดลที่เปิดเผยน้ำหนักและสามารถประเมินผลได้เท่านั้น

  • เพื่อประสิทธิภาพที่ดีและการนำไปใช้งานจริง จะพิจารณาเฉพาะโมเดลที่มีสถาปัตยกรรม decoder-only transformer เท่านั้น กล่าวคือ ไม่รวมโมเดลสถาปัตยกรรมอย่าง RWKV และ Mamba

  • การสำรวจนี้มุ่งเน้นไปที่ความรู้พื้นฐานที่ได้จากกระบวนการ pre-training จึงพิจารณาเฉพาะ base model และไม่รวมโมเดลที่มีให้เฉพาะเวอร์ชันที่ผ่านการปรับจูนตามคำสั่ง (Instruct Fine-tuned) เช่น Microsoft Phi และ StabilityAI StableLM

  • นอกจากนี้ ยังไม่รวมโมเดลอนุพันธ์ที่ได้จากการนำโมเดล pre-trained ไปทำ fine-tuning เพิ่มเติม

รายชื่อโมเดลที่คัดเลือกตามเกณฑ์ข้างต้นมีดังนี้:

สถาปัตยกรรมของโมเดล SLM (Model Architecture)

สถาปัตยกรรมของ SLM มีรูปแบบดัดแปลงหลากหลายโดยมีพื้นฐานมาจาก Transformer หัวใจสำคัญของสถาปัตยกรรม Transformer คือ Multi-Head Attention (MHA) และ Feed-Forward Neural Network (FFN) โดย MHA ช่วยให้โมเดลโฟกัสกับส่วนต่าง ๆ ของข้อมูลนำเข้าได้พร้อมกัน จึงเพิ่มประสิทธิภาพของการประมวลผลแบบขนาน ในโมเดลยุคหลังมีการทดลองหลากหลายรูปแบบกับ attention mechanism, FFN และ activation function ดังนี้:

  1. กลไก attention (Attention Mechanisms):

    • Multi-Head Attention (MHA): กลไกหลักของ Transformer ที่ช่วยให้โมเดลให้ความสนใจกับหลายส่วนของข้อมูลนำเข้าพร้อมกัน
    • Group-Query Attention (GQA): วิธีการจัดกลุ่มค่า query หลายตัวเข้าด้วยกันเพื่อลดความซับซ้อนในการคำนวณของ attention
    • Multi-Query Attention (MQA): วิธีลดความซับซ้อนในการคำนวณโดยอนุญาตให้แต่ละ query ใช้การฉายค่า key และ value ที่ต่างกัน
  2. Feed-Forward Neural Network (FFN):

    • FFN มาตรฐาน (Standard FFN): โครงสร้างเครือข่ายแบบเรียบง่ายที่ประกอบด้วย 2 เลเยอร์
    • Gated FFN: โครงสร้างที่เพิ่มเกตเลเยอร์เข้ามาเพื่อยกระดับประสิทธิภาพ
  3. อัตราการขยายมิติของ Feed-Forward Neural Network (The intermediate ratio of the FFN): เป็นค่าที่แสดงขนาดของชั้นซ่อน (hidden layer) เทียบกับขนาดมิติของข้อมูลนำเข้า ซึ่งมักใช้บ่งชี้อัตราการขยายมิติ ยิ่งอัตราส่วนนี้มาก FFN ก็จะเรียนรู้รูปแบบที่ซับซ้อนได้มากขึ้น แต่ต้นทุนการคำนวณก็จะสูงขึ้นด้วย โดย FFN มาตรฐานมักใช้ค่าใกล้ 4 ส่วน Gated FFN มักมีอัตราส่วนตั้งแต่ 2 ถึง 8

  4. Activation Functions: ใน SLM นิยมใช้ ReLU (Rectified Linear Unit), GELU (Gaussian Error Linear Uni), $GELU_{tanh}$ และ SiLU (Sigmoid Linear Unit) เป็นหลัก ในปี 2022 ReLU ได้รับความนิยมมากที่สุด ปี 2023 เป็น GELU และอนุพันธ์ของมัน และเมื่อเข้าสู่ปี 2024 SiLU กลายเป็น activation function ที่ใช้กันแพร่หลายที่สุด

  5. Layer Normalization: สำหรับการทำ layer normalization มีการใช้ทั้ง LayerNorm และ RMSNorm โดย RMSNorm ได้รับความนิยมเพิ่มขึ้นเรื่อย ๆ และช่วยเพิ่มเสถียรภาพในการฝึกของโมเดล

  6. ขนาดของคลังคำศัพท์ (Vocabulary Size): ขนาดของคลังคำศัพท์หมายถึงจำนวน unique token ที่ SLM สามารถรับรู้ได้ โดย SLM รุ่นใหม่ส่วนใหญ่มีขนาดคลังคำศัพท์ตั้งแต่ 50,000 คำขึ้นไป และพบว่าคลังคำศัพท์ที่ใหญ่ขึ้นช่วยเพิ่มประสิทธิภาพได้

สำหรับโมเดลทั้ง 59 ตัวที่คัดเลือกไว้ก่อนหน้านี้ หากสรุปว่าการกระจายของรูปแบบดัดแปลงทั้ง 6 ประเภทข้างต้นเปลี่ยนแปลงไปตามเวลาอย่างไร จะได้ดังนี้:

เมื่อพิจารณาสถาปัตยกรรมของโมเดลเหล่านี้ ก็สามารถเห็นนวัตกรรมในด้านสถาปัตยกรรมของโมเดล (Model Architecture Innovations) ได้ดังนี้:

  1. การแชร์พารามิเตอร์ (Parameter Sharing)

    • การแชร์พารามิเตอร์เป็นเทคนิคที่ใช้ในโมเดลภาษาขนาดใหญ่ (LLM) เพื่อใช้ชุดน้ำหนักเดียวกันซ้ำในหลายเลเยอร์หรือหลายองค์ประกอบของเครือข่าย วิธีนี้ช่วยลดจำนวนพารามิเตอร์ของโมเดลได้อย่างมาก และอาจนำไปสู่การฝึกและการอนุมานที่มีประสิทธิภาพยิ่งขึ้นโดยยังคงรักษาประสิทธิภาพไว้
    • การแชร์ Embedding-lm_head (Embedding-lm_head sharing): การแชร์น้ำหนักของ embedding กับเลเยอร์ lm_head สุดท้ายเป็นเทคนิคการแชร์น้ำหนักที่พบได้บ่อยที่สุด นี่คือการแชร์ในเลเยอร์ word embedding และไม่เกี่ยวข้องกับ RoPE (Rotary Position Encoding) แต่อย่างใด โมเดลอย่าง Gemma และ Qwen ต่างใช้เทคนิคการแชร์นี้
    • การแชร์ Attention/FFN ข้ามเลเยอร์ (Layer-wise Attention/FFN sharing): วิธีนี้คือการนำชุดน้ำหนักเดียวกันมาใช้ซ้ำตลอดหลายเลเยอร์ของโมเดล ซึ่งพบได้บ่อยใน SLM/LLM ที่ทุกเลเยอร์ของ Transformer ใช้พารามิเตอร์ร่วมกัน ตัวอย่างเช่น MobiLLaMA แชร์น้ำหนัก FFN ของทุก transformer block และ MobileLLM แชร์น้ำหนัก Attention และ FFN ของ transformer block ที่อยู่ติดกันสองบล็อก
  2. การสเกลพารามิเตอร์รายเลเยอร์ (Layer-wise Parameter Scaling)

    • เทคนิคนี้ถูกเสนอและใช้งานใน OpenELM โดย SLM แบบเดิมมักใช้โครงสร้างเดียวกันกับทุก transformer layer ในโมเดล ทำให้พารามิเตอร์ถูกจัดสรรอย่างสม่ำเสมอระหว่างเลเยอร์ ต่างจากโมเดลเหล่านั้น แต่ละ transformer layer ของ OpenELM มีคอนฟิกที่ต่างกัน เช่น จำนวน head และมิติของ FFN จึงทำให้แต่ละเลเยอร์ในโมเดลสามารถใช้จำนวนพารามิเตอร์ที่ต่างกันได้ ด้วยวิธีนี้ OpenELM จึงสามารถใช้ประโยชน์จาก available parameter budget ได้มีประสิทธิภาพมากขึ้นเพื่อให้ได้ความแม่นยำที่สูงกว่า
  3. การชดเชยความไม่เชิงเส้น (Nonlinearity Compensation)

    • PanGu-$\pi$ วิเคราะห์โมเดลภาษารุ่นใหม่เพื่อแก้ปัญหา feature collapse problem ปัญหา feature collapse เป็นปัญหาที่เกิดขึ้นในการเรียนรู้ representation มิติสูงอย่าง LLM โดยหมายถึงปรากฏการณ์ที่โมเดลเรียนรู้ feature ที่เหมือนกันหรือคล้ายกันมากสำหรับอินพุตที่หลากหลาย PanGu-$\pi$ แก้ปัญหานี้โดยชดเชยความไม่เชิงเส้นใน activation function อย่าง GELU หรือ ReLU และสเกลขนาดของค่าเอาต์พุตของเลเยอร์เพื่อรักษาช่วงการเปลี่ยนแปลงของค่าเอาต์พุตให้คงที่

> #### ข้อสังเกตสำคัญ: มี 2 ประเด็นสังเกตหลักในสถาปัตยกรรมโมเดลของ SLM:
> 1. ณ เดือนสิงหาคม 2024 สถาปัตยกรรม SLM ทั่วไปเลือกใช้ GQA (Group-Query Attention), gated FFN ที่ใช้ฟังก์ชันกระตุ้น SiLU, อัตราการขยาย FFN (Intermediate Ratio of FFN) ระหว่าง 2~8, RMSNorm และขนาด vocabulary มากกว่า 50,000 อย่างไรก็ตาม การตั้งค่าเหล่านี้ส่วนใหญ่ได้มาจากประสบการณ์เชิงประจักษ์ (empirical) และยังไม่ได้รับการตรวจสอบยืนยันอย่างเข้มงวดและเปิดเผยต่อสาธารณะ
> 2. นวัตกรรมด้านสถาปัตยกรรม Transformer ใน SLM ยังมีจำกัด นอกเหนือจากเทคนิคการแชร์ Embedding-lm_head แล้ว ยังไม่พบหลักฐานที่หนักแน่นว่าเทคนิคอื่นเหนือกว่าสถาปัตยกรรม Transformer แบบดั้งเดิม (Vanilla Transformer) อีกทั้งยังไม่ได้รับการนำไปใช้หรือศึกษาอย่างแพร่หลายจากหลายกลุ่มวิจัยหรือบริษัท จึงยังต้องมีการตรวจสอบเพิ่มเติมในอนาคต

ชุดข้อมูลฝึก (Training Dataset)

ประสิทธิภาพของ SLM ขึ้นอยู่กับชุดข้อมูลที่ใช้ฝึกอย่างมาก งานวิจัยนี้ได้พิจารณาชุดข้อมูลสาธารณะ 12 ชุดที่โมเดล SLM ใช้งาน:

ชื่อ จำนวนโทเค็น โดเมนหลัก คำอธิบายและการใช้งาน
The Pile 825B วิทยาศาสตร์, บทความวิชาการ, ข้อความเว็บ, เอกสารกฎหมาย เป็นชุดข้อมูลที่รวมชุดข้อมูลขนาดเล็กหลายชุดเข้าด้วยกัน ครอบคลุมข้อความจากหลายโดเมน และใช้เพื่อเพิ่มความสามารถในการทำความเข้าใจโดยรวมของโมเดล
FineWeb-Edu 1.3T/5.4T ข้อความด้านการศึกษา, ตำราเรียน, สื่อการสอน เป็นชุดข้อมูลขนาดใหญ่ที่ประกอบด้วยข้อความเกี่ยวกับการศึกษาซึ่งกรองมาจาก FineWeb โดยมีเป้าหมายเพื่อปรับปรุงประสิทธิภาพของโมเดลในงานที่เกี่ยวข้องกับการเรียนรู้และโดเมนการศึกษา
StarCoder 35B โค้ด Python เป็นชุดข้อมูลที่ประกอบด้วยโค้ดในภาษาโปรแกรม Python ใช้สำหรับฝึกโมเดลในงานสร้างโค้ดและงานด้านการเขียนโปรแกรม
Cosmopedia 25B ข้อความสังเคราะห์, สื่อการสอน เป็นชุดข้อมูลที่ประกอบด้วยข้อความสังเคราะห์ รวมถึงตำราเรียน บล็อกโพสต์ เรื่องราว และบทความ WikiHow เพื่อช่วยให้โมเดลเรียนรู้รูปแบบการเขียนและบริบทที่หลากหลาย
RefinedWeb 5T เอกสารเว็บ, ข่าว, บล็อก, เอกสารทางเทคนิค เป็นชุดข้อมูลเว็บคุณภาพสูงที่สกัดจาก CommonCrawl และผ่านการกรองอย่างเข้มงวด ใช้เพื่อเรียนรู้ความรู้ข้ามโดเมนอย่างกว้างขวางสำหรับงานประมวลผลภาษาธรรมชาติ
RedPajama 1.2T ข้อมูลเว็บ, ข่าว, โซเชียลมีเดีย มีข้อมูลข้อความปริมาณมหาศาลที่สกัดจากสแนปชอตของ CommonCrawl และใช้สำหรับฝึกโมเดลบนข้อความจากเว็บ
Dolma - ข้อความภาษาอังกฤษที่ลบข้อมูลซ้ำแล้ว เป็นคอร์ปัสภาษาอังกฤษที่ลบข้อความซ้ำด้วยอัลกอริทึม MinHash ใช้เพื่อเพิ่มประสิทธิภาพโมเดลผ่านข้อมูลที่ผ่านการทำความสะอาดโดยกำจัดข้อความซ้ำ
WuDaoCorpora 4T ข้อความภาษาจีน เป็นคอร์ปัสขนาดใหญ่ที่อิงจากข้อมูลภาษาจีน ประกอบด้วยข้อมูลฝึก 3T โทเค็นและอักขระภาษาจีน 1.08T ใช้สำหรับฝึกโมเดลภาษาจีน
RoBERTa CCNewsV2 - บทความข่าว เป็นชุดข้อมูลข่าวจาก CommonCrawl เวอร์ชันอัปเดต ใช้ในงานประมวลผลภาษาธรรมชาติที่อิงกับข้อมูลข่าวล่าสุด
PushShift Reddit - ข้อมูลโซเชียลมีเดีย (โพสต์ Reddit) เป็นข้อมูลที่เก็บรวบรวมจากแพลตฟอร์มสำหรับรวบรวม วิเคราะห์ และจัดเก็บข้อมูล Reddit ใช้สำหรับการฝึกโมเดลภาษาด้านปฏิสัมพันธ์บนโซเชียลมีเดียและการสนทนา
DCLM-baseline 1.35T ข้อความเว็บ เป็นคอร์ปัสมาตรฐานที่สกัดจาก Common Crawl ใช้เป็นชุดข้อมูลสำหรับ language model แบบ pre-trained และเหมาะกับงานประเมินผลที่หลากหลาย
CulturaX 6.3T ข้อความหลายภาษา เป็นชุดข้อมูลข้อความหลายภาษาขนาดมหาศาลที่ประกอบด้วย 167 ภาษา ใช้เป็นทรัพยากรข้อความขนาดใหญ่สำหรับการฝึกโมเดลหลายภาษา

เมื่อพิจารณาแนวโน้มการใช้ชุดข้อมูล pre-training ของ SLM ที่เป็นกลุ่มศึกษาตั้งแต่ปี 2022 ถึง 2024 มีดังนี้:

ในปี 2022 และ 2023 ชุดข้อมูล pre-training ที่ถูกใช้อย่างแพร่หลายที่สุดคือ The Pile แต่ในช่วงหลังจะเห็นได้ว่ามีการเสนอชุดข้อมูลใหม่เพิ่มขึ้น ทำให้มีตัวเลือกที่หลากหลายมากขึ้น ในปี 2024 ชุดข้อมูล The Pile ไม่ได้ถูกใช้ในการ pre-train SLM อีกต่อไป และชุดข้อมูลอย่าง RefinedWeb หรือ RedPajama ก็กำลังถูกใช้อย่างแพร่หลายมากขึ้น สิ่งนี้สะท้อนให้เห็นว่ามีความพยายามทั้งด้านการวิจัยและวิศวกรรมอย่างคึกคักเพื่อสร้างชุดข้อมูล pre-training ที่มีคุณภาพดียิ่งขึ้น

ต่อมา งานวิจัยได้พิจารณาประสิทธิภาพของ SLM ตามชุดข้อมูล pre-training ที่ใช้ โดยจัดกลุ่ม SLM ที่เปิดตัวในช่วง 3 ปีที่ผ่านมาออกเป็น 4 กลุ่มตามขนาดพารามิเตอร์ (<1B / 1B-1.4B / 1.5-2B / 2.5B-3B) และจัดเรียงภายในแต่ละกลุ่มตามค่า accuracy เฉลี่ย (ค่าเฉลี่ยของ accuracy สองประเภทคือ การใช้เหตุผล/ความเข้าใจเชิงสามัญสำนึก และการแก้ปัญหา) ซึ่งได้ผลลัพธ์ดังนี้:

จากผลลัพธ์เหล่านี้จะเห็นได้ว่า ชุดข้อมูลสองชุดที่เปิดตัวเมื่อไม่นานมานี้คือ DCLM(DataComp-LM) และ FineWeb-Edu ให้ประสิทธิภาพดีกว่าชุดข้อมูลอื่น ๆ ลักษณะร่วมที่สำคัญของชุดข้อมูลทั้งสองนี้คือการใช้การกรองข้อมูลแบบอิงโมเดล

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

ถัดไป งานวิจัยได้พิจารณาจำนวนโทเค็นที่ใช้ในการ pre-training กับขนาดโมเดล และ จำนวนโทเค็นที่ใช้ในการ pre-training กับค่า accuracy เฉลี่ย

ก่อนอื่น ตาม กฎ Chinchilla (Chinchilla Law) ซึ่งศึกษาความสัมพันธ์ระหว่างขนาดโมเดลกับปริมาณข้อมูลที่ใช้ฝึก (จำนวนโทเค็น) ได้เสนอว่าอัตราส่วนที่เหมาะสมระหว่างจำนวนพารามิเตอร์ของโมเดลกับจำนวนโทเค็นที่ใช้ฝึกควรอยู่ที่ประมาณ 20 ตัวอย่างเช่น สำหรับโมเดล 1B จะต้องใช้ชุดข้อมูลฝึกที่มีขนาดประมาณ 20B โทเค็น

จากการวิเคราะห์เชิงสถิติขนาดของ SLM และจำนวนโทเค็นที่ใช้ฝึกของโมเดลที่เปิดตัวตั้งแต่ปี 2022 ถึง 2024 (รูปด้านซ้าย (a) ด้านล่าง) พบว่าโดยทั่วไปยิ่งโมเดลมีขนาดใหญ่ ก็ยิ่งใช้โทเค็นในการฝึกมากขึ้น และโมเดลที่ใหม่กว่าก็มีแนวโน้มจะใช้โทเค็นในการฝึกมากขึ้นเช่นกัน ประเด็นที่น่าสังเกตคือ ไม่ว่าขนาดโมเดลจะเป็นเท่าใด SLM ถูกฝึกด้วยจำนวนโทเค็นที่มากกว่าที่กฎ Chinchilla เสนอไว้อย่างมาก (โดยทั่วไปมากกว่า 1.5T)

เมื่อวิเคราะห์จำนวนโทเค็นที่ SLM ใช้ในการ pre-training กับค่า accuracy เฉลี่ย (รูปด้านขวา (b) ด้านล่าง) จะพบว่าโดยทั่วไปตัวชี้วัดทั้งสองนี้มีความสัมพันธ์เชิงบวก (positive correlation) และจะเห็นได้ชัดเมื่อจำนวนโทเค็นที่ใช้ฝึกต่ำกว่า 700B อย่างไรก็ตาม เมื่อจำนวนโทเค็นที่ใช้ฝึกเกิน 1T ความสัมพันธ์ดังกล่าวจะอ่อนลง เนื่องจากคุณภาพของข้อมูลฝึกมีความสำคัญมากกว่าปริมาณโทเค็นที่ใช้ฝึก

> #### ข้อมูลเชิงลึกสำคัญ: มีข้อสังเกตหลัก 2 ประการ ในชุดข้อมูลการฝึกของ SLM:
> - คุณภาพของข้อมูลฝึกมีความสำคัญอย่างยิ่งต่อประสิทธิภาพของ SLM และกำลังได้รับความสนใจเพิ่มขึ้นเรื่อย ๆ ในงานวิจัย SLM ช่วงหลัง โดยทั่วไปแล้ว ผลกระทบของคุณภาพข้อมูลต่อ SLM มักมากกว่าปริมาณข้อมูลและสถาปัตยกรรมของโมเดล แนวโน้มที่น่าสังเกตในการวิจัยด้านชุดข้อมูลคือการใช้การกรองแบบอิงโมเดล โดย FineWeb-Edu(1.3T/5.4T) และ DCLM-baseline(4T) เป็นตัวอย่างสำคัญ SLM ที่ฝึกด้วยชุดข้อมูลทั้งสองนี้แสดงประสิทธิภาพที่สามารถแข่งขันได้เมื่อเทียบกับ SLM ที่ฝึกด้วยชุดข้อมูลปิด
> - ในช่วงหลัง SLM มักถูกฝึกด้วยโทเค็นจำนวนมหาศาล (โดยทั่วไปมากกว่า 1.5T) โดยไม่คำนึงถึงขนาดของโมเดล แม้ในบางกรณีจะใช้ข้อมูลน้อยกว่า (เช่น Qwen2-0.5B ใช้โทเค็น 12T แต่ Qwen2-1.5B ใช้โทเค็นเพียง 7T) สิ่งนี้หมายความว่าโมเดลเหล่านี้ถูก "ฝึกเกิน (over-training)" อย่างมากเมื่อเทียบกับกฎ Chinchilla และการฝึกเกินเช่นนี้ถูกใช้เพื่อให้ได้ SLM ที่มีประสิทธิภาพสูงขึ้นด้วยการทุ่มเวลาในการฝึกมากขึ้น

อัลกอริทึมการฝึก (Training Algorithm)

มีอัลกอริทึมหลากหลายแบบสำหรับการฝึก SLM โดยอัลกอริทึมหลักได้แก่ Maximal Update Parameterization(μP), การกลั่นความรู้ (Knowledge Distillation) และกลยุทธ์ การพรีเทรนสองขั้น (Two Stage Pre-training)

  1. Maximal Update Parameterization(μP): วิธีนี้ควบคุมการกำหนดค่าเริ่มต้นของโมเดล (initialization), อัตราการเรียนรู้รายเลเยอร์ (layer-wise learning rate), ขนาดของ activation (activation magnitude) เป็นต้น เพื่อรับประกันการฝึกที่เสถียรโดยไม่ขึ้นกับความกว้างของเลเยอร์ในโมเดล (model's layer width) วิธีนี้ไม่เพียงช่วยเพิ่มเสถียรภาพในการฝึก แต่ยังช่วยปรับปรุงความสามารถในการถ่ายโอนไฮเปอร์พารามิเตอร์การฝึก (transferability) จากโมเดลขนาดเล็กไปยังโมเดลขนาดใหญ่ ทำให้สามารถใช้อัตราการเรียนรู้ (learning rate) เดียวกันได้ เป็นต้น Cerebras-GPT ใช้เทคนิคนี้ในการฝึกโมเดล

  2. การกลั่นความรู้ (Knowledge Distillation): เป็นแนวคิดที่ใช้กันอย่างแพร่หลายในโมเดลภาษาขนาดใหญ่ (LLM) โดยเป็นการดึงความรู้ที่มีคุณค่าจากโมเดลครูขนาดใหญ่และซับซ้อน มาถ่ายทอดให้กับโมเดลนักเรียนที่เล็กกว่าและมีประสิทธิภาพมากกว่า แก่นสำคัญของเทคนิคการกลั่นความรู้ (KD) นี้คือการทำให้ความแตกต่างของเอาต์พุตจากทั้งสองโมเดลน้อยที่สุด เพื่อให้โมเดลนักเรียนเรียนรู้พฤติกรรมและการคาดการณ์ของโมเดลครูได้โดยประมาณ LaMini-GPT และ Gemma-2 ใช้เทคนิคนี้

  3. การพรีเทรนสองขั้น (Two Stage Pre-training): ตามชื่อเลย เป็นกลยุทธ์การฝึกที่ฝึกโมเดลผ่าน 2 ขั้นตอนที่แตกต่างกัน ขั้นแรกคือช่วงพรีเทรน (Pretraining Phase) ซึ่งใช้ข้อมูลปริมาณมากแต่คุณภาพต่ำในการฝึก และต้องใช้ทรัพยากรประมวลผลมากกว่า จากนั้นในช่วงปรับแต่งเข้มข้น (Annealing Phase) จะนำข้อมูล SFT (Supervised Fine-Tuning) คุณภาพสูงที่เน้นงานเฉพาะมาผสมกับข้อมูลพรีเทรนเพื่อใช้งาน MiniCPM ใช้เทคนิคนี้

ความสามารถของ SLM (Capabilities)

ชุดข้อมูลและตัวชี้วัดสำหรับประเมิน SLM (Evaluation Datasets and Metrics)

งานวิจัยนี้จัดชุดข้อมูล 12 ชุดสำหรับประเมินความสามารถของ SLM ออกเป็น 3 หมวด ได้แก่ การให้เหตุผลเชิงสามัญสำนึก (Commonsense Reasoning), การแก้ปัญหา (Problem-Solving) และคณิตศาสตร์เชิงเหตุผล (Mathematics):

ชื่อ ประเภท คำอธิบายและการใช้งาน
HellaSwag การให้เหตุผลเชิงสามัญสำนึก ทดสอบความเข้าใจเชิงบรรยายและประเมินการเติมประโยคที่เป็นไปได้
TruthfulQA การให้เหตุผลเชิงสามัญสำนึก เป็นชุดข้อมูลที่ใช้ประเมินว่าโมเดลหลีกเลี่ยงการให้ข้อมูลเท็จได้หรือไม่
Winogrande การให้เหตุผลเชิงสามัญสำนึก เป็นชุดข้อมูลที่ประเมินความสามารถในการให้เหตุผลเชิงสามัญสำนึกผ่านการแก้ความกำกวมของคำสรรพนาม
CommonsenseQA การให้เหตุผลเชิงสามัญสำนึก นำเสนอปัญหาการให้เหตุผลเชิงสามัญสำนึกในรูปแบบคำถามปรนัยที่ต้องใช้ความรู้ในชีวิตประจำวัน
PIQA การให้เหตุผลเชิงสามัญสำนึก เป็นชุดข้อมูลที่ประเมินการให้เหตุผลเชิงสามัญสำนึกทางกายภาพและปฏิสัมพันธ์กับวัตถุ
OpenBookQA การให้เหตุผลเชิงสามัญสำนึก ประกอบด้วยปัญหาวิทยาศาสตร์แบบเปิดที่ต้องแก้โดยผสานความรู้ทางวิทยาศาสตร์และสามัญสำนึก
BoolQ การให้เหตุผลเชิงสามัญสำนึก ประเมินความสามารถในการให้เหตุผลเชิงสามัญสำนึกและข้อเท็จจริงผ่านคำถามแบบใช่/ไม่ใช่
ARC Easy การแก้ปัญหา เป็นชุดข้อมูลที่มีปัญหาวิทยาศาสตร์ระดับง่ายสำหรับทดสอบความรู้ทั่วไปและการให้เหตุผล
ARC Challenge การแก้ปัญหา นำเสนอข้อสอบวิทยาศาสตร์ที่ซับซ้อนซึ่งต้องใช้การบูรณาการความรู้
MMLU การแก้ปัญหา เป็นชุดข้อมูลที่ประเมินความสามารถในการแก้ปัญหาในหลากหลายสาขาวิชา
GSM8K คณิตศาสตร์เชิงเหตุผล เป็นชุดข้อมูลที่ประเมินความสามารถในการให้เหตุผลทางคณิตศาสตร์ระดับประถมศึกษา
Minerva Math คณิตศาสตร์เชิงเหตุผล ประเมินความสามารถในการให้เหตุผลทางคณิตศาสตร์ขั้นสูงในหลากหลายหัวข้อ

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

ประสิทธิภาพโดยรวมของ SLM (Overall Capabilities)

งานทดลองได้วิเคราะห์ความก้าวหน้าของ SLM ที่คัดเลือกมาใน 3 ภารกิจ ได้แก่ การให้เหตุผลเชิงสามัญสำนึก การแก้ปัญหา และคณิตศาสตร์ ดังแสดงในรูปด้านล่าง โดยรวมพบว่าประสิทธิภาพดีขึ้นอย่างชัดเจน และเมื่อแยกตามภารกิจพบว่าดีขึ้น 10.4%, 13.5% และ 13.5% ตามลำดับ เมื่อเทียบกันแล้ว LLaMA ซึ่งเป็นโมเดลภาษาขนาดใหญ่แบบโอเพนซอร์ส ปรับปรุงได้เฉลี่ยเพียง 7.5% ในช่วงเวลาเดียวกัน:

โดยเฉพาะอย่างยิ่ง ตระกูล Phi ของ Microsoft ซึ่งฝึกด้วยชุดข้อมูลปิด แสดงประสิทธิภาพโดดเด่นเหนือโมเดลอื่นทั้งหมด โดยทำผลงานได้ใกล้เคียงกับ LLaMA 3.1 รุ่นล่าสุดขนาด 7B (67.6% ในการให้เหตุผลเชิงสามัญสำนึก และ 72.4% ในการแก้ปัญหา) แม้ยังมีช่องว่างอยู่บ้างในด้านคณิตศาสตร์ แต่ในด้านการให้เหตุผลทั่วไป ช่องว่างระหว่าง SLM และ LLM กำลังแคบลงอย่างรวดเร็ว แม้จะมีข้อยกเว้นอย่าง Qwen2 แต่โดยทั่วไปแล้วยิ่งโมเดลมีขนาดใหญ่ ประสิทธิภาพก็มักจะยิ่งดีขึ้น

แม้ SLM รุ่นบุกเบิกบางส่วนจะฝึกด้วยชุดข้อมูลปิด แต่ช่องว่างระหว่างโมเดลโอเพนซอร์สและโมเดลปิดในงานให้เหตุผลเชิงสามัญสำนึกก็กำลังค่อย ๆ แคบลง ตัวอย่างเช่น SmolLM และ DCLM-1B แสดงผลงานที่ยอดเยี่ยมมากในด้านการให้เหตุผลเชิงสามัญสำนึกด้วยอานิสงส์ของชุดข้อมูลคุณภาพสูงอย่าง DCLM และ FineWeb-Edu (ทำได้ 64.2% และ 63.8% ตามลำดับ) อย่างไรก็ตาม ในงานที่ต้องใช้การให้เหตุผลหรือตรรกะที่ซับซ้อน โดยเฉพาะด้านคณิตศาสตร์ ยังมีช่องว่างค่อนข้างมากอยู่ เนื่องจากยังขาดแคลนชุดข้อมูลคุณภาพสูง

ข้อมูลเชิงลึกสำคัญ: มี 4 ข้อสังเกตหลักเกี่ยวกับพัฒนาการของ SLM:
  • ตั้งแต่ปี 2022 ถึง 2024 SLM มีการพัฒนาด้านประสิทธิภาพอย่างมีนัยสำคัญในงานภาษาที่หลากหลาย โดยภาพรวมมีการยกระดับประสิทธิภาพอย่างชัดเจน และแซงหน้าการปรับปรุงของ LLaMA-7B (เวอร์ชัน 1/2/3/3.1) ผลลัพธ์เหล่านี้ทำให้คาดหวังได้ว่าจะสามารถแก้ปัญหางานปลายน้ำ (Downstream Task) ที่หลากหลายบนอุปกรณ์ (On-Device) ได้
  • ตระกูลโมเดล Phi แสดงประสิทธิภาพระดับล้ำสมัย (State-of-the-Art) อย่างต่อเนื่องในงานส่วนใหญ่ Phi-3-mini ทำความแม่นยำได้ทัดเทียมกับ Llama-3.1-8B ณ เดือนกันยายน 2024 ประสิทธิภาพนี้คาดว่าน่าจะมาจากการทำ data engineering อย่างพิถีพิถันของ Microsoft แต่ก็อาจเกิดจาก instructive tuning บนชุดข้อมูลเฉพาะและการ overfitting ที่อาจเกิดขึ้นได้เช่นกัน
  • โดยทั่วไปยิ่งโมเดลมีขนาดใหญ่ ประสิทธิภาพก็ยิ่งดีขึ้น แต่ก็มีกรณีพิเศษอย่าง Qwen2-1.5B ข้อยกเว้นเหล่านี้แสดงให้เห็นว่าโมเดลขนาดเล็กกว่าสามารถทำผลงานได้โดดเด่นในบางงาน
  • ในด้านการให้เหตุผลเชิงสามัญสำนึก ประสิทธิภาพของ SLM ที่ฝึกด้วยชุดข้อมูลโอเพนซอร์ซกำลังลดช่องว่างกับ SLM แบบปิดได้มากขึ้น อย่างไรก็ตาม ในงานที่ต้องใช้การให้เหตุผลที่ซับซ้อนหรือตรรกะยังคงมีช่องว่างอยู่มาก จึงจำเป็นต้องมีชุดข้อมูลที่เน้นการให้เหตุผลทางคณิตศาสตร์

ความสามารถในการเรียนรู้ในบริบท (In-Context Learning Capabilities)

การเรียนรู้ในบริบท (In-Context Learning, ICL) เป็นความสามารถสำคัญของ SLM หมายถึงความสามารถในการทำงานใหม่โดยอาศัยบริบทของอินพุตที่กำหนดให้ มีการทดลองเกี่ยวกับความสามารถด้าน ICL โดยใช้โมเดลหลากหลายแบบและรุ่นย่อยขนาด 2B ของแต่ละโมเดลใน 8 งาน ซึ่งรวมถึงการให้เหตุผลเชิงสามัญสำนึกและการแก้ปัญหา โดยทั่วไป SLM ได้ประโยชน์อย่างชัดเจนในทุกงาน อย่างไรก็ตาม ในชุดข้อมูลที่ค่อนข้างเรียบง่ายอย่าง HellaSwag และ PIQA กลับพบว่ามีประสิทธิภาพใกล้เคียงกันโดยไม่ขึ้นกับจำนวนตัวอย่าง ICL (ICL Shots) นอกเหนือจากนั้น โดยเฉลี่ยแล้วการเรียนรู้ในบริบทแบบใช้ตัวอย่าง 5 ชุด (5-shots) ช่วยเพิ่มประสิทธิภาพแบบ zero-shot ได้ 2.1% ในทุกงาน

ตัวอย่างเด่นคือโมเดล Gemma2 ซึ่งมีความแม่นยำเพิ่มขึ้น 4.8% ถือเป็นการปรับปรุงที่มากที่สุด ขณะที่โมเดล LaMini กลับมีประสิทธิภาพลดลงมากกว่า 2% ซึ่งนำไปสู่สมมติฐานว่า LaMini อาจ overfitting กับชุดข้อมูลฝึก ทำให้เมื่อใส่ตัวอย่างเพิ่มเติมแล้วเกิดสัญญาณรบกวนได้

โดยทั่วไปพบว่าเมื่อขนาดโมเดลของ SLM ใหญ่ขึ้น ความสามารถด้านการเรียนรู้ในบริบท (ICL Capability) ของ SLM ก็จะดีขึ้นตามไปด้วย

ข้อมูลเชิงลึกสำคัญ: มี 2 ข้อสังเกตหลักเกี่ยวกับความสามารถในการเรียนรู้ในบริบทของ SLM:
  • โดยทั่วไป SLM ส่วนใหญ่มีความสามารถด้านการเรียนรู้ในบริบทอยู่ในระดับหนึ่ง แต่ความสามารถนี้จะแสดงออกแตกต่างกันไปตามประเภทของงาน: SLM ส่วนใหญ่มักดีขึ้นอย่างมากในงาน Arc Challenge แต่มีผลเพียงเล็กน้อยใน HellaSwag หรือ PIQA
  • ยิ่งขนาดโมเดลของ SLM ใหญ่ขึ้น ก็ยิ่งมีแนวโน้มว่าความสามารถด้านการเรียนรู้ในบริบทจะเหนือกว่าโมเดลขนาดเล็กกว่า ขณะเดียวกัน SLM ขนาดเล็กบางรุ่น เช่น LaMini ก็แสดงอาการที่ประสิทธิภาพลดลงเมื่อใช้การเรียนรู้ในบริบท

ต้นทุนการรันของ SLM (Runtime Cost)

ต้นทุนการรัน (Runtime Cost) ของ SLM ครอบคลุมทั้งเวลาแฝง (latency) และการใช้หน่วยความจำ (memory footprint) ที่เกิดขึ้นเมื่อรันโมเดลบนอุปกรณ์จริง งานวิจัยนี้ประเมินประสิทธิภาพขณะรันของ SLM และวิเคราะห์ผลการทดลองบนฮาร์ดแวร์ที่หลากหลาย อีกทั้งยังอธิบายผลกระทบของสถาปัตยกรรมโมเดล (architecture) และการควอนไทซ์ (quantization) ต่อประสิทธิภาพ เพื่อชี้ให้เห็นว่า SLM สามารถถูกปรับแต่งให้เหมาะกับสภาพแวดล้อมแบบเรียลไทม์ได้อย่างไร

ในการวัดต้นทุนการรัน ได้ใช้อุปกรณ์ปลายทางแบบ edge (Edge Device) 2 ประเภท ได้แก่ Jetson Orin ซึ่งมักใช้ในอุปกรณ์ edge อย่างโดรนหรือหุ่นยนต์ขนาดเล็ก และ สมาร์ตโฟน ที่ผู้คนใช้งานในชีวิตประจำวัน โดยมีรายละเอียดดังนี้:

ชื่ออุปกรณ์ ประเภทฮาร์ดแวร์ สเปก (Specification)
Jetson Orin NX 16GB GPU 1024-core NVIDIA Ampere architecture GPU with 32 tensor cores, 16G DRAM
MEIZU 18Pro CPU Snapdragon 888, 8G RAM

นอกจากนี้ เนื่องจากวิธีวัดจำนวนพารามิเตอร์ทางการของแต่ละโมเดลแตกต่างกัน ผู้วิจัยจึงใช้ค่าพารามิเตอร์ที่ได้จาก llama.cpp โดยแบ่งการวัดออกเป็นช่วง prefill และช่วง decode ในการอนุมาน และหากไม่ได้ระบุเป็นอย่างอื่น จะตั้งค่าความยาวพรอมป์ต์ไว้ที่ 50 และความยาวการสร้างโทเค็นไว้ที่ 50 นอกจากนี้ เพื่อหลีกเลี่ยงประสิทธิภาพตกจากความร้อน (thermal throttling) จึงทำการทดสอบโดยเว้นช่วง 10 วินาที และสำหรับการวัดโมเดลที่มีขนาดใหญ่กว่า ได้ใช้การควอนไทซ์แบบ 4-bit

  • การวัดเวลาแฝง: วัดเวลาการสร้างโทเค็นแรก (prefill) และเวลาสร้างโทเค็นถัดไปแต่ละตัว (decode) ตามขนาดของโมเดล
  • การวัดการใช้หน่วยความจำ: วัดการใช้ KV cache และ memory buffer เพื่อวิเคราะห์ว่าโมเดลใช้หน่วยความจำมากเพียงใด

ภาพรวมของต้นทุนการรัน (Overview)

ภาพรวมของเวลาแฝงในการอนุมาน (Inference Latency) และการใช้หน่วยความจำ (Memory Footprint) ของ SLM ที่กล่าวถึงในงานวิจัยนี้มีดังนี้:

  • Inference Latency (เวลาแฝงในการอนุมาน): เวลาแฝงในการอนุมานของ SLM แบ่งได้เป็น 3 ช่วงตามขนาดโมเดล: 0.1-1B, 1-2B และ 2-3B ภายในแต่ละช่วง โมเดลต่าง ๆ จะแสดงเวลาแฝงใกล้เคียงกัน โดยเฉพาะอย่างยิ่ง สถาปัตยกรรมของโมเดลก็มีผลต่อเวลาแฝงอย่างมากเช่นกัน ตัวอย่างเช่น Qwen2-0.5B ใช้เวลาในการสร้างโทเค็นแรกนานกว่าโมเดลขนาดใกล้เคียงกันอื่น ๆ 1.46 เท่า ขณะที่ Qwen1.5-0.5B กลับแสดงประสิทธิภาพใกล้เคียงกับ OpenELM-1.1B ซึ่งเป็นโมเดลที่เล็กกว่า

    • ช่วง Prefill: เป็นช่วงที่ประมวลผลอินพุตพรอมป์ต์และสร้าง KV cache โดยมีการประมวลผลหลายโทเค็นแบบขนาน
    • ช่วง Decode: เป็นช่วงที่คาดการณ์โทเค็นถัดไปจากโทเค็นที่สร้างแล้ว ซึ่งต้องใช้ทรัพยากรหน่วยความจำมากกว่า
  • Memory Footprint (การใช้หน่วยความจำ): การใช้หน่วยความจำของ SLM ขึ้นอยู่กับขนาดโมเดลและความยาวบริบท (context length) โดยเฉพาะโมเดลอย่าง Bloom-560M และ Gemma-2B ที่มีขนาด vocabulary ใหญ่มาก (256,000 คำ) จึงใช้หน่วยความจำมากกว่า ในทางกลับกัน ซีรีส์ OpenELM ใช้ GQA (Group-Query Attention) เพื่อลดขนาดของ KV cache จึงช่วยประหยัดการใช้หน่วยความจำได้

> #### ข้อมูลเชิงลึกสำคัญ: มีข้อสังเกตหลัก 3 ประการเกี่ยวกับต้นทุนการรันของ SLM:
> - นอกจากขนาดโมเดลแล้ว สถาปัตยกรรมของโมเดลยังส่งผลต่อ latency ด้วย ตัวอย่างเช่น Qwen1.5-0.5B มีพารามิเตอร์มากกว่า Qwen2-0.5B อยู่ 25.4% แต่รันได้เร็วกว่า 31.9% บน Jetson Orin ซึ่งหมายความว่าในการพัฒนา SLM ควรปรับให้สอดคล้องกับฮาร์ดแวร์ที่จะนำไปดีพลอย
> - ผลกระทบของสถาปัตยกรรมโมเดลต่อความเร็วในการอนุมานจะเด่นชัดในขั้น prefill มากกว่าขั้น decode เนื่องจากขั้น prefill มีความหนาแน่นของการคำนวณสูงกว่า ขณะที่ขั้น decoding ขึ้นกับหน่วยความจำเป็นหลัก (memory-bound) ความแตกต่างของสถาปัตยกรรมโมเดลจึงมีผลต่อสถานการณ์ที่ขึ้นกับการคำนวณโดยตรง (compute-bound) ได้ง่ายกว่า ตัวอย่างเช่น โมเดลที่กว้างและตื้นกว่าจะมี computational parallelism สูงกว่า
> - โดยทั่วไป ปริมาณการใช้หน่วยความจำระหว่างรันมีความสัมพันธ์เชิงเส้นกับขนาดของโมเดล อย่างไรก็ตาม บางโมเดลที่มีขนาด vocabulary ใหญ่กว่าจะใช้หน่วยความจำมากกว่าโมเดลอื่นที่มีขนาดใกล้เคียงกัน ตัวอย่างเช่น ตระกูลโมเดล Bloom มี vocabulary ขนาด 250,880 ซึ่งใหญ่กว่าของโมเดลส่วนใหญ่อยู่ราว 5 ถึง 8 เท่า

ผลกระทบของการควอนไทซ์และฮาร์ดแวร์ (Impact of Quantization and Hardware)

ก่อนอื่น ได้วัด latency ของโมเดล Phi-1.5 ทั้งก่อนการควอนไทซ์ (FP16) และด้วยวิธีการควอนไทซ์ 5 แบบ (Q8_0, Q6_K, Q5_K, Q4_K_M, Q3_K) เพื่อดูว่าการควอนไทซ์ (Quantization) ส่งผลต่อต้นทุนการรันของ SLM อย่างไร:

บนอุปกรณ์พกพา การรองรับการคำนวณแบบ int8 อาจยังไม่เพียงพอ แต่ก็ยังช่วยลด memory access overhead ได้อย่างมีประสิทธิภาพ เนื่องจากความแม่นยำที่ต่ำลงทำให้ข้อมูลถูกบีบอัด และส่งผลให้การใช้แคชมีประสิทธิภาพมากขึ้น แต่ละวิธีเป็นการควอนไทซ์เป็น n-bit โดย Qn_K และ Qn_K_M ใช้วิธี k-quant เพื่อควอนไทซ์โมเดลที่มีพารามิเตอร์ระดับกลางให้เป็น n บิต ส่วน Qn_0 หมายถึง symmetric quantization

ผลของการควอนไทซ์ในขั้น Prefill คือเมื่อความยาวของพรอมป์ต์สั้น การควอนไทซ์ช่วยลด latency ได้อย่างน้อย 25% อย่างไรก็ตาม เมื่อความยาวของพรอมป์ต์เพิ่มขึ้น ผลนี้จะลดลง และเมื่อความยาวของพรอมป์ต์เข้าใกล้ 50 วิธีควอนไทซ์แบบ Q6_K และ Q3_K อาจให้ latency ใกล้เคียงหรือแม้แต่สูงกว่าโมเดล FP16 ที่ไม่ควอนไทซ์ก็ได้ ส่วนวิธี Q8_0, Q4_K_M และ Q5_K ให้การปรับปรุงประสิทธิภาพอย่างสม่ำเสมอ โดยเฉพาะ Q4_K_M ที่ให้ผลดีที่สุด และลด latency ได้เฉลี่ย 50%

ผลของการควอนไทซ์ในขั้น Decode ให้การปรับปรุงประสิทธิภาพที่สม่ำเสมอกว่า โดยลด latency ได้สูงสุด 75% และอย่างน้อย 17% เช่นเดียวกับขั้น Prefill วิธี Q4_K_M มีประสิทธิภาพดีที่สุด ขณะที่ Q6_K ไม่มีประสิทธิภาพที่สุด

> #### ข้อมูลเชิงลึกสำคัญ: มีข้อสังเกตหลัก 2 ประการเกี่ยวกับผลของการควอนไทซ์ของ SLM ต่อต้นทุนการรัน:
> - ประโยชน์ของการควอนไทซ์เห็นได้ชัดในขั้น decode มากกว่าในขั้น prefill การควอนไทซ์บนอุปกรณ์พกพาช่วยลด memory access overhead เป็นหลัก เนื่องจากขั้น decode ได้รับผลจากแบนด์วิดท์หน่วยความจำมากกว่า จึงได้รับประโยชน์จากการควอนไทซ์มากกว่าขั้น prefill ซึ่งได้รับผลจากการคำนวณมากกว่า
> - ยิ่งความละเอียดของการควอนไทซ์ (Quantization Precision) มีความเป็นแบบแผนสม่ำเสมอ (regular) มากขึ้น ประสิทธิภาพก็จะยิ่งดีขึ้น แม้การควอนไทซ์แบบ 3-bit จะให้อัตราการบีบอัดสูงกว่า 4-bit แต่ 4-bit กลับให้ประสิทธิภาพดีกว่าในทั้งขั้น prefill และ decode สาเหตุที่ 3-bit ให้ประสิทธิภาพต่ำกว่าคือมีการรองรับการปรับแต่งฝั่งฮาร์ดแวร์น้อยกว่าเนื่องจากความกว้างบิตที่ไม่สม่ำเสมอ (irregular bit-width) และยังเกิด overhead เพิ่มจาก data alignment และ padding ดังนั้นแม้อัตราการบีบอัดจะต่ำกว่า แต่การควอนไทซ์แบบ 4-bit มีประสิทธิภาพมากกว่า เช่นเดียวกัน การควอนไทซ์แบบ 5-bit และ 6-bit แม้จะมีอัตราการบีบอัดสูงกว่า แต่กลับมี inference latency ใกล้เคียงหรือสูงกว่า 8-bit

ถัดมา ได้ทดสอบโมเดล Bloom-1B1 บน Jetson Orin NX 16GB (ใช้ GPU) และ Meizu 18 Pro (ใช้ CPU) เพื่อวัดว่าฮาร์ดแวร์ (Hardware) ส่งผลต่อต้นทุนการรันของ SLM อย่างไร:

ในขั้น Prefill เมื่อความยาวของพรอมป์ต์สั้น Jetson Orin ให้ประสิทธิภาพเร็วกว่า Meizu 18 Pro อยู่ 10 ถึง 20 เท่า และเมื่อความยาวของพรอมป์ต์เพิ่มขึ้น ความได้เปรียบด้านประสิทธิภาพของ Jetson ก็ยิ่งชัดเจนขึ้น เมื่อพรอมป์ต์ยาวขึ้น เวลาที่ใช้สร้างโทเค็นแรกของทั้งสองอุปกรณ์จะเพิ่มขึ้นแบบเชิงเส้น แต่ Jetson ยังคงรักษาประสิทธิภาพที่เสถียรได้แม้ใช้พรอมป์ต์ที่ยาวกว่า

ในขั้น Decode เมื่อจำนวนโทเค็นที่สร้างเพิ่มขึ้น latency ต่อโทเค็นของ Meizu 18 Pro จะเพิ่มขึ้นอย่างรวดเร็ว โดยเฉพาะช่วงระหว่างโทเค็นตัวแรกถึงตัวที่ 10 หลังจากนั้น latency จะคงที่ การเพิ่มขึ้นอย่างรวดเร็วของ latency บน Meizu 18 Pro นี้เกิดจากอุณหภูมิที่สูงขึ้น เนื่องจาก DVFS (Dynamic Voltage and Frequency Scaling) หรือ Thermal Throttling มีการปรับการใช้พลังงานและความถี่ ส่งผลให้ประสิทธิภาพการคำนวณลดลง ในทางกลับกัน Jetson มีการเปลี่ยนแปลงของ latency น้อยกว่าจนกระทั่งสร้างครบ 30 โทเค็น ด้วยระบบระบายความร้อนที่มีประสิทธิภาพกว่า และจึงเริ่มสังเกตเห็น latency เพิ่มขึ้นหลังจากนั้น

> #### ข้อมูลเชิงลึกสำคัญ: มีข้อสังเกตหลัก 2 ประการเกี่ยวกับผลของฮาร์ดแวร์ต่อต้นทุนการรันของ SLM:
> - ขั้น decode ต้องสร้างแต่ละโทเค็นแบบลำดับต่อเนื่อง ขณะที่ในขั้น prefill โทเค็นภายในพรอมป์ต์สามารถประมวลผลแบบขนานได้ จึงให้ประสิทธิภาพที่เร็วกว่ามากบน GPU
> - ในงานอนุมานที่ใช้เวลานาน Jetson แสดงเสถียรภาพด้านประสิทธิภาพได้ดีกว่าสมาร์ตโฟน เนื่องจาก Jetson มีโครงสร้างฮาร์ดแวร์ที่ค่อนข้างเรียบง่ายกว่า จึงระบายความร้อน (heat dissipation) ได้ง่ายกว่า

การวิเคราะห์ Latency และหน่วยความจำ (Latency and Memory Breakdown)

เพื่อแยกวิเคราะห์ latency ให้ละเอียดขึ้น ได้วิเคราะห์สัดส่วนที่แต่ละเลเยอร์ (layer) และการดำเนินการ (operation) มีต่อ latency ทั้งหมด สำหรับโมเดล Qwen1.5-0.5B และ Qwen2-0.5B:

แม้โมเดล Qwen1.5-0.5B และ Qwen2-0.5B จะมีขนาดใกล้เคียงกัน แต่กลับมีความแตกต่างด้าน latency และจากการวิเคราะห์เชิงลึกของ latency ของแต่ละโมเดล ได้วัดการกระจายเวลาที่แต่ละเลเยอร์ (Embedding, Attention, FFN, LM_Head) ใช้ไป

ในขั้น Prefill สำหรับโมเดล Qwen1.5 เลเยอร์ attention กินสัดส่วนมากกว่าเลเยอร์ FFN เนื่องจากการเพิ่มขึ้นของขนาด KV cache ทำให้เลเยอร์ attention ต้องใช้การคำนวณมากขึ้น ในทางกลับกัน โมเดล Qwen2 มีเลเยอร์ FFN ที่กินสัดส่วนมากกว่าเลเยอร์ attention ซึ่งเกิดจากโมเดล Qwen2 มีเลเยอร์ FFN ที่กว้างกว่า

ในขั้น Decode สัดส่วนการคำนวณของ attention ในโมเดล Qwen1.5 เพิ่มขึ้นอีก เนื่องจากโทเค็นที่สร้างขึ้นต้องโต้ตอบกับโทเค็นที่สร้างมาก่อนหน้า ทำให้ต้องใช้การคำนวณมากขึ้น และแนวโน้มนี้จะยิ่งชัดเจนขึ้นเมื่อขนาดของ KV cache เพิ่มขึ้น ส่วนโมเดล Qwen2 ยังคงมีเลเยอร์ FFN ที่ใช้เวลามากที่สุด เนื่องจากความกว้างของการคำนวณใน FFN ที่มากขึ้นทำให้ใช้เวลานานกว่า

เมื่อ วิเคราะห์ operator จะพบว่าในทั้งสองโมเดล การดำเนินการ matrix-vector multiplication (mul_mat_vec_q) กินเวลามากกว่า 80% ของเวลาการคำนวณทั้งหมด โดยเฉพาะในโมเดล Qwen2-0.5B ที่มีเลเยอร์ FFN กว้างกว่า จึงทำให้การดำเนินการ mul_mat_vec_q มีสัดส่วนมากยิ่งขึ้น

นอกจากนี้ เมื่อตรวจสอบการใช้หน่วยความจำ (Memory) จะได้ดังนี้:

ผลการวิเคราะห์เน้นย้ำว่า ไม่ใช่แค่ ขนาดของโมเดล เท่านั้น แต่ ขนาดของคำศัพท์ (vocabulary size) ก็ส่งผลอย่างมากต่อการใช้หน่วยความจำเช่นกัน ยิ่งคำศัพท์ที่โมเดลใช้งานมีขนาดใหญ่เท่าใด ขนาดของ Compute Buffer ที่ใช้ในชั้นเอาต์พุตก็จะยิ่งใหญ่ขึ้นเท่านั้น ตัวอย่างเช่น โมเดล Bloom-560M มีขนาดคำศัพท์ 250,880 ทำให้มี Compute Buffer สูงถึง 492MB และใช้หน่วยความจำมากกว่า OpenELM-1.1B ที่มีขนาดคำศัพท์ 32,000 อยู่ 3.5 เท่า

นอกจากนี้ โมเดลที่ใช้ GQA (Group-Query Attention) ยังมี KV Cache ขนาดเล็กกว่าโมเดลที่ใช้ MHA (Multi-Head Attention) อีกด้วย ตัวอย่างเช่น OpenELM-3B มีขนาด KV cache อยู่ที่ 164MB ซึ่งเล็กกว่า StableLM-zephyr-3B ประมาณ 3.9 เท่า

เมื่อ context length ยาวขึ้น Compute Buffer และ KV Cache จะกลายเป็นปัจจัยหลักที่กำหนดการใช้หน่วยความจำของโมเดล ในโมเดลซีรีส์ Qwen2 เมื่อ context length ไปถึง 131,072 นั้น Compute Buffer และ KV Cache จะคิดเป็น 83% ถึง 87% ของการใช้หน่วยความจำทั้งหมด ในทางกลับกัน สำหรับ Qwen1.5 ที่มี context length สูงสุด 32,768 นั้น ทั้งสององค์ประกอบนี้คิดเป็น 85% ถึง 90% ของหน่วยความจำทั้งหมด

จากการวิเคราะห์นี้ทำให้เห็นได้อย่างชัดเจนว่า Vocabulary Size และ Context Length ส่งผลต่อการใช้หน่วยความจำของ SLM อย่างมาก และยิ่งขนาดคำศัพท์ใหญ่ขึ้นพร้อมกับความยาวของบริบทยาวขึ้นเท่าใด การใช้หน่วยความจำก็จะเพิ่มขึ้นอย่างรวดเร็ว

บทสรุปและทิศทางการวิจัยในอนาคต

จนถึงตอนนี้ ได้มีการทำการศึกษาครอบคลุมและการวัดประสิทธิภาพของ small language model (SLM) ที่มีขนาดตั้งแต่ 100M ถึง 5B รวมถึงประเมินทั้งประสิทธิภาพของโมเดลและต้นทุนในการรัน จากนั้นจึงวิเคราะห์ทั้งความก้าวหน้าและข้อจำกัดของ SLM ในปัจจุบัน พร้อมเสนอหัวข้อวิจัยหลากหลายด้านที่ยังจำเป็นต้องศึกษาในอนาคต ดังนี้:

  • การออกแบบร่วมและการปรับแต่งร่วมระหว่างสถาปัตยกรรม SLM กับโปรเซสเซอร์ (Co-design and co-optimizations of SLM architecture and device processors.): ประสิทธิภาพของ SLM อาจแตกต่างกันอย่างมากตามองค์ประกอบของสถาปัตยกรรม แม้อยู่ภายในขนาดโมเดลเดียวกันก็ตาม ตัวอย่างเช่น สัดส่วนความลึก-ความกว้างของ Transformer ประเภทของ attention และ activation function ล้วนส่งผลอย่างมากต่อความเร็วในการทำงาน โดยเฉพาะอย่างยิ่ง วิธีการ quantize SLM ให้สามารถทำงานได้อย่างมีประสิทธิภาพบนโปรเซสเซอร์ที่เหมาะกับการคำนวณจำนวนเต็ม เช่น NPU (Neural Processing Unit) ถือเป็นเรื่องสำคัญ เพื่อให้ได้ trade-off ที่เหมาะสมที่สุดระหว่างความแม่นยำกับความเร็ว จึงจำเป็นต้องมีการออกแบบสถาปัตยกรรมและการปรับแต่งให้เหมาะกับฮาร์ดแวร์เฉพาะ และอีกแนวทางหนึ่งอาจเป็นการค้นหาสถาปัตยกรรมที่เหมาะกับความเร็วก่อนเริ่ม pretraining

  • การสร้างชุดข้อมูลสังเคราะห์คุณภาพสูง (Constructing high-quality synthetic dataset): ชุดข้อมูล pretraining ที่เผยแพร่ในช่วงหลัง เช่น DCLM และ FineWeb-Edu ได้ช่วยยกระดับประสิทธิภาพของ SLM อย่างมาก นวัตกรรมสำคัญของชุดข้อมูลเหล่านี้คือการใช้โมเดลที่ผ่านการ pretrain มาแล้วเพื่อกรองข้อมูลคุณภาพสูงออกจาก corpus ขนาดใหญ่ ขณะนี้งานวิจัยด้านข้อมูลสังเคราะห์ยังอยู่ในระยะเริ่มต้นและมีศักยภาพอีกมาก จึงมีความจำเป็นเร่งด่วนในการสร้างกระบวนการจัดการข้อมูลสังเคราะห์แบบมาตรฐาน เช่น การลบข้อมูลซ้ำ การกรอง การผสม และการประเมินผล

  • การขยายกฎ Chinchilla โดยคำนึงถึงสภาพแวดล้อมการ deploy (A deployment-aware Chinchilla law for model scaling): ตามกฎ Chinchilla การเพิ่มประสิทธิภาพของโมเดลต้องอาศัยสมดุลระหว่างขนาดโมเดลกับขนาดของข้อมูลฝึก (จำนวนโทเค็น) ที่ประมาณ 1:20 แต่ SLM จำเป็นต้องสอดคล้องกับข้อจำกัดด้านหน่วยความจำและความสามารถในการคำนวณของอุปกรณ์ จึงมีแนวโน้มจะใช้ข้อมูลฝึกในปริมาณมากกว่านั้นมาก แม้แนวทางนี้จะได้ผลในระดับหนึ่ง แต่ก็ไม่สามารถขยายปริมาณข้อมูลฝึกได้อย่างไร้ขีดจำกัด ดังนั้นการหาวิธีขยายข้อมูลที่เหมาะสมที่สุดจึงยังเป็นปัญหาที่ต้องแก้ไข นอกจากนี้ ยังต้องพิจารณาทั้งขนาดข้อมูล ต้นทุนการฝึกและการอนุมาน ตลอดจนวงจรชีวิตของ SLM และผลประโยชน์เชิงเศรษฐกิจด้วย และหากนำความเบาบาง (sparsity) อย่าง MoE (Mixture-of-Experts) มาใช้ ปัญหานี้ก็จะยิ่งซับซ้อนขึ้น

  • การเรียนรู้บนอุปกรณ์อย่างต่อเนื่องเพื่อการปรับให้เป็นส่วนบุคคล (Continual on-device learning for personalization): เมื่อ SLM ถูก deploy ลงบนอุปกรณ์ ก็สามารถใช้ข้อมูลบนอุปกรณ์ (on-device data) เพื่อปรับปรุงประสิทธิภาพหรือทำ personalization ได้ดีขึ้นโดยไม่ต้องกังวลเรื่องข้อมูลรั่วไหล แนวทางแรกคือการใช้เทคนิค RAG (Retrieval-Augmented Generation) เพื่อใส่ข้อมูลส่วนบุคคลเข้าไปในพรอมป์ วิธีนี้มีปัญหาคือใช้เวลามากขึ้นทั้งในการสร้าง text embedding และประมวลผลพรอมป์ รวมถึงต้องเก็บข้อมูลสำหรับ personalization ไว้บนอุปกรณ์เป็นเวลานาน แนวทางที่สองคือการทำ fine-tuning กับ SLM โดยฝังความรู้ที่จำเป็นต่อ personalization ลงในน้ำหนักของโมเดลและลบข้อมูลได้หลัง fine-tuning เสร็จสิ้น อย่างไรก็ตาม การ fine-tuning บนอุปกรณ์ใช้หน่วยความจำและพลังงานสูงมาก จนอาจก่อให้เกิดข้อจำกัดด้านทรัพยากรอย่างรุนแรง จึงอาจมีงานวิจัยเกี่ยวกับวิธีใช้ zeroth-order optimization เพื่อลดความจำเป็นในการเก็บ activation ไว้ในหน่วยความจำ และเปิดทางให้ใช้ฮาร์ดแวร์เร่งความเร็วในขั้นตอนอนุมานได้

  • การทำงานร่วมกันของ SLM และ LLM ระหว่างอุปกรณ์กับคลาวด์ (Device-cloud SLM-LLM collaboration): แม้ความสามารถของ SLM จะพัฒนาอย่างรวดเร็ว แต่ช่องว่างเมื่อเทียบกับ large language model (LLM) ที่รันบนคลาวด์ก็ยังคงมีอยู่ เพื่อแก้ปัญหานี้ การทำงานร่วมกันระหว่างอุปกรณ์และคลาวด์จึงจะเป็นหัวข้อวิจัยที่สำคัญ โดยสัญชาตญาณแล้ว SLM อาจรับหน้าที่จัดการงานที่แก้ได้ง่ายบนอุปกรณ์ ส่วน LLM บนคลาวด์อาจทำหน้าที่เป็นตัวกรองสำหรับงานที่ซับซ้อนกว่า อย่างไรก็ตาม จำเป็นต้องมี decision module เพื่อแยกว่า งานใด SLM จัดการได้และงานใดจัดการไม่ได้ และยังต้องมีงานวิจัยเพิ่มเติมเพื่อหารูปแบบความร่วมมือที่เหมาะสมระหว่างอุปกรณ์กับคลาวด์

  • ประเด็นความเป็นธรรมในการประเมินประสิทธิภาพ SLM (Benchmarking SLMs fairly): SLM มีปัญหา overfitting โดยเฉพาะกับ benchmark ที่ใช้อย่างแพร่หลาย เช่น GSM8k นอกจากนี้ SLM จำนวนมากยังฝึกด้วยชุดข้อมูลปิด ทำให้เปรียบเทียบประสิทธิภาพกันอย่างเป็นธรรมได้ยาก และเนื่องจาก SLM มักทำงานบนอุปกรณ์ (on-device) เป็นหลัก งานที่มันต้องทำจึงแตกต่างจากในสภาพแวดล้อมคลาวด์ SLM ที่ deploy บนสมาร์ตโฟนมักจะต้องจัดการงานที่ไวต่อข้อมูลผู้ใช้ และงานเฉพาะกิจ (ad-hoc task) ลักษณะนี้มักไม่ถูกรวมอยู่ใน benchmark เดิม จึงอาจทำให้ประเด็นสำคัญในการประเมินถูกมองข้ามไป

  • SLM ที่ใช้ความเบาบาง (Sparse SLMs): ปัจจุบันแทบไม่มีงานวิจัยเกี่ยวกับการใช้ sparsity กับ SLM มากนัก เนื่องจากคาดว่าเมื่อเทียบกับ LLM แล้ว SLM จะมีระดับความเบาบางที่ต่ำกว่า และประโยชน์ด้านการเพิ่มความเร็วหรือประหยัดหน่วยความจำจาก sparsity อาจมีจำกัด อีกทั้งสถาปัตยกรรมแบบอิง sparsity เช่น MoE (Mixture-of-Experts) อาจลดการใช้หน่วยความจำได้ก็จริง แต่ก็ทำให้ความซับซ้อนในการคำนวณเพิ่มขึ้น จึงอาจไม่เหมาะกับอุปกรณ์ที่มีข้อจำกัดด้านหน่วยความจำ แม้จะสามารถขยาย SLM ต่อไปได้ด้วยการใช้พื้นที่เก็บข้อมูลภายนอกของสมาร์ตโฟน (เช่น flash memory) เพื่อเก็บน้ำหนักคงที่ (cold weights) แล้วโหลดเมื่อจำเป็น แต่วิธีดังกล่าวยังต้องการงานวิจัยเพิ่มเติม ทั้งในด้านปัญหา I/O latency และการรักษาความเข้ากันได้กับฮาร์ดแวร์เร่งความเร็วแบบ heterogeneous

งานวิจัยสำรวจเชิงครอบคลุมเกี่ยวกับ small language model: Small Language Models: Survey, Measurements, and Insights

https://arxiv.org/abs/2409.15790

หน้าแรกของโครงการ

https://ubiquitouslearning.github.io/TinyLLMLeaderBoard/#/slm

ที่เก็บ GitHub

https://github.com/UbiquitousLearning/SLM_Survey


บทความนี้อ้างอิงจากเนื้อหาที่สรุปด้วยโมเดล GPT จึงอาจมีบางส่วนที่สรุปแตกต่างจากเนื้อหาหรือเจตนาของต้นฉบับได้ หากคุณสนใจหัวข้อนี้ โปรดดูต้นฉบับควบคู่กันไปด้วย! หากระหว่างอ่านพบเนื้อหาที่ฟังดูแปลกหรือผิดพลาด รบกวนแจ้งในคอมเมนต์ด้วยนะครับ/ค่ะ 🤗

⚠️โฆษณา⚠️: บทความนี้ที่ 🔥ชุมชนผู้ใช้ PyTorch เกาหลี🇰🇷 สรุปไว้มีประโยชน์ไหม? หาก สมัครสมาชิก เราจะส่งบทความสำคัญให้ทางอีเมล💌! (ค่าเริ่มต้นคือ Weekly แต่ เปลี่ยนเป็น Daily ได้)

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น