GPT1 解读:生成的事前トレーニングによる言語理解の向上

自然言語処理 (NLP) は、テキスト認識、インテリジェントな質問応答、その他の多方向タスクを含む、現代の人工知能の重要な分野です。教師あり学習には、一般に大量のラベル付きデータが必要で、一部の特定のタスクでは、取得コストがかかります。ラベル付きデータは非常に高いです。GPT は、大量のラベルなしテキスト データを通じて一般的な事前トレーニング (生成的事前トレーニング) 言語モデルを学習し、言語モデルを通じて固有の意味情報を学習できるため、微調整には少量のラベル データを使用するだけで済みます。モデル構造に大きな変更を加えることなく、特定のタスクに合わせて調整できます。一連の実験を通じて、生成的事前トレーニングの言語モデルが実際に潜在的な意味情報を学習でき、さまざまな NLP タスクで非常に優れた結果を達成したことが示されました。

NLP 分野では半教師あり学習手法は珍しくありません。初期の頃は、単語の埋め込みベクトルが教師なし word2vec で学習され、教師ありトレーニング用の特定のタスク モデルに入力されていましたが、十分なラベル データが必要です。GPT は、一般的な事前トレーニング (生成的事前トレーニング) 言語モデルを通じて、より深い意味情報を学習したいと考えています。目標を達成するには、ここで 2 つの質問があります: より深い意味情報表現をどのように学習するか? 学習された意味情報は、ターゲットのタスクに効果的に役立ちますか?

GPT は、ラベルなしの大量のテキスト データによる教師なし学習と、特定のタスクと組み合わせた少量のラベル付きデータによる微調整の 2 段階のトレーニング方法を採用しています。

1. トレーニングの目的

A. 教師なしの事前トレーニング

一般的な事前トレーニング (生成的事前トレーニング) 言語モデルの目的は、トレーニング テキスト {u1,u2,...,un} (u は単語を表す) があると仮定して、次のテキストの確率を予測することです。テキスト シーケンスでの事前トレーニングの損失関数は次のとおりです。

L_1 = \sum_i log(P(u_i|u_{i-1},u_{i-2},...,u_{ik}; \Theta))

B. 監視された船の調整プロセス

教師ありフネチューニングは主に特定のタスクを対象としています。分類タスクの場合、トレーニング テキスト {u1,u2,...,un} のラベルが y であり、この時点で分類タスクの精度が低下すると仮定します。時間:

L_2 = \sum_{(u,y)}log(P(y|u_1,u_2,...,u_n; \Theta))

さらに、事前トレーニング プロセスで次のテキストを予測する精度と同様の補助的なトレーニング目標があります。このトレーニング目標は、一方ではモデルが特定のタスクで独自の意味論的な内容を学習できるようにすることです。一方、それは収束に役立ちます。また、その後の実験では、特定のタスクに大量のテキストが含まれている場合、補助トレーニングによって効果が大幅に向上するため、教師あり船調整プロセスの全体的な損失が調整可能なハイパーパラメーターとして表現できることも示されました\ラムダ

L=L_2 +\ラムダ L1

2. モデル構造

 GPT-1 のモデル構造は非常に簡潔であり、言語モデルとして 12 層の Transformer デコーダを使用しています。Transformer を選択した理由は、内部で特徴抽出器として Self-attention を使用しており、ネットワークに比べて計算量が少ないためです。 fc. など、並列計算をサポートでき、長距離の単語間情報を取得できます。なぜデコーダ層のみが使用されるかというと、GPT-1 は自己生成ネットワークであるためです。言い換えれば、GPT-1 の入力はテキストシーケンスであり、その出力は次の単語であり、一般に翻訳にはエンコーダ-デコーダが使用されます。エンコーダとデコーダは、それぞれ異なる入力とターゲットに対して異なる情報を抽出するために使用されます。エンコーダ層がないため、エンコーダ層の出力と対話するマルチヘッド モジュールはデコーダ層で削除されます。

さらに、Transformer のアクティベーション関数には Gaussian Error Linear Unit (GELU) が使用されており、Relu よりもスムーズでどこでも導出できます。

GPT-1 のもう 1 つの調整は、位置ベクトルが学習可能であることです。特定のタスク監視のための機能調整プロセスでは、元のトランスフォーマーの後に線形層を追加するだけで済みます。

したがって、入力シーケンス U の場合、予測テキストの全体パスは次の式で表すことができます。

h_o=UW_e +W_p \\ h_l=transformer(h_{l-1})\\ P(u)=softmax(h_nW_e)

  • 式 1 は、入力系列 U がテキスト埋め込みおよび重畳位置埋め込みを受けていることを示します。ここで、W は埋め込み行列を表し、これらは学習可能なパラメータです。
  • 式 2 は、多層 Transformer を介して隠れ層を通過するプロセスを表します。
  • 式 3 は、テキスト埋め込み後に最終的な Transformer レイヤー出力をテキストに復元するプロセスを表します。

特定のタスクの場合、最終的な Transformer レイヤーの出力は線形レイヤーを通じて取得されます。さらに、上記のモデル図から、GPT 自体は生成モデルですが、すべての NLP タスクが判別モデルに変換されることがわかります。

P(y)=ソフトマックス(h_nW_y)

3. トレーニングの詳細

A. データ

GPT-1 の学習データは BooksCorpus であり、7,000 件の小説が含まれています。これらの小説は、モデルが長距離情報を学習するのに役立つ多くの連続した長いテキストです。実験分析を通じて、他の単文やその前後と比較されます。ばらばらのデータセットの方がはるかに優れています。

もう 1 つはバイトペア エンコーディング (BPE) 文字圧縮方式で、従来の NLP は単語に基づいて辞書を分割しますが、多言語モデルを対象とする場合、この辞書は非常に大きくなり、モデルの学習負荷が大幅に増加します。文字を圧縮すると、最終的な辞書は約 40,000 になります。

b. トレーニング

学習プロセスには Adam 最適化が使用されますが、学習率の設定では、最初の 2000 ラウンドで学習率が 0 から直線的に増加し、その後 AdamWR によって学習されます。標準の Adam と比較して、AdamWR は導入されてますL2 規則制約を増加させるために重み減衰が使用される一方、ウォーム リスタートが導入され、学習率が継続的に低下する間に学習率が局所最適に陥ることを回避するために、学習率を定期的に調整する方法が導入されています。

おすすめ

転載: blog.csdn.net/tostq/article/details/130774757