𝗠𝗶𝘅𝘁𝘂𝗿𝗲 𝗼𝗳 𝗘𝘅𝗽𝗲𝗿𝘁𝘀 (𝗠𝗼𝗘): 𝗖𝗮𝗿𝗮 𝗜𝘁 𝗕𝗲𝗸𝗲𝗿𝗷𝗮 𝗱𝗮𝗻 𝗕𝗶𝗹𝗮 𝗣𝗲𝗿𝗹𝘂 𝗚𝘂𝗻𝗮𝗸𝗮𝗻𝗻𝘆𝗮
Anda mahu meningkatkan skala daripada model 7B kepada model 70B tanpa membeli empat lagi GPU.
Seseorang mencadangkan Mixture of Experts (MoE). Mereka mendakwa anda mendapat prestasi 70B dengan hanya komputasi 7B.
Ia kedengaran seperti sesuatu yang terlalu indah untuk menjadi kenyataan. Namun, ada kekangannya.
Bagaimana ia berfungsi?
Transformer padat (dense transformer) seperti Llama 3.2 menggunakan 100 peratus parameternya untuk setiap token. Jika anda meningkatkan skala daripada 7B kepada 70B, anda menggandakan kedua-dua memori dan komputasi sebanyak 10x.
MoE membahagikan kedua-dua perkara ini. Model tersebut menyimpan lebih banyak parameter (kos memori lebih tinggi) tetapi hanya menggunakan sebahagian kecil daripadanya untuk setiap token (kos komputasi lebih rendah).
Imbangan (The Trade-off):
• Dense 7B: 7B jumlah parameter | 7B aktif | 7B komputasi | 14 GB memori • Dense 70B: 70B jumlah parameter | 70B aktif | 70B komputasi | 140 GB memori • MoE 45B: 45B jumlah parameter | ~13B aktif | ~14B komputasi | ~90 GB memori
Kekangannya: Anda masih perlu membayar kos memori bagi model yang besar. Anda tidak boleh menjalankan Mixtral pada satu GPU 24 GB sahaja. Anda memerlukan VRAM yang mencukupi untuk menyimpan semua expert, walaupun yang tidak digunakan.
Seni Bina (The Architecture):
Dalam MoE jarang (sparse MoE), Feed-Forward Network (FFN) standard digantikan dengan beberapa FFN "expert" dan satu penghala (router) yang dipelajari.
- Penghala mengambil satu token.
- Ia memberikan skor kepada setiap expert.
- Ia memilih top-k expert (untuk Mixtral, k=2).
- Ia menjalankan token tersebut melalui expert tersebut sahaja.
- Ia menggabungkan keputusan tersebut.
Penghala tersebut bukanlah penjadual manual. Ia adalah lapisan yang dipelajari. Ia belajar untuk menghantar token matematik ke satu expert dan token kod ke expert yang lain.
Cabaran Latihan (The Training Challenge):
Risiko terbesar ialah keruntuhan penghala (router collapse). Tanpa bantuan, penghala mungkin menghantar setiap token ke dua expert yang sama. Expert tersebut menjadi semakin baik, jadi penghala menghantar lebih banyak trafik kepada mereka. Expert yang lain pula menjadi tidak berguna.
Jurutera menggunakan "auxiliary load-balancing loss" untuk membetulkan perkara ini. Ia mengenakan penalti kepada model jika ia tidak menggunakan semua expert secara seimbang.
Bila perlu mengelakkan MoE:
• Anda memerlukan kependaman (latency) yang konsisten: MoE mempunyai varians yang lebih tinggi dalam masa tindak balas. • Anda mempunyai VRAM yang terhad: Jika anda hanya mempunyai satu GPU di bawah 48 GB, kekal dengan model padat (dense). • Anda sedang membina model kecil: Jika model anda di bawah 3B parameter, beban tambahan (overhead) adalah terlalu tinggi. • Anda memerlukan infrastruktur yang ringkas: MoE memerlukan keperarian pakar (expert parallelism) yang kompleks dan kernel tersuai.
MoE adalah yang terbaik apabila anda menyasarkan garis dasar (baseline) padat di atas 30B parameter dan mempunyai memori untuk menyokongnya.
Mixture of Experts (MoE): Apa yang sebenarnya berlaku di sebalik tabir dan bila ia memberikan hasil
Dalam dunia kecerdasan buatan (AI) hari ini, kita sedang menyaksikan perlumbaan untuk membina Model Bahasa Besar (LLM) yang lebih besar dan lebih berkuasa. Namun, terdapat satu cabaran besar: semakin besar model tersebut, semakin banyak kuasa pengkomputeran yang diperlukan untuk melatih dan menjalankannya.
Di sinilah Mixture of Experts (MoE) memainkan peranan penting. MoE adalah seni bina yang membolehkan model mempunyai jumlah parameter yang sangat besar, tetapi hanya menggunakan sebahagian kecil daripadanya untuk setiap tugasan. Ini memberikan keseimbangan antara keupayaan model yang tinggi dan kecekapan pengkomputeran.
Apakah itu Mixture of Experts (MoE)?
Untuk memahami MoE, kita perlu membandingkannya dengan model tradisional yang dikenali sebagai Model Padat (Dense Model).
Model Padat (Dense Model)
Dalam model padat, setiap kali model memproses satu token (seperti satu perkataan atau sebahagian daripadanya), semua parameter dalam model tersebut digunakan. Jika anda mempunyai model dengan 100 bilion parameter, setiap satu daripada 100 bilion parameter itu akan terlibat dalam setiap pengiraan. Ini sangat berkuasa, tetapi ia juga sangat mahal dari segi kos pengkomputeran (FLOPs).
Model Mixture of Experts (MoE)
Model MoE pula menggunakan pendekatan "bahagi dan perintah". Daripada mempunyai satu rangkaian saraf yang besar dan padat, model MoE membahagikan parameter tersebut kepada banyak kumpulan kecil yang dipanggil "Experts" (Pakar).
Apabila satu token diproses, model tidak menggunakan semua pakar tersebut. Sebaliknya, ia hanya memilih beberapa pakar yang paling relevan untuk mengendalikan token tersebut.
Bagaimana ia berfungsi? (Di Sebalik Tabir)
Seni bina MoE terdiri daripada dua komponen utama:
- Experts (Pakar): Ini adalah rangkaian saraf kecil (biasanya lapisan feed-forward) yang dilatih untuk mempelajari corak atau pengetahuan tertentu.
- Gating Network (Rangkaian Pengawal/Router): Ini adalah "otak" yang mengawal aliran maklumat. Tugasnya adalah untuk melihat input yang masuk dan memutuskan pakar mana yang paling sesuai untuk memprosesnya.
Proses Aliran Kerja:
- Input Masuk: Token masuk ke dalam model.
- Routing (Laluan): Gating Network menerima token tersebut dan mengira skor untuk setiap pakar.
- Pemilihan Pakar: Berdasarkan skor tersebut, model memilih $k$ pakar terbaik (contohnya, hanya 2 daripada 16 pakar).
- Pemprosesan: Hanya pakar yang terpilih akan melakukan pengiraan untuk token tersebut.
- Gabungan: Hasil daripada pakar-pakar tersebut digabungkan semula untuk menghasilkan output akhir.
Mengapa MoE Sangat Berkuasa?
Kelebihan utama MoE adalah kecekapan skala (scaling efficiency).
- Parameter Besar, Pengiraan Kecil: Anda boleh mempunyai model dengan 1 trilion parameter, tetapi kos pengiraan (FLOPs) bagi setiap token mungkin hanya setara dengan model yang mempunyai 50 bilion parameter.
- Pengkhususan: Setiap pakar boleh menjadi "pakar" dalam bidang tertentu (contohnya, satu pakar mungkin sangat baik dalam matematik, manakala yang lain mahir dalam tatabahasa bahasa Inggeris).
Cabaran dalam MoE
Walaupun ia kedengaran hebat, MoE tidak datang tanpa masalah:
- Penggunaan Memori (VRAM): Walaupun pengiraan (compute) adalah rendah, anda masih perlu menyimpan semua parameter pakar dalam memori (VRAM). Ini bermakna model MoE memerlukan perkakasan yang mempunyai kapasiti memori yang sangat besar.
- Kestabilan Latihan: Melatih Gating Network adalah sukar. Jika ia tidak dilatih dengan betul, ia mungkin hanya akan menghantar semua data kepada satu atau dua pakar sahaja, menyebabkan pakar lain tidak belajar apa-apa (masalah expert collapse).
- Komunikasi Antara GPU: Dalam sistem teragih, memindahkan data antara pakar yang mungkin berada di GPU yang berbeza boleh menyebabkan kelewatan (latency).
Kesimpulan: Bila ia Berbaloi?
MoE adalah pilihan terbaik apabila anda ingin membina model yang sangat luas pengetahuannya tetapi mempunyai kekangan dalam bajet pengkomputeran untuk setiap inferens. Ia adalah kunci kepada model seperti GPT-4 dan Mixtral yang menunjukkan prestasi luar biasa dengan kecekapan yang tinggi.
Optional learning community: https://t.me/GyaanSetuAi