ホームページ > 記事 > テクノロジー周辺機器 > プリンストン・チェン・ダンチー: 「大きなモデル」を小さくする方法
「大規模なモデルをより小さくする」これは、多くの言語モデル研究者の学術的追求です。大規模なモデルの高価な環境とトレーニング コストを考慮して、Chen Danqi 氏は次のように述べています。知源会議で講演 「大型モデルの小型化」と題した特別報告が清源学術年次総会で発表されました。このレポートは、メモリ拡張に基づく TRIME アルゴリズムと、粗粒および細粒結合プルーニングとレイヤーごとの蒸留に基づく CofiPruning アルゴリズムに焦点を当てています。前者は、モデル構造を変更することなく、言語モデルの複雑さと検索速度の利点を考慮でき、後者は、下流のタスクの精度を確保しながら、より高速な処理速度とより小さなモデル構造を実現できます。
#Chen Danqi 助教授、プリンストン大学コンピュータ サイエンス学部
#Chen Danqi は 2012 年生まれ。2018 年に清華大学八尾クラスを卒業し、2018 年にスタンフォード大学でコンピュータ サイエンスの博士号を取得しました。スタンフォード大学の言語学およびコンピュータ サイエンスの教授であるクリストファー マニング氏に師事しました。
近年、自然言語処理の分野は、急速に大規模な言語モデルに支配されつつあります。 GPT 3 の登場以来、言語モデルのサイズは飛躍的に増大しました。大手テクノロジー企業は、ますます大規模な言語モデルをリリースし続けています。最近、Meta AI は OPT 言語モデル (1,750 億個のパラメーターを含む大規模な言語モデル) をリリースし、ソース コードとモデル パラメーターを一般に公開しました。
研究者が大規模言語モデルを賞賛する理由は、その優れた学習能力とパフォーマンスにありますが、人々は大規模言語に満足していません。ブラック ボックスの性質はまだよく理解されていません。質問を言語モデルに入力し、言語モデルを通じて段階的に推論することで、計算問題の答えを導き出すなど、非常に複雑な推論問題を解決できます。しかし同時に、大規模言語モデルにはリスクがあり、特に環境コストと経済コストが高くなります。たとえば、GPT-3 などの大規模言語モデルのエネルギー消費量と二酸化炭素排出量は驚異的です。 大規模な言語モデルと膨大な数のパラメーターの高価なトレーニングという問題に直面しているため、Chen Dan のチームは、学術研究を通じて事前トレーニング モデルの計算量を削減し、言語モデルをより効率的なものにしたいと考えています。下位レベルのアプリケーション。この目的のために、チームの 2 つの成果に焦点を当てます。1 つは、TRIME と呼ばれる言語モデルの新しいトレーニング方法であり、もう 1 つは、CofiPruning と呼ばれる、下流のタスクに適した効果的なモデルの枝刈り方法です。
論文アドレス: https: / /arxiv.org/abs/2205.12674
# 従来の言語モデルのトレーニング プロセスは次のとおりです。与えられたドキュメントを Transformer エンコーダに入力して、これらの潜在ベクトルはソフトマックス層に供給され、V 個の単語埋め込みベクトルで構成される行列が出力されます (V は語彙のサイズを表します)。最後に、これらの出力ベクトルを使用して元のテキストを予測し、比較することができます。指定されたドキュメントの標準とそれを比較し、勾配を計算し、勾配の逆伝播を実装します。しかし、このような学習パラダイムでは、(1) 巨大な Transformer エンコーダの学習コストが高くつく、(2) 言語モデルの入力長が固定されており、Transformer の計算量が二乗に増加する、という問題が生じます。 (3) 現在のトレーニング パラダイムは、テキストを固定長のベクトル空間に投影して次の単語を予測することです。このトレーニング パラダイムは実際には言語モデルのボトルネック。
この目的を達成するために、Chen Danqi のチームは新しいトレーニング パラダイム - TRIME を提案しました。これは主にトレーニングにバッチ メモリを使用します。これに基づいて、3 つの共通の同一トレーニング目標が提案されました。関数には、TrimeLM、TrimeLMlong、TrimeLMext があります。 TrimeLM は標準言語モデルの代替として見ることができ、TrimeLMlong は Transformer-XL と同様に長距離テキスト用に設計されており、TrimeLMext は kNN-LM と同様に大規模なデータ ストアを組み合わせています。上記のトレーニング パラダイムの下では、TRIME は最初に入力テキストを として定義し、 はその入力を Transformer エンコーダー に送信し、潜在ベクトル を取得します。 , ソフトマックス層 を通過した後、予測する必要がある次の単語が取得されます . トレーニング パラダイム全体のトレーニング可能なパラメーター と E です。 Chen Danqi チームの研究は、次の 2 つの研究からインスピレーションを受けました: (1) 2017 年に Grave らによって提案された連続キャッシュ アルゴリズム。 このアルゴリズムは、トレーニング プロセス中に共通言語モデルをトレーニングします。; 入力テキストが与えられた場合、推論プロセス中に、最初に指定されたテキストを列挙します。以前に出現したすべての単語と次の単語に等しいすべての単語の位置を予測する必要があり、その後、潜在変数と温度パラメーター間の類似性を使用してキャッシュ分布が計算されます。テスト段階では、言語モデルの分布とキャッシュの分布を線形補間することで、より良い実験結果を得ることができます。
(2) 2020 年に Khandelwal らによって提案された k 近傍言語モデル (kNN-LM) この方法は と一致しています 連続キャッシュ アルゴリズムは類似しています 両者の最大の違いは、kNN-LM がすべてのトレーニング サンプルのデータ ストレージ領域を構築することです テスト フェーズでは、データに対して k 最近傍検索が実行されますデータストレージ領域内で最適な上位 -k データを選択します。
上記 2 つの作業は、実際にはテスト段階でキャッシュ分布と k 最近傍分布のみを使用し、テスト中に継続しただけです。従来の言語モデルでは、推論フェーズ中にキャッシュとデータ ストレージの組み合わせが最適化されません。
さらに、2019 年に提案された Transformer-XL など、注目に値する非常に長いテキスト向けの言語モデル作品もいくつかあります。 2020 年に提案されたメモリ圧縮に基づく Compressive Transformers。
以前に紹介したいくつかの研究に基づいて、Chen Danqi のチームは、バッチ メモリに基づいた言語モデルのトレーニング方法を構築しました。主なアイデアは、同じトレーニング バッチの作業メモリ (作業メモリ) を構築することです。 与えられたテキストから次の単語を予測するタスクについては、TRIME の考え方は対照学習と非常によく似ており、ソフトマックス単語埋め込み行列を使用して次の単語の確率を予測するタスクを考慮するだけではありません。このモジュールでは、トレーニング メモリに表示され、予測する必要がある特定のテキストと同じ単語を含む他のすべてのテキストを考慮します。
したがって、TRIME 全体のトレーニング目的関数には 2 つの部分が含まれます。
(1)出力された Word 埋め込み行列予測タスクに基づきます。
(2) トレーニング メモリ (トレーニング メモリ) で予測される同じ単語テキストの類似性を共有します。類似性を測定する必要があるベクトル表現は最終的なメモリに渡されます。フィードフォワード層 入力、スケーリングされたドット積を使用して、ベクトルの類似性を測定します。
アルゴリズムは、最終的にトレーニングされたネットワークが最終的な予測単語をできるだけ正確に達成できると同時に、同じ単語を共有するテキストが同じトレーニングで予測されることを期待します。この方法では、すべてのテキスト メモリ表現がバックプロパゲーションを通じて実装され、エンドツーエンドのニューラル ネットワーク学習が実現されます。このアルゴリズムの実装アイデアは、2020 年に提案された高密度検索から主にインスピレーションを得ています。 高密度検索では、トレーニング段階でクエリと肯定的に関連するドキュメントが整列され、同じバッチ内のドキュメントが否定的なサンプルとして使用され、大量のデータからデータが抽出されます。推論フェーズ: 保管領域から関連文書を取得します。
#TRIME の推論フェーズはトレーニング プロセスとほぼ同じです。唯一の違いは、ローカル メモリを含む異なるテスト メモリが使用される可能性があることです。 . 、長期記憶(ロングタームメモリ)と外部記憶(外部メモリ)です。ローカル記憶とは、現在のセグメントに出現し、アテンション メカニズムによってベクトル化されたすべての単語を指します。長期記憶とは、入力長の制限により直接取得できないが、取得されるテキストと同じ文書に由来するテキスト表現を指します。メモリとは、すべてのトレーニング サンプルまたは追加のコーパスを保存する大規模なデータ ストレージ領域を指します。
トレーニング フェーズとテスト フェーズの間の不一致を最小限に抑えるには、特定のデータ処理戦略を採用してトレーニングをより適切に構築する必要があります。メモリ。ローカル メモリは同じデータ フラグメント内の以前のトークンを参照するため、使用コストが非常に安くなります。ランダム サンプリング バッチ処理を使用すると、トレーニング フェーズとテスト フェーズで同時にローカル メモリを直接利用できるため、ローカル メモリに基づいた TrimeLM モデルの基本バージョンが得られます。
# 長期記憶は、同じ文書の前の断片にあるタグを指し、同じ文書の前の断片に依存する必要があります。この目的のために、同じ文書内の連続したセグメント (連続セグメント) が同じトレーニング バッチに入れられ、その結果、集合的長期記憶の TrimeLMlong モデルが作成されます。#外部メモリは、大規模なデータ ストアと組み合わせて取得する必要があります。この目的のために、BM25 を使用してトレーニング データ内の類似したセグメントを同じトレーニング バッチに入れることができます。これにより、外部メモリと結合された TrimeLMext モデルが作成されます。
要約すると、従来の言語モデルはトレーニング フェーズとテスト フェーズでメモリを使用しません。継続的キャッシュ手法はテスト フェーズでローカル メモリまたは長期メモリのみを使用します。k 最近傍言語モデルはテストフェーズでメモリを使用します 外部メモリ、TRIME アルゴリズムの 3 つの言語モデルはすべて、トレーニングフェーズとテストフェーズでメモリ強化手法を使用します その中で、TrimeLM はトレーニングフェーズとテストフェーズの両方でローカルメモリを使用しますTrimeLMlong はトレーニング フェーズで同じドキュメントの連続処理をターゲットとします。フラグメントはトレーニングのために同じバッチに入れられ、テスト フェーズではローカル メモリと長期メモリが結合されます。TrimeLMext はトレーニングのために同じバッチに入れられます。トレーニング段階では同様の文書を検索し、テスト段階ではローカル記憶、長期記憶、外部記憶を組み合わせます。
#実験段階では、WikiText-103 データセットでモデル パラメーター 247M とスライス長 3072 をテストする場合、 TRIME アルゴリズム どちらのバージョンの言語モデルも、従来の Transformer よりも優れたパープレキシティ効果を達成できます。その中で、実際の距離に基づく TrimeLMext モデルは最良の実験結果を達成できます。同時に、TrimeLM と TrimeLMlong は、複雑さと検索速度の利点を持ちながら、従来の Transformer に近い検索速度を維持することもできます。
モデル パラメーター 150M とスライス長 150 を WikiText-103 データ セットでテストすると、TrimeLMlong が同じ連続フラグメントをターゲットにしていることがわかります。のドキュメントが同じトレーニング バッチに入れられ、ローカル メモリと長期メモリがテスト フェーズで結合されます。したがって、スライスの長さはわずか 150 ですが、テスト フェーズで実際に利用可能なデータは 15,000 に達する可能性があります。実験結果は他のベースライン モデルよりもはるかに優れています。
文字レベルの言語モデルの構築では、TRIME アルゴリズムに基づく言語モデルも、enwik8 データ セットで最良の実験結果を達成しました。機械翻訳のアプリケーションタスクである TrimeMT_ext も、ベースラインモデルを超える実験結果を達成しました。
要約すると、TRIME アルゴリズムに基づく言語モデルは 3 つのメモリ構築方法を採用し、同じバッチ内の関連データを最大限に活用します。拡張では、大量の計算コストを導入することなくメモリが導入され、モデルの全体的な構造も変更されず、他のベースライン モデルと比較して、より良い実験結果が得られました。
Chen Danqi は検索ベースの言語モデルにも焦点を当てました。実際、TrimeLMext は k 最近傍言語モデルの改良版と見なすことができますが、推論プロセスではこれらの言語モデルが2 つのアルゴリズム 他のベースライン モデルと比較すると、10 ~ 60 倍近く遅く、これは明らかに許容できないことです。 Chen Danqi 氏は、検索ベースの言語モデルの今後の開発の方向性の 1 つとして、最近傍検索の計算コストを削減するために、より小さな検索エンコーダーとより大きなデータ記憶領域を使用できるかどうかを指摘しました。
従来の言語モデルと比較すると、検索ベースの言語モデルには大きな利点があります。たとえば、検索ベースの言語モデルはより適切に更新および維持できますが、従来の言語モデルでは動的を実現できません。以前の知識をトレーニングに使用するため、知識が更新されますが、同時に、検索ベースの言語モデルは、プライバシーに敏感な分野でも有効に活用できます。検索ベースの言語モデルをより有効に活用する方法について、教師の Chen Danqi 氏は、微調整、プロンプト、またはコンテキスト内学習を使用して解決策を支援できると考えています。
文書アドレス: https://arxiv.org/abs/2204.00408 モデル圧縮テクノロジは、大規模な言語モデルで広く使用されており、より小さなモデルを下流のアプリケーションに迅速に適応させることができます。その中で、従来の主流のモデル圧縮方法は、蒸留 (蒸留) と枝刈り (プルーニング) です。蒸留には、多くの場合、固定の学生モデルを事前に定義する必要があります。この学生モデルは通常、ランダムに初期化され、知識が教師モデルから学生モデルに転送されて、知識の蒸留が行われます。 たとえば、BERT の元のバージョンから開始して、一般的な蒸留の後、つまりラベルのない多数のコーパスでトレーニングした後、TinyBERT4 の基本バージョンを取得できます。 TinyBERT4 の基本バージョンである微調整された TinyBERT4 も、タスク駆動蒸留法によって取得でき、最終モデルは、わずかな精度を犠牲にして、元の BERT モデルよりも小さく高速になります。ただし、蒸留に基づくこの方法には、いくつかの欠点もあります。たとえば、さまざまなダウンストリーム タスクでは、モデル アーキテクチャが固定されることがよくありますが、同時に、ラベルのないデータを使用して最初からトレーニングする必要があり、計算コストが高すぎます。 #枝刈りの場合、多くの場合、教師モデルから開始して、元のモデルから無関係な部分を継続的に削除する必要があります。 2019年に提案された非構造化枝刈りは、より小さなモデルを取得できますが、実行速度の向上はほとんどありません。一方、構造化枝刈りは、2021年などにフィードフォワード層などのパラメータグループを削除することにより、実際のアプリケーションで速度の向上を達成します。提案されたブロック枝刈りは、2〜3倍の速度を達成できます改善。 従来の蒸留および枝刈り方法の限界に対処するために、Chen Danqi のチームは CofiPruning と呼ばれるアルゴリズムを提案しました。粗粒度のユニットと細粒度のユニットを同時にプルーニングし、レイヤーごとの蒸留目的関数を設計して、プルーニングされていないモデルからプルーニングされたモデルに知識を伝達し、最終的には 90 以上を維持できます。 % の精度を実現し、10 倍以上の速度向上を達成し、従来の蒸留方法よりも計算コストが低くなります。 (1) 層全体を枝刈りすることで達成される速度 改善のために、関連研究では、ニューラル ネットワーク層の約 50% を枝刈りできるが、粗粒枝刈りの方が精度に大きな影響を与えることが指摘されています。 (2) ヘッドなどの小さな単位を枝刈りすると柔軟性が向上しますが、実装時の最適化問題が難しくなり、速度の向上はあまり期待できません。 このため、Chen Danqi のチームは、粒度の粗いユニットと粒度の細かいユニットの両方を同時にプルーニングして、両方の粒度を利用できるようにしたいと考えています。さらに、元のモデルからプルーニングされたモデルへのデータ転送の問題を解決するために、CofiPruning は、レイヤーごとの位置合わせ方法を採用して、プルーニング プロセス中に知識を転送します。最終的な目的関数には、蒸留損失とスパース ベースが含まれます。遅れ、長い一日の損失。
#実験段階では、文章分類タスク用の GLUE データセットと質問と回答タスク用の SQuAD1.1 データセットでは、 CofiPruning は、同じ速度とモデル サイズですべての蒸留および枝刈りベースライン メソッドよりも優れたパフォーマンスを発揮することがわかります。
TinyBERT の場合、ユニバーサル蒸留を使用しない場合、実験効果は大幅に低下しますが、ユニバーサル蒸留を使用すると、実験効果は向上しますが、学習時間のコストが非常に高くなります。 CofiPruning アルゴリズムは、ベースライン モデルとほぼ同じ効果を達成できるだけでなく、実行時間と計算コストを大幅に改善し、より少ない計算コストでより高速な処理速度を実現できます。実験によると、粒度の粗いユニットの場合、最初と最後のフィードフォワード層は最大限に保持される一方、中間の層は刈り込まれる可能性が高く、粒度の細かいユニットの場合、上部ニューラルの頭部と中間の次元が削除される可能性が高くなります。ネットワークは剪定される可能性が高くなります。 要約すると、CofiPruning は、粗粒度のユニットと細粒度のユニットを組み合わせてプルーニングする、非常にシンプルで効果的なモデル圧縮アルゴリズムです。レイヤーごとの蒸留の目的関数、構造枝刈りと知識蒸留の 2 つのアルゴリズムの利点を組み合わせて、より高速な処理速度とより小さなモデル構造を実現できます。 Chen Danqi 氏は、モデル圧縮の今後の動向について、GPT-3 のような大規模な言語モデルを枝刈りできるかどうか、上流のタスクを枝刈りできるかどうかにも焦点を当てており、これらは今後注目できる研究アイデアです。 大規模な言語モデルは現在、非常に満足のいく実用的価値を達成していますが、環境コストと経済コストが高価であるためです。 , プライバシーと公平性への懸念、およびリアルタイム更新の難しさにより、大規模な言語モデルにはまだ改善の余地があることがわかります。 Chen Danqi 氏は、将来の言語モデルは大規模な知識ベースとして使用される可能性があると考えています。同時に、将来的には言語モデルの規模を大幅に縮小する必要があります。検索ベースの言語モデルまたはスパース言語モデルが使用される可能性があります。この作業は、研究者が集中的に行う必要がある作業でもあります。
3 概要と展望
以上がプリンストン・チェン・ダンチー: 「大きなモデル」を小さくする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。