project
メモリレイヤー - Meta Open Source: 計算能力を増強せずに大規模モデルのパラメータを増加させる方法
Metaによって導入されたメモリ層は、浮動小数点演算(FLOPs)の数を増やすことなく、学習可能なキーバリュー検索メカニズムを使用してモデルにパラメータを追加する方法です。これらは、計算負荷の高いフィードフォワード層を疎な活性化で補完し、...
メモリ層とは何ですか?
Metaによって導入されたメモリレイヤーは、浮動小数点演算(FLOPs)を増やすことなく、学習可能なキーバリュー検索メカニズムを使用してモデルにパラメータを追加します。スパース活性化に基づくメモリレイヤーは、計算負荷の高いフィードフォワードレイヤーを補完し、情報を低コストで保存および検索するための専用容量を提供します。メモリレイヤーは、大規模な言語モデル、特に事実処理タスクの処理において、モデルのパフォーマンスを大幅に向上させるなど、非常に実用的であることが実証されています。Transformerレイヤーで1つ以上のフィードフォワードネットワーク(FFN)をメモリレイヤーに置き換えることで、計算コストを大幅に増加させることなく、モデルの事実精度と知識獲得能力を大幅に向上させることができます。
メモリ層の主な機能
- パラメータ展開これは、計算負荷(つまり、FLOPs)を増やすことなく、モデルにパラメータを追加できるため、モデルの容量を拡張できます。
- 情報の保存と検索情報の保存と取得のための専用メカニズムを提供する。
- サプリメントの密層計算負荷の高いフィードフォワード層を補完する形で、疎な活性化パターンに基づいた情報保存と検索のための専用容量を提供する。
- 事実の正確性を向上させる事実を扱うタスクにおいては、言語モデルの精度を大幅に向上させ、訓練データから事実をより正確に記憶し、利用することを可能にする。
- パフォーマンスの向上: 計算およびパラメータマッチングの条件下で、従来の密なモデルやハイブリッドエキスパートモデルよりも優れた性能を発揮できるようにする。
メモリ層の技術的原理
- キーバリュー検索メカニズムこれは、キーと値の両方が埋め込みベクトルとしてエンコードされる、シンプルなキーバリュー検索メカニズムに基づいて動作します。クエリベクトルq、キーのセットK、および値のセットVが与えられると、出力は値のソフトな組み合わせとなり、重みはqと対応するキーとの類似性によって決定されます。
- スパース活性化従来の注意機構とは異なり、メモリ層におけるキーと値は活性化値ではなく、学習可能なパラメータです。キーと値の数は通常多いため、メモリ層では疎なルックアップと更新が必要となり、クエリに最も類似した上位k個のキーとその対応する値のみが出力計算に参加します。
- プロダクトキー検索大規模メモリにおけるクエリキー取得のボトルネックに対処するため、メモリレイヤーは積量子化キーを採用しており、2つのより小さなキーセットを使用してキーセット全体の上位k個のルックアップを効率的に実行します。
- 並列化の実装メモリ層は高いメモリ要件を持つため、大規模なスケーリングは、組み込みのルックアップと集約を複数のGPUに並列化することによって実現されます。
- 共有メモリパラメータ共有メモリパラメータプールを使用することで、パラメータの数を増やすことなく、複数のメモリ層に基づいてパフォーマンスを向上させることができます。
メモリレイヤーのプロジェクトアドレス
- プロジェクト公式サイト:https://ai.meta.com/research/publications/memory-layers-at-scale/
- GitHubリポジトリ:https://github.com/facebookresearch/memory
- arXiv技術論文:https://arxiv.org/pdf/2412.09764
メモリ層の応用シナリオ
- 質疑応答システム質問応答システムでは、これはモデルが大量の事実情報を記憶し、正確な回答を提供するために役立ちます。
- 言語モデル自然言語処理において、言語モデルの記憶容量を向上させることで、長文や複雑な対話の処理能力が向上する。
- 推薦システムレコメンデーションシステムの目的は、ユーザーの過去の行動履歴や嗜好を保存し、よりパーソナライズされたレコメンデーションを提供することです。
- 知識グラフ知識グラフアプリケーションでは、エンティティ間の関係が保存および取得され、複雑なクエリや推論をサポートします。
- 対話システム対話システムにおいては、これはモデルが対話履歴を記憶するのに役立ち、対話をより一貫性があり自然なものにする。