MoEの形式の流れ
2026/02/26現在でMoEとひと言で言ってもだいぶ考え方が変わってきてるので備忘録的にまとめるmorisoba65536.icon
ベーシックな構造のMoE
それぞれ別々のモデルにできるような(ここではニュアンスの話、比喩)複数の専門家モデルを用意してルーターが関連しそうな専門家を複数呼び出す
それぞれの専門家モデルも一般常識的な知識(一般会話の文法など)を個別に持つ
利点は
構造がシンプル
欠点は
学習が偏りやすい
最初に「the」とかの頻出情報を扱えるようになったモデルに集中して過労死化しやすい
同じような情報を複数のモデルが持つので無駄なレイヤーが増えやすく肥大化しやすい
Sparse MoE
世代的には第二世代くらいのポジション
上記のベーシックな構造のMoEのうち、「文法とかの基本的な知識を持ったレイヤー」を共通レイヤーにしてその他のレイヤーを専門家としてトレーニングする。
self-attention layer等の注意機構と言った「基本的な文字の読み方(右から左に読むとかそういうレベル)」「腕の動かし方」と言った基本動作的な注意をする場所は共通で持たせる
「知識」レベルの事をFNNと呼ばれるレイヤーに持たせてこれを分割する
利点は
ベーシックな構造のMoEよりはレイヤーを減らして知識だけを増やしやすくなる
欠点は
学習はやっぱり偏りやすい
「基本操作」レベルの事は共通化できたがやはりまだ知識レベルの重複が多い
例えるならすべてのモデルが「品行方正なてにをは」をいちいち覚えてるような感じ
Shared Expert型MoE
第三世代(現在の主流)
「必ず呼び出される基本知識を覚えた専門家」を一つ用意し、その他の専門家と併せて呼び出す。
こうする事で、「流暢にしゃべれる基礎知識」を持つモデルを一つに絞ってほかを完全な専門知識に特化しやすくなる
周りの専門家が「専門用語と数式のカタコトしか喋らない」みたいな状態になっても通訳できる「汎用知識の専門家」を合わせて連れて行くことで専門知識を引き出しながら汎用知識を持つ専門家を一人にできる(≒他の専門家を重複した知識のない特化型に出来る)
といったイメージmorisoba65536.icon
利点は
パラメータ毎に重複する知識を最小限に出来るのでパラメータ毎の知識密度を高くできる
要するに同じパラメーターでより高知識にしやすい
学習に工夫は必要だが従来のモデルよりは学習の偏りが少ない
欠点は
アーキテクチャが非常に複雑
特に実際にGPUへの転送コストが爆発しないようにするのはかなり職人芸的
理屈上は学習偏りがマシになるとは言えルーティングもとても複雑
ルーター自体は巨大化できない(そこがボトルネック化する)ので、ルーターの学習アルゴリズムでの職人芸が必要となる
構造そのものはクリーンで偏りにくい(Shared Expertにtheとかの頻出は食わせるので)が、「これどの専門知識か?」の判定に職人芸的なところがまだ残る。
アクティブパラメータの極端に小さくなるモデル(主にアクティブ3B付近より小さいもの)ではSelf-Attentionの制御能力に不足が出て来る場面がある
具体的には状況説明の時に含めた特定単語に引っ張られたような返しをしてくる事が増えやすい