𝗠𝗶𝘅𝘁𝘂𝗿𝗲 𝗼𝗳 𝗘𝘅𝗽𝗲𝗿𝘁𝘀 (𝗠𝗼𝗘): 𝗖𝗮𝗿𝗮 𝗞𝗲𝗿𝗷𝗮 𝗱𝗮𝗻 𝗞𝗮𝗽𝗮𝗻 𝗛𝗮𝗿𝘂𝘀 𝗠𝗲𝗻𝗴𝗴𝘂𝗻𝗮𝗸𝗮𝗻𝗻𝘆𝗮
Anda ingin melakukan penskalaan dari model 7B ke model 70B tanpa harus membeli empat GPU tambahan.
Seseorang menyarankan Mixture of Experts (MoE). Mereka mengklaim Anda bisa mendapatkan performa 70B hanya dengan komputasi 7B.
Kedengarannya seperti keuntungan cuma-cuma. Namun, ada harganya.
Bagaimana cara kerjanya?
Transformer padat (dense transformer) seperti Llama 3.2 menggunakan 100 persen parameternya untuk setiap token. Jika Anda melakukan penskalaan dari 7B ke 70B, Anda melipatgandakan memori dan komputasi sebanyak 10x.
MoE memisahkan keduanya. Model ini menyimpan lebih banyak parameter (biaya memori lebih tinggi) tetapi hanya menggunakan sebagian kecil darinya untuk setiap token (biaya komputasi lebih rendah).
Kompromi (Trade-off):
• Dense 7B: 7B total parameter | 7B aktif | 7B komputasi | 14 GB memori • Dense 70B: 70B total parameter | 70B aktif | 70B komputasi | 140 GB memori • MoE 45B: 45B total parameter | ~13B aktif | ~14B komputasi | ~90 GB memori
Sisi lainnya: Anda tetap harus membayar biaya memori model besar. Anda tidak bisa menjalankan Mixtral pada satu GPU 24 GB. Anda membutuhkan VRAM yang cukup untuk menampung semua expert, bahkan yang tidak sedang digunakan sekalipun.
Arsitekturnya:
Dalam sparse MoE, Feed-Forward Network (FFN) standar digantikan oleh beberapa FFN "expert" dan sebuah router yang dipelajari (learned router).
- Router mengambil sebuah token.
- Router memberikan skor ke setiap expert.
- Router memilih top-k expert (untuk Mixtral, k=2).
- Router menjalankan token tersebut hanya melalui expert yang terpilih.
- Router menggabungkan hasilnya.
Router bukanlah penjadwal manual. Ia adalah sebuah layer yang dipelajari. Ia belajar untuk mengirim token matematika ke satu expert dan token kode ke expert lainnya.
Tantangan Pelatihan:
Risiko terbesar adalah router collapse. Tanpa bantuan, router mungkin mengirimkan setiap token ke dua expert yang sama. Expert tersebut menjadi semakin mahir, sehingga router mengirimkan lebih banyak trafik ke mereka. Expert lainnya menjadi tidak berguna.
Insinyur menggunakan auxiliary load-balancing loss untuk memperbaiki hal ini. Ini memberikan penalti pada model jika tidak menggunakan semua expert secara merata.
Kapan harus menghindari MoE:
• Anda membutuhkan latensi yang konsisten: MoE memiliki varians waktu respons yang lebih tinggi. • VRAM Anda terbatas: Jika Anda hanya memiliki satu GPU di bawah 48 GB, tetaplah gunakan model dense. • Anda membangun model kecil: Jika model Anda di bawah 3B parameter, overhead-nya terlalu tinggi. • Anda membutuhkan infrastruktur yang sederhana: MoE memerlukan expert parallelism yang kompleks dan custom kernels.
MoE paling baik digunakan ketika Anda menargetkan baseline dense di atas 30B parameter dan memiliki memori yang cukup untuk mendukungnya.
Komunitas pembelajaran opsional: https://t.me/GyaanSetuAi_