学習ノート: 深層学習 (6) - 深層学習に基づく言語モデル

勉強時間:2022.04.22~2022.04.25

5. 深層学習に基づく言語モデル

5.1 NNLM から単語埋め込みへ

言語モデルから単語埋め込みへ Word Embedding. CNN または RNN に基づく一部の構造は、このセクションでは言及されていません。以下を参照してください:ディープ ラーニング NLP のさまざまなモデルとアプリケーションの概要.

5.1.1 ニューラル ネットワーク言語モデル NNLM

2003 年に誕生したニューラル ネットワーク言語モデル (NNLM) は、2013 年に発火しました。

NNLM は依然として確率言語モデルであり、ニューラル ネットワークを使用して確率言語モデルの各パラメーターを計算します。N-gram モデルと同じことは、P ( X n ∣ X 1 n − 1 ) P(X_n|X_1^{n-1})を求めることです。P ( XnX1n 1)、NNML はテキストを入力し、次の単語を予測することによってモデルを構築します。MLP+tanh+softmax モデルが使用され、クロスエントロピーが損失関数として使用され、バックプロパゲーション アルゴリズムがトレーニングに使用されます。

ここに画像の説明を挿入

モデル説明:

  • 入力層: コンテキスト (w) の各単語を長さ m の単語ベクトルにマップします (長さはトレーナーによって指定され、通常は tf.random_normal を使用して nxm の行列をランダムに初期化します)。単語ベクトルは最初はランダムで、ハイパーパラメータでもあります ネットワークトレーニングに参加してください。
  • ランダムな初期化を使用して∣ m ∣ × N |m|×Nを作成します×サイズNのルックアップ テーブル
  • context(w): N-gram が足し算として取る単語の数と同様に、コンテキスト ウィンドウの長さと呼ぶことができます。たとえば、コンテキスト ウィンドウの長さはc = 3 c=3 です。c=3、次にループして 4 つの単語を取得します。最初の 3 つが特徴値で、最後の 1 つがターゲット値です。
  • プロジェクション レイヤー: ターゲット w の特徴ベクトルとして、すべてのコンテキスト アイテムを長いベクトルに連結します。長さはm ( n − 1 ) m(n-1)m ( n1 ) ;
  • 隠し層: スプライスされたベクトルは、サイズ h の隠し層を通過し、論文では tanh 活性化関数が使用されます。
  • 出力層: 最終的な出力は、softmax を介してすべての n 単語のサイズ確率分布を出力します。

欠陥:

  • 計算の複雑さが大きすぎて、多くのパラメータがあります (word2vec は改良された方法です); それでも N のサイズに制限されます. N の数を制限しないのが最善です. RNN の自然な構造はシーケンスの前後の長さに依存するため、ネットワークの RNNLM が解になります。
  • モデルが十分に最適化されていない、出力カテゴリが多すぎる、トレーニングが遅すぎる、自己回帰言語モデルが次の情報を取得できない、解決策が早い、アプリケーションが少ない、一般的な python ツールが統合されない。

5.1.2 再帰型ニューラル ネットワークに基づく言語モデル RNNLM

リカレント ニューラル ネットワーク言語モデル、RNNLM。

RNN は文脈に応じて次の単語の確率を予測するモデルを作成するために導入されています. したがって、将来のある文 S の確率を予測したい場合は、モデルに従って P を複数回計算できます。そしてそれらを掛けて文の確率を得る. . 固有の構造は、モデル入力の長さを人為的に制限することなく、任意の長さのシーケンスの依存関係を処理できます。欠点は、計算とトレーニングに時間がかかることです。

5.1.3 Word2Vec

Word2VecはGoogleが2013年にリリースしたツールで、単語ベクトルを生成するモデル群とも言えます。このツールには主に、 skip-gramContinuous bag of words (CBOW) の2 つの単語ベクトル生成モデルと、2 つの効率的なトレーニング (最適化アクセラレーション) メソッド、ネガティブ サンプリング (ネガティブ サンプリング . サンプリング)階層的ソフトマックス (階層的ソフトマックス) が含まれています。 . Word2vec は基本的に次元削減操作です。単語の次元を、ワンホット表現から Word2vec で表現される単語埋め込みに削減します。

Word2vec はコンテキストを考慮するため、以前の Embedding メソッドよりも優れています。以前の Embedding メソッドよりも次元が少ないため、高速です。非常に汎用性が高く、さまざまな NLP タスクで使用できます。ただし、単語とベクトルは 1 対 1 の関係にあるため、多義性の問題は解決できません。word2vec は静的メソッドであり、用途は広いものの、特定のタスクに対して動的に最適化することはできません。

なお、Word2vecは前世代(18年以前)の製品であり、18年以降に最適な結果を得たい場合は、Word Embeddingの方法は使用されなくなっているため、Word2vecは使用しません。

1.単語ベクトルの生成モデル

つまり、Word2Vec が単語ベクトルを計算する方法であり、1 つの計算に使用できる方法は 1 つだけです。

個人的な理解: どちらの方法も基本的には同じ、ネットワーク構造、重みWWWは同じサイズと位置です。

(1) 連続バッグ・オブ・ワードモデル CBOW

核となるアイデアは、文から単語を抜き出し、文脈が分かっているときに抜き出された単語の出現確率を予測することです。

例: {"The", "cat", "over", "the", "puddle"} をコンテキストとして取り、これらの単語から中心的な単語 "jumped" を予測または生成したいと考えています。

CBOW モデルのネットワーク ダイアグラムは次のとおりです。これは単純な 3 層のニューラル ネットワークです (入力層から射影層への非線形変換はありません)。

画像-20220421171000258画像

  • 入力層: 単語ベクトル空間の次元がV × 1 V × 1であると仮定して、入力コンテキスト単語 (単語自体を除く) のワンホット×1、文脈語の数はCCC
  • Hidden/Projection レイヤー: すべてのワンショットは、それぞれ共有入力重みWWで乗算されますW (初期化重み行列WWW N × V N×V N×V行列、NNNは自分で設定した数)、得られたベクトルを足し合わせて中間層ベクトルとし、SizeはN×1 N×1N×1 ;
  • 出力層:N×1隠れ層で計算したN×1N×隠れ層の入力ベクトルとしての1 つのベクトルに、出力重み行列W ' W'W 「 W」'V × NV × N×N行列)、V × 1 V × 1×活性化関数 Softmax を介して最終的に1の出力ベクトルが得られ、V − dim V-dimd imの確率分布。最も高い確率を持つインデックスによって示される単語が、予測された中間単語 (これも 1 つのホット) です。
  • 損失関数: 予測された one hot が実際の one hot と比較され、交差エントロピー損失関数を使用して、勾配降下バックプロパゲーションによってパラメーターWWが更新されます。Wは、トレーニングを通じて最終的に必要になる重み行列でもあります。
(2) スキップグラムモデル

CBOW とは対照的に、Skip-Gram は単語を入力し、そのコンテキスト ワードを予測するようネットワークに要求します。これは、単語を与えて、その前後にどの単語が表示されるかを推測するように求めるのと同じです。

