大規模言語モデル (LLM)、特に生成事前トレーニング済みトランスフォーマー (GPT) モデルは、多くの複雑な言語タスクで優れたパフォーマンスを示しています。この画期的な進歩により、ユーザーのプライバシーを保護するために、これらの LLM をモバイル デバイス上でローカルに実行できる可能性が高まります。ただし、小さな LLM でもこれらのデバイスで実行するには大きすぎます。 たとえば、小型の LLaMA には 7B のパラメータがあり、FP16 バージョンのサイズは 14GB ですが、モバイル デバイスには 18GB の DRAM しかありません。したがって、スパース化、量子化、重みクラスタリングなどのトレーニング時の最適化を通じて LLM を圧縮することは、デバイス上の LLM 展開の重要なステップです。しかし、LLM のトレーニング時間の最適化は、モデルのサイズと計算リソースのオーバーヘッドのために非常にコストがかかります。重み付けクラスタリング用の SOTA アルゴリズムの 1 つである DKM は、すべての重みとすべての可能なクラスタリング オプション間の相互作用を分析する必要があるため、トレーニング時間と可変重みクラスタリングのためにコンピューティング リソースに対する需要が高くなります。 したがって、GTPQ や AWQ などの既存の LLM 圧縮技術の多くは、トレーニング後の最適化に依存しています。この論文では、研究者らは、トレーニング時間加重クラスタリングを実現するためのメモリ最適化手法と、DKM におけるその応用、つまり eDKM を提案しています。 この論文で使用されている技術には、デバイス間のテンソル オーケストレーション、重み行列の一意性とシャーディングが含まれます。研究者らは、eDKM を使用して LLaMA 7B モデルを微調整し、重み係数ごとに 3 ビットに圧縮することで、デコーダー スタックのメモリ フットプリントを約 130 倍削減し、既存の 3 ビット圧縮技術を上回るパフォーマンスを実現しました。 DKMメモリ効率の向上 図 1 に示すように、プルーニング、量子化、正規化はすべて一般的な重み最適化手法です。これらの方法は、元の重み W を最適化して、推論の待ち時間、精度、またはモデル サイズを最適化する重みを取得します。これらの技術の中で、本論文の研究者は主に重み付けクラスタリング、特に重み付けクラスタリングアルゴリズム DKM に焦点を当てています。 重みクラスタリングは、重みマトリックスがルックアップ テーブルに圧縮され、低精度のインデックスのリストがルックアップ テーブルに格納され、最新の推論アクセラレータで処理できる非線形重み離散化です。 DKM は、重み (W で示される) と中心点 (C で示される) 間の相互作用を分析することによって微分可能な重みクラスタリングを実行し、圧縮率と精度の間でトレードオフを行います。 したがって、LLM 圧縮に DKM を使用すると、高品質の結果が得られます。しかし、DKM 計算中に生成されるアテンション マップは大きく、フォワード/バックワード パスのメモリ複雑度は O(|W||C|) (つまり、図 1 のマトリックス) であり、これは LLM 圧縮にとって特に困難です。たとえば、LLaMA 7B モデルでは、4 ビット重みクラスタリングのアテンション マップを計算するためだけに、少なくとも 224 GB のメモリが必要です。 図 1: 重量最適化システムの概要。 DKM では、微分可能な重み付きクラスター化された注意グラフがシステムによって内部的に作成されます。 したがって、研究者はこのような大きなメモリ要件を処理するために CPU メモリを使用する必要があります。つまり、最初に情報を CPU メモリに保存し、必要に応じてそれを GPU にコピーし直す必要があります。ただし、これにより GPU と CPU の間で大量のトラフィックが生成され (トレーニングの速度が低下します)、膨大な CPU メモリ容量が必要になります。つまり、CPU と GPU 間のトランザクション数を減らし、トランザクションあたりのトラフィックを最小限に抑えることが重要です。これらの課題に対処するために、研究者は PyTorch に 2 つの新しいメモリ最適化手法を導入しました。
クロスデバイス テンソル オーケストレーション PyTorch は、実際のデータ レイアウトにリンクされたデータ ストアと、テンソルの形状や型などを格納するメタデータを使用してテンソルを表します。このテンソル アーキテクチャにより、PyTorch はデータ ストレージを可能な限り再利用し、メモリ使用量を効果的に削減できます。ただし、テンソルが別のデバイス (GPU から CPU など) に移動されると、データ ストレージを再利用することができなくなり、新しいテンソルを作成する必要があります。 表 1 は、PyTorch デバイス間で移動するときのテンソルのメモリ使用量を示しています。行 0 に割り当てられたテンソル x0 は、GPU 上で 4MB を消費します。 1 行目でビューが変更されると、基礎となるデータ ストアを再利用できるため (つまり、x0 と x1 は実質的に同じ)、追加の GPU メモリは必要ありません。しかし、2行目と3行目のようにx0とx1をCPUに移動すると、y0とy1はCPU上で同じデータストレージを共有できますが、CPUメモリの消費量は8MBとなり、CPUメモリの冗長性が発生し、GPUからCPUへのトラフィックが増加します。 表 1: LLM の微調整では、CPU メモリを使用して GPU のメモリ使用量をオフロードする必要がある場合があります。デバイス間のテンソル管理が不足すると、デバイス間での冗長なコピーが発生し (特に計算グラフが複雑な場合)、LLM のトレーニング時間の最適化に特に悪影響を及ぼします。たとえば、x0 と x1 は異なるビューを持つ同じテンソルですが、CPU にコピーされると、結果のテンソル y0 と y1 はデータ ストレージを共有しませんが、GPU では x0 と x1 はデータ ストレージを共有します。 この非効率性を解決するために、研究者は図 2 (b) にオーケストレーション層を配置しました。ここで、黒は実際のデータ ストレージとメタデータを表し、灰色はメタデータのみを表します。図 2 (a) は表 1 の例を示しており、x1 は x0 とデータ レイアウトを共有していますが、y0 と y1 は CPU 上で重複したデータ ストレージを持っています。図 2 (b) に示すように、研究者はオーケストレーション層を挿入することでこの冗長性を回避し、GPU から CPU へのトラフィックを削減しました。研究者らは、PyTorch の save-tensor-hook を使用してこのようなスワッピング スキームを実装し、同じデータ ストレージがコピーされているかどうかを確認しました。 ただし、このような方式を使用して、ターゲット デバイスに同じテンソルが存在するかどうかを確認するのはコストがかかります。図 2 (b) の例では、x1 を CPU にコピーする代わりに、y0 への参照を返して、x1 と y0 の間でビュー操作を実行します。 図 2: 表 1 の状況にクロスデバイス テンソル オーケストレーションを適用すると、CPU 側での重複を回避でき、メモリとトラフィックを節約できます。 計算グラフをナビゲートすると余分な計算サイクルが追加されますが、これは不要なコピーを保存することで相殺できます。元の DKM 実装の計算グラフですべての適格なケースを検出するには、4 ホップ以内の検索で十分であることがわかりました。 重みの一意性とシャーディング ほとんどの LLM トレーニングでは、重みは通常 16 ビット ストレージ (BF16 や FP16 など) を使用して保存されます。つまり、LLM には数十億のパラメーターがありますが、ビット幅のため、一意の係数は 216 個しかありません。これにより、図 3 に示すように、重みと中心の間の注目マップを大幅に圧縮する機会が提供されます。 図3: 重みの一意性とシャーディング 実験結果LLMの精度 この論文では、eDKM を、RTN、SmoothQuant、GPTQ、AWQ、LLM-QAT などの他の量子化ベースの圧縮方式と比較します。 eDKM の場合、研究者らは埋め込み層で 8 ビット圧縮も実行しました。最終的に、以下の結論が導き出されました。
アブレーション実験 アブレーション実験では、研究者らは LLaMA 7B デコーダー スタックのアテンション レイヤーを例にとり、3 ビット圧縮によるメモリ使用量と前後方向の速度のトレードオフを測定しました。クロスデバイス テンソル オーケストレーションだけでも、実行時のオーバーヘッドを最小限に抑えながらメモリ使用量を 2.9 倍削減できます。一方、シャーディング モジュールと一意性モジュールでは、それぞれ 23.5 倍と 16.4 倍の節約が実現します。すべての技術を組み合わせると、eDKM は約 130 倍の節約を実現できます。これらの手順では追加の計算と通信のオーバーヘッドが必要になりますが、GPU と CPU 間のトラフィックが大幅に削減されるため、実行時のオーバーヘッドはごくわずかです。 詳細は原文をご参照ください。 |
<<: オペレーティング システム レベルの ChatGPT は人気があります。これにより、コンピューターが独自のデスクトップを整理できます。Mac/Windows/Linux をサポートしています。
>>: ハイブリッドエキスパートの限界を押し上げる: わずか 0.32% のパラメータ更新でモデルを微調整
【51CTO記者李玲玲が北京からレポート】先日、「イノベーション主導の着実な変革と共同金融」をテーマ...
[[378409]]人工知能は間違いなく将来のトレンドであり、AIは将来の経済の発展を推進するでしょ...
データセンターに AI を導入することを検討している場合は、まず投資すべきハードウェアとインフラスト...
この記事は、Viktor Mayer-Schönberger と Kennedy Cukier によ...
人工知能 (AI) 音声アシスタントは近年大きな進歩を遂げ、スマートスピーカーやその他の AI スマ...
機械学習がユーザーに真の価値をもたらすためには、それを本番システムに導入する必要があります。 AI ...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
[[317535]]顔認証決済や指紋認証決済だけでは不十分だ。世界的決済ソリューション大手のマスター...
2017年と比べると、最近の人工知能分野のニュースは人々を怒らせることはほとんどないようだ。おそら...
ディープラーニングは2006年に登場して以来、近年急速に発展し、学術研究と企業アプリケーションの両方...
[[323586]]神学者たちは長い間、非常に退屈な問題について議論してきました。それは、「ピンの先...
人工知能 (AI) は設計の仕事を引き継ぐのでしょうか? 将来的にはデザイナーに取って代わるのでしょ...