図解されたtinyBERTモデル - BERTモデル圧縮のエッセンス

図解されたtinyBERTモデル - BERTモデル圧縮のエッセンス

翻訳者|朱 仙中

レビュー | Chonglou

導入

近年、大規模言語モデルの開発は飛躍的に進歩しました。 BERT は、さまざまな自然言語処理 ( NLP )タスクを高い精度で解決する、最も人気があり効果的なモデルの 1 つになりましたBERTモデルに続いて、他のモデルのグループ登場しそれぞれ優れたパフォーマンスを示しました

時間の経過とともに、大規模言語モデル (LLM) は、トレーニングの対象となるパラメータとデータの数が指数関数的に増加するため、より複雑になる傾向があることは明らかですディープラーニングの研究によると、この手法は多くの場合、より良い運用結果につながることが分かっています。残念ながら、機械学習の世界では大規模言語モデルに関連する多くの問題を克服してきましスケーラビリティ問題規模言語モデルを効果的にトレーニング、保存、使用するための大きな障害となっています。

上記の問題を考慮し大規模な言語モデルを圧縮するための多くの特別な方法が開発されてきました。この投稿では、 Transformer Distillationメソッドに焦点を当てますこのメソッドによって、 TinyBERT と呼ばれるBERTモデルのミニバージョンが生まれました。さらに、 TinyBERTモデルの学習プロセスと、 TinyBERTモデルが非常に強力であるいくつかの微妙な理由紹介しますこの記事はTinyBERT の公式論文基づいています

本旨