画像-20220421184519068画像

  • 私たちが持っている語彙のサイズはVVですV (1 つのホットの次元)、予測モデル出力のウィンドウ サイズはCCCC=2 RC=2R=2 R、埋め込み単語ベクトルの低次元次元はNN
  • 入力層: 1 単語のワンホット原語ベクトル ( V × 1 V × 1×1 ); 埋め込み単語ベクトル行列は一意であるため、入力層から中間層への重みWWW (単語ベクトル行列、N × VN × VN×V ) は一意であり、共有されています。
  • Hidden/Projection レイヤー: このレイヤーの出力はWWを通過します。W加重行列N × 1 N × 1N×1 ; 隠れ層から出力層への重み行列W' W''V × NV × N×N行列;
  • 出力層: V × CV × Cを得るために行列と重みが乗算されます×C行列の出力は、最終的にソフトマックスによって処理され、すべての単語の 1 つのホット確率形式が取得されます。
  • 損失関数: 同様に、予測された 1 つのホットと実際の 1 つのホットとの比較に従って、クロス エントロピー損失関数を使用して、勾配降下バックプロパゲーションによってパラメーターWWを更新します。W W ′ W' ' . 最終的な重み行列WWWは、探している埋め込み単語ベクトル埋め込み行列

注意すべきことの 1 つは、中心語に対応する複数の文脈語が存在する可能性があるため、ポジティブ サンプルには複数のペア <input_word, output_context1>、<input_word、output_context2> などがあるため、同じコーパス、skip-gram より長いトレーニングcbowより。

2. モデルを最適化するための加速方法

確率値を見つけるためにsoftmaxを使用する場合、語彙全体をトラバースする操作が大きなコーパスになるように、トレーニングごとに語彙の各単語を計算する必要があります(すべての単語をソートしてから最大値を取ります)。 . 計算は非常に時間がかかり、困難になります。したがって、word2vec には、操作を高速化するための 2 つのメカニズム、階層的ソフトマックスとネガティブ サンプリングもあります。

両方の方法を同時に使用する必要はないようです。Word2Vec モデルに階層的 Softmax とネガティブ サンプリングを同時に適用できますか?

(1)階層ソフトマックス

詳細な説明: word2vec の原理 (2) Hierarchical Softmax に基づくモデル

原則: 隠れ層から出力ソフトマックス層への膨大な量の計算を回避するために、ハフマン ツリーを使用して、隠れ層から出力ソフトマックス層へのマッピングを置き換えます。ハフマン ツリーのすべての内部ノードは、前のニューラル ネットワーク射影層のニューロンに似ています。ここで、ルート ノードの単語ベクトルは、射影された単語ベクトルに対応し、すべてのリーフ ノードは、前のニューラル ネットワーク softmax のベクトルに似ています。出力層. , 葉ノードの数は語彙のサイズです.

ハフマン木では、隠れ層から出力層への Softmax マッピングが一度に完了するのではなく、ハフマン木に沿って段階的に完了するため、この Softmax は「Hierarchical Softmax」と呼ばれます。その時間計算量はO ( n ) O(n)O(n)变成了 O ( l o g n ) O(log^n) (ろぐ_ _n )の場合、頻度の高い単語を見つけるのに必要な時間は短くなります。これは、貪欲な最適化の考え方と一致しています。

個人的な理解: 隠れ層から出力層までの作業は、取得した単語ベクトルを対応する値にマッピングして、実際の値と比較することです。

まずはVVでV次元語彙の単語の場合、単語頻度に応じてハフマン木が構築され、単語頻度が高いほどパスが短くなり、コーディング情報が少なくなります。ツリー内のすべてのリーフ ノードはVVV、中間ノードの合計はV − 1 V-1図1に示すように、各葉ノードは、ルートからノードへの固有の最短経路を有する。

ここに画像の説明を挿入画像

