効率的なモデル圧縮と知識蒸留に関する論文紹介[NVIDIA]
タイトル
Compact Language Models via Pruning and Knowledge Distillation
リンク
https://arxiv.org/pdf/2407.14679
ひとこと要約
高性能な小型モデル作成のための、LLMの効率的な圧縮並びに再学習のための包括的な手法を提案。
メモ
方法
重要度分析
小さなキャリブレーションデータセット(1024サンプル)を用意して順伝播
幅(Width)の重要度計算
MHA、MLP、LayerNorm層において活性化しているほど重要と定義
深さ(Depth)の重要度計算
パープレキシティ(PPL)
各層を1つずつ削除し、性能低下が大きいほど重要と定義
ブロック重要度(BI)
各層の入力と出力の類似度し、類似度が小さいほど重要と定義
プルーニング
重要度に基づいて、モデルの各部分をランク付け
目標のモデルサイズに応じて、重要度の低い部分を削除
重み行列をトリミング(リシェイピング)
アーキテクチャ探索
複数のアーキテクチャを列挙
各構成に対して軽量な再学習(約18億トークン)を実行
性能を比較し、最適なアーキテクチャを選択
知識蒸留を用いた再学習
誤差関数は、中間層の知識蒸留損失、出力分布の知識蒸留損失、クロスエントロピー誤差の組み合わせ
上記の方法でNemotron-4 15Bモデル(15.6億パラメータ)を圧縮して、2つのモデルMINITRON 8BとMINITRON 4Bを作成
結果
MINITRON 8B
Nemotron-3 8BとLLaMa-2 7Bを上回り、Mistral 7B、Gemma 7B、LLaMa-3 8Bと同等の性能
補足: データセット: MMLU、HumanEval(Pythonコード生成)、ARC-C、HellaSwag、TruthfulQA、WinoGrande、XL-Sum English(要約)
Nemotron-3 8Bと比べて学習に必要なトークン数は40分の1
LLM-Pruner、SliceGPT、LaCo、ShortGPT、Sheared LLaMaで作成したモデルよりもMINITRONは高性能
理解のためのメモ
重要な構造の例
Attention Heads
文章全体の構造や主語と述語の関係、依存関係を認識する構造
「私は昨日買った本を今日読み終えた」という文で、「買った」と「本」の関係を認識する
特定の言語パターンを認識する構造
「AはBより〜」という比較表現を認識する
文脈に基づいて単語の意味を区別する構造
「バンク」が「銀行」か「土手」かを文脈から判断する
固有名詞を識別するヘッド
MLP層のニューロン
特定のトピックを識別する
数値データを処理する
埋め込みチャンネル
単語の意味的類似性を表現するチャンネル
犬と猫
文法的特徴を捉えるチャンネル
単数形と複数形
現在形と過去形
文脈依存の意味変化を表現するチャンネル
「春」という単語が季節、人名、動詞のどの意味で使われているかを区別する
この記事が気に入ったらサポートをしてみませんか?