ホームページ > テクノロジー周辺機器 > AI > DeepSeek-V3は1:マルチヘッドの潜在的な注意を説明しました

DeepSeek-V3は1:マルチヘッドの潜在的な注意を説明しました

PHPz
リリース: 2025-02-26 03:00:17
オリジナル
632 人が閲覧しました

deepseek-v3詳細な説明記事のシリーズ:雄牛の潜在的な注意メカニズム

この記事は、「Deepseek-V3の詳細な説明」シリーズの最初の記事です。

この一連の記事では、2つの主なトピックについて説明します。

    Deepseek-V3の主な建築革新には、MLA(Bulnerの潜在的な注意)[3]、Deepseekmoe [4]、補助損失なしの負荷分散[5]、およびマルチタグ付き予測トレーニングが含まれます。
  • deepseek-V3トレーニング前、微調整、補強学習アライメントフェーズを含むトレーニングプロセス。
  • この記事は、主にMulti-Head潜在的注意メカニズム(MLA)
に焦点を当てています。これは、もともとDeepSeek-V2の開発で提案され、DeepSeek-V3に適用されました。

カタログ:

背景:標準MHAから始めて、推論段階でキー価値キャッシュが必要な理由、MQAとGQAがそれを最適化しようとする方法、ロープの仕組みなどを説明します。
  • bules潜在的な注意メカニズム(MLA):その動機を含むMLAへの詳細な紹介、ロープとパフォーマンスを切り離す必要がある理由。
  • 参照。
  • 背景
  • MLAをよりよく理解し、この記事を1対1にするために、MLAの詳細を掘り下げる前に、このセクションでいくつかの関連する概念を確認します。
デコーダートランスのMHA

自己回帰テキスト生成の推論を高速化するためにMLAが開発されているため、このコンテキストで説明されているMHAはデコーダーのみの変圧器用です。

次の図は、デコード用の3つの変圧器アーキテクチャを比較します。ここで、(a)元の「注意が必要です」という論文で提案されているエンコーダーとデコーダーが表示されます。次に、[6]によってデコーダー部分が簡素化され、(b)に示されているデコーダーのみの変圧器モデルが得られます。これは後にGPT [8]などの多くの生成モデルで使用されました。

今日、大規模な言語モデルは、(c)に示されている構造をより安定したトレーニングのためにより頻繁に選択し、出力ではなく入力に正規化を適用し、layernormをRMS Normにアップグレードします。これは、この記事で説明するベースラインアーキテクチャとして機能します。

この文脈では、以下の図に示すように、MHAの計算は[6]のプロセスに大きく従います。

n_h

注意ヘッドがあり、各注意ヘッドの寸法が

d_hDeepSeek-V3 Explained 1: Multi-head Latent Attentionとして表現されているため、接続された寸法は(

h_n

DeepSeek-V3 Explained 1: Multi-head Latent Attention d_h)。 lレイヤーを持つモデルの場合、そのレイヤーのt番目のタグの入力を h_t dの場合、h_t

