Mixture-of-Experts (MoE) (TH)
Mixture-of-Experts (MoE) (จากภาษาอังกฤษ — «ส่วนผสมของผู้เชี่ยวชาญ») — คือสถาปัตยกรรมของ Neural Network ที่ตั้งอยู่บนหลักการของการคำนวณแบบมีเงื่อนไข และกระบวนทัศน์ «แบ่งแยกและพิชิต» แทนที่จะใช้โมเดลเดียวแบบรวมศูนย์ («หนาแน่น») ซึ่งพารามิเตอร์ทั้งหมดถูกใช้งานในการประมวลผลสัญญาณอินพุตทุกรายการ สถาปัตยกรรม MoE จะแบ่งงานออก โดยมอบหมายให้กับชุดย่อยของเครือข่ายย่อยที่เชี่ยวชาญเฉพาะด้าน ซึ่งเรียกว่า «ผู้เชี่ยวชาญ» ส่วนประกอบพิเศษที่เรียกว่า เครือข่ายเราเตอร์ (gating network หรือ router) จะกำหนดแบบไดนามิกว่าผู้เชี่ยวชาญคนใดจะประมวลผล token อินพุตแต่ละรายการ[1][2]
แนวทางนี้ช่วยให้สามารถสร้างโมเดลที่มีพารามิเตอร์จำนวนมหาศาล (หลายร้อยพันล้านหรือแม้แต่หลายล้านล้านตัว) ในขณะที่ยังคงต้นทุนการคำนวณ (FLOPs) ในช่วง inference ให้อยู่ในระดับใกล้เคียงกับโมเดลหนาแน่นที่เล็กกว่ามาก[3] ด้วยเหตุนี้ MoE จึงกลายเป็นเทคโนโลยีสำคัญสำหรับการขยายขนาด LLM สมัยใหม่ และถูกนำไปใช้ในระบบขั้นสูง เช่น Mixtral 8x7B, Grok-1 และตามความเชื่อที่แพร่หลาย GPT-4[1]
หลักการสำคัญ: การคำนวณแบบมีเงื่อนไขและความเบาบาง
กลไกพื้นฐานของ MoE คือ การคำนวณแบบมีเงื่อนไข (conditional computation) ต่างจากโมเดลหนาแน่นที่พารามิเตอร์ทั้งหมดทำงานอยู่ขณะประมวลผล token ใดก็ตาม โมเดล MoE จะเปิดใช้งานเพียงส่วนน้อยของพารามิเตอร์โดยขึ้นอยู่กับข้อมูลอินพุต กระบวนการนี้นำไปสู่ ความเบาบางของการเปิดใช้งาน (sparsity in activation) ซึ่งเป็นความแตกต่างหลักจากสถาปัตยกรรมแบบดั้งเดิม[4]
แนวทางดังกล่าวช่วยให้สามารถ:
- ขยายความจุของโมเดล: จำนวนพารามิเตอร์ทั้งหมด (และด้วยเหตุนี้ «ความรู้» ของโมเดล) สามารถเพิ่มขึ้นอย่างมีนัยสำคัญโดยไม่มีการเติบโตของภาระการคำนวณในสัดส่วนเดียวกัน
- เพิ่มประสิทธิภาพ: โมเดลทำการคำนวณน้อยลงต่อ token หนึ่งตัว ส่งผลให้ inference เร็วขึ้นและลดต้นทุนการฝึกภายใต้งบประมาณการคำนวณที่กำหนด[5]
ดังนั้น MoE จึงเปลี่ยนจุดคอขวดจากกำลังการคำนวณไปสู่ ความต้องการหน่วยความจำ (VRAM) เนื่องจากพารามิเตอร์ทั้งหมดของผู้เชี่ยวชาญทุกคนจะต้องถูกโหลดเข้าหน่วยความจำ แม้ว่าในแต่ละช่วงเวลาจะใช้งานเพียงส่วนน้อยของพวกเขา[6]
องค์ประกอบของสถาปัตยกรรม MoE
1. เครือข่ายย่อยผู้เชี่ยวชาญ (Experts)
ผู้เชี่ยวชาญโดยทั่วไปคือ Neural Network อิสระ ในบริบทของสถาปัตยกรรม transformer ชั้น MoE มักจะแทนที่บล็อกเชื่อมโยงแบบหนาแน่นเต็มรูปแบบ (Feed-Forward Networks, FFN) และผู้เชี่ยวชาญแต่ละคนเป็น FFN ในตัวเอง[1] ในระหว่างการฝึก ผู้เชี่ยวชาญแต่ละคนสามารถพัฒนา «ความเชี่ยวชาญ» ในด้านเฉพาะ เช่น คนหนึ่งอาจเชี่ยวชาญด้านไวยากรณ์ อีกคนด้านข้อเท็จจริงจากสาขาความรู้เฉพาะ และอีกคนด้านภาษาหรือสไตล์เฉพาะ[7]
2. เครือข่ายควบคุม (Gating Network / Router)
เครือข่ายเราเตอร์เป็นองค์ประกอบขนาดเล็กแต่มีความสำคัญอย่างยิ่งที่ทำหน้าที่กระจายงานอย่างชาญฉลาด สำหรับ token อินพุตแต่ละตัว เราเตอร์จะคำนวณคะแนน (น้ำหนัก) เพื่อกำหนดว่าผู้เชี่ยวชาญคนใดมีความเกี่ยวข้องสูงสุดในการประมวลผล การตัดสินใจการกำหนดเส้นทางเป็นแบบไดนามิกและขึ้นอยู่กับบริบท[8]
กลยุทธ์ที่พบได้บ่อยที่สุดคือ การกำหนดเส้นทาง Top-K ซึ่งเลือกผู้เชี่ยวชาญ K คนที่มีคะแนนสูงสุดเพื่อประมวลผล token ค่า K มักจะมีขนาดเล็ก (เช่น 1 หรือ 2) ซึ่งเป็นสิ่งที่ทำให้เกิดความเบาบาง
3. การรวมข้อมูลเอาต์พุต
หลังจากที่ผู้เชี่ยวชาญ K คนที่เลือกไว้ประมวลผล token แล้ว เอาต์พุตแต่ละรายการของพวกเขาจะถูกรวมเข้าด้วยกันเพื่อสร้างผลลัพธ์สุดท้ายของชั้น MoE โดยทั่วไปทำได้โดยการหาผลรวมแบบถ่วงน้ำหนัก ซึ่งน้ำหนักคือคะแนนที่ผ่านการทำให้เป็นปกติที่เราเตอร์สร้างขึ้น[1]
วิวัฒนาการของ MoE
แนวคิด MoE ถูกเสนอขึ้นครั้งแรกในปี 1991 ในผลงานของ Robert Jacobs, Geoffrey Hinton และ Michael Jordan ภายใต้ชื่อ «Adaptive Mixtures of Local Experts»[3] อย่างไรก็ตาม เนื่องจากข้อจำกัดด้านการคำนวณและความซับซ้อนในการฝึก แนวคิดนี้จึงไม่ได้รับการยอมรับอย่างแพร่หลายจนกระทั่งยุคของ deep learning
จุดเปลี่ยนเกิดขึ้นพร้อมกับการเกิดขึ้นของสถาปัตยกรรม transformer การวิจัยในช่วงปี 2010-2015 ที่เกี่ยวกับการคำนวณแบบมีเงื่อนไข (Yoshua Bengio และคณะ) ได้วางรากฐานทางทฤษฎี และผลงานของ Shazir และคณะ (2017) แสดงให้เห็นถึงความเป็นไปได้ในการขยายขนาด MoE ไปสู่โมเดล LSTM ที่มีพารามิเตอร์ 137 พันล้านตัว[8]
การฟื้นคืนชีพของ MoE ในยุคสมัยใหม่เชื่อมโยงกับโมเดล Switch Transformer จาก Google (2021) ซึ่งขยายขนาดไปถึง 1.6 ล้านล้านพารามิเตอร์ โดยใช้การกำหนดเส้นทาง Top-1 ที่เรียบง่ายแต่มีประสิทธิภาพ[9] ความสำเร็จของโมเดลโอเพนซอร์ส Mixtral 8x7B จาก Mistral AI ในปี 2023 ได้สถาปนา MoE ให้กลายเป็นหนึ่งในสถาปัตยกรรมชั้นนำสำหรับการสร้าง LLM ประสิทธิภาพสูง[1]
ปัญหาและวิธีการเพิ่มประสิทธิภาพ
การจัดสมดุลโหลด
ปัญหาสำคัญประการหนึ่งของ MoE คือ ความไม่สมดุลของโหลด เมื่อเราเตอร์เลือกผู้เชี่ยวชาญ «ยอดนิยม» กลุ่มเดิมซ้ำๆ ในขณะที่ผู้เชี่ยวชาญคนอื่นๆ ถูกใช้งานน้อยเกินไป ส่งผลให้การฝึกไม่มีประสิทธิภาพและเกิด «การล่มสลายของผู้เชี่ยวชาญ»
- ฟังก์ชันสูญเสียเสริม (Auxiliary Loss): วิธีดั้งเดิมที่เพิ่ม «บทลงโทษ» สำหรับการกระจาย token ที่ไม่สม่ำเสมอลงในฟังก์ชันสูญเสียหลัก แม้ว่าจะช่วยในเรื่องการสมดุล แต่แนวทางนี้อาจนำเข้า «gradient รบกวน» ซึ่งลดประสิทธิภาพโดยรวม[10]
- การสมดุลแบบไม่มีการสูญเสีย (Loss-Free Balancing): แนวทางใหม่กว่าที่ใช้การเบี่ยงเบน (bias) กับคะแนนของเราเตอร์แบบไดนามิก เพื่อผลักดันให้เกิดการตัดสินใจที่สมดุลมากขึ้นโดยไม่รบกวนงานการฝึกหลัก[11]
- การกำหนดเส้นทางตามการเลือกของผู้เชี่ยวชาญ (Expert Choice Routing): แนวทางทางเลือกที่แทนที่จะให้ token เลือกผู้เชี่ยวชาญ แต่ผู้เชี่ยวชาญแต่ละคนจะเลือก `top-k` token จากชุดข้อมูลให้ตัวเอง วิธีนี้รับประกันการสมดุลที่สมบูรณ์แบบ แต่อาจซับซ้อนกว่าในการดำเนินการ[1]
Fine-tuning และ Quantization
- Fine-tuning: ในอดีต โมเดล MoE มีแนวโน้มที่จะเกิด overfitting เนื่องจากมีพารามิเตอร์จำนวนมาก เพื่อบรรเทาปัญหานี้จึงใช้วิธีการต่างๆ เช่น «expert dropout»[12]
- Quantization: การลดความแม่นยำของตัวเลขในน้ำหนักเพื่อลดขนาดโมเดลและเร่งความเร็ว inference สำหรับ MoE นี่เป็นงานที่ซับซ้อนเนื่องจากความไม่สมดุลระหว่างผู้เชี่ยวชาญ วิธีการต่างๆ เช่น MoEQuant นำเสนอแนวทางแก้ไขที่อิงการปรับเทียบแบบสมดุลสำหรับผู้เชี่ยวชาญแต่ละคน[13]
การเพิ่มประสิทธิภาพเชิงระบบ
การใช้งาน MoE อย่างมีประสิทธิภาพต้องใช้แนวทางระบบแบบองค์รวม ซึ่งรวมถึง:
- กลยุทธ์การประมวลผลแบบขนาน: Expert parallelism (การกระจายผู้เชี่ยวชาญไปยัง GPU ต่างๆ), model parallelism และ data parallelism[14]
- Kernel เฉพาะทาง: ตัวอย่างเช่น Megablocks สำหรับ Mixtral ที่เพิ่มประสิทธิภาพการคูณเมทริกซ์สำหรับการดำเนินการแบบเบาบาง[15]
- การออกแบบฮาร์ดแวร์ร่วม (Hardware Co-design): การพัฒนาโซลูชันฮาร์ดแวร์ที่ได้รับการเพิ่มประสิทธิภาพโดยเฉพาะสำหรับภาระงาน MoE
โมเดล MoE ที่สำคัญ
| โมเดล | ผู้พัฒนา | จำนวนพารามิเตอร์ ทั้งหมด |
พารามิเตอร์ ที่ใช้งาน |
จำนวน ผู้เชี่ยวชาญ |
ผู้เชี่ยวชาญที่ ถูกเลือก (k) |
|---|---|---|---|---|---|
| Switch Transformer C-2048 | 1.6 ล้านล้าน | ขึ้นอยู่กับขนาดผู้เชี่ยวชาญ | 2048 | 1 | |
| Mixtral 8x7B | Mistral AI | ~47 พันล้าน | ~13 พันล้าน | 8 | 2 |
| Grok-1 | xAI | 314 พันล้าน | 86 พันล้าน | 8 | 2 |
| GPT-4 (ตามที่สันนิษฐาน) | OpenAI | >1 ล้านล้าน | - | 16 (สันนิษฐาน) | 2 (สันนิษฐาน) |
| Qwen 2 MoE | Alibaba | 57-90 พันล้าน | 14 พันล้าน | 64 | 4 หรือ 8 |
| DeepSeekMoE 16B | DeepSeek-AI | 16.4 พันล้าน | ~2.8 พันล้าน | 64 (2 ที่ใช้งาน) | 2 (จาก 6)[16] |
การประยุกต์ใช้ในสาขาต่างๆ
แม้ว่า MoE จะเป็นที่รู้จักมากที่สุดในบริบทของ LLM แต่การประยุกต์ใช้ไม่ได้จำกัดเพียงการประมวลผลภาษาธรรมชาติ:
- การพยากรณ์อนุกรมเวลา: โมเดล Time-MoE นำเสนอสถาปัตยกรรมที่ขยายขนาดได้สำหรับการ pre-training โมเดลพยากรณ์[17]
- การตรวจจับช่องโหว่: MoEVD ใช้ MoE เพื่อแบ่งงานการตรวจจับช่องโหว่ออกเป็นการจำแนกประเภทตาม CWE โดยผู้เชี่ยวชาญแต่ละคนมีความชำนาญในประเภทของตนเอง[18]
- การผสานรวมกับเทคโนโลยีบล็อกเชน: MoE ถูกนำไปใช้ในการเพิ่มประสิทธิภาพ smart contract และการตรวจจับการฉ้อโกง ซึ่งผู้เชี่ยวชาญจะวิเคราะห์รูปแบบธุรกรรมต่างๆ[19]
- โมเดลมัลติโมดัล: MoE ถูกใช้เพื่อรวมผู้เชี่ยวชาญที่มีความชำนาญในโมดัลลิตี้ต่างๆ (ข้อความ, ภาพ, เสียง) สร้างระบบที่มีความหลากหลายมากขึ้น[20]
หมายเหตุ
- ↑ 1.0 1.1 1.2 1.3 1.4 1.5 «Applying Mixture of Experts in LLM Architectures». NVIDIA Technical Blog. [1]
- ↑ «Mixture of Experts (MoE): A Big Data Perspective». arXiv. [2]
- ↑ 3.0 3.1 «Mixture-of-Experts (MoE): что это такое и как работает». LLM Studio. [3]
- ↑ «Serving Mixtral MoE Model». Friendli.ai Blog. [4]
- ↑ «What is Mixture of Experts (MoE)? How it Works and Use Cases». Zilliz Learn. [5]
- ↑ «Mixture of Experts (MoE) vs Dense LLMs». Maximilian Schwarzmüller's Blog. [6]
- ↑ «Understanding Mixture of Experts in Deep Learning». VE3. [7]
- ↑ 8.0 8.1 «Mixture of Experts Explained». Hugging Face Blog. [8]
- ↑ «Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity». arXiv. [9]
- ↑ «Auxiliary-Loss-Free Load Balancing Strategy for Mixture-of-Experts». OpenReview. [10]
- ↑ «DeepSeek-V3 Explained: 3. Auxiliary-Loss-Free Load-Balancing». gopubby.com. [11]
- ↑ «Switch Transformers: Scaling to Trillion Parameter Models with...». cse.ust.hk. [12]
- ↑ «MoEQuant: Enhancing Quantization for Mixture-of-Experts...». arXiv. [13]
- ↑ «A Survey of Mixture of Experts Models: Architectures and Applications in Business and Finance». Preprints.org. [14]
- ↑ «Mixtral of Experts». arXiv. [15]
- ↑ «A Survey on Inference Optimization Techniques for Mixture of Experts Models». arXiv. [16]
- ↑ «Time-MoE: A Scalable and Unified Framework for Pre-training Time Series Foundation Models». arXiv. [17]
- ↑ «MoEVD: A Mixture of Experts-based Framework for Vulnerability Detection». Semantic Scholar. [18]
- ↑ «What a Decentralized Mixture-of-Experts (MoE) Is and How It Works». Gate.io Learn. [19]
- ↑ «LLaMA-MoE: Building Mixture-of-Experts from Open-source LLMs». arXiv. [20]