ニュース

3.8B パラメーターのみが有効になり、パフォーマンスは同じ 7B モデルに匹敵します。Microsoft のトレーニング微調整を使用できます

2024-07-18

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

  • クレシーはアオフェイ寺院から来ています
    パブリックアカウント QbitAI

パラメータの 60% のみをアクティブにする必要があります、完全にアクティブ化された高密度モデルと同等のパフォーマンスを達成できます。

Microsoft Research Asia の新しい調査では、このモデルが実装されています完全にまばらなアクティベーション、推論のコストを大幅に削減します。

また、一からトレーニングする場合でも、トレーニングを継続する場合でも、微調整する場合でも、応用範囲が広く、効果的なサポートを提供できます。



メソッドは次のように呼ばれますQスパース、ニューロン レベルでモデルのスパース性を実現し、同じ推論オーバーヘッドの下で他の方法よりも粒度が高く、パフォーマンスとスパース率の両方が優れています。

名前の Q は量子化を指します。つまり、通常のモデルに加えて、定量化手法との互換性、さまざまな定量化手法のモデルに適しています。

著者はさらに、Q-Sparse をモデル定量化技術と組み合わせれば、さらなるコスト削減と効率向上が達成できると述べています。

さらに、チームは Q-Sparse の研究中に、パラメーター サイズ、スパース率、モデルのパフォーマンスの関係についても徹底的に調査し、次のことを発見しました。モデル推論最適化のための「スケーリング則」

一部のネチズンは、このテクノロジーは確かに優れており、ReLUよりも優れていると信じています。



また、(AMD の) ROCm が Nvidia よりも早くこのテクノロジをサポートできれば素晴らしいと述べて、希望モードをオンにした人もいます。



Top-K 関数を使用してスパース化を実装する

Q-Sparse によって実行されるコア操作は次のとおりです。Top-K スパース化関数を入力テンソルに適用する

具体的には、Transformer アーキテクチャは、注目層とフィードフォワード層の両方での投影に nn.Linear 線形層 (行列乗算) を使用します。これは、Y=X・W^T として表すことができます。 (X は入力テンソル、W はその重みを表し、Y は出力テンソルです)

Q-Sparse では、入力活性化テンソル X に対して、その絶対値 |X| が最初に計算され、ソートされます。その中で最大の絶対値を持つ K 個の要素を見つけます

ここでの K は、スパース化の程度を決定する事前設定されたハイパーパラメータです。

次に、Q-Sparse は、X と同じ形状のバイナリ マスク テンソル M を作成します。系列内で最大の絶対値を持つ K 要素に対応する位置は | です。

次に、入力テンソル X とマスク テンソル M に対してアダマール積 (要素ごとの乗算) 演算を実行して、スパース テンソルを取得します。X_スパース

順伝播プロセス中、スパース テンソル X_sparse は元の入力テンソル X を置き換えて、後続の計算 (行列乗算など) に参加します。

X_sparse のほとんどの要素はゼロに設定されているため、計算量とメモリ帯域幅の要件を大幅に削減できます。



バックプロパゲーション中に、Q-Sparse は以下を使用します。パススルー推定器(Straight-Through Estimator、STE) を使用して、Top-K 関数の勾配を計算します。

従来のトレーニング方法では、通常、ネットワーク パラメーターの損失関数の勾配を計算し、勾配降下法を使用してパラメーターを更新して損失を最小限に抑える必要があります。

ただし、ネットワーク内に量子化や Top-K などの微分不可能な演算がある場合、これらの演算の入力に対する出力勾配がほとんどの点で 0 になるため、勾配の計算で問題が発生し、結果として勾配の計算が不可能になります。勾配を効果的に伝播します。

STE は、スパース化の前に勾配をテンソルに直接渡すことにより、勾配消失の問題を回避します。

一般的なバックプロパゲーションでは、x に対する損失関数 L の勾配は ∂L/∂x=∂L/∂y⋅∂y/∂x となりますが、微分可能ではないため直接計算することはできません。

STE の解決策は、スパース テンソル y の損失関数の勾配のみを計算し、それを元のテンソル x に直接コピーすることです。つまり、∂L/∂y を ∂L/∂x の推定値として直接使用します。


△STEあり/なしの勾配比較

フィードフォワード層の場合、Q-Sparse は次を使用します。二乗 ReLU 関数従来の ReLU 活性化関数の代わりに、二乗演算を使用すると、活性化のスパース性をさらに向上させることができます (⊙ はアダマール積を表します)。



さらに、量子化モデルに適応するために、Q-Sparse は、Top-K スパース性を適用する前に、スパース性操作が量子化表現と互換性があることを確認する前に、まず入力テンソルを量子化します。その関数は次のように表されます。



このうちεは分母がゼロにならないようにするための小さな定数です。