の寸法をdから(h_n d_h)から(dから( )にマッピングする必要があります。 より正式には、([3]からのeq):があります

DeepSeek-V3 Explained 1: Multi-head Latent Attentionここで、w^qw^kw^vは線形マッピング行列です:

マッピング後、

q_tDeepSeek-V3 Explained 1: Multi-head Latent Attentionk_t、およびv_tn_htに分割して、比例ドット生成物を計算します ここで、

w^o

は、寸法を逆にマッピングするために使用される別の投影マトリックスです(DeepSeek-V3 Explained 1: Multi-head Latent Attentionh_n d_h)d 上記のeqn。(1)から(8)の説明は、単一のマーカーのみであることに注意してください。推論プロセス中に、新しく生成されたマークアップごとにこのプロセスを繰り返す必要があります。これには、多くの繰り返し計算が含まれます。これは、Key-Valueキャッシングと呼ばれる手法につながります。

キー値キャッシュ

名前が示すように、キーと値のキャッシングは、各デコードステップでそれらを再計算するのではなく、以前のキーと値をキャッシュおよび再利用することにより、自己網目プロセスをスピードアップするように設計された手法です。 DeepSeek-V3 Explained 1: Multi-head Latent Attention

トレーニング中に入力シーケンス全体を並列で処理する必要があるため、KVキャッシュは通常、推論フェーズでのみ使用されることに注意してください。

KVキャッシュは通常、ローリングバッファーとして実装されます。各デコードステップでは、新しいクエリQのみが計算され、新しいQと再利用KとVを使用して注意を計算するために、キャッシュに保存されているkとVが再利用されます。同時に、新しいタグ付きKとVもキャッシュに追加され、後で使用されます。

ただし、キーと値のキャッシュは通常

>バッチサイズ×シーケンス長×隠しサイズ×ヘッドカウント×これを大きくすると異なるため、キーと値のキャッシュによってもたらされる加速度はメモリの犠牲を払っています。バッチサイズまたはシーケンスが長くなると、メモリボトルネックを引き起こす可能性があります。

これは、この制限に対処するために設計された2つの手法にさらにつながります:マルチクエリの注意とグループクエリの注意。

多安定の注意(MQA)vs.グループクエリの注意(GQA)

次の図は、元のMHA、グループ化されたクエリの注意(GQA)[10]およびマルチクエリの注意(MQA)[9]の比較を示しています。

MQAの基本的なアイデアは、すべてのクエリヘッダーで単一キーとシングルバリューヘッダーを共有することです。これにより、メモリの使用量を大幅に削減できますが、注意の精度にも影響します。

GQAは、MHAとMQAの間の補間法と見なすことができます。ここでは、すべてのクエリではなく、1つのキーとバリューヘッダーのみが1つのクエリヘッダーセットのみで共有されます。しかし、これはまだMHAよりも悪い結果につながります。

後の章では、MLAがメモリ効率とモデリングの精度のバランスをとる方法を確認します。

ロープ(回転位置が埋め込まれている)

私たちが言及する必要がある最後の背景は、ロープ[11]です。これは、サイン関数を使用してマルチヘッド注意のクエリとキーベクトルを回転させることにより、注意メカニズムに位置情報を直接エンコードします。

より具体的には、ロープは各タグのクエリとキーベクトルに位置依存回転行列

を適用し、その基底として正弦材とコサイン関数を使用しますが、回転を実装するためのユニークな方法でそれらを適用します。 それが位置に依存するものを理解するために、4つの要素、つまり(x_1、x_2、x_3、x_4)のみのおもちゃ埋め込みベクターを考慮してください。

ロープを塗るには、まず連続寸法をペアにグループ化します:

(x_1、x_2) - >
    (x_3、x_4) - >
  • 次に、回転行列を適用して各ペアを回転させます。
  • ここで、θ=θ(p)=p⋅θ_0、θ_0は基本周波数
です。 4Dトイの例では、これは(x_1、x_2)がθ_0を回転させることを意味し、(x_3、x_4)は2⋅θ_0を回転させます。

これが、この回転マトリックス

位置関連

と呼ばれる理由です:各位置(または各ペア)で、回転角が位置によって決定される別の回転マトリックスを適用します。 DeepSeek-V3 Explained 1: Multi-head Latent Attention ロープは、長いシーケンスをエンコードする効率のために現代の大規模な言語モデルで広く使用されていますが、上記の式からわかるように、QとKの両方に位置的感度があり、これらの側面では互換性がありません。 MLAで。

bulesの潜在的な注意メカニズム

最後に、MLAセクションについて説明し続けることができます。このセクションでは、まずMLAの高度なアイデアについて詳しく説明し、次にロープの変更が必要な理由に飛び込みます。最後に、詳細なアルゴリズムとMLAのパフォーマンスも紹介します。

MLA:高度な思考

MLAの基本的な考え方は、注意入力を圧縮することです

h_t

寸法が

d_c

である低次元の潜在ベクトルに、ここで

d_c h_n

d_h)。後で、注意を計算する必要がある場合、この潜在的なベクトルを高次元の空間に戻してキーと値を復元することができます。したがって、潜在的なベクトルのみを保存する必要があるため、メモリの使用量が大幅に削減されます。 このプロセスは、次の方程式でより正式に記述できます。ここで、c^{kv} _tは潜在的なベクトルであり、w^{dkv} h_t の寸法は(h_n ・>

d_h

)からマッピングされます。 「圧縮を意味し、 w^{uk}andw^{uv}はどちらも共有潜在性ベクトルを高次元空間に戻す上部投影行列です。 同様に、クエリを潜在的な低次元ベクトルにマップしてから、元の高次元空間に戻すことができます。

