Mixture-of-Experts (MoE) (TH)

From Systems analysis Wiki
Jump to navigation Jump to search

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 ที่สำคัญ

การเปรียบเทียบสถาปัตยกรรม MoE ที่โดดเด่น
โมเดล ผู้พัฒนา จำนวนพารามิเตอร์
ทั้งหมด
พารามิเตอร์
ที่ใช้งาน
จำนวน
ผู้เชี่ยวชาญ
ผู้เชี่ยวชาญที่
ถูกเลือก (k)
Switch Transformer C-2048 Google 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. 1.0 1.1 1.2 1.3 1.4 1.5 «Applying Mixture of Experts in LLM Architectures». NVIDIA Technical Blog. [1]
  2. «Mixture of Experts (MoE): A Big Data Perspective». arXiv. [2]
  3. 3.0 3.1 «Mixture-of-Experts (MoE): что это такое и как работает». LLM Studio. [3]
  4. «Serving Mixtral MoE Model». Friendli.ai Blog. [4]
  5. «What is Mixture of Experts (MoE)? How it Works and Use Cases». Zilliz Learn. [5]
  6. «Mixture of Experts (MoE) vs Dense LLMs». Maximilian Schwarzmüller's Blog. [6]
  7. «Understanding Mixture of Experts in Deep Learning». VE3. [7]
  8. 8.0 8.1 «Mixture of Experts Explained». Hugging Face Blog. [8]
  9. «Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity». arXiv. [9]
  10. «Auxiliary-Loss-Free Load Balancing Strategy for Mixture-of-Experts». OpenReview. [10]
  11. «DeepSeek-V3 Explained: 3. Auxiliary-Loss-Free Load-Balancing». gopubby.com. [11]
  12. «Switch Transformers: Scaling to Trillion Parameter Models with...». cse.ust.hk. [12]
  13. «MoEQuant: Enhancing Quantization for Mixture-of-Experts...». arXiv. [13]
  14. «A Survey of Mixture of Experts Models: Architectures and Applications in Business and Finance». Preprints.org. [14]
  15. «Mixtral of Experts». arXiv. [15]
  16. «A Survey on Inference Optimization Techniques for Mixture of Experts Models». arXiv. [16]
  17. «Time-MoE: A Scalable and Unified Framework for Pre-training Time Series Foundation Models». arXiv. [17]
  18. «MoEVD: A Mixture of Experts-based Framework for Vulnerability Detection». Semantic Scholar. [18]
  19. «What a Decentralized Mixture-of-Experts (MoE) Is and How It Works». Gate.io Learn. [19]
  20. «LLaMA-MoE: Building Mixture-of-Experts from Open-source LLMs». arXiv. [20]