AIxivコラムは、当サイトが学術的・技術的な内容を掲載するコラムです。過去数年間で、このサイトの AIxiv コラムには 2,000 件を超えるレポートが寄せられ、世界中の主要な大学や企業のトップ研究室がカバーされ、学術交流と普及を効果的に促進しています。共有したい優れた作品がある場合は、お気軽に寄稿するか、報告のために当社までご連絡ください。提出電子メール: liyazhou@jiqizhixin.com; zhaoyunfeng@jiqizhixin.com
この論文の著者は全員、Huawei Noah LaboratoryのLi Wenshuo氏であり、責任著者はWang Yunhe氏とChen氏です。シンハオ。近年、関連チームはICML、CVPR、NeurIPS、ICCV、ECCVなどのトップカンファレンスで代表的な作品を多数発表し、効率的な大規模言語モデルやビジュアルモデルなどの分野で豊富な成果をあげており、連携も行っている。有名な大学や科学研究機関との協力が広範に行われています。 現在の AI 業界および学術界における当然の「トラフィックの王」として、大規模モデルは、研究とトレーニングにリソースを投資するために多くの学者や企業を魅了しています。規模が大きくなるにつれて、大規模なモデルのトレーニングではシステムとエンジニアリングの問題が避けられない問題になります。たとえば、Llama3.1 の 54 日間のトレーニング中に、システムは 466 回クラッシュし、平均すると 2.78 時間に 1 回の頻度でクラッシュしました。
次に、頻繁な保管チェックポイントが非常に必要です。しかし、チェックポイントを保存すること自体も大きなプロジェクトです。
Meta は、頻繁なシステム障害に対処するために、ストレージ チェックポイントの時間を短縮し、ストレージの頻度を増やすために多大な努力を払ってきました。ただし、ストレージを頻繁に使用すると、ストレージ リソースのオーバーヘッドが大きくなり、この課題に対応するためにトレーニング クラスターには 240 PB の SSD が搭載され、コストはストレージだけで 1 億元になります。 Huawei Noah の ExCP メソッドは、ストレージによって引き起こされる膨大なオーバーヘッドに対処するために、モデルを 70 回ロスレスで圧縮できる極度の圧縮チェックポイント技術を提案し、トレーニング中のストレージ オーバーヘッドを大幅に削減しました。
このコードは現在オープンソースであり、この問題の一部のパートナーが結果を再現することに成功しています。
- 記事アドレス: https://arxiv.org/abs/2406.11257
- 倉庫アドレス: https://github.com/Gaffey/ExCP
その方法も非常に優れたイノベーションであり、記事では 2 つの重要な概念について言及しています。1 つは、トレーニングでチェックポイントの残余情報を使用し、時系列の情報の疎性を通じてより高い枝刈り率を達成することです。もう 1 つは、圧縮のためにオプティマイザーと重み付けを組み合わせるということです。全体的に高い圧縮率を実現します。
トレーニングプロセス中、現在のパラメータは、前のチェックポイントに保存されている重みに後続のチェックポイントを加えたものとみなすことができます。反復中の勾配更新の合計は比較的まばらであり、含まれる情報が少ないため、この残差を圧縮すると、より良い圧縮率を達成できます。逆に、オプティマイザに保存される運動量は、勾配の最初と 2 番目のモーメントのスライド平均であり、最初の瞬間のスライド平均のデフォルトのパラメーターは 0.9 であり、反復後の範囲は数百から数千です。最後のチェックポイントに格納されたコンテンツとの相関性はあまりないため、オプティマイザーは残差ではなく自身の値を直接圧縮します。圧縮される最終チェックポイントは と表現されます。
モデル圧縮に関連する既存の作業は、通常、モデルの推論パフォーマンス、またはモデルの最終ストレージ チェックポイントのサイズにのみ焦点を当てていますが、利益は得られません。トレーニング プロセス全体におけるモデルのストレージ スペースのオーバーヘッドに注意してください。したがって、既存の作業は重みを圧縮するだけであり、Adam などの一般的なオプティマイザーが実際に重みの数の 2 倍の運動量を保存することを無視しています。この作業では、2 つを一緒に圧縮して全体の圧縮率を大幅に向上させる一方で、重みとオプティマイザーの運動量の相関関係を利用して互いの圧縮率をさらに向上させます。 重み枝刈り: 枝刈りの重みは残差値であるため、オプティマイザーの運動量の 2 番目のモーメントは、過去の期間における重みの残差値の変化振幅を大まかに表すことができます。順序モーメントは、さまざまなレイヤーの枝刈り率を決定するための指標として使用されます。枝刈り戦略は次の式 で示されます。ここで、W と はそれぞれ重みと 2 次モーメントを表します。
オプティマイザーのモメンタム枝刈り: モメンタム枝刈りの場合、枝刈りを実行するための指標として 1 次モーメントを使用できます。論文には収束の簡単な証明があります。同時に、ポジションのウェイトが枝刈りされている場合、対応するポジションのオプティマイザーのモメンタムも同時に処理される必要があるため、枝刈り戦略は次の式に示すとおりです
ここで、は最初の-を表します注文の瞬間。 全体的な圧縮プロセスはアルゴリズム 1 に示すとおりであり、重み残差の計算、結合圧縮、不均一量子化、符号化圧縮のステップが順番に行われます。最終的な圧縮結果を取得するために実行されます。
完全なチェックポイント ファイルを復元するプロセスは、アルゴリズム 2 に示されているとおりです。解凍後、まず浮動小数点の結果がコードブックから復元され、不均一量子化後に保存された添字がベンチマークの重みと比較されます。 (前のチェックポイントの元の重み、または復元された再構築された重み) を追加して、完全なチェックポイント ファイルを取得します。トレーニング プロセス全体でチェックポイント ファイルを復元するプロセスは、アルゴリズム 3 に示されているとおりです。トレーニングの完了後、初期化重みのランダム シードと各チェックポイントに保存された圧縮結果のみが保存され、チェックポイントが復元されます。トレーニング/テストなどを再開するために 1 つ以上のチェックポイントを選択できる、完全なチェックポイントのシーケンスを取得するためのシーケンス。 この記事では大規模な言語モデルを評価するだけでなく、この方法は ViT-L32 などの大規模なビジュアル モデルでも良好な結果を達成できます。
また、アブレーション実験からも、残留枝刈りを使用すると枝刈りによる損失が大幅に減少することがわかります。
この記事では、圧縮前後の大規模言語モデルの質問と回答の例も示しています。圧縮自体がモデルの質問と回答の機能に損傷を与えないことがわかります。 以上が究極の圧縮70倍!大きなモデルにチェックポイントがいくつあっても、心配する必要はありません。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。