DeepSeek-V3 Explained 1: Multi-head Latent Attention###なぜロープを切り離す必要があるのですか

前述のように、ロープは、長いシーケンスを処理するための生成モデルをトレーニングするための一般的な選択肢です。上記のMLAポリシーを直接適用すると、これはロープと互換性がありません。

これをより明確に見るために、eqnを使用して注意を計算したときに何が起こるかを検討します。マトリックス

w^q

およびw^{uk}は中央に表示され、それらの組み合わせはd_cからdから単一のものに相当します。マッピングディメンション 元の論文[3]で、著者はそれを w^{uk}と説明しています。キャッシュにw^{uk}を保存する必要はありません。これにより、メモリの使用量がさらに削減されます。

ただし、図(4)の回転マトリックスを考慮した場合は、これはそうではありません。なぜなら、ロープは

w^{uk}の左に回転行列を適用し、この回転マトリックスは最終的にはw^q w^{uk}の間に配置されています。 バックグラウンドセクションで説明したように、この回転マトリックスは位置に依存します。つまり、各位置の回転マトリックスは異なります。したがって、w^{uk} **

w^q ********************で吸収できません。 ****************************************長くw^q **で吸収されます。 この競合を解決するために、著者は、追加のクエリベクトルと共有キーベクトルを導入し、これらの追加ベクトルをローププロセスでのみ使用することにより、「分離ロープ」と呼ばれるものを提案しました。同時に、元のキーを回転マトリックスからある程度隔離します。

MLAプロセス全体を次のように要約することができます(方程式数は[3]の付録Cから再利用されます): ここで、

eqn(37)から(40)クエリタグの処理方法を説明します。 eqn(41)と(42)。 eqn(43)と(44)は、ロープに追加の共有キーを使用する方法を説明しています。

eqn。

このプロセスでは、青い変数をボックスでキャッシュするだけが必要です。このプロセスは、次のフローチャートをより明確に説明できます。 DeepSeek-V3 Explained 1: Multi-head Latent Attention

### MLAのパフォーマンス
  • 次の表は、KVキャッシュ(タグごと)に必要な要素の数と、MHA、GQA、MQA、MLAのモデリング機能を比較しています。
  • 興味深いことに、MLAのモデリング機能は元のMHAのモデリング能力を上回っています。
  • DeepSeek-V3 Explained 1: Multi-head Latent Attentionより具体的には、次の表は、7BモデルでのMHA、GQA、およびMQAのパフォーマンスを示しています。MHAはMQAおよびGQAよりもパフォーマンスが大幅に向上しています。

    DeepSeek-V3 Explained 1: Multi-head Latent Attention[3]の著者もMHAとMLAを分析し、結果を以下の表にまとめています。MLAは全体的により良い結果を達成しました。

    DeepSeek-V3 Explained 1: Multi-head Latent Attention参照

    • [1] deepseek
    • [2] Deepseek-V3テクニカルレポート
    • [3] DeepSeek-V2:強力で費用対効果の高いハイブリッド専門家言語モデル
    • [4] deepseekmoe:ハイブリッド専門家言語モデルの最終専門家の専門化に向けて
    • [5]ハイブリッドエキスパートモデルのためのアシストの損失負荷負荷バランス戦略
    • [6]注意が必要なのは
    • です
    • [7]長いシーケンスを要約することにより、ウィキペディアを生成します
    • [8]生成前のトレーニングを通じて言語の理解を改善します
    • [9]高速トランスデコード:書き込みヘッドは十分です
    • [10] GQA:マルチヘッドチェックポイントから一般化されたマルチクエリトランスモデルをトレーニング
    • [11] Roformer:回転位置が埋め込まれた強化された変圧器

以上がDeepSeek-V3は1:マルチヘッドの潜在的な注意を説明しましたの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート