ทำความเข้าใจขนาดของ LLM

Maud Nalpas
Maud Nalpas

แม้ว่าตัว "L" ในโมเดลภาษาขนาดใหญ่ (LLM) จะแนะนำในสเกลใหญ่ แต่ความเป็นจริงแล้วจะละเอียดยิ่งขึ้น LLM บางรายการมีพารามิเตอร์นับล้านล้านรายการ และบางรายการก็ทำงานได้อย่างมีประสิทธิภาพและมีพารามิเตอร์น้อยกว่ามาก

มาดูตัวอย่างจากสถานการณ์จริงและผลกระทบในทางปฏิบัติของโมเดลขนาดต่างๆ กัน

ในฐานะนักพัฒนาเว็บ เรามักคิดว่าขนาดของทรัพยากรเท่ากับขนาดการดาวน์โหลด ขนาดที่บันทึกไว้ของโมเดลหมายถึงจำนวนพารามิเตอร์แทน ตัวอย่างเช่น Gemma 2B จะหมายถึง Gemma ด้วยพารามิเตอร์ 2 พันล้านรายการ

LLM อาจมีพารามิเตอร์อีกหลายแสนรายการ หลายล้านล้านรายการ หรือแม้กระทั่งหลายล้านล้านรายการ

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

คุณอาจสังเกตเห็นว่าขนาดโมเดลบางขนาด เช่น 2 พันล้าน หรือ 7 พันล้าน เป็นสิ่งที่พบได้ทั่วไป ตัวอย่างเช่น Gemma 2B, Gemma 7B หรือ Mistral 7B คลาสขนาดโมเดลเป็นการจัดกลุ่มโดยประมาณ ตัวอย่างเช่น Gemma 2B มีพารามิเตอร์ประมาณ 2 พันล้านพารามิเตอร์ แต่ก็ยังไม่เหมือนกัน

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

อย่างไรก็ตาม โมเดลที่เล็กกว่าก็มีประสิทธิภาพเท่ากันเมื่อเทียบกับโมเดลขนาดใหญ่สำหรับงานที่เฉพาะเจาะจง

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

แม้ว่าขนาดโมเดลสำหรับ LLM ที่ทันสมัยล่าสุด เช่น GPT-4, Gemini Pro หรือ Ultra จะไม่เปิดเผยเสมอไป แต่เชื่อกันว่าขนาดเหล่านี้อยู่ในพารามิเตอร์นับร้อยพันล้านหรือล้านรายการ

ขนาดโมเดลอาจแตกต่างกันอย่างมาก ในภาพนี้ DistillBERT เป็นจุดเล็กๆ เมื่อเทียบกับ Gemini Pro ขนาดยักษ์

โมเดลบางรุ่นอาจระบุจำนวนพารามิเตอร์ในชื่อเท่านั้น บางรุ่นมีหมายเลขเวอร์ชัน เกินมา ตัวอย่างเช่น Gemini 1.5 Pro หมายถึงโมเดลเวอร์ชัน 1.5 (เวอร์ชันตาม 1)

ใช้ LLM หรือไม่

เมื่อใดที่โมเดลจะมีขนาดเล็กเกินกว่าที่จะเป็น LLM คำจำกัดความของ LLM อาจดูค่อนข้างลื่นไหล ภายในชุมชน AI และ ML

บางโมเดลพิจารณาเฉพาะโมเดลที่ใหญ่ที่สุดซึ่งมีพารามิเตอร์หลายพันล้านพารามิเตอร์เท่านั้นที่เป็น LLM ที่แท้จริง ในขณะที่โมเดลขนาดเล็ก เช่น DistilBERT ถือเป็นโมเดล NLP อย่างง่าย ขณะที่เมตริกอื่นๆ อาจมีขนาดเล็กกว่าแต่ยังคงมีประสิทธิภาพ

LLM ที่เล็กลงสำหรับ Use Case ในอุปกรณ์

LLM ที่มีขนาดใหญ่กว่าต้องใช้พื้นที่เก็บข้อมูลจำนวนมากและพลังในการประมวลผลข้อมูลจำนวนมากสำหรับการอนุมาน อุปกรณ์เหล่านี้จำเป็นต้องทำงานบนเซิร์ฟเวอร์ที่มีประสิทธิภาพโดยเฉพาะซึ่งมีฮาร์ดแวร์ที่เฉพาะเจาะจง (เช่น TPU)

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

