Lensa ML

Mixture of Experts

Langkah 1 dari 6: Model Lebih Besar, Komputasi Sama

Banyak expert, sedikit yang aktif per token

Jumlah expert E (top-k = 2)8
Satu layer: router mengirim tiap token ke 2 dari 8 experttoken hrouter: 4096 → 8, softmaxE1E2E3E4E5E6E7E8Seluruh model, 32 layer (skala batang: E = 64)Total37.0BAktif11.1BSimulasi pada bentuk 7B: tiap expert satu FFN penuh, 3 × 4096 × 11008 = 135M
Total parameter
37.0B
Aktif per token
11.1B
Total ÷ aktif
3.3×

Dengan 8 expert, model menyimpan 37,0B parameter, tetapi satu token hanya menjalankan 2 expert per layer, jadi yang terpakai 11,1B. Top-2 dari expert berukuran penuh berbiaya sekitar dua kali FFN dense, berapa pun E-nya.

Geser jumlah expert E dari 1 sampai 64 dan bandingkan total parameter dengan yang aktif. Hanya blok feed-forward yang digandakan. Attention, embedding, dan norm tetap dipakai bersama, jadi total bertambah sekitar 135 juta parameter per layer untuk tiap expert baru, bukan satu model 7B utuh. Ide ini berasal dari Shazeer dkk. (2017), yang menempatkan layer MoE dengan hingga ribuan expert di antara layer LSTM dan mencapai 137 miliar parameter. Model yang lebih baru sering memakai banyak expert kecil, bukan beberapa expert berukuran penuh.

Langkah 2 dari 6: Router

Linear layer dan softmax atas semua expert

softmax(W_r · h) untuk " France" pada 8 expert0.00.51.0seragam 1/80.01E10.01E20.01E30.01E40.02E50.02E60.01E70.90E8W_r berukuran 4096 × 8 = 32.768 weight per layer · logit ilustratif
Expert teratas
E8
Probabilitasnya
0.90
Entropy router
0.72 bit

Router yakin soal " France": E8 mendapat 90% dan entropy-nya 0,72 dari maksimum 3 bit.

Klik tiap token dalam prompt dan bandingkan seberapa tegas router memilih expert. Router menghitung logits = h · W_r dan sebuah softmax, jadi biayanya sangat kecil dibanding expert yang dipilihnya. Tiap dari 32 layer punya router sendiri, sehingga satu token bisa mengunjungi expert berbeda di setiap kedalaman. Shazeer dkk. menambahkan Gaussian noise yang sudah di-tune ke logit ini saat training untuk menyebar beban. Pada Mixtral, expert tidak terbagi per topik: routing lebih mengikuti sintaksis daripada pokok bahasan, dan token yang berurutan sering masuk ke expert yang sama.

Langkah 3 dari 6: Top-k Routing

Pilih k expert, campur output-nya

Expert per token k2
Router memilih 2 teratas; gate = softmax dari logit terpilihE1p=0.04E2p=0.08E3g=0.61E4g=0.39E5p=0.05E6p=0.05E7p=0.16E8p=0.060.61 × E3(h)0.110.46-0.48-0.690.39 × E4(h)0.530.04-0.61-0.26y = Σ g · E(h)0.270.30-0.53-0.52Contoh output expert 4 dimensi (aslinya 4096 dimensi) · logit ilustratif
Expert aktif
2 dari 8
Gate weight
0.61 / 0.39
Porsi FFN aktif
25.0%

2 expert terpilih hanya memegang 56% probabilitas router. Setelah renormalisasi, jumlah gate-nya 1 dan y mencampur output mereka dengan proporsi itu.

Geser Expert per token k dari 1 sampai 4, lalu ganti token untuk melihat gate berubah. Mixtral menulis layer ini sebagai y = Σ softmax(TopK(h · W_g))_i · E_i(h), yaitu campuran hasil renormalisasi yang terlihat di sini. Shazeer dkk. berasumsi k minimal 2 supaya router bisa mempelajari gradient yang berguna. Switch Transformer menunjukkan top-1 bisa berhasil kalau output diskalakan dengan probabilitas router p_i, bukan 1,0 hasil renormalisasi, karena gradient mencapai router lewat p_i. Komputasi per token tumbuh linear terhadap k.

