แม้ว่าตัว "L" ในโมเดลภาษาขนาดใหญ่ (LLM) จะแนะนำในสเกลใหญ่ แต่ความเป็นจริงแล้วจะละเอียดยิ่งขึ้น LLM บางรายการมีพารามิเตอร์นับล้านล้านรายการ และบางรายการก็ทำงานได้อย่างมีประสิทธิภาพและมีพารามิเตอร์น้อยกว่ามาก
มาดูตัวอย่างจากสถานการณ์จริงและผลกระทบในทางปฏิบัติของโมเดลขนาดต่างๆ กัน
ขนาดและคลาสขนาดของ LLM
ในฐานะนักพัฒนาเว็บ เรามักคิดว่าขนาดของทรัพยากรเท่ากับขนาดการดาวน์โหลด ขนาดที่บันทึกไว้ของโมเดลหมายถึงจำนวนพารามิเตอร์แทน ตัวอย่างเช่น Gemma 2B จะหมายถึง Gemma ด้วยพารามิเตอร์ 2 พันล้านรายการ
LLM อาจมีพารามิเตอร์อีกหลายแสนรายการ หลายล้านล้านรายการ หรือแม้กระทั่งหลายล้านล้านรายการ
LLM ที่มีขนาดใหญ่กว่ามีพารามิเตอร์มากกว่าแบบที่มีขนาดเล็ก จึงทำให้บันทึกความสัมพันธ์ทางภาษาที่ซับซ้อนขึ้นและจัดการพรอมต์ที่แตกต่างกันเล็กน้อยได้ โดยมักจะได้รับการฝึกจากชุดข้อมูลขนาดใหญ่
คุณอาจสังเกตเห็นว่าขนาดโมเดลบางขนาด เช่น 2 พันล้าน หรือ 7 พันล้าน เป็นสิ่งที่พบได้ทั่วไป ตัวอย่างเช่น Gemma 2B, Gemma 7B หรือ Mistral 7B คลาสขนาดโมเดลเป็นการจัดกลุ่มโดยประมาณ ตัวอย่างเช่น Gemma 2B มีพารามิเตอร์ประมาณ 2 พันล้านพารามิเตอร์ แต่ก็ยังไม่เหมือนกัน
คลาสขนาดโมเดลเป็นวิธีที่ใช้วัดประสิทธิภาพของ LLM ได้จริง ลองคิดว่าค่านี้เปรียบเสมือนคลาสน้ำหนักในการชกมวย กล่าวคือ นายแบบในคลาสขนาดเดียวกันนั้นเปรียบเทียบกันได้มากกว่า รุ่น 2B 2 รุ่นควรให้ประสิทธิภาพใกล้เคียงกัน
อย่างไรก็ตาม โมเดลที่เล็กกว่าก็มีประสิทธิภาพเท่ากันเมื่อเทียบกับโมเดลขนาดใหญ่สำหรับงานที่เฉพาะเจาะจง
แม้ว่าขนาดโมเดลสำหรับ LLM ที่ทันสมัยล่าสุด เช่น GPT-4, Gemini Pro หรือ Ultra จะไม่เปิดเผยเสมอไป แต่เชื่อกันว่าขนาดเหล่านี้อยู่ในพารามิเตอร์นับร้อยพันล้านหรือล้านรายการ
โมเดลบางรุ่นอาจระบุจำนวนพารามิเตอร์ในชื่อเท่านั้น บางรุ่นมีหมายเลขเวอร์ชัน เกินมา ตัวอย่างเช่น 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 ขนาดเล็ก
ขนาดการดาวน์โหลด
พารามิเตอร์ที่มากกว่าหมายถึงขนาดการดาวน์โหลดที่ใหญ่กว่า ซึ่งก็ส่งผลด้วยว่าโมเดลนั้นๆ จะดาวน์โหลดได้อย่างสมเหตุสมผลหรือไม่สำหรับ Use Case ในอุปกรณ์ แม้ว่าจะมีขนาดเล็กก็ตาม
แม้จะมีเทคนิคในการคำนวณขนาดการดาวน์โหลดของโมเดลตามจำนวนพารามิเตอร์ แต่ก็อาจมีความซับซ้อนได้
ตั้งแต่ต้นปี 2024 ขนาดการดาวน์โหลดโมเดลมักไม่ค่อยได้รับการบันทึก ดังนั้น สำหรับกรณีการใช้งานในอุปกรณ์และในเบราว์เซอร์ เราขอแนะนำให้คุณดูขนาดการดาวน์โหลดอย่างชัดเจนในแผงเครือข่ายของเครื่องมือสำหรับนักพัฒนาเว็บใน Chrome หรือเครื่องมืออื่นๆ สำหรับนักพัฒนาเบราว์เซอร์
Gemma ใช้กับ MediaPipe LLM Inference API DistillBERT ใช้กับ Transformers.js
เทคนิคการย่อโมเดล
มีเทคนิคหลายอย่างที่ลดความต้องการหน่วยความจำของโมเดลได้อย่างมาก ดังนี้
- LoRA (การปรับอันดับต่ำ): เทคนิคการปรับแต่งที่ชั่งน้ำหนักก่อนการฝึกถูกหยุดนิ่ง อ่านเพิ่มเติมเกี่ยวกับ LoRA
- การตัดออก: นำน้ำหนักที่สำคัญน้อยกว่าออกจากโมเดลเพื่อลดขนาด
- การหาปริมาณ: การลดความแม่นยำของน้ำหนักจากจำนวนจุดลอยตัว (เช่น 32 บิต) ไปยังค่าแทนบิตต่ำ (เช่น 8 บิต)
- การกลั่นความรู้: การฝึกโมเดลที่เล็กกว่าให้เลียนแบบพฤติกรรมของโมเดลขนาดใหญ่ที่ฝึกไว้แล้วล่วงหน้า
- การแชร์พารามิเตอร์: การใช้น้ำหนักเดียวกันสำหรับหลายส่วนของโมเดล จะลดจำนวนพารามิเตอร์ที่ไม่ซ้ำกันทั้งหมด