「ハフマン木に沿って一歩一歩」するには?word2vecでは二項ロジスティック回帰の手法が採用されており、左の部分木を歩けば負のクラス(ハフマン木コード1)、右の部分木を歩けば負のクラスと規定されています。陽性クラス (ハフマン木) コード 0) です。ポジティブ クラスとネガティブ クラスを区別する方法は、シグモイド関数を使用することです。つまり、
P ( + ) = σ ( xw T θ ) = 1 1 + exw T θ P ( − ) = 1 − P ( + ) P(+ ) = σ (x_w^Tθ) = \frac{1}{1+e^{x_w^Tθ}}\\ P(-) = 1- P(+)P ( + )=s ( xT=1+バツT1P ( - )=1P(+)
其中 x w x_w バツは現在の内部ノードの単語ベクトル、θ θθは、トレーニング サンプルから見つける必要があるロジスティック回帰のモデル パラメーターです。

追加: ハフマン木:

n 個のノード (すべて葉ノードであり、独自の重みを持つ) を持つツリーを構築しようとするとき、構築されたツリーの重み付きパス長が最小である場合、そのツリーは「最適二分木」と呼ばれ、「ハフマン」と呼ばれることもあります。木」または「ハフマンの木」。

ハフマン ツリーを構築する場合、ツリーの重み付けされたパスの長さを最小限に抑えるために、従う必要がある原則は 1 つだけです。つまり、重みが大きいノードほどツリーのルートに近くなります。

(2)ネガティブサンプリング

この部分のソース: word2vec 原則 (3) ネガティブ サンプリングに基づくモデル

ハフマン木を使用するとモデルのトレーニングの効率が向上しますが、トレーニング サンプルの中心となる単語wwがwは非常に珍しい単語なので、長い間ハフマン木をたどる必要があります。ネガティブ サンプリング ネガティブ サンプリングは、毎回neg negモデルは、 n e gの異なる中心的な単語を負の例として使用することでトレーニングできます。これは、Hierarchical Softmax よりも単純なモデル解決方法を採用しています。

たとえば、トレーニング サンプルがあり、中心となる単語はwwです。w 、 2 c 2cの周囲のコンテキストcontext ( w ) context(w)として示される2 c 個の単語文脈( w ) . _ _ _ _ _ _ この中心語 ww のため、確かにcontext(w) context(w)con t e x t ( w )相関が存在するため真の正の例です。Negative Sampling サンプリングでは、neg negネガww _ _w異なるヘッドワードwi , i = 1 , 2 , … , neg w_i,i=1,2,…,neg=1 2 n e g、そのようなcontext ( w ) context(w)context(w) w i w_i フォームネガ ネガn e g実際には存在しない否定的な例。この正の例とn e gの負の例については、バイナリ ロジスティック回帰を実行して、各単語wi w_i対応するモデルパラメータθ i θ_i、および各単語の単語ベクトル。

ネガティブサンプリングを行うには?

  • 語彙のサイズがVVの場合Vの場合、長さ1 11の線分VVV個のコピーがあり、それぞれが語彙の単語に対応しています。もちろん、各単語に対応する線分の長さは異なり、頻度の高い単語に対応する線分は長く、頻度の低い単語に対応する線分は短い。一字一句wwwの線分の長さは、次の式で決まります (word2vec では、分子と分母の両方が 3/4 乗されます)。

len ( w ) = count ( w ) 3 4 ∑ u ∈ vocabcount ( u ) 3 4 len(w) = \frac{count(w)^{\frac{3}{4}}}{\sum_{u∈ vocab}count(u)^{\frac{3}{4}}}レン( w ) _ _=u v o c a bカウント( u ) _ _ _ _43カウント( w ) _ _ _ _43

  • サンプリングする前に、この長さを1 1に設定します1の線分をMMに分割M > V M > Vの場合、M は等しい部分です。M>V、各単語に対応する線分が対応する小さなブロックに分割されることを保証します。そして、M 個のコピーのそれぞれが、特定の単語に対応する線分に該当します。サンプリングするときはNeg negはM位置からサンプリングされますN e gの位置で十分であり、サンプリングされた各位置に対応する線分が属する単語が負の例の単語です。word2vec では、MMMのデフォルト値1 0 8 10^81 08 .

ここに画像の説明を挿入

5.1.4 Context2Vec

Context2Vec (Melamud et al., 2016) は、双方向長短期記憶 (LSTM) を使用して、中心となる単語の前後のコンテキストをエンコードします。

Context2vec の主な目標は、ターゲット単語コンテキストの可変長シーケンス ベクトル表現の一般的なタスクに依存しない埋め込みモデルを学習することです。word2vec の CBOW モデルを利用して、コンテキストを使用してターゲット ワードを予測します。CBOW とは異なり、元のコンテキスト ベクトル平均化操作は双方向 LSTM モデルに置き換えられます。

Context2Vec は、文の埋め込み方法として使用できます. 文を直接入力して、シーケンス情報を含む埋め込み結果を生成できます.

プレビュープレビュー

5.2 事前トレーニング済みモデル: ELMo から GPT&BERT まで

しかし、これまでのところ、Word Embedding を使用した効果は期待したほどではありませんでした。これは、Word Embedding には問題があるためです。各単語は特定の埋め込みベクトル表現のみを持つと想定されており、これは明らかに私たちの言語習慣と一致していません。 , 明らかに同じ単語が異なる意味を持つ場合があるため, つまり、多義性. この現象は中国語と英語の両方に存在します. この問題を解決するために、典型的な 2 段階プロセスのモデルである事前トレーニング済みモデルが登場しました。

初期のプレトレーニング モデルの研究者は、双方向 LSTM を使用した ELMo など、モデル構造について多くのことを試してきたことに言及する必要があります。しかし、Transformer の出現後、研究者の研究の焦点はモデル構造からトレーニング戦略に移行しました。

たとえば、GPT と BERT はどちらも Transformer 構造に基づいています。GPT は Transformer デコーダーに基づいていますが、BERT は Transformer エンコーダーに基づいています。

補足:変圧器

ざっと見下ろすと、その後のモデルは基本的にこのネットワーク構造に基づいている. 見ないわけにはいかないので、ここで一時停止し、関連する知識を最初に追加します. 参照:研究ノート: 深層学習 (7) - Encoder-Decoder から Transformer まで

5.2.1 エルモ

詳細については、 ELMo の詳細な説明NLP ワード ベクトルの記事 (4) ELMoを参照してください

ELMo (Embeddings from Language Models)、論文より: 深い文脈化された単語表現 (深い文脈化された単語表現)、つまり動的に変化する単語ベクトル、2018.3 ワシントン大学。モデル図は次のとおりです。

ここに画像の説明を挿入

ELMo は、RNN ベースの多層双方向 LSTM 言語モデルです (この論文は BiLM と呼ばれる双方向の Bi-LSTM です)。

ELMo は、前方および後方 LSTM の各層の出力を初期単語ベクトルと統合してベクトルを形成します。これは正則化後に Softmax 層に入力され、最終的な出力重みベクトルは ELMo によって出力される単語ベクトルです。

画像

従来の単語ベクトルとは異なり、各単語は 1 つの単語ベクトルのみに対応します。ELMo は事前にトレーニングされた双方向言語モデルを使用し、特定の入力に従って言語モデルからコンテキスト依存の現在の単語表現を取得できます (単語の表現は異なる)、2 層 LSTM を介して 3 つの Embedding 特徴を抽出し、重み付けと合計によって他のタスク (つまり、特徴の融合に基づく) の最終的な埋め込みを取得し、単語ベクトルは動的に生成されます。

前の単語埋め込みは本質的に静的な方法です. いわゆる静的とは, 訓練後に各単語の表現が固定されることを意味します. 後でそれを使用するとき, 新しい文の文脈単語が何であれ, この単語の単語埋め込みではありません 文脈上のシーンが変わると変わります。

ELMO の本質的な考え方は、言語モデルを使用して単語の単語埋め込みを事前に学習することです.このとき、多義語は区別できませんが、それは問題ではありません. 実際に Word Embedding を使用すると、その単語には既に特定のコンテキストが設定されています. このとき、コンテキスト単語のセマンティクスに応じて単語の Word Embedding 表現を調整し、調整された Word Embedding がこのコンテキストでより適切に表現できるようにします. . 特定の意味は、多義性の問題を自然に解決します。

欠点:

  • 特徴抽出器の選択に関しては、特徴を抽出する LSTM の能力は十分に強力ではなく、Transformer (2017 年に提案) よりも比較的弱いです。
  • トレーニング速度が遅く、並列化できない RNN モデルであるため、再帰的に予算を立てることしかできず、並列化できません。
  • スプライシング前方および後方融合特徴を出力する方法は十分ではなく、バート統合の融合特徴方法の方が優れています。
  • これより優れた汎用のトレーニング済み中国語 EMLo 事前トレーニング モデルも、より優れたツールもありません。

5.2.2 GPT

论文: Generative Pre-Trainingによる言語理解の向上(2018.06,OpenAI)。

GPT は主に Transformer の Decoder 部分に基づいていますが、GPT は Decoder のみを使用するため、Encoder-Decoder Muti-Head Attention レイヤーを削除して、構造を少し変更しました。したがって、Encoder の入力レイヤーは必要ありません。特定のモジュール図は次のとおりです。これには、12 個のデコーダーの重ね合わせが含まれています。

画像ここに画像の説明を挿入

GPT は Transformer の Decoder を継承しているため、Decoder の一部の機能は GPT でも使用されます。つまり、双方向ではなく単方向です。ttのモデルタイム ステップtでは、 t − 1 t-1t知らず知らずのうちに1タイムステップと前の出力iiiタイム ステップ以降の出力。詳細は次のとおりです。

ステージ 1: 事前トレーニング済み

  1. 単語ベクトルの埋め込みと位置エンコーディングを重ね合わせます。h 0 Transformer への入力前の h_0時間0単語埋め込みベクトルと位置ベクトルの重ね合わせUUUは単語の 1 つのホット ベクトル、W e W_eは単語埋め込みベクトル行列、W p W_pp位置ベクトルの行列です。

h 0 = U ⋅ W e + W p h_0 = U・W_e + W_p時間0=··+p

  1. Transformer と同様に、Mask を使用して「表示されない」出力をマスクします。このように、GPT は入力データを左から右、または右から左にのみスキャンできます。

ここに画像の説明を挿入

  1. GPT の各層 (合計 12 層) の計算の後、出力が得られます (具体的な計算プロセスは Transformer の場合と同じです) : ] h_t = 変圧器\_block(h_{ l-1}),\l∈[1, t]時間t=tran s for m e r _ b lock ( h _ _ _ _ _ _ _ _l 1)  lε[ 1 ,t ]

  2. 最後に、現在の単語の確率を Softmax で出力します: P ( u ) = softmax ( ht W e T ) P(u) = softmax(h_tW^T_e)P (ユー)=ソフトm a x ( h _ _ _tT

  3. 损失函数为: L 1 ( U ) = ∑ i l o g P ( u i ∣ u i − k , … , u i − 1 ; Θ ) L_1(U) = \sum_ilogP(u_i|u_{i-k},…,u_{i-1};Θ) L1()=ログP ( u _ _i ki 1;Θ)。其中,给定句子 U = [ u 1 , u 2 , … , u n ] U=[u_1, u_2, …, u_n] =[12n]kkkはコンテキスト ウィンドウのサイズ、PPPは条件付き確率、Θ ΘΘは条件付き確率のパラメーターです。次に、バックプロパゲーション、確率的勾配降下 SGD によるパラメーターの更新。

ステージ 2: 微調整

  • つまり、モデルは特定のダウンストリーム タスクに従って微調整されます。例えば、以下の図に示すような下流のタスクがあります (主に論文で紹介されている: 分類タスク、推論タスク、類似性分析、および質問応答タスク)。

ここに画像の説明を挿入

  • 微調整方法は、タスクの種類によって異なります。

    • 分類タスク: 入力はテキストで、最後の単語のベクトルは微調整の入力として直接使用され、最終的な分類結果が得られます。
    • 推論タスク: 入力はアプリオリ + デリミタ + 仮説であり、最後の単語のベクトルが微調整の入力として直接使用され、最終的な分類結果 (つまり、それが真かどうか) が取得されます。
    • 類似性分析: 入力は、2 つの文が反転され、取得された最後の単語のベクトルが追加され、次に Linear が実行されて、最終的な分類結果 (つまり、類似しているかどうか) が取得されます。
    • 質問と回答のタスク/複数の選択肢のタスク: 入力は、コンテキストと質問を組み合わせたもので、さらに複数の回答があり、中間も区切り記号で区切られている場合、各回答によって形成される文の最後の単語のベクトルはを微調整の入力として使用し、次に Linear を使用して、複数の Linear の結果に対してソフトマックスを実行し、最も確率の高い単語を出力として取得します。
  • 微調整プロセスには教師あり学習が採用されており、具体的な手順は次のとおりです。

    1. ラベル付けされたデータセットCCがあるとしますC、つまり、各トークン シーケンスx 1 、x 2 、…、xmx^1、x^2、…、x^mバツ1 バツ2 バツmにはラベルyyy、トークン シーケンスは微調整のための入力です。
    2. トークン シーケンスを Transformer モデルに入力して最終的な出力状態を取得し、出力を線形層 Linear に追加して出力を処理し、ラベルyyを予測しますy . 式は次のとおりです。P ( y ∣ x 1 , x 2 , … , xm ) = softmax ( hlm ⋅ W y ) P(y|x^1,x^2,…,x^m) = softmax(h^m_l · W_y)P ( y x1 バツ2 バツm )=ソフトm a x ( h _ _ _lメートル),其中 W y W_y Linearの重みです。
    3. 損失関数は次のとおりです。L 2 ( C ) = ∑ ( z , y ) log P ( y ∣ x 1 , x 2 , … , xm ) L_2(C) = \sum_{(z,y)}logP(y| x ^1,x^2,…,x^m)L2()=( z , y )P ( y x _1 バツ2 バツm ). ただし、GPT は、微調整時に事前トレーニング済み言語モデルの損失関数も考慮するため (これにより、モデルがより一般化され、収束が加速されます)、最適化される最終的な関数は次のようになります:L 3 ( C ) = L 2 ( C ) + λ L 1 ( C ) L_3(C) = L_2(C) + λL_1(C)L3()=L2()+λ L1( C )、ここでλ λλは重みを表します。更新パラメータも逆伝播されます。

GPT の主な欠点は、一方向言語モデルであることです. 双方向言語モデルに変換される場合、Bert とはあまり関係がありません. さらに、GPT は微調整段階で入力データの構造を調整する必要もあります。

補足: GPT-2 & GPT-3

①GPT-2:

GPT-2はGPTをベースにバージョンアップしたもので、基本的な構造や内容は大きく変わっていません(2019.02)。構造図は次のとおりです。

画像

GPT-2 と GPT の主な違いは次のとおりです。

  1. 微調整ステップ: さまざまなタスクのモデリングを微調整する代わりに、モデルが実行する必要があるタスクを定義せず、実行する必要があるタスクをモデルが自動的に識別します。学習は一般的な NLP モデルです。
  2. データセットを増やす: GPT-2 は、データセットを構成するために、より広く、より多くのコーパスを収集します。データセットには 40G のサイズの 800 万の Web ページが含まれており、データ (タスク情報を含むデータ) はすべてフィルター処理された高品質の Web ページです。
  3. ネットワーク パラメーターの増加: GPT-2 では Transformer のスタック レイヤー数が 48 レイヤー (GPT2: 12 レイヤー、GPT2-XL: 48 レイヤー) に増加し、隠れ層のテンソル次元は 1600 次元になり、パラメーターの数は 1.5 に達しました。 10 億 (1558M、Bert large は 3 億 4000 万);
  4. トランスフォーマーの調整: 各サブブロックの前にレイヤー正規化レイヤーを標準化し、最後の Self-Attention の後に追加のレイヤー正規化を追加し、残りのレイヤーのパラメーター初期化をネットワークの深さに応じて調整します。
  5. GPT-2 は語彙を 50,000 に増やします (Bert English は 30,000、中国語は 20,000); 埋め込みサイズは 768、1024、1280、1600 を含みます; 処理できる単語シーケンスの長さは GPT で 512 から 1024 に増加します; batch_size 512 に増加します。

②GPT-3:

论文:言語モデルは少数の学習者(2020.5)。

GPT-3 がやりたいことは、下流のタスク (ゼロショット学習、0 サンプル) を直接解決するために使用したい微調整部分を削除することです。主な内容は次のとおりです。

  1. 1,750 億のパラメーター。

    175 億個のパラメーターを保存するには、少なくとも 700G のハードディスクが必要で、その 10 倍の容量が必要です。パラメーターの数が多すぎるため、GPT-3 を自分でトレーニングするには、1200 万ドルの費用がかかります。

  2. GPT-3 には、非スパース モデルの 10 倍のパラメータがあります (スパース モデルとは、多くの重みが 0 であることを意味し、スパースです)。

  3. パラメータが非常に大きく、パラメータの調整が難しいため、サブタスクを実行するときに勾配を計算する必要はありません。

    • 微調整: 事前トレーニング + トレーニング サンプルは、損失更新勾配を計算し、予測します。モデル パラメータが更新されます。
    • ゼロショット: 事前トレーニング + タスクの説明 + 迅速で直接的な予測。モデル パラメータは更新されません。
    • ワンショット: 事前トレーニング + タスクの説明 + 例 + プロンプト、予測。モデル パラメータは更新されません。
    • いくつかのショット: 事前トレーニング + タスクの説明 + 例 + プロンプト、予測。モデル パラメータは更新されません。

5.2.3バート

BERT、Bidirectional Encoder Representations from Transformers (2018.10、Google) は、単語ベクトル トレーニング用の Transformer のエンコーダ部分に基づいています。論文「BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding」(Deep Bidirectional Transformer Pre-training Language Model) から。同様に、BERT も 2 つの段階に分けられます: 事前トレーニングとダウンストリーム タスクの微調整. その構造フレームワークは次のとおりです。

画像

モデルの核となるのは、BERT Layer の複数の層で構成される BERT Encoder であり、各層の BERT Layer は、実際には Transformer の Encoder 層です。

BRET の 2 つの異なるスケール:

BRET-Base: 12 層の Transformer Encoder、768 の隠れ層ユニット (出力 768 次元) および 12 のヘッド (Mutil-Head Attention)、合計パラメーター サイズ 110M (1 億 1000 万)。

BRET-Large: 24 層の Transformer Encoder、1024 の隠れ層ユニット (出力 1024 次元) および 16 のヘッド (Mutil-Head Attention)、パラメーターの総数は 340M (3 億 4000 万) です。

BERT とその亜種の概要:

モデル名 隠れ層の数 テンソル次元 頭数 パラメータ量 トレーニングコーパス
バートベースケースなし 12 768 12 110M 小文字の英文
バート・ラージ・アンケースド 24 1024 16 340M 小文字の英文
バートベースケース 12 768 12 110M 大文字と小文字を区別しない英語のテキスト
バート・ラージケース 24 1024 16 340M 大文字と小文字を区別しない英語のテキスト
Bert-base-multilingual-uncased 12 768 12 110M 102 言語の小文字テキスト
Bert-large-multilingual-uncased 24 1024 16 340M 102 言語の小文字テキスト
バートベース中国語 12 768 12 110M 簡体字および繁体字中国語のテキスト

1. ステージ 1: 事前トレーニング

BERT の事前トレーニング プロセスは、主に MLM (Mask Language Model、マスキング言語モデル <cloze>) と NSP (Next Sentence Prediction、文ペア予測) の 2 つの部分に分けられます。Mask LM はコンテキスト依存の双方向の特徴表現を取得でき、NSP は文または段落のマッチング タスクの処理に優れているため、マルチタスク トレーニングの目標を達成できます。

マスク言語モデル

BERT の MASK メソッド (自動エンコード) は、Transformer (自動回帰) と同じではありません。MLM は、入力テキスト シーケンスをランダムにマスクし、コンテキストからマスクが必要な単語を予測することで、双方向の問題を解決します。具体的な方法は次のとおりです。

  1. 入力文のトークンは 15% の確率でランダムに選択されます。

  2. 選択したトークンは 80% の確率[MASK]で置き換えられ、10% の確率で別のトークンに置き換えられToken、最後の 10% は変更されません。

    例えば、「私の犬は毛深い」という文章の場合、15%の確率で「毛深い」がMASKとして選択されます。MASKをすると、80%の確率で[MASK]「hairy」が「apple」に置き換わり、10%の確率で「hairy」が「apple」に置き換わり、10%の確率で「hairy」がそのまま残る。

ステップ 2 モデルの一般化能力を向上させるために、後続の微調整段階ではマスク操作を行わないため、事前の入力分布の不一致の問題によって引き起こされるモデル表現能力の低下の現象を軽減するために、トレーニングと微調整の段階で、この戦略が採用されています。

次の文の予測

NSP のタスクの説明は次のとおりです: 記事内の 2 つの文が与えられた場合、2 番目の文がテキスト内の最初の文の直後にあるかどうかを判断します (記事内で前後にあるかどうかを判断するために 2 つの文のみが考慮されます)。具体的な方法は次のとおりです。

  1. 正のサンプルとして、テキスト コーパスから正しい文のペア (つまり、文 2 は文 1 の次の文) の 50% をランダムに選択します。
  2. テキスト コーパスから間違った文のペアの 50% をランダムに選択します (つまり、文 1 の次の文ではなく、文 2 がコーパスでランダムに選択されます)。
  3. ポジティブ サンプルとネガティブ サンプルはトレーニングの入力データとして使用され、MLM タスクと組み合わせて使用​​され、出力はCLSバイナリ分類に使用されて、2 つの文が前後で接続されているかどうかが判断されます。

2.モデル入力

BERT の入力は線形シーケンスであり, 単文テキストと文ペア テキストをサポートします. 文の始まりは[CLS]記号で表現され, 文の終わりは記号で表現されます[SEP]. 文ペアの場合、文の間に記号が追加され[SEP]ます。(BERT のトークン入力の長さは 512 を超えることはできません。つまり、文の最大長と[CLS]合計[SEP]が 512 を超えることはできません)

ネットワークで使われている Transformer には Self-Attention があるため、各ポジションは他のポジション ワードの情報を学習できるため、この時点では同じです。多かれ少なかれすべてが可能であり、1 つのトークンの後に 1 つ[CLS].[SEP][SEP]

最終的な入力 Embedding は、以下に示すように、Token Embeddings (単語ベクトル)、Segment Embeddings (文ベクトル)、および Position Embeddings (位置ベクトル) で構成されます。

画像
  • トークンの埋め込み: 最も伝統的な単語ベクトルは、以前の言語モデルの入力と同様に、トークンを高次元空間に埋め込んだ結果です。

    BERT は、新しいトークン化 (単語セグメンテーション) 戦略を採用しています。

    • 以前の戦略は次のとおりです。単語レベル (文を単語に分割)、文字レベル (文字に分割)。
    • BERT はサブワードを使用します。つまり、一般的な単語を分解するのではなく、使用頻度の低い単語を一般的に使用されるサブワードに分解します。たとえば、「迷惑な」は珍しい単語と見なされる場合があり、「迷惑」と「##ly」に分類される可能性があります (場合によっては、「annoy」、「##ing」、および「##ly」)。また、これまで見たことのない単語 (OOV 問題、語彙不足) をモデルがある程度処理できるようにもなります。
  • セグメントの埋め込み: このベクトルは、テキストのグローバルな意味情報を記述するために使用され、単語がどの文に属しているかを示します (NSP には 2 つの文が必要です)。

  • Position Embeddings: Transformer (プリセット) とは異なり、学習された Embedding ベクトルです。

    BERT では、"Hello world" と "Hi there" という 2 つの文がある場合、"Hello" と "Hi" はまったく同じ Position Embedding になり、"world" と "there" も同じ Position Embedding になります。

    しかし、「I think, したがって I am」については、最初の「I」と 2 番目の「I」の Position Embedding が異なります。

Token、Segment、Position Embeddings はすべて学習によって自動的に取得されます。2 文の入力を例にとると、Embedding の各層とその次元 (BRET-Base の単語ベクトルは 768 次元) は次のように表されます。

画像-20201217152751053

3. ステージ 2: 微調整

この段階での実践はGPTと同じです。このホワイトペーパーでは、次の 4 種類のダウンストリーム タスクについて言及しています。

画像-20220425113025724
  • 文ペア分類: テキスト照合タスクの入力は 2 つの異なる文です. 結局, それはまだ 2 カテゴリの問題です. BERT で実装する場合, 基本的なコードとプロセスは分類問題と一致しています.全結合層の出力次元は 2 です。ただし、実際のエンジニアリング アプリケーションでは、テキスト マッチング問題に BERT を直接使用すると、最終的な効果が良くない場合があります. 一般に、ツイン ネットワークに似た構造を使用してテキスト マッチング問題を解決できます。探索した。
  • テキスト分類 (単一文分類): テキスト分類は BERT が最も得意とする分野です. 最も基本的な方法は、事前トレーニング済みの BERT をロードし、分類のために出力 [CLS] に完全に接続されたレイヤーを追加することです. の出力の次元全結合層は、分類したいカテゴリの数です。もちろん、対応する目的を達成するために、分類の前に別のネットワーク層を追加することもできます。
  • 抽出的質問応答: BERT には生成する機能がないため、抽出的質問と回答しか実行できないことに注意してください。この答えは、実際には記事内の答えを見つけるプロセスであり、記事内の答えの開始位置と終了位置の ID を予測することによってトレーニングが実行されます。
  • シーケンスのタグ付け (1 文のタグ付け): 一般的な単語の切り出しタスクなので、品詞のタグ付けと名前の本文の認識タスクはすべてシーケンスのタグ付けの問題です。このタイプの問題では、入力文の各トークンがそのラベルを予測する必要があるため、シーケンスのラベル付けは単一文のマルチラベル分類タスクであり、BERT モデルのすべての出力 (特殊記号を除く) は予測結果を与える必要があります。

移行戦略: BERT 事前トレーニング モデルを取得した後、次の 2 つの選択肢があります: ① BERT をダウンストリーム タスクで微調整するのではなく、特徴抽出器または文ベクトルとして使用する ② BERT をダウンストリーム タスクでダウンストリーム ビジネスのメイン モデルとして使用する中程度の微調整。

4. 総括評価

Bert は ELMO、GPT、CBOW を利用しており、主に Masked language model と NSP を提案していますが、ここで NSP は基本的に全体の状況に影響を与えず、MLM は CBOW のアイデアを利用しています。Bert の最大のハイライトは、その優れた効果と強力な普遍性です. ほとんどすべての NLP タスクは、Bert の 2 段階のソリューションを適用でき、その効果は大幅に向上するはずです. 欠陥は次のとおりです。

  1. ハードウェア リソースの膨大な消費と長いトレーニング時間。
  2. 事前トレーニング中と微調整中の入力に一貫性がなく、事前トレーニングが使用され[MASK]、微調整中のモデルのパフォーマンスに影響します。
  3. 同じ文型を持つ単語の意味上の区別は明らかではありません。
  4. 生成タスクには適していません。
  5. 非常に長いテキストにはあまり適しておらず、文書レベルの NLP タスクには使用できません. 文および段落レベルのタスクにのみ適しています.

5.2.4 事前トレーニングの基本パラダイム

GPT と BERT は、それぞれ "自動回帰モデル" (AR) と "自動エンコード モデル" (AE) と呼ばれる 2 つの最も基本的な事前トレーニング パラダイムを表します。さまざまな種類のダウンストリーム タスクに適しています。

ここに画像の説明を挿入

その中で、GPT はテキスト生成タスクにより適していることが多く、BERT はテキスト理解タスクにより適していることが多く、どちらも Transformer 構造のいくつかのパラメーターに基づいています。

  • 自己回帰モデル: 読み取ったテキストの内容に基づいて次の単語を予測する古典的な言語モデリング タスク。たとえば、Transformer のデコーダーはトレーニング フェーズでマスキング メカニズムを適用するため、注意力の計算プロセス中に特定の単語の前のコンテンツのみが表示され、その後ろのコンテンツは表示されません。このような事前トレーニング済みのモデルは微調整でき、多くのダウンストリーム タスクで優れた結果を達成できますが、最も自然なアプリケーションはテキスト生成です。このモデルの代表がGPTシリーズモデルです。
  • 自動エンコード モデル: 入力テキストを何らかの方法 (Bert で入力テキストをマスキングするなど) で破棄し、元のテキストの再構築を試みることにより、事前トレーニングを行います。ある意味では、それらは Transformer のエンコーダーに対応しています。マスクを必要とせず、すべての位置が完全な入力にアクセスできるためです。これらのモデルは、多くの場合、センテンス全体の双方向のエンコードされた表現を構築します。微調整することができ、多くのダウンストリーム タスクで優れた結果を達成できます。その最も自然なアプリケーションは、センテンスの分類またはシーケンスのラベル付けです。このタイプのモデルの典型的な代表は BERT です。

5.3 事前トレーニングモデル: GPT&BERT 後の PTM

5.3.1 開発概要

GPTやBERTを起点に、いくつかの改善スキームが提案されていますが、現在(2021.6)時点での主な改善モデルを下図に示します(「Pre-Trained Models: Past, Present and Future」より)。

画像

GPT および BERT 後の事前トレーニング モデルに関する研究は、次の側面に分けることができます。

1. アーキテクチャ設計を改善する

ユニファイド シーケンス モデリングとコグニティブにヒントを得たアーキテクチャの 2 つの方向性。

  • ユニファイド シーケンス モデル
    • 自己回帰モデリングとオートエンコーダ モデリングの組み合わせ。たとえば、XLNet は事前トレーニングでトークンを並べ替えてから、自己回帰予測パラダイムを適用します。
    • 一般化されたコーデックを適用します。エンコーダー構造 (BERT など) もデコーダー構造 (GPT など) も、可変長の空白のパディングという重要な問題を解決しません。
  • 認知ヒューリスティック アーキテクチャ
    • 作業記憶を維持します。たとえば、Transformer-XL はセグメント レベルの再帰と相対位置のエンコードを導入し、CogQA はマルチホップ読み取りで認知マップを維持することを提案しています。
    • 持続的な長記憶と短記憶。Transformer レイヤーのフィードフォワード ネットワークを大規模なキー値ストレージ ネットワークに置き換えたり、マスクされた事前トレーニングを自己回帰生成に拡張したりします。

2. マルチソース データを活用する

多言語 PTM、マルチモーダル PTM、知識拡張 PTM など、マルチソースの異種データを利用する PTM。

  • より多くのモダリティ: 画像とテキストに加えて、ビデオとオーディオもマルチモーダル事前トレーニングに使用できます。
  • より深い解釈: ディープ ラーニングの視覚化ツールは、マルチモーダル トレーニングの前に解釈に使用できます。
  • より下流のアプリケーション: マルチモーダル前処理は、画像とテキストの取得、画像とテキストの生成、テキストと画像の生成、およびその他の下流のタスクに適用できます。
  • 転移学習: さまざまな言語を処理するマルチモーダル多言語モデルの場合、事前トレーニングには各言語のデータが必要です。

3. 計算効率を改善する

主に、システムレベルの最適化、効率的な学習、モデル圧縮戦略の 3 つの側面に焦点を当てています。

  • システムレベルの最適化: シングルデバイスの最適化、マルチデバイスの最適化。
  • 効率的な学習
    • 効率的なトレーニング方法: バッチ サイズが大きい場合、さまざまなレベルでさまざまな学習率を適応的に使用して、収束速度を高速化します。
    • 効率的なモデル アーキテクチャ: より多くのモデル アーキテクチャ バリアントは、計算の複雑さを軽減し、PTM のトレーニングの効率を向上させることもできます。
  • モデル圧縮
    • パラメータの共有: PTM は、類似のユニット間でパラメータを共有することによって圧縮できます。
    • 知識の蒸留: 小さなモデルをトレーニングして、大きなモデルの動作を再現します。推論用の小さな蒸留モデルでも、メモリ使用量と時間のオーバーヘッドが削減されます。
    • モデルの剪定: 注意層と線形層の重みを剪定して、元のモデルと同等のパフォーマンスを維持しながら、PTM のパラメーターの数を減らします。
    • モデルの量子化: 高精度の浮動小数点パラメーターを低精度の浮動小数点パラメーターに圧縮することを指します。

4. 計算効率

  • データ転送: 効率的な分散型ディープ ラーニング フレームワークを開発します。
  • 並列戦略: 並列戦略の選択では、ニューラル ネットワークの構造とハードウェア構成に応じて、データ並列処理、モデル並列処理、パイプライン並列処理、およびさまざまなハイブリッド並列処理方法がすべて最適に使用されます。
  • 大規模トレーニング: ディープ ラーニング フレームワークでのモデル並列処理とパイプライン並列処理のサポートが不十分であることを考慮して、大規模トレーニング専用のフレームワークが開発されました。
  • ラッパーとプラグイン: 既存のフレームワークの計算操作の間にデータ ルーティング操作を手動で挿入することにより、いくつかの特定のアルゴリズムに特化したさまざまなライブラリを開発します。

5.3.2 XLM

論文:「Cross-lingual Language Model Pretraining」(2019.1 Facebook)

XLM は、BERT に基づいて最適化された言語間言語モデルです。複数の言語間理解 (XLU) ベンチマークで大幅な改善が行われました. 貢献は次のとおりです: ① 言語間表現を学習するための新しい教師なしメソッドの導入; ② 新しい教師付きトレーニング目標の導入, データが利用可能になると、効果(3) クロス言語モデルは、リソースの少ない言語の複雑さを大幅に改善できます。

BERT と比較すると、XLM によって行われる作業は次のとおりです。

  1. Bert がモデル入力として単語または文字を使用する方法を置き換えるために、Byte-Pair Encoding (BPE) エンコード方式 (Subword の方式) が使用されます。

    • まず、各コーパスを個別にサンプリングし、次にサンプリングした各言語のコーパスをつなぎ合わせ、最後に通常の BPE 処理を実行します。テキスト入力をすべての言語で最も一般的なサブワードに分割することで、異なる言語間で共有される語彙を増やします。
  2. 3 つのトレーニング目標が提案されています。最初の 2 つは単一言語データのみを必要とし (教師なしトレーニングの場合)、3 つ目は並列コーパスを必要とします (教師ありトレーニングの場合)。

    • Causal Language Modeling、CLM: 前の単語が与えられた場合に次の単語の確率を与えるために使用されます。
    • Masked Language Modeling、MLM: BERT への入力が文のペアを使用する BERT 事前トレーニングとは異なり、XLM は、文のペアではなく、任意の数の文 (各文は 256 トークンに切り捨てられる) で構成されるテキスト ストリームを使用します。つまり、物理的に隣接する複数の文を文群全体と見なし、2 つの文群を入力ペアとして選択します。
    • 翻訳言語モデリング、TLM: TLM は、単一言語のテキスト ストリームを考慮しない MLM の拡張機能ですが、並列翻訳文を連結します。下の図に示すように、ソース文とターゲット文の両方で一部のトークンがランダムにマスクされています. 英語の文でマスクされたトークンを予測する場合、モデルは英語のトークンだけでなくフランス語の翻訳内容にも気付くことができるため、モデルは、英語とフランス語の表現を揃えるように誘導されます; 特に、モデルは、ソース文がマスクされたトークンを推測するのに不十分な場合に、ターゲット文の文脈情報を活用することができます.

ここに画像の説明を挿入

完全な XLM モデルはトレーニングされ、MLM と TLM の 2 つの戦略と相互作用します。

5.3.3 異なる

論文:「ERNIE: Enhanced Representation through Knowledge Integration」 (2019.4 Baidu)

BERT[Mask]では、エンティティまたはフレーズの代わりに単一の文字が使用され、語彙構造/文法構造は考慮されません. したがって、ERINE は、主に中国語のトレーニングのために、事前トレーニングプロセスでより豊富なセマンティック知識とより多くのセマンティックタスクを利用します.

  • トレーニング前の段階で知識 (つまり、事前に識別されたエンティティ) を導入し、3 つのマスク戦略を導入します。

    • 基本レベルのマスキング: BERT と同様に、サブワードのマスキングでは高レベルのセマンティクスを取得できません。

    • フレーズ レベルのマスキング: 連続するフレーズをマスクします。

    • エンティティ レベルのマスキング: 事前に識別されたエンティティをマスクします。

ここに画像の説明を挿入

  • トレーニング前の段階でフォーラムの対話データを導入します。

    • 対話言語モデル (DLM、対話言語モデル) を使用してクエリ応答対話構造をモデル化し、対話ペアを入力として取り、対話の役割を識別するために対話埋め込みを導入し、対話応答損失 (DRS、対話) を使用します。 Response Loss) を使用して暗黙の対話関係を学習し、モデルの意味表現能力をさらに向上させます。