Langkah 4 dari 6: Load Balancing

Menjaga semua expert tetap bekerja

Auxiliary loss weight α0.000
256 token × top-2 = 512 routing slot, dihitung per expert0100200seimbang: 64229E1165E279E327E411E51E6idleE7idleE8Model sederhana: α mengecilkan bias bawaan router menjadi ×1.00 · logit ber-seed
Porsi expert tersibuk
44.7%
Expert idle
2
Aux loss E·Σ f·P
2.49

Tanpa balancing loss, router mengutamakan E1 dan E2, yang mengambil 77% slot, dan 2 expert idle. Aux loss bernilai 2,49, jauh di atas nilai seimbang sekitar 1.

Geser Auxiliary loss weight α dari 0 ke arah 0,1 dan lihat histogramnya mendatar. Tanpa bantuan, routing cenderung runtuh: expert yang menang di awal mendapat lebih banyak training dan makin sering menang. Switch Transformer menambahkan α · N · Σ f_i · P_i ke loss, dengan f_i sebagai fraksi token yang dikirim ke expert i dan P_i sebagai rata-rata probabilitas router-nya. Hanya P_i yang differentiable. Suku ini bernilai 1 pada routing yang seragam. Paper-nya memakai α = 0.01. DeepSeek-V3 membuang loss ini dan menaikkan atau menurunkan routing bias per expert.

Langkah 5 dari 6: Capacity dan Token yang Di-drop

Yang terjadi ketika expert penuh

Capacity factor1.00
Capacity C = 1.00 × 256 × 2 / 8 = 64 slot per expert050100−40E1−40E2−14E355E450E546E650E725E8C = 64Routing dari langkah 4 pada α = 0.05 · merah = melebihi capacity, dilewati expert
Capacity per expert
64
Slot yang di-drop
94
Persen di-drop
18.4%
Token tanpa expert
14

Pada factor 1,00, hanya expert tersibuk yang meluap. 94 slot di-drop (18,4%); 14 token melewati FFN layer ini sepenuhnya dan mempertahankan nilai residual.

Geser capacity factor antara 0,5 dan 2,0 dan lihat luapan merah mengecil. Hardware menyukai tensor shape yang tetap, jadi tiap expert mendapat buffer sebesar C = factor × token × k / E slot per batch. Factor di atas 1 memberi ruang untuk routing yang tidak merata, tetapi memboroskan komputasi pada slot kosong. Switch Transformer melaporkan token yang di-drop kurang dari 1% dengan balancing loss aktif. MegaBlocks (Gale dkk., 2022) menghindari drop dengan block-sparse kernel yang menangani berapa pun token per expert, dan DeepSeek-V3 tidak men-drop satu pun, baik saat training maupun inference.

Langkah 6 dari 6: MoE dalam Praktik

Switch, Mixtral, dan DeepSeek-V3

Satu layer MoE: 8 routed expert, 2 routed aktif per tokenE1E2E3E4E5E6E7E8Weight pada fp16 (2 byte per parameter)Disimpan di memori93 GBDibaca per token26 GBRouted expert: 32 layer × 8 × 176M = 45.1B (97% dari semua weight)Dihitung dari konfigurasi Tabel 1 paper Mixtral · dense 7B: 13 GB
Total parameter
46.7B
Aktif per token
12.9B
Porsi aktif
27.6%
Weight fp16
93 GB

Tiap token membaca 12,9B dari 46,7B weight, bukan 8 × 7B = 56B, karena attention dan embedding dipakai bersama oleh semua expert. Untuk serving, model ini tetap butuh 93 GB pada fp16, lebih besar dari satu GPU 80 GB.

Klik Switch-style, Mixtral 8x7B, dan DeepSeek-V3, lalu bandingkan dua batang memori. Nama 8x7B terkesan 56 miliar, tetapi Mixtral punya sekitar 46,7 miliar parameter karena hanya blok feed-forward yang digandakan. Switch-C, model Switch terbesar, mencapai 1,6 triliun parameter dengan 2.048 expert. Parameter aktif menentukan FLOP per token, bukan tagihan memori. Pada batch besar, token yang berbeda memilih expert yang berbeda, jadi sebagian besar expert terbaca di setiap langkah. Karena itu, sistem serving menempatkan expert di GPU terpisah dan mengirim token antar-GPU, skema yang disebut expert parallelism.