แต่นั่นเป็นคำถามที่ตอบยาก ในปัจจุบัน ไม่มีวิธีที่จะง่ายสำหรับคุณ ที่จะรู้ว่า "โมเดลนี้สามารถทำงานบนอุปกรณ์ระดับกลางส่วนใหญ่ได้" โดยมีสาเหตุ 2-3 ประการดังนี้

  • ความสามารถของอุปกรณ์อาจแตกต่างกันไปตามข้อกำหนดด้านหน่วยความจำ, GPU/CPU และอื่นๆ โทรศัพท์ Android ระดับโลว์เอนด์และแล็ปท็อป NVIDIA® RTX แตกต่างกันอย่างสิ้นเชิง คุณอาจมีจุดข้อมูลบางอย่างเกี่ยวกับอุปกรณ์ที่ผู้ใช้มี เรายังไม่มีคำจำกัดความของ อุปกรณ์พื้นฐานที่ใช้เข้าถึงเว็บ
  • โมเดลหรือเฟรมเวิร์กที่โมเดลเรียกใช้อาจได้รับการเพิ่มประสิทธิภาพให้ทำงานบนฮาร์ดแวร์บางอย่าง
  • ไม่มีวิธีทางโปรแกรมในการตรวจสอบว่า LLM นั้นๆ จะดาวน์โหลดและเรียกใช้ในอุปกรณ์ที่ต้องการได้หรือไม่ ความสามารถในการดาวน์โหลดของอุปกรณ์ขึ้นอยู่กับความมากของ VRAM บน GPU รวมถึงปัจจัยอื่นๆ

แต่เรามีความรู้เชิงประจักษ์บางอย่าง เช่น ในปัจจุบัน โมเดลบางรุ่นที่มีพารามิเตอร์เพียงไม่กี่ล้านตัวไปจนถึง 2-3 พันล้านรายการสามารถทำงานในเบราว์เซอร์ได้ในอุปกรณ์ระดับผู้บริโภค

เช่น

  • Gemma 2B ที่ใช้ MediaPipe LLM Inference API (แม้จะเหมาะสำหรับอุปกรณ์ที่ใช้ CPU เท่านั้น) ลองใช้
  • DistillBERT ด้วย Transformers.js

นี่คือฟิลด์ที่เพิ่งเริ่มใหม่ ภาพแนวนอนจะเปลี่ยนแปลงไปตามกาลเวลา

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

ข้อควรพิจารณาสำหรับ LLM ขนาดเล็ก

เมื่อใช้ LLM ขนาดเล็ก คุณควรพิจารณาประสิทธิภาพและขนาดการดาวน์โหลดเสมอ

การแสดง

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

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

ภาพหน้าจอของแผง Chrome DevTools Network
คะแนนของ Gemma 2B น้อยกว่าคะแนนของ Gemma 7B
แหล่งที่มา: HuggingFace Open LLM Leaderboard, เมษายน 2024

ขนาดการดาวน์โหลด

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

แม้จะมีเทคนิคในการคำนวณขนาดการดาวน์โหลดของโมเดลตามจำนวนพารามิเตอร์ แต่ก็อาจมีความซับซ้อนได้

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

ภาพหน้าจอของแผง Chrome DevTools Network
ในแผง Chrome DevTools Network Gemma 2B และ DistilBERT สำหรับการอนุมานในเบราว์เซอร์และในเว็บแอปพลิเคชัน ขนาดการดาวน์โหลด คือ 1.3 GB และ 67 MB ตามลำดับ

Gemma ใช้กับ MediaPipe LLM Inference API DistillBERT ใช้กับ Transformers.js

เทคนิคการย่อโมเดล

มีเทคนิคหลายอย่างที่ลดความต้องการหน่วยความจำของโมเดลได้อย่างมาก ดังนี้

  • LoRA (การปรับอันดับต่ำ): เทคนิคการปรับแต่งที่ชั่งน้ำหนักก่อนการฝึกถูกหยุดนิ่ง อ่านเพิ่มเติมเกี่ยวกับ LoRA
  • การตัดออก: นำน้ำหนักที่สำคัญน้อยกว่าออกจากโมเดลเพื่อลดขนาด
  • การหาปริมาณ: การลดความแม่นยำของน้ำหนักจากจำนวนจุดลอยตัว (เช่น 32 บิต) ไปยังค่าแทนบิตต่ำ (เช่น 8 บิต)
  • การกลั่นความรู้: การฝึกโมเดลที่เล็กกว่าให้เลียนแบบพฤติกรรมของโมเดลขนาดใหญ่ที่ฝึกไว้แล้วล่วงหน้า
  • การแชร์พารามิเตอร์: การใช้น้ำหนักเดียวกันสำหรับหลายส่วนของโมเดล จะลดจำนวนพารามิเตอร์ที่ไม่ซ้ำกันทั้งหมด