アーニー 2.0

論文: 「ERNIE 2.0: 言語理解のための継続的な事前トレーニング フレームワーク」 (2019.7 Baidu)

ERNIE 2.0 のアーキテクチャ図は次のとおりです。

ここに画像の説明を挿入

ERNIE 1.0 に基づいて、次の 3 種類の学習タスクを含むマルチタスク学習が事前トレーニング段階で導入されます。

  • 単語認識タスク: 文中の語彙を予測する方法を学びます。
  • 構造認識タスク: 構文レベルの情報を学び、複数の文構造を再構築して並べ替える方法を学びます。
  • Semantic-aware Tasks: 意味レベルで情報を学習し、因果関係、遷移関係、並置関係など、文間の論理的関係を判断することを学びます。

5.3.4 BERT wwm

論文: " Pre-Training with WholeWord Masking for Chinese BERT " (2019.7 Harbin Institute of Technology + Xunfei)、紹介と使用法はChinese-BERT-wwm にあります。

全語マスキング (wwm)、全語マスク/全語マスク。Baidu ERNIE と比較すると、BERT-WWM は、エンティティの単語やフレーズの連続マスクであるだけでなく、中国語の単語を形成できるすべての単語の連続マスクでもあります。具体的な方法は、中国語の場合、完全な単語の一部がマスクされると、同じ単語の他の部分もマスクされます。つまり、同じ単語を構成するすべての漢字がマスクされます。単語マスク。