特に、1 ビットの量子化された重みの場合、Q-Sparse は次の量子化関数を使用します。ここで、α は重みテンソル W の平均絶対値です。



60% の活性化パラメーターで同じ効果が得られます

比較実験では、スパース率とモデルのパフォーマンスの点で、Q-Sparse が以前の ReLU 手法よりも大幅に優れていることが示されています。



Q-Sparse の具体的な効果について、筆者はスクラッチ トレーニング、継続トレーニング、微調整の 3 つのタスクでパフォーマンスを評価しました。

ゼロからトレーニングする実験で使用されたモデルは Llama です。結果は、700M および 7B モデルで、70% のトップ K (つまり、全体のスパース率の 40%) を使用する Q-Sparse が、密モデルと同等のトレーニング損失を達成できることを示しています。ベースライン。



トレーニングを続ける目的は高密度モデルをスパース化することであり、ここでの実験対象はミストラル 7B です。

その結果、活性化パラメーターが 2.9B および 3.8B の場合、ARC、MMLU、およびその他のデータセットのモデルのスコアは大幅に低下しませんでした。



存在する微調整実験では、Qwen-7B モデルと Mistral-7B モデルの両方で、Q-Sparse は継続的なトレーニングと同様の結果を示し、活性化パラメーターの約 60% を使用して密モデルに非常に近いパフォーマンスを達成しました。



これらの結果は、同じパフォーマンスでも、高密度モデルと比較して、スパースアクティベーションモデルは、推論中のアクティベーションパラメータを大幅に削減できるにより、消費される FLOPS 数が削減されます。

定量的モデルの場合、チームは自社開発した BitNet b1.58 モデルに Q-Sparse を適用し、複数のデータセットでトレーニングと評価を実施しました。

700M と 7B の両方のスケールで、Q-Sparse を使用した量子化モデルの収束速度と最終損失関数値は、Q-Sparse を使用しない量子化モデル (BitNet b1.58) と同等であることがわかります。

これは、Q-Sparse を示しています。定量モデルにシームレスに統合可能モデルのトレーニングと収束に大きな影響を与えることなく。

これによると、著者はQ-Sparseと量子化技術を組み合わせることで、大規模な言語モデルの推論段階の効率をさらに向上させることができると考えています。



推論最適化のための新しい「スケーリング則」を発見する

スパース アクティベーションを使用した場合のこれらのモデルのパフォーマンスを評価することに加えて、著者はモデルのパフォーマンス、スケール、スパース率の関係も調査し、いくつかの新しい発見をしました。

スパース アクティベーション モデルのパフォーマンス スケーリング則: 著者は、密モデルと同様に、スパース アクティベーション モデルのパフォーマンスもべき乗則スケーリング関係に従うことを発見しました。

具体的には、スパース率 S が与えられると、モデルが収束するときの損失関数値 L(N,S) は次の式で近似できます。



このうち、N はモデル パラメーターの数、E は無限大におけるモデルの損失を表す定数、A(S) はスパース率 S に関連するスケーリング係数です。

このスケーリング則は次のことを示しています。希薄まばらなアクティベーションモデルのパフォーマンスはモデルのサイズが大きくなるにつれて向上しますが、向上の速度は徐々に遅くなります



同時に、著者はモデルのパフォーマンスもスパース率の影響を受けることを発見しました。

パラメーターのスケールとパフォーマンスの関係に関するセクションで説明したように、A(S) はスパース率 S に関連するスケール係数であり、次の式で近似できます。



ここで、B と C は定数、β は指数関数的な減衰率を制御するパラメーターです。

この式は、スパース率 S が増加する (モデルがよりスパースになる) と、スパース率が高いとパフォーマンスが低下する、減少率は指数関数的です。



以上の知見をもとに、バジェット(推論時の浮動小数点演算)が一定の場合にモデル損失関数の値を最小化できる推論に最適なスパース率S*を導出した。

フル精度 (FP32) モデルの最適なスパーシティ率は約 45.58% ですが、低精度 (1.58 ビットなど) モデルの最適なスパーシティ率はこれより高く、約 61.25% です。



著者らは、モデルのサイズが大きくなるにつれて、疎な活性化モデルと密なモデルの間のパフォーマンスの差が徐々に縮まることに気づきました。

これはスケーリング則から説明できます。モデル サイズ N が無限大になる傾向がある場合、疎な活性化モデルの損失関数値は L(∞,S)=E になる傾向があり、一方、密なモデルの損失関数値は L になる傾向があります。 (∞,0 )=E.

これは、非常に大規模なスケールでは、疎な活性化モデルが密なモデルと同等のパフォーマンスを達成することが可能であることを意味し、大規模な疎な活性化モデルの設計とトレーニングに役立つ参考資料となります。

論文アドレス: https://arxiv.org/abs/2407.10969