メモリとモデル

MoEと密モデル:総パラメータ数と有効パラメータ数

モデルの説明には全体35B、活性3Bといった数字が一緒に表示されます。ダウンロードする際には大きなモデルですが、実行する際には小さなモデルという意味でしょうか?半分は正しいものの、この話だけを信じて機器を選べばメモリ不足になる可能性があります。保存する規模と毎回計算する規模を別々に確認します。

Denseはほとんどの重みを使用します

ディープ型モデルはトークンを生成する際に、ほとんどの重みを通過します。同じシリーズかつ条件であれば、モデルが大きくなるにつれて、収容可能な空間と処理すべきタスクも一緒に増加する方向で理解できます。もちろん実際の速度は量子化および実行プログラムの影響を受ける場合もあります。

MoEは複数の専門家ブロックに対してトークンごとに一部を選ぶ構造です。ただし、各専門家が国語や数学のように人間が決めた一つの科目を担当するという意味ではありません。学習されたルーターが計算経路を決定する構造です。

MoEルーティング図で、入力トークンに一致する一部の専門家のみを選出して通過させる。
MoEは、すべての専門家をメモリに読み込むものの、各トークンを計算する際には選ばれた一部の専門家のみを使用します。

これら二つの数字は異なる質問への答えです

総パラメータは専門家と共有部分の合計です。活性パラメータは、1トークンあたり実際に使用される部分の規模です。前者はファイルとメモリ、後者はトークンあたりの計算負担を理解する手がかりになります。

活性部分だけを保存すればよいのではないかと考えられるかもしれません。しかし、次のトークンでは別の専門家が選択される可能性があります。全重みをアクセス可能な場所に保持しなければなりません。一部を遅い保存位置に置いても、その取得にかかる時間も考慮しなければなりません。

色の異なるトークンがルーターを介してそれぞれが選んだ専門家2つのへ分けられて入る図
ルーターはトークンごとに関連性の高い少数の専門家を選択しますが、選択が集中すると特定の専門家がボトルネックになる可能性があります。

なぜ数字が大きても速くできるのか

トークンあたりの読み取りおよび計算量が小さく、ランタイムでの専門処理が効率的である場合、総規模が小さいDenseよりもより速く生成できる可能性があります。そのため、モデル名のBの数字だけによって速度順位を決めるのは正しくない場合があります。

これは常に成立する法則とは限りません。ルーティングおよび非規則的なメモリアクセスコストがあり、デバイスが計算をどれほど効率的に結合できるかにも影響を与えます。同じ量子化と処理において、プリフィル・デコードの結果を直接比較するステップが残っています。

全体の専門家グループと、実際に1トークンの計算で活性化される一部の専門家を比較した図
計算量は活性パラメータに近いが、メモリ読み込みには全体の重みが必要であるため、両方を別々に見なければならない。

大きなトータルサイズが回答の勝者を決さない

専門家が多いからといって、ドキュメントの要約やコード修正において常に有利だとは断言できません。学習データ、モデル設計、および指示に従う能力が共に作用します。全体や活性値のどちらかを知能スコアのように読み取らないでください。

あるモデルは遅いにもかかわらず誤りが少なく、他のモデルは少し遅くても修正が少ない場合があります。可能な限り実際に使用する質問で結果を確認した上で、速度を比較してください。モデルを選択した後、そのモデルがスムーズに動作する機器を検索する順序になります。

メモリは十分に確保されているが、遅ければ

大きなユニファイドメモリで搭載問題を解決しても、帯域幅や実行パスが生成速度を制限する可能性があります。逆に高速なGPUであっても、重みがVRAMを超過すれば、オフロードでの利点を失う可能性があります。容量と速度は別々に通過しなければなりません。

MoEという名前だけを購入の理由として選ぶのではなく、望むモデルの全ファイル・キャッシュ・実際の生成結果を一緒に確認してください。数字の2つを理解する目的は、複雑な仕様を暗記することではなく、小さな活性値だけを信じ、誤った設備を選ばないことです。