スパース言語モデルの性能向上
新しい方法が、パフォーマンスの損失を最小限に抑えつつ、スパース言語モデルのトレーニングを強化する。
― 1 分で読む
目次
大きな言語モデル(LLMs)はトランスフォーマーを基にしていて、多くのタスクで大成功を収めてるんだけど、その大きさゆえにメモリや計算能力がたくさん必要で、使うのが難しいんだ。そこで、プルーニングと呼ばれるプロセスでモデルを小さくする努力がなされているけど、これをやるとモデルが難しいタスクでうまくいかなくなることが多いんだよね。
この問題を解決するために、Adaptive Sparse Trainer(AST)という新しいアプローチが提案された。これは、プルーニングされたモデルが元のモデルの知識を保持できるのを助けて、オーバーフィッティングせずにうまく学習できるようにする方法。ASTでは、トレーニング中にどの部分を残すかを調整できるから、パフォーマンスが良くなるんだ。また、少しのうまく配置されたパラメータを追加することで、多くのメモリを使わずにモデルのパフォーマンスを上げることもできるってわかったよ。
ASTは密なモデルとスパースモデルの性能差を減らしつつ、計算コストを低く保つんだ。他の圧縮方法と組み合わせれば、効果をほとんど損なうことなく言語モデルを大幅に縮小できる。試験では、ASTは以前の方法よりも良い結果を出して、さまざまなタスクで2種類のモデルの正確さの差を1%ちょっとまで縮められたんだ。
モデルのプルーニングを理解する
プルーニングは、モデルを小さくしてコンピュータリソースへの要求を減らすための重要な技術だ。これは、個々の重みをカットする非構造的プルーニングや、ニューロンやフィルターなどの全体のセクションを削除する構造的プルーニングなど、いくつかの方法で行われる。非構造的プルーニングは効果的だけど、通常のハードウェアでのモデルの動作を複雑にしがち。逆に、構造的プルーニングは扱いやすいけど、パフォーマンスの低下が大きくなることがある。
最近は、N:Mスパース性と呼ばれる中間的な方法が注目されている。この方法では、特定の数の非ゼロの重みをグループで保持して、現代のGPUでの処理を速くすることができる。しかし、現在の多くの方法(SparseGPTやWandaなど)は、トレーニングが終了した後に作業する傾向があって、特に複雑なタスクではパフォーマンスが悪くなることが多いんだ。
半構造的スパースモデルの役割
この新しい研究では、スパースモデルが単純なタスクだけでなく、より複雑なシナリオでもうまく機能することが示されている。これは、密な事前学習モデルをスパースモデルに変換するんだ。プルーニングされたモデルの再学習に関する研究は多いけど、その多くは小さなモデルや特定のタスクに焦点を当てている。このアプローチは、数十億のパラメータを持つ大きなモデルに適用されて、さまざまなタスクで評価されているんだ。
でも、大きなモデルを再学習するのは挑戦が多い。元のトレーニングデータがもう手に入らないことが多くて、適さないソースに頼るとモデルが重要な情報を忘れちゃうかもしれないし、再学習にはたくさんの計算リソースが必要になることもある。
こうした課題を克服するために、Adaptive Sparse Trainer(AST)が導入されたんだ。一度にすべての重要でない重みを削除する代わりに、ASTはその重要性を徐々に減らして、トレーニング中にいくつかの重みを復活させることができる。この方法は、モデルが以前に学んだ貴重な知識を保持しつつ、残りの重みを最良の形で結びつけるのを助けるんだ。
より良いパフォーマンスのためのパラメータ追加
新しいアプローチでは、パフォーマンスを改善するために、少数の慎重に選ばれたパラメータを追加することも提案されている。質の高いオープンソースデータセットと効率的なデータ処理方法を組み合わせることで、劣ったデータセットによるギャップを避けられる。この組み合わせがASTにスパースモデルの最高のパフォーマンスを引き出すんだ。
特定のモデルにASTを適用した際、パフォーマンスの損失は最小限で、困惑度がわずかに増し、正確さが少し落ちただけだった。また、モデルは量子化手法を使ってさらに圧縮されて、強力なパフォーマンスを保ったまま重い圧縮にも耐えられたんだ。
モデルプルーニングの技術
ネットワークプルーニングは、モデルのサイズと計算ニーズを減少させつつパフォーマンスを保つために重要なんだ。これは、モデルの無駄な部分を選択的にカットダウンすることを目指した以前の方法に基づいている。プルーニングのスタイルは、重みが削除される方法に基づいて分類される。
トランスフォーマー系モデルをプルーニングする一般的な方法は、すべての線形層の重みをカットすることで、モデルのパフォーマンスを保持することだ。最近の研究では、どの重みを保持するかが重要で、単純な方法(大きさによるプルーニングなど)がしばしば最も良い結果をもたらすことが示された。
再学習の際、スパースモデルの層を通じて情報を渡すのは難しいことがある。そんな時、ストレートスルー推定器のような技術が役立つ。これによって勾配が大まかに通ることを許可するんだ。
トレーニングの安定性を測る
モデルが効果的に学習するためには、トレーニング中の接続パターンの安定性を追跡するためにさまざまな指標が使われる。接続の変化率が高いと、モデルが苦しんでいるサインだ。良いパフォーマンスを確保するためには、この安定性を維持することが重要なんだ。
知識蒸留
別の有用な技術は知識蒸留で、小さなモデルが大きなモデルのパフォーマンスを模倣することを学ぶんだ。この場合、小さなモデルがスパースモデルで、大きなモデルがその密なバージョンになる。この方法は、小さなモデルが大きなモデルの出力を真似て学習を改善するのを助ける。
トレーニング中、言語モデリングの損失だけに頼るのでは、プルーニングされたモデルが最良の結果を得るには不十分なんだ。これは特に、小さなモデルがオーバーフィッティングの問題に直面している場合に当てはまる。より複雑な損失関数を使うことで、より良い学習信号が得られ、モデルがオーバーフィッティングを避けるのを助けるんだ。
ユニークな二段階トレーニングプロセス
スパースモデルの再学習は二つの段階に分かれている:再構成段階と継続トレーニング段階。再構成段階では、モデルは失われたスキルを迅速に回復し、トレーニングや検証で良い改善を示そうとする。
第二段階は、モデルが時間をかけて新しい特徴を徐々に学んでいく従来のトレーニングに似ている。スパースモデルがその密な前任者からの学習能力の一部を保持していることを理解するのが大事で、回復プロセスが速くなるんだ。
トレーニング中の動的調整
モデルを再学習させる一般的なアプローチは、最初から重みマスクを設定することだけど、これだと進行が妨げられちゃう。代わりに、トレーニング中にモデルがマスクを動的に調整できるようにすると、より良い収束が得られるんだ。
Simulated Annealingと呼ばれる技術に基づく新しいスケジューリング法が、最適な結果を得るためにモデルがトレーニング中にどれだけ積極的に接続を変更できるかを管理するのに役立つ。この方法は、トレーニングのより早い段階でより良いマスクの組み合わせを探索することを可能にしつつ、後の安定性を促進するんだ。
低ランク適応でモデルの能力を高める
プルーニングされたモデルが有効性の一部を失う可能性があるから、それらを低ランク適応と組み合わせることでパフォーマンスを強化する道が開かれるんだ。これにより、モデルがプルーニングされた重みと新しい重みの両方を使って、フルキャパシティを保ちながらも効率を高めることができるんだ。
重みの初期化も重要だ。ゼロから始めるのではなく、追加の重みは残りの重みからの情報を使うことで、トレーニングを早くし、より良いパフォーマンスを実現できるんだ。
モデルを効果的に圧縮する
モデルの圧縮は、パフォーマンスに悪影響を与えることなく効率を改善するのに役立つ。この努力は、モデルの効果を保ちながら、特にパワーの弱いハードウェアで実行しやすくするための良いバランスを目指しているんだ。
プルーニングモデルは時に追加のメモリを必要とすることもあるけど、パフォーマンスを損なうことなくこれらの要求を大幅に減らす効果的なアプローチも存在するよ。
実験的検証
実験では、さまざまなモデルに新しい方法を試した。結果は、提案された方法がいくつかのモデルタイプで以前のものよりも良いパフォーマンスを示したことを示している。小さなモデルでは、以前の方法が苦しんでいたところで、新しいアプローチは高いパフォーマンスを維持するのに効果的だった。
ゼロショットや少数ショットのタスクを見ると、新しい方法が既存の基準と比べて一貫して良く機能した。モデルの比較ではアーキテクチャに違いが見られたけど、新しいアプローチの全体的な効率性は明らかだった。
最後の考え
この研究は、密な状態からスパース状態に効果的に移行できる半構造的スパースモデルのトレーニングの新しい方法を提示している。元のモデルからの知識を活用し、どの部分を保持するかを選ぶためのより良い技術を利用することで、最小限の追加トレーニングコストで大きな改善が得られたんだ。
今後の努力は、特にこの方法の適用をより大きなモデルやより広範なトレーニングデータセットに探ることで、これらの発見を拡張できるかもしれない。アドバンスは、パフォーマンスの良い水準を維持しながら、モデルを効果的に圧縮するための新しい道を開くんだ。
タイトル: Pruning Large Language Models with Semi-Structural Adaptive Sparse Training
概要: The remarkable success of Large Language Models (LLMs) relies heavily on their substantial scale, which poses significant challenges during model deployment in terms of latency and memory consumption. Recently, numerous studies have attempted to compress LLMs using one-shot pruning methods. However, these methods often suffer from considerable performance degradation on complex language understanding tasks, raising concerns about the feasibility of pruning in LLMs. To address this issue, we propose Adaptive Sparse Trainer (AST), a novel and efficient retraining framework tailored for semi-structured sparse models. AST enables models to learn optimal masks during the weight update process without incurring additional computational overhead. Furthermore, we demonstrate that incorporating knowledge distillation significantly improves retraining efficiency and enhances model performance under fixed computational constraints. Additionally, a supplementary set of well-initialized parameters is integrated to further augment the model's efficacy. AST achieves state-of-the-art performance with minimal training cost. When applied to the LLaMA2-7B model, AST reduces the perplexity and zero-shot accuracy gap between dense and 2:4 semi-structured sparse models to 0.6 and 1.16%, respectively, utilizing less than 0.4% of the pretraining tokens and GPU hours. Our work demonstrates the feasibility of deploying semi-structured sparse LLMs and offers a promising alternative for achieving highly compressed models when combined with existing quantization techniques.
著者: Weiyu Huang, Yuezhou Hu, Guohao Jian, Jun Zhu, Jianfei Chen
最終更新: 2024-12-18 00:00:00
言語: English
ソースURL: https://arxiv.org/abs/2407.20584
ソースPDF: https://arxiv.org/pdf/2407.20584
ライセンス: https://creativecommons.org/licenses/by/4.0/
変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。
オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。
参照リンク
- https://huggingface.co/datasets/togethercomputer/RedPajama-Data-1T
- https://www.neurips.cc/
- https://mirrors.ctan.org/macros/latex/contrib/natbib/natnotes.pdf
- https://www.ctan.org/pkg/booktabs
- https://tex.stackexchange.com/questions/503/why-is-preferable-to
- https://tex.stackexchange.com/questions/40492/what-are-the-differences-between-align-equation-and-displaymath
- https://mirrors.ctan.org/macros/latex/required/graphics/grfguide.pdf
- https://neurips.cc/Conferences/2024/PaperInformation/FundingDisclosure
- https://math.stackexchange.com/questions/1442351/stirling-approximation-of-binom2nn