Apa itu model mixture of experts (MoE)?

Model mixture of experts (MoE) mengganti satu feed-forward layer besar dengan banyak network yang lebih kecil, yang disebut expert, ditambah router yang mengirim tiap token hanya ke beberapa expert. Model bisa menyimpan parameter jauh lebih banyak daripada yang dipakai untuk satu token. Komputasi per token bergantung pada jumlah expert yang berjalan, sedangkan kapasitas total bergantung pada jumlah expert yang ada.

Layer MoE berada di dalam blok transformer pada banyak large language model, termasuk Switch Transformer, Mixtral 8x7B, dan DeepSeek-V3. Layer ini memungkinkan sebuah lab melatih model dengan ratusan miliar parameter dengan biaya per token kira-kira setara model dense yang jauh lebih kecil. Harganya ada di memori dan rekayasa: semua expert harus disimpan, router harus menyebar kerja secara merata, dan expert biasanya dibagi ke banyak GPU.

Ide utama

  • Layer MoE mengganti blok feed-forward transformer dengan banyak expert dan sebuah router.
  • Router adalah linear layer dan softmax yang memberi skor pada setiap expert untuk tiap token.
  • Hanya expert top-k yang berjalan, dan output-nya dicampur dengan gate weight.
  • Total parameter tumbuh mengikuti jumlah expert, sedangkan komputasi per token tumbuh mengikuti k.
  • Auxiliary loss atau routing bias menjaga beban tetap tersebar merata di semua expert.
  • Semua expert harus berada di memori, jadi model MoE menukar memori dengan komputasi per token yang lebih murah.

Ulasan singkat tentang topik ini

Pertanyaan umum

Apakah model MoE sama dengan ensemble?

Tidak. Ensemble menjalankan beberapa model utuh pada setiap input dan merata-ratakan prediksinya. MoE menjalankan satu model yang tiap layer-nya memilih beberapa expert per token, dan expert dilatih bersama router. Pilihan itu terjadi di dalam network, per token, bukan sekali per input.

Apakah expert MoE mengkhususkan diri pada topik seperti matematika atau kode?

Tidak dengan cara yang dikenali manusia. Penulis Mixtral menemukan pilihan expert hampir sama untuk paper arXiv, abstrak biologi, dan teks filsafat. Routing lebih mengikuti jenis token dan sintaksis daripada pokok bahasan, jadi expert lebih tepat dilihat sebagai irisan feed-forward layer yang dipelajari, bukan sebagai spesialis.

Kenapa model MoE sulit di-fine-tune dan di-serve?

Seluruh parameter harus muat di memori GPU walaupun hanya sedikit expert yang berjalan per token. Routing bisa bergeser saat fine-tuning, yang bisa membuat beban timpang atau membuat overfit pada dataset kecil. Serving butuh expert parallelism dan komunikasi antar-GPU, dan batch kecil membuat sebagian besar expert menganggur tetapi tetap mengisi memori.

Apakah MoE mempercepat inference?

Per token, MoE mengerjakan hitungan kira-kira sebanyak model dense seukuran bagian aktifnya, jadi bisa lebih cepat dari model dense seukuran totalnya. Pada batch size kecil, decode dibatasi pembacaan memori, dan membaca beberapa expert lebih murah daripada membaca satu dense layer penuh. Pada batch size besar, sebagian besar expert tetap terbaca, dan kenaikan kecepatannya bergantung pada seberapa baik sistem menyebar token ke banyak GPU.

Penjelasan terkait

Referensi

  1. Shazeer et al. (2017), "Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer"
  2. Fedus, Zoph and Shazeer (2021), "Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity"
  3. Jiang et al. (2024), "Mixtral of Experts"
  4. DeepSeek-AI (2024), "DeepSeek-V3 Technical Report"
  5. Gale et al. (2022), "MegaBlocks: Efficient Sparse Training with Mixture-of-Experts"

Terakhir diperbarui