ここでのマスクとは、単語がラベルに置き換えられる場合に[MASK]限定されず、一般化されたマスク ( に置き換えられる; 元の語彙を維持する; ランダムに別の単語に置き換えられる) を指すことに注意してください。[MASK]

これの目的は次のとおりです。事前トレーニング プロセス中に、モデルは単語の意味情報を学習できます。トレーニング後の単語の埋め込みには、さまざまな中国語 NLP タスクに適した単語の意味情報があります。

その後の関連する改良モデルは、BERT-wwm-ext、RoBERTa-wwm-ext、RoBERTa-wwm-ext-large、RBT3、RBTL3 です。

5.3.5 XLNet

论文:《XLNet: Generalized Autoregressive Pretraining for Language Understanding》(2019.6 CMU+グーグルブレイン)

XLNet は、BERT と GPT の 2 種類の事前トレーニング モデルをベースに改良され、2 種類のモデルの長所をそれぞれ吸収します。主なアイデアは、新しい方法を使用して AR (自己回帰) に基づいた双方向エンコーディングを実現し、GPT の左から右へのモデリングをアウトオブオーダー モデリングに拡張して、GPT が双方向を取得できないという欠点を補うことです。コンテキスト情報。改善点は次のとおりです (具体的には、Google XLNet 原則の解釈)。

  • 順列言語モデリング、順列言語モデル (順列 LM)
    • PLM の本質は、LM 結合確率の複数の分解メカニズムの具現化であり、LM の逐次分解はランダム分解に拡張されますが、各単語の元の位置情報を保存する必要があり、分解方法がトラバースされ、モデル パラメータ予測された単語の文脈を学習することができます。
  • 2 ストリーム自己注意
    • PLM によるターゲット位置情報がない問題を解決します。
  • トランスXL
    • Transformer-XL を使用してより長い距離を学習する

5.3.6 ロベルタ

论文:《RoBERTa: A Robustly Optimized BERT Pretraining Approach》(2019.7.26 Facebook)

RoBERTa モデルは、より堅牢で最適化された BERT モデルです。具体的な調整ポイントは次のとおりです。

  • より多くのトレーニング データ / より大きなバッチ サイズ / より長いトレーニング時間。

    • トレーニング データに関しては、RoBERTa は 160G のトレーニング テキストを使用しますが、BERT は 16G のトレーニング テキストしか使用せず、最大500K 500Kです。500Kステップ. _ _

      また、roberta-base と roberta-large の 2 つのモデルがあります。

      プレビュー
  • ダイナミック マスキング (ダイナミック マスク メカニズム):

    • 動的マスク戦略を使用して、RoBERTa は事前トレーニング済みデータを最初に 10 コピーコピーし、各コピーは異なる静的マスク操作を使用します (つまり、各コピーはマスキング用のトークンの 15% をランダムに選択し、同じ文には 10 個の異なるデータがあります)。各事前トレーニング データに 10 個の異なるマスク データが含まれるようにします。
    • 次に、各データは N/10 エポックでトレーニングされます。これは、これらの N エポックのトレーニング中に各シーケンスでマスク アウトされる単語に相当します。(これらのデータはすべて同じエポックに供給されるわけではなく、異なるエポックに供給されることに注意してください。たとえばdupe_factor=10epoch=40、 の場合、各マスク メソッドはトレーニング中に 4 回使用されます。)
  • NSP なしと入力形式:

    • NSP (次の文の予測) タスクを削除しました。
    • RoBERTaでは全文形式です。次の文の予測をキャンセルするために、各トレーニング サンプルはドキュメントからの連続サンプルです。結論から言うと、効果が良くなることがわかり、NSP タスクは不要であることがわかります。

