Mixture-of-Experts (MoE) (VI)
Mixture-of-Experts (MoE) (từ tiếng Anh — «Hỗn hợp chuyên gia») — là một kiến trúc mạng nơ-ron dựa trên nguyên tắc tính toán có điều kiện và mô hình «Chia để trị». Thay vì sử dụng một mô hình nguyên khối thống nhất («dày đặc»), trong đó tất cả các tham số được sử dụng để xử lý mỗi tín hiệu đầu vào, kiến trúc MoE phân rã bài toán, ủy thác nó cho một tập hợp con các mạng con chuyên biệt được gọi là «chuyên gia». Một thành phần đặc biệt, mạng định tuyến (gating network hay router), xác định động xem những chuyên gia nào sẽ xử lý từng token đầu vào cụ thể[1][2].
Cách tiếp cận này cho phép tạo ra các mô hình với số lượng tham số khổng lồ (hàng trăm tỷ hoặc thậm chí hàng nghìn tỷ), trong khi vẫn duy trì chi phí tính toán (FLOPs) ở giai đoạn inference ở mức tương đương với các mô hình dày đặc nhỏ hơn đáng kể[3]. Nhờ đó, MoE đã trở thành công nghệ then chốt để mở rộng quy mô các mô hình ngôn ngữ lớn (LLM) hiện đại và được sử dụng trong các hệ thống tiên tiến như Mixtral 8x7B, Grok-1 và, theo quan điểm phổ biến rộng rãi, GPT-4[1].
Nguyên tắc then chốt: tính toán có điều kiện và tính thưa
Cơ chế nền tảng của MoE là tính toán có điều kiện (conditional computation). Khác với các mô hình dày đặc, nơi tất cả các tham số đều hoạt động khi xử lý bất kỳ token nào, các mô hình MoE chỉ kích hoạt một phần nhỏ tham số của chúng tùy thuộc vào dữ liệu đầu vào. Quá trình này dẫn đến tính thưa trong kích hoạt (sparsity in activation), đây là điểm khác biệt chính so với các kiến trúc truyền thống[4].
Cách tiếp cận này cho phép:
- Mở rộng dung lượng mô hình: Tổng số tham số (và do đó là «kiến thức» của mô hình) có thể được tăng lên đáng kể mà không làm tăng tỷ lệ thuận tải tính toán.
- Nâng cao hiệu quả: Mô hình thực hiện ít tính toán hơn trên mỗi token, dẫn đến inference nhanh hơn và giảm chi phí huấn luyện với ngân sách tính toán cố định[5].
Như vậy, MoE dịch chuyển điểm thắt cổ chai từ năng lực tính toán sang yêu cầu về bộ nhớ (VRAM), vì tất cả các tham số của tất cả các chuyên gia phải được nạp vào bộ nhớ, ngay cả khi tại mỗi thời điểm chỉ sử dụng một phần nhỏ trong số đó[6].
Các thành phần của kiến trúc MoE
1. Mạng con chuyên gia (Experts)
Các chuyên gia thường là các mạng nơ-ron độc lập. Trong bối cảnh kiến trúc transformer, các lớp MoE thường thay thế các khối kết nối đầy đủ dày đặc (Feed-Forward Networks, FFN), và mỗi chuyên gia tự nó là một FFN[1]. Trong quá trình huấn luyện, mỗi chuyên gia có thể phát triển «năng lực» trong các lĩnh vực nhất định — ví dụ, một chuyên gia có thể chuyên về cú pháp, một chuyên gia khác về các sự kiện từ một lĩnh vực kiến thức cụ thể, và một chuyên gia thứ ba về một ngôn ngữ hoặc phong cách nhất định[7].
2. Mạng kiểm soát (Gating Network / Router)
Mạng định tuyến là một thành phần nhỏ nhưng cực kỳ quan trọng, thực hiện việc phân phối nhiệm vụ một cách thông minh. Đối với mỗi token đầu vào, bộ định tuyến tính toán các điểm số (trọng số), xác định những chuyên gia nào có liên quan nhất để xử lý nó. Quyết định định tuyến là động và phụ thuộc vào ngữ cảnh[8].
Chiến lược phổ biến nhất là định tuyến Top-K, trong đó K chuyên gia có điểm số cao nhất được chọn để xử lý token. Giá trị K thường nhỏ (ví dụ: 1 hoặc 2), điều này đảm bảo tính thưa.
3. Tổng hợp dữ liệu đầu ra
Sau khi K chuyên gia được chọn đã xử lý token, các đầu ra riêng lẻ của chúng được kết hợp để tạo thành kết quả cuối cùng của lớp MoE. Thông thường, điều này được thực hiện bằng cách tính tổng có trọng số, trong đó các trọng số là các điểm số được chuẩn hóa do bộ định tuyến tạo ra[1].
Sự phát triển của MoE
Khái niệm MoE lần đầu tiên được đề xuất vào năm 1991 trong công trình của Robert Jacobs, Geoffrey Hinton và Michael Jordan với tên gọi «Hỗn hợp thích ứng các chuyên gia cục bộ»[3]. Tuy nhiên, do những hạn chế về tính toán và sự phức tạp của quá trình huấn luyện, ý tưởng này không được phổ biến rộng rãi cho đến kỷ nguyên học sâu.
Bước đột phá xảy ra cùng với sự xuất hiện của kiến trúc Transformer. Các nghiên cứu trong giai đoạn 2010-2015 về tính toán có điều kiện (Yoshua Bengio và cộng sự) đã đặt nền tảng lý thuyết, và công trình của Shazeer và cộng sự (2017) đã chứng minh khả năng mở rộng quy mô MoE lên mô hình LSTM 137 tỷ tham số[8].
Sự hồi sinh hiện đại của MoE gắn liền với mô hình Switch Transformer của Google (2021), được mở rộng lên 1,6 nghìn tỷ tham số, sử dụng định tuyến Top-1 đơn giản nhưng hiệu quả[9]. Sự thành công của mô hình mã nguồn mở Mixtral 8x7B từ Mistral AI vào năm 2023 đã chính thức khẳng định MoE là một trong những kiến trúc hàng đầu để tạo ra các LLM hiệu suất cao[1].
Các thách thức và phương pháp tối ưu hóa
Cân bằng tải
Một trong những vấn đề then chốt của MoE là mất cân bằng tải, khi bộ định tuyến liên tục chọn các chuyên gia «phổ biến» giống nhau, trong khi các chuyên gia khác bị khai thác không đầy đủ. Điều này dẫn đến huấn luyện kém hiệu quả và «sụp đổ chuyên gia».
- Hàm mất mát phụ trợ (Auxiliary Loss): Phương pháp truyền thống thêm «hình phạt» vào hàm mất mát chính cho việc phân phối token không đồng đều. Mặc dù điều này giúp cân bằng, cách tiếp cận này có thể đưa vào «gradient nhiễu», làm giảm hiệu suất tổng thể[10].
- Cân bằng không mất mát (Loss-Free Balancing): Cách tiếp cận mới hơn, áp dụng động độ lệch (bias) vào điểm số của bộ định tuyến, thúc đẩy nó đưa ra các quyết định cân bằng hơn mà không can thiệp vào nhiệm vụ huấn luyện chính[11].
- Định tuyến theo lựa chọn của chuyên gia (Expert Choice Routing): Cách tiếp cận thay thế, trong đó không phải các token chọn chuyên gia, mà mỗi chuyên gia tự chọn `top-k` token từ lô. Điều này đảm bảo cân bằng hoàn hảo, nhưng có thể phức tạp hơn trong việc triển khai[1].
Tinh chỉnh và lượng tử hóa
- Tinh chỉnh (Fine-tuning): Theo lịch sử, các mô hình MoE có xu hướng bị quá khớp do số lượng tham số lớn. Để giảm thiểu vấn đề này, các phương pháp như «expert dropout» được sử dụng[12].
- Lượng tử hóa (Quantization): Giảm độ chính xác số của trọng số để giảm kích thước mô hình và tăng tốc inference. Đối với MoE, đây là một nhiệm vụ phức tạp do mất cân bằng giữa các chuyên gia. Các phương pháp như MoEQuant đề xuất các giải pháp dựa trên hiệu chỉnh cân bằng cho từng chuyên gia[13].
Tối ưu hóa hệ thống
Triển khai MoE hiệu quả đòi hỏi một cách tiếp cận hệ thống toàn diện, bao gồm:
- Chiến lược song song hóa: Song song hóa chuyên gia (phân phối các chuyên gia trên các GPU khác nhau), song song hóa mô hình và song song hóa dữ liệu[14].
- Nhân chuyên dụng (Kernels): Ví dụ, Megablocks cho Mixtral, tối ưu hóa phép nhân ma trận cho các phép toán thưa[15].
- Thiết kế phần cứng đồng bộ (Hardware Co-design): Phát triển các giải pháp phần cứng được tối ưu hóa đặc biệt cho khối lượng công việc MoE.
Các mô hình MoE tiêu biểu
| Mô hình | Nhà phát triển | Tổng số tham số |
Tham số hoạt động |
Số lượng chuyên gia |
Chuyên gia được chọn (k) |
|---|---|---|---|---|---|
| Switch Transformer C-2048 | 1,6 nghìn tỷ | Phụ thuộc vào kích thước chuyên gia | 2048 | 1 | |
| Mixtral 8x7B | Mistral AI | ~47 tỷ | ~13 tỷ | 8 | 2 |
| Grok-1 | xAI | 314 tỷ | 86 tỷ | 8 | 2 |
| GPT-4 (ước tính) | OpenAI | >1 nghìn tỷ | - | 16 (ước tính) | 2 (ước tính) |
| Qwen 2 MoE | Alibaba | 57-90 tỷ | 14 tỷ | 64 | 4 hoặc 8 |
| DeepSeekMoE 16B | DeepSeek-AI | 16,4 tỷ | ~2,8 tỷ | 64 (2 hoạt động) | 2 (trong số 6)[16] |
Ứng dụng trong các lĩnh vực khác nhau
Mặc dù MoE được biết đến nhiều nhất trong bối cảnh LLM, ứng dụng của nó không giới hạn ở xử lý ngôn ngữ tự nhiên:
- Dự báo chuỗi thời gian: Mô hình Time-MoE đại diện cho một kiến trúc có thể mở rộng để tiền huấn luyện các mô hình dự báo[17].
- Phát hiện lỗ hổng bảo mật: MoEVD sử dụng MoE để phân rã bài toán phát hiện lỗ hổng thành phân loại theo loại CWE, trong đó mỗi chuyên gia chuyên về loại của mình[18].
- Tích hợp với công nghệ blockchain: MoE được ứng dụng trong tối ưu hóa hợp đồng thông minh và phát hiện gian lận, nơi các chuyên gia phân tích các mẫu giao dịch khác nhau[19].
- Các mô hình đa phương thức: MoE được sử dụng để kết hợp các chuyên gia chuyên về các phương thức khác nhau (văn bản, hình ảnh, âm thanh), tạo ra các hệ thống linh hoạt hơn[20].
Chú thích
- ↑ 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]