私の連絡先情報
郵便管理者@information.bz
2024-08-16
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
マシンハートレポート
編集者: Du Wei、Chen Chen、Zenan
小型モデルの台頭。
先月、Meta は Llama 3.1 シリーズのモデルをリリースしました。これには、Meta のこれまでで最大の 405B モデルと、それぞれ 700 億と 80 億のパラメータを持つ 2 つの小型モデルが含まれます。
Llama 3.1 は、オープンソースの新時代の到来を告げるものと考えられています。ただし、新世代モデルはパフォーマンスが強力ですが、導入時には依然として大量のコンピューティング リソースが必要です。
したがって、多くの言語タスクで十分なパフォーマンスを発揮し、導入コストも非常に安価な小規模言語モデル (SLM) を開発するという別の傾向が業界に現れています。
最近、NVIDIA の研究では、構造化された重み枝刈りと知識の蒸留を組み合わせることで、最初は大きなモデルから徐々に小さな言語モデルを取得できることが示されました。
チューリング賞受賞者でメタのチーフ AI サイエンティストであるヤン・ルカン氏も、この研究を気に入って再投稿しました。
剪定と蒸留を経て、NVIDIA 研究チームは Llama 3.1 8B を Llama-3.1-Minitron 4B に改良し、オープンソース化しました。これは、NVIDIA の Llama 3.1 オープンソース シリーズの最初の作品です。
Llama-3.1-Minitron 4B は、Minitron 4B、Phi-2 2.7B、Gemma2 2.6B、Qwen2-1.5B などの同様のサイズの最先端のオープンソース モデルよりも優れたパフォーマンスを発揮します。
この研究に関連する論文は先月にも発表された。
剪定と蒸留
枝刈りはモデルをより小さくスリムにし、レイヤーを削除する (深さ枝刈り) か、ニューロンとアテンション ヘッドを削除してチャネルを埋め込む (幅枝刈り) ことで実現できます。通常、プルーニングには、精度を回復するためのある程度の再トレーニングが伴います。
モデルの蒸留は、大規模で複雑なモデル (教師モデルと呼ばれることが多い) から、より小規模で単純な生徒モデルに知識を伝達する手法です。目標は、元のより大きなモデルの予測能力の多くを維持しながら、より高速に実行し、リソースの消費を少なくする、より効率的なモデルを作成することです。
主要な蒸留方法は 2 つあります。SDG ファインチューニングと古典的な知識の蒸留です。これら 2 つの蒸留方法は補完的です。この記事では、古典的な知識の蒸留方法に焦点を当てます。
NVIDIA は、枝刈りと古典的な知識の抽出を組み合わせて大規模なモデルを構築します。以下の図は、単一モデルの枝刈りおよび抽出のプロセス (上) と、モデルの枝刈りおよび抽出のチェーン (下) を示しています。具体的なプロセスは次のとおりです。
1. NVIDIA は 15B モデルから開始し、各コンポーネント (レイヤー、ニューロン、ヘッド、埋め込みチャネル) の重要性を評価し、モデルをソートしてターゲット サイズ (8B モデル) にプルーニングします。
2. 次に、元のモデルを教師として、枝刈りしたモデルを生徒として、モデルの蒸留を使用して軽い再トレーニングを行います。
3. トレーニング後、小さなモデル (8B) を開始点として使用し、それを枝刈りしてより小さな 4B モデルに抽出します。
15Bモデルから枝刈り、蒸留する工程。
注意すべき点は、モデルを枝刈りする前に、モデルのどの部分が重要であるかを理解する必要があることです。 NVIDIA は、1024 サンプルの小さなキャリブレーション データセットを使用して、関連するすべての次元 (深度、ニューロン、ヘッド、埋め込みチャネル) の情報を同時に計算する、アクティベーション ベースの純粋な重要性評価戦略を提案しています。必要なのは順方向伝播のみです。このアプローチは、勾配情報に依存しバックプロパゲーションを必要とする戦略よりもシンプルでコスト効率が高くなります。
枝刈り中は、特定の軸または軸の組み合わせについて枝刈りと重要度の推定を繰り返し行います。実証研究では、単一の重要度推定値を使用するだけで十分であり、反復推定では追加の利点がもたらされないことが示されています。
古典的な知識の蒸留を使用した再トレーニング
以下の図 2 は、N 層の学生モデル (枝刈りされたモデル) が M 層の教師モデル (元の枝刈りされていないモデル) から抽出される抽出プロセスを示しています。スチューデント モデルは、スチューデント ブロック S と教師ブロック T にマッピングされた埋め込み出力損失、ロジット損失、および Transformer エンコーダ固有の損失の組み合わせを最小化することによって学習されます。
図 2: 蒸留トレーニングの損失。
剪定と蒸留のベストプラクティス
NVIDIA は、コンパクトな言語モデルにおける枝刈りと知識の蒸留に関する広範なアブレーション研究に基づいて、その学習結果を次の構造化された圧縮のベスト プラクティスに要約しています。
一つはサイズ変更です。
2つ目は剪定です。
3つ目は再訓練することです。
Llama-3.1-Minitron: ベスト プラクティスの実践
Meta は最近、多くのベンチマークにおいてクローズド ソース モデルに匹敵する、強力なオープン ソース モデルの Llama 3.1 ファミリを発表しました。 Llama 3.1 のパラメータは 405B という巨大な値から 70B、8B まで多岐にわたります。
Nemotron の蒸留の経験をもとに、NVIDIA は Llama 3.1 8B モデルをより小型で効率的な 4B モデルに蒸留することに着手し、次の措置を講じました。
教師による微調整
モデル トレーニングのベースとなった元のデータセットの分布バイアスを修正するために、NVIDIA はまず、データセット (94B トークン) の枝刈りされていない 8B モデルを微調整しました。実験によると、分布の偏りが修正されていない場合、教師モデルは抽出時にデータセットに対して次善のガイダンスを提供します。
深さのみの枝刈り
8B から 4B に削減するために、NVIDIA は 16 レイヤー (50%) を削減しました。彼らはまず、各層または連続するサブ層のグループをモデルから削除することでその重要性を評価し、下流タスクでの LM 損失の増加または精度の低下を観察します。
以下の図 5 は、1、2、8、または 16 層を削除した後の検証セットの LM 損失値を示しています。たとえば、レイヤー 16 の赤いプロットは、最初の 16 レイヤーが削除された場合に LM 損失が発生することを示しています。レイヤ 17 は、最初のレイヤを保持し、レイヤ 2 ~ 17 を削除すると、LM ロスも発生することを意味します。 Nvidia は、開始層と終了層が最も重要であると考えています。
図 5: 中間層の深さのみの枝刈りの重要性。
ただし、NVIDIA は、この LM 損失が必ずしもダウンストリームのパフォーマンスに直接関係しているわけではないと考えています。
以下の図 6 は、各プルーニングされたモデルの Winogrande 精度を示しています。これは、レイヤー 31 が最後から 2 番目のレイヤーである場合、レイヤー 16 から 31 を削除するのが最適であることを示しています。 0.5)。 Nvidia はこの洞察を採用し、レイヤー 16 から 31 を削除しました。
図 6: 16 個のレイヤーが削除された場合の Winogrande タスクの精度。
幅のみの剪定
NVIDIA は、Llama 3.1 8B を圧縮するために、幅軸に沿って埋め込み (非表示) および MLP 中間ディメンションをプルーニングします。具体的には、前述のアクティベーション ベースの戦略を使用して、各アテンション ヘッド、埋め込みチャネル、および MLP 隠れディメンションの重要度スコアを計算します。
重要性を見積もった後、NVIDIA が選択したのは
単一サンプルの枝刈りの後、幅枝刈りの LM 損失は深さ枝刈りの LM 損失よりも高いことに言及する価値があります。しかし、短期間の再トレーニングの後、傾向は逆転しました。
精度のベンチマーク
NVIDIA は次のパラメータを使用してモデルを抽出します。
以下の表 1 は、複数のドメインにわたるベンチマークにおける、Llama-3.1-Minitron 4B モデル バリアント (幅プルーニングおよび深さプルーニング) と、オリジナルの Llama 3.1 8B モデルおよび他の同様のサイズのモデルとのパフォーマンスの比較を示しています。全体として、NVIDIA は、ベスト プラクティスに従ったディープ プルーニングと比較して、ワイド プルーニング戦略の有効性を再度確認しました。
表 1: Minitron 4B ベース モデルと同様のサイズのベース モデルの精度比較。
抽出されたモデルが強力な命令モデルになり得るかどうかを検証するために、NVIDIA は NeMo-Aligner を使用して Llama-3.1-Minitron 4B モデルを微調整しました。
彼らは、Nemotron-4 340B トレーニング データを使用し、IFEval、MT-Bench、ChatRAG-Bench、Berkeley Function Calling Leaderboard (BFCL) で評価を実行し、命令追従、ロールプレイング、RAG および関数呼び出しの機能をテストしました。最後に、Llama-3.1-Minitron 4B モデルは信頼できる命令モデルとなり得、そのパフォーマンスは他のベースライン SLM よりも優れていることが確認されました。
表 2: 位置合わせされた Minitron 4B ベース モデルと、同様のサイズの位置合わせされたモデルの精度の比較。
パフォーマンスベンチマーク
NVIDIA は、LLM 推論を最適化するためのオープンソース ツールキットである NVIDIA TensorRT-LLM を使用して、Llama 3.1 8B および Llama-3.1-Minitron 4B モデルを最適化しました。
次の 2 つの図は、さまざまなユースケースにおけるさまざまなモデルの FP8 および FP16 精度での 1 秒あたりのスループット リクエストを示しています。これは、8B モデルのバッチ サイズ 32 での入力シーケンス長/出力シーケンス長 (ISL/OSL) の組み合わせとして表されます。 4B モデル バッチ サイズは、入力シーケンス長/出力シーケンス長 (ISL/OSL) の組み合わせ 64 です。これは、NVIDIA H100 80GB GPU では重みが小さいため、より大きなバッチ サイズが可能になります。
Llama-3.1-Minitron-4B-Depth-Base バリアントは最も高速で、平均スループットは Llama 3.1 8B の約 2.7 倍ですが、Llama-3.1-Minitron-4B-Width-Base バリアントの平均スループットはラマ 3.1 1.8x 8B について。 FP8 への導入により、これら 3 つのモデルのパフォーマンスも BF16 と比較して約 1.3 倍向上しました。
図 8: 組み合わせ: Llama 3.1 8B (BS=32)、Llama-3.1-Minitron 4B モデル (BS=64)。
結論は
剪定と古典的な知識の洗練は、より小さいサイズの LLM を段階的に取得するための非常に費用対効果の高い方法であり、すべてのドメインで最初からトレーニングするよりも高い精度を達成します。これは、合成データを微調整したり、最初から事前トレーニングしたりするよりも、より効率的でデータ効率の高いアプローチです。
Llama-3.1-Minitron 4B は、最先端のオープンソース Llama 3.1 シリーズを使用する NVIDIA の最初の試みです。 NVIDIA NeMo で Llama-3.1 の SDG 微調整を使用するには、GitHub の /sdg-law-title-generation セクションを参照してください。
詳細については、次のリソースを参照してください。
https://developer.nvidia.com/blog/how-to-prune-and-distill-llama-3-1-8b-to-an-nvidia-llama-3-1-minitron-4b-model/