5.3.7 T5

论文:《Unified Text-to-Text Transformerで転移学習の限界を探る》(2019.10,Google)

T5 (Text-to-Text Transfer Transformer)、統合されたテキストからテキストへのタスク モデル。T5 は Bert に基づいており、従来の Transformer を使用しています. すべての NLP タスクを処理できるようにするために、すべての NLP タスクは統一されたテキストからテキストへの形式に変換され、タスクの入力と出力は常にテキスト文字列です. このフレームワークにより、任意の NLP タスクで同じモデル、損失関数、およびハイパーパラメーターを使用できます。特定のコンテンツを見ることができます: Google の事前トレーニング済み言語モデル T5

5.3.8 アルバート

论文:《[ALBERT: A Lite BERT for Self-supervised Learning of Language Representations](https://arxiv.org/abs/1909.11942#:~:text=ALBERT%3A A Lite BERT for Self-supervised Learning of, GPU%2FTPU のメモリ制限とトレーニング時間の延長)》(2019.10 Google)

現在の事前トレーニング モデルの過剰なパラメーターの問題を解決するために、Google の研究者は、従来の BERT アーキテクチャよりもパラメーターがはるかに少ない軽量の BERT (A Lite BERT、ALBERT) を設計しました。ALBERT は、事前トレーニング済みモデルのパラメーターの量を大幅に削減できる 2 つの方法を提案しています.さらに、BERT の次の文の予測 (NSP) タスクを文の順序の予測 (SOP) タスクに置き換えることも提案しています。複数の自然言語理解タスクで達成され、最先端 (SOTA) の結果が得られます。

ALBERT アーキテクチャのバックボーン ネットワークは BERT に似ています。つまり、Transformer エンコーダーと GELU 非線形アクティベーション機能を使用します。3 つの主要な調整は次のとおりです。

  1. 単語埋め込みパラメータの因数分解:

    • 著者らは、単語ベクトルは比較的少量の単語情報のみを記憶し、より多くの意味および構文情報は隠れ層によって記憶されると考えています.したがって、単語の埋め込みの次元は、単語の埋め込みの次元と一致する必要はないと考えています.隠れ層. 単語埋め込みの次元を減らすことによってパラメーターの数を減らすために、単語埋め込みパラメーターが因数分解され、2 つの小さな行列に分解されます。
    • ワンホット ベクトルをサイズ H の隠れ空間に直接マッピングする代わりに、研究者はまずそれらを低次元の単語埋め込み空間 E にマッピングし、次にそれらを隠れ空間にマッピングします。この分解により、研究者は単語埋め込みパラメーターをO ( V × H ) から O (V × H) に変更できます。O ( V×H)降低到 O ( V × E + E × H ) O(V × E + E × H) O ( V×+×H )の場合、H が E よりもはるかに大きい場合、パラメーターの量は大幅に削減されます。
  2. レイヤー間でのパラメーターの共有:

    • 全結合層と注目層のパラメータは共有され、ネットワークの深さの増加に伴うパラメータ量の増加を回避します。つまり、ALBERTにはまだ複数の層の深い接続がありますが、層間のパラメータは同じです.
    • 主にパラメータの量を減らすためです (パフォーマンスのわずかな低下、パラメータの大幅な削減。全体的には良いことです)。
  3. 文間順序予測 (SOP)

    • BERT の NSP タスクを Sentence-Order Prediction (SOP) タスクに置き換えることが提案されています。Sentence-Order Prediction (SOP) タスクは、モデルに 2 つの文を与え、モデルに 2 つの文の順序を予測させるものです。

    • SOP の正例の選択方法は BERT (同じ文書からの 2 つの連続するセグメント) と一致しますが、負の例は BERT のサンプルとは異なります. これも同じ文書からの 2 つの連続するセグメントですが, 2 つの順序は異なります.トピックの予測については、文間の一貫性のモデル化のみに焦点を当てています。

      以前の研究では、NSP は適切なプレトレーニング タスクではないことが示されています。その理由は、モデルが 2 つの文の間の関連性を判断する際に、2 つの文の間の一貫性だけでなく、2 つの文のトピックも考慮するためであると推測されます。通常、2 つのドキュメントのトピックは異なります。モデルは、文間の一貫性ではなく、トピックを通じて 2 つの文間の関係を分析するため、NSP タスクは比較的単純なタスクになります。

2 つのパラメーター削減手法は、何らかの形式の正則化として機能し、トレーニングをより安定させ、一般化を容易にします。

最小の ALBERT-base パラメータはわずか 12M で、効果は BERT よりも 1 ~ 2 ポイント低く、最大の ALBERT-xxlarge は 233M です。モデル パラメーターの量の減少は依然として非常に明白であることがわかりますが、速度に関してはそれほど明白ではないようです。最大の問題は、この方法では実際には計算量が減らない、つまり推論時間が減らないことです。

画像

おすすめ

転載: blog.csdn.net/Morganfs/article/details/124417008