最近の投稿では、DistilBERTモデル蒸留手法がどのように機能するかについて説明しましたつまり、蒸留の主なアイデアは、学生モデル教師モデル予測が同様になるように損失関数の目的を変更することです。 DistilBERTモデルでは、損失関数は、両方のモデルの出力埋め込み(類似性損失の場合を考慮して、学生モデルと教師モデルの出力分布を比較します

DistilBERTモデルの詳細については、次の記事「大規模言語モデル: DistilBERT — より小さく、より高速で、より安価で、より軽量」を参照してください
「https://towardsdatascience.com/distilbert-11c8810d29fc?source=post_page-----1a928ba3082b--------------------------------」。この記事の主な内容は、教師-生徒モデルフレームワーク効率を最大化することを目標としたBERTモデル圧縮の秘密を紹介することです

表面的には、 TinyBERTモデルの蒸留フレームワークはDistilBERTモデルからあまり変わっていません。損失関数が再度変更され目標は学生モデル教師モデルを模倣することですただし、 TinyBERTモデルの場合はさらに一歩進んで、損失関数は教師モデルと生徒モデルによって生成された結果を考慮するだけでなく予測結果がどのように得られたかという問題も考慮します。 TinyBERTモデル論文著者によると、TinyBERT 損失関数は3 つの部分で構成されており教師モデルと生徒モデルのさまざまな側面をカバーしています

  1. 埋め込み層の出力
  2. トランスフォーマーからエクスポートされた隠れ状態と注目行列
  3. 予測層によって出力されるロジット

変圧器蒸留損失関数の概略図

では、教師モデルと生徒モデルの隠れ状態を比較することにはどのような意義があるのでしょうか?注意行列に隠れ状態と注意の出力を含めることで生徒モデル教師モデル隠れ層の内容を学習し教師モデル似た層を構築できるようになります。このようにして、抽出されたモデルは元のモデルの出力だけでなく、その内部動作も模倣できます

では、教師モデルの行動をコピーすることがなぜ重要なのでしょうか?研究者らは、 BERTモデルによって学習された注意重みは言語構造を捉えるのに役立つと主張している。したがって、別のモデルを蒸留することで、学生モデルに言語知識を習得する機会も増えます。

レイヤーマッピング

TinyBERTモデルは、エンコーダー レイヤーの数が少ない BERT の小型バージョンを単純に表しますここで、 BERTモデルレイヤーの数をN、TinyBERTモデルレイヤーの数をM と定義します。層の数が異なるため、蒸留損失値をどのように計算するかは明確ではありません

この目的のために、TinyBERTモデルの対応するレイヤーmに知識を抽出するためにどのBERTモデルレイヤーnが使用されるかを定義する特別な関数n=g(m)が導入されています選択された BERT レイヤーは、トレーニング中の損失値の計算に使用されます

導入された関数n = g(m)には2つの推論制約があります。

  • g(0)=0です。これは、 BERTモデルの埋め込みレイヤーTinyBERTモデルの埋め込みレイヤーに直接マッピングされることを意味し、これは理にかなっています。
  • g(M+1)=N+1です。この式は、 BERTモデルの予測レイヤーTinyBERTモデルの予測レイヤーにマッピングされることを示しています。条件1≤m≤mを満たすTinyBERTモデル内の他のすべてのレイヤーについては、n=g(m)の対応する関数値をマッピングする必要があります。ここで、このような関数定義されていると仮定します。
    TinyBERTモデルのセットアップに関する問題については、この記事の後半で説明します。

コンバータ蒸留

1. 埋め込み層の蒸留

生の入力は最初にトークン化され、次に学習された埋め込みレイヤーにマッピングされてからモデルに渡されますこれらの埋め込みレイヤーはモデルの最初のレイヤーとして使用されます。すべての可能な埋め込みレイヤーは、行列形式で表現できます。生徒モデル教師モデル埋め込み違いを比較するには、それぞれの埋め込み行列 E に対して標準的な回帰メトリックを使用できます。たとえば、 Transformer Distillation では回帰メトリックとして平均二乗誤差( MSE )を使用します。

生徒モデル教師モデルの埋め込み行列のサイズが異なるため、平均二乗誤差を使用してそれらの要素を適切に比較することはできません。これにより、生徒モデルの埋め込み行列に学習可能な重み行列 Wが乗算され結果として教師モデルの埋め込み行列と同じ形状の行列が生成される理由が説明されます

埋め込み層の蒸留損失関数。

生徒モデルと教師モデルの埋め込み空間は異なるため、行列Wは生徒モデルの埋め込み空間を教師モデル埋め込み空間に線形変換する上で重要な役割を果たします。

2. コンバーター層蒸留

変圧器層蒸留損失関数の可視化

2A. 注意層の蒸留

トランスフォーマーのマルチヘッド アテンション メカニズムの中核は、豊富な言語知識を含む複数のアテンション マトリックスを生成することです。教師モデルの注意の重みをシフトすることで、生徒モデルも重要な言語概念を理解できるようになります。このアイデアを実装するために、損失関数を使用して、生徒モデルと教師モデルの注意重みの差を計算します。

TinyBERTモデルでは、すべての注意層が考慮され、各層の最終的な損失値は、すべてのヘッドの対応する学生モデルと教師モデルの注意行列間の平均二乗誤差値の合計に等しくなります。

層蒸留の損失関数は次のように計算されることに注意してください。

注意層の抽出に使用される注意行列 A は、ソフトマックス出力 softmax(A) ではなく、正規化されていないことに注意してください研究者によると、この微妙な違いにより収束が早まり、パフォーマンスが向上するという。

2B. 隠れ層の蒸留

豊富な言語知識をキャプチャするというアイデアを実現するためにトランスフォーマー層の出力蒸留操作も適用されます

隠れ層蒸留損失関数の計算式。

ここで、重み行列 W は、前述の埋め込み層蒸留に使用される重み行列と同じ役割を果たします。

3. 予測層の蒸留

最後に、生徒モデルが教師モデル出力を再現するように予測層損失関数が使用されます。 2 つのモデルによって予測されるロジット ベクトル間のクロス エントロピーを計算します。

予測層蒸留損失関数計算式

場合によっては、ロジットは出力分布の滑らかさを制御する温度パラメータ T によって除算されることに留意する価値がありますTinyBERTモデルでは、温度パラメータT は 1 に設定されています。

損失方程式

TinyBERTモデルでは各レイヤーにはそのタイプ特性に応じた独自の損失関数がありますいくつかのレイヤーの重要度の多寡を考慮するために、対応する損失値に定数 a を掛けます。最終的な損失関数は、すべての TinyBERTモデルレイヤーの損失値の加重合計に等しくなります

TinyBERTモデルにおける損失関数の計算式

広範囲にわたる実験により、 3 つの損失要素のうち、変圧器層の蒸留損失がモデルのパフォーマンスに最も大きな影響を与えることが示されています。

モデルトレーニング

ほとんどの自然言語処理モデル (BERT を含む)の開発プロセスは、おおまかに2 つの段階分けられることに注意することが重要です。

  1. このモデルは、言語構造に関する一般的な知識を得るために、大規模なデータコーパスで事前トレーニングされています
  2. 特定の下流タスクを解決するために、別のデータセットでモデル調整します

同じアイデアに従って、研究者は新しいフレームワーク TinyBERTを開発しましたその学習プロセス上記と同様の2 つ段階構成されます。これら 2 つのトレーニング段階では、トランスフォーマー蒸留アルゴリズムを使用してBERTモデルの知識をTinyBERTモデル変換します

ステージ1:通常の蒸留。教師モデルとして、 TinyBERT は事前トレーニング済みの (微調整は不要) BERTモデルを通じて言語構造の豊富な常識を獲得します。より少ないレイヤーとパラメータを使用することにより、この段階以降、 TinyBERTモデルのパフォーマンスは BERTモデルよりも一般的にわずかに低下します

ステージ 2:タスク固有の蒸留。今回は、微調整されたBERTモデルが教師モデルの役割を果たします。パフォーマンスをさらに向上させるために、研究者の提案に従って、トレーニング データセットにデータ拡張手法が適用されました。実験結果によると、タスク固有の蒸留操作の後、TinyBERTモデルはBERTモデル同等のパフォーマンスを実現します

TinyBERT モデルのトレーニング プロセスの概略図

データ拡張

タスク固有の蒸留のために、特別なデータ拡張技術が導入されていますこのデータ拡張技術では、まず特定のデータセットからシーケンスが抽出され、次に一定の割合の単語が次の2 つの方法のいずれかで置き換えられます。

  • 単語が同じ単語としてラベル付けされている場合、それは BERT モデルによって予測され、予測された単語がシーケンス内の元の単語置き換えられます
  • 単語が複数のサブワードにトークン化されている場合、それらのサブワードは最も類似した GloVe 埋め込み(単語表現のグローバルベクトル)に置き換えられます

モデル サイズが大幅に縮小されたにもかかわらず、説明したデータ拡張メカニズムにより、TinyBERT がより多様な例から学習できるようになり、パフォーマンスに大きな影響を与えます。

データ強化技術の概略図

モデルの設定

わずか 1450 万個のパラメータを持つ TinyBERTモデルは基本BERTモデル約 7.5 倍小さくなります詳細な比較は以下の図に示されています。

基本的なBERTモデルとTinyBERTモデルの比較

レイヤーマッピングについては、著者らは統一された戦略を提案したこの戦略によれば、レイヤー マッピング関数は、各 TinyBERT レイヤーを3 つのBERTレイヤーの最初のレイヤーに順番にマッピングします(g(m)=3*m)。著者らは他の戦略(すべてのボトムまたはトップの BERT レイヤーを使用するなど)も研究しましたが、統合戦略のみが最良の実験結果を示しましたこの結論は、異なる抽象化レベルからの知識を転送し、転送される情報をより多様化できるため、より論理的であると思われます

異なるレイヤーマッピング戦略に基づく: この図は、GLUEデータセットに基づくパフォーマンス比較結果を示しています。

トレーニング実装プロセスに関しては、TinyBERTモデルは英語Wikipedia(2500M語)でトレーニングされており、そのハイパーパラメータのほとんどはBERTモデルライブラリ使用されているものと同じです

結論は

トランスフォーマー蒸留は自然言語処理における重要な手段です Transformerベースのモデルは現在、機械学習で最も強力なモデルの 1 つであることを考慮するとTransformer蒸留を適用して効率的に圧縮することで、さらに活用することができますその最も優れた例の 1 つは BERTモデルよりも7.5圧縮されたTinyBERTモデルです。

パラメータが大幅に削減されたにもかかわらず、実験では、TinyBERTモデルのパフォーマンスは基本的にBERT ベース モデルと同等であることが示されています。GLUEベンチマーク データセットのテスト結果では TinyBERTモデル77.0% のスコア達成しており、これは BERTモデル79.5% のスコアとそれほど変わりません明らかに、これは素晴らしい成果です!最後に、量子化やプルーニングなどの他の一般的な圧縮手法をTinyBERTモデル圧縮アルゴリズムに適用しモデルを小さくすることができます

特に記載のない限り、この記事のすべての画像は著者から提供されたものです

参考文献

  • TinyBERT : 自然言語理解のための BERT の抽出

翻訳者紹介

Zhu Xianzhong 氏は、51CTO のコミュニティ エディターであり、51CTO の専門ブロガー兼講師であり、濰坊の大学のコンピューター教師であり、フリーランス プログラミング コミュニティのベテランです。

原題: Large Language Models: TinyBERT — Distilling BERT for NLP 、著者: Vyacheslav Efimov



<<: 

>>:  AIを慎重に導入するためのベストプラクティス

推薦する

...

最高年収は約56万! 2023年の最新のAIGC雇用動向レポートが発表されました

言うまでもなく、ChatGPT が過去 6 か月間でどれほど人気が​​あったかは誰もが知っています。...

シンプルで使いやすいPythonの顔認識アルゴリズムをいくつかまとめます

こんにちは、みんな。今日は、シンプルで使いやすい顔認識アルゴリズムをいくつかまとめます。顔認識はコン...

失業は避けられないのでしょうか? AI時代、人類が将来やるべきことは2つだけ

Sinovation Venturesの李開復氏は「2017年中国企業100%年次大会」で講演し、「...

Llama-2+Mistral+MPT=? 複数の異種大規模モデルの融合が驚くべき結果を示す

LLaMA や Mistral などの大規模言語モデルの成功により、大手企業やスタートアップ企業は独...

...

テンセント・ロボティクス・ラボの第一人者が起業、ヒューマノイドロボット業界に新たな重鎮が加わる

テンセントのRobticsXロボティクス研究所の第一社員が始めたバイオニックロボットプロジェクトがつ...

25年間の素晴らしい実績! MITの科学者はコンピューターに創造性を与え、ロボットの形状を自動設計させる

階段を登れるロボットが必要になったとしたら、このロボットはどのような形状であるべきでしょうか?人間の...

アンサンブル法の簡単な分析

パーソナライズされた推奨システムは、金融、電子商取引、メディア、ライブ放送などの業界における Dag...

なんて想像力豊かなんでしょう! AIは実際にこのようにプレイできます! 同意できない場合は、比較してみてください。

「まあまあ、今のところ需要はないんですが、ありがとうございます。」今週、子供向け番組を「販売」する...

...

...

...

暗号通貨ボットで利益を上げる方法: トレーディングボットの説明

暗号通貨は、その極端な変動性で知られています。市場の価格は非常に急速に変動するため、トレーダーが市場...