図解された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を慎重に導入するためのベストプラクティス

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

...

知能ロボットは世界経済を書き換えるだろうが、全てが良いわけではない

高度に自動化された社会では、人々の反復的な労働のレベルは最小限に抑えられています。人件費が高い分野で...

ChatGPT が「Paper Artifact」プラグインをリリースしました。キーワードなしで2億件の記事を検索、リンクは完全に本物です

ChatGPT には、「Consensus」と呼ばれる新しい「論文検索アーティファクト」プラグインが...

人工知能は新しいシナリオに応用されています: スマートな観光地の知能はどこにありますか?

[[311778]] 5G、人工知能、モノのインターネットなどの技術が徐々に成熟するにつれて、スマ...

バグがあります! PyTorch が AMD CPU 搭載のコンピューターでハングする

機械学習で広く使用されているオープンソースフレームワークである PyTorch は、高速性と高効率性...

生成AI技術:医師の燃え尽き症候群を軽減する新たな希望

若い医師の慢性的な不足により、2034年までに米国全土で124,000件もの求人が発生すると推定され...

インテリジェントオートメーション: ロボティックプロセスオートメーションの未来

RPA は、データ入力やその他の単純作業を効率化することで、さまざまな業界の組織のビジネス プロセス...

...

試験形式がAIベースになったとき、「AI+教育」の関係をどうバランスさせるのか?

[[237498]]画像出典: Visual China私のクラスメイトの劉一木は留学の準備をして...

GenAI の投資が 2024 年にデータセンターにどのような変化をもたらすか

私たちは、日常の習慣から抜け出し、長い間待ち望まれていた自分自身を変えるために、ちょっとしたモチベー...

人工知能はどのように農業の発展を促進できるのでしょうか?

古代より、農業は人類の生存の基盤であり、国家経済の基盤となってきました。しかし、人口の急速な増加、耕...

2021年の世界人工知能産業の市場規模と投資・資金調達状況を分析人工知能は今後スパイラル状に発展する

人工知能業界の主要上場企業:現在、国内の人工知能業界の上場企業は主に百度(BAIDU)、テンセント(...

人工知能はマーケティングをどのように変えるのでしょうか?

今日でも、私たちは人工知能 (AI) を未来のテクノロジーだと考えています。そのため、この分野で起こ...

TSの父による新しいプロジェクトTypechatはフロントエンドの未来を告げる

みなさんこんにちは、カソンです。過去 2 年間、フロントエンド コミュニティ全体が主に 2 つの理由...

日本メディア:中国は人工知能の分野で米国を追い越している

日本経済新聞は8日、中国が人工知能の分野で米国を追い越しつつあるとする記事を掲載した。データによれば...