LLM: 大規模言語モデルとは何でしょうか。

新しいテクノロジーである大規模言語モデルLLMは、トークンまたはトークンのシーケンスを予測します。場合によっては、数段落分のトークンを予測します。トークンは、単語、サブワード(単語のサブセット)、単一の文字にすることができます。LLM は、次の理由から、N グラム言語モデルや再帰型ニューラル ネットワークよりもはるかに優れた予測を行います。

  • LLM には、再帰モデルよりもはるかに多くのパラメータが含まれています。
  • LLM ははるかに多くのコンテキストを収集します。

このセクションでは、LLM の構築に最も成功し、広く使用されているアーキテクチャである Transformer について説明します。

Transformer とは

Transformer は、翻訳などのさまざまな言語モデル アプリケーション向けの最先端のアーキテクチャです。

図 1. 入力は「I am a good dog.」です。Transformer ベースの翻訳者は、その入力を出力 Je suis un bon chien に変換します。これは、フランス語に翻訳された同じ文です。
図 1. 英語からフランス語に翻訳する Transformer ベースのアプリケーション。

 

完全な Transformer は、エンコーダとデコーダで構成されます。

  • エンコーダは、入力テキストを中間表現に変換します。エンコーダは巨大なニューラル ネットです。
  • デコーダは、その中間表現を有用なテキストに変換します。デコーダも巨大なニューラル ネットです。

たとえば、翻訳ツールでは次のように表示されます。

  • エンコーダは、入力テキスト(英語の文など)を中間表現に変換します。
  • デコーダは、その中間表現を出力テキスト(同等のフランス語の文など)に変換します。
図 2. Transformer ベースの翻訳者は、英語の文の中間表現を生成するエンコーダから始まります。デコーダは、その中間表現をフランス語の出力文に変換します。
図 2.完全な Transformer には、エンコーダとデコーダの両方が含まれます。

 

このモジュールでは、エンコーダとデコーダの両方を含む完全な Transformer に焦点を当てます。ただし、エンコーダのみのアーキテクチャとデコーダのみのアーキテクチャもあります。

  • エンコーダのみのアーキテクチャは、入力テキストを中間表現(多くの場合、エンベディング レイヤ)にマッピングします。エンコーダ専用アーキテクチャのユースケースには、次のようなものがあります。
    • 入力シーケンス内の任意のトークンを予測する(これは言語モデルの従来の役割です)。
    • 分類システムなど、別のシステムの入力として使用できる高度なエンベディングを作成します。
  • デコーダ専用アーキテクチャは、すでに生成されたテキストから新しいトークンを生成します。デコーダ専用モデルは通常、シーケンスの生成に優れています。最新のデコーダ専用モデルは、生成能力を使用して、会話履歴やその他のプロンプトの続きを作成できます。

セルフアテンションとは

Transformer はコンテキストを強化するために、自己注意力というコンセプトに大きく依存しています。実質的には、入力の各トークンの代わりに、セルフ アテンションが次の質問をします。

「入力の他の各トークンがこのトークンの解釈にどの程度影響するか?」

「自己注意」の「自己」は入力シーケンスを指します。一部の注意機構は、入力トークンと出力シーケンス内のトークン(翻訳など)や他のシーケンス内のトークンとの関係に重み付けを行います。ただし、セルフ アテンションは、入力シーケンス内のトークン間の関係の重要度のみを重視します。

単純にするために、各トークンが単語であり、完全なコンテキストが 1 つの文のみであるとします。次の文について考えてみましょう。

The animal didn't cross the street because it was too tired.

上記の文には 11 個の単語が含まれています。11 個の単語はそれぞれ、他の 10 個の単語に注意を払い、それらの 10 個の単語が自分にとってどれほど重要かを考えています。たとえば、この文には代名詞 it が含まれています。代名詞はしばしばあいまいです。代名詞「it」は通常、最近の名詞または名詞句を指しますが、この例文では「it」はどの最近の名詞を指していますか?動物ですか?通りですか?

セルフアテンション メカニズムは、近くにある単語と代名詞 it の関連性を判断します。図 3 に結果を示します。線が青いほど、代名詞「it」にとってその単語の重要度が高くなります。つまり、代名詞「それ」にとって「動物」は「通り」よりも重要です。

図 3. 文「動物は疲れすぎて道を渡らなかった」の 11 個の単語のそれぞれが代名詞「it」と関連する度合い。代名詞「it」に最も関連性が高い単語は「animal」です。
図 3. 代名詞 it のセルフアテンション。 Transformer: A Novel Neural Network Architecture for Language Understanding より

 

逆に、文の最後の単語が次のように変更されたとします。

The animal didn't cross the street because it was too wide.

この修正された文では、自己注意により、代名詞「それ」に対して「動物」よりも「通り」の方が関連性が高いと評価されます。

一部のセルフ アテンション メカニズムは双方向です。つまり、注目している単語ののトークンの関連性スコアが計算されます。たとえば、図 3 では、it の両側の単語が調べられます。したがって、双方向セルフアテンション メカニズムでは、アテンション対象の単語の両側の単語からコンテキストを収集できます。一方、単方向セルフアテンション メカニズムは、アテンションの対象となる単語の片側の単語からのみコンテキストを収集できます。双方向自己注意は、シーケンス全体の表現を生成する場合に特に便利です。トークンごとにシーケンスを生成するアプリケーションには、単方向自己注意が必要です。このため、エンコーダは双方向の自己注意を使用し、デコーダは一方向の自己注意を使用します。

マルチヘッドセルフアテンションとは

通常、各セルフ アテンション レイヤは複数のセルフ アテンション ヘッドで構成されます。レイヤの出力は、さまざまなヘッドの出力の算術演算(重み付け平均やドット積など)です。

各セルフ アテンション レイヤはランダムな値に初期化されるため、各ヘッドは、アテンションの対象となる各単語と近くの単語の間に異なる関係を学習できます。たとえば、前のセクションで説明したセルフアテンション レイヤは、代名詞 it が参照する名詞を特定することに重点を置いています。ただし、他のセルフ アテンション レイヤは、各単語と他のすべての単語の文法上の関連性を学習したり、他のインタラクションを学習したりする場合があります。

セルフアテンションにより、コンテキスト内のすべての単語が、コンテキスト内の他のすべての単語との関連性を学習します。そのため、この問題を O(N2) 問題と宣言したくなります。ここで、

  • N はコンテキスト内のトークン数です。

上記の Big O が不十分であるかのように、Transformer には複数の自己注意レイヤと、自己注意レイヤごとに複数の自己注意ヘッドが含まれているため、Big O は実際には次のようになります。

O(N2 · S · D)

ここで

  • S はセルフアテンション レイヤの数です。
  • D は、レイヤあたりのヘッド数です。

LLM をゼロからトレーニングすることはほとんどありません。産業レベルの LLM をトレーニングするには、膨大な量の ML の専門知識、計算リソース、時間が必要です。いずれにしても、アイコンをクリックして詳細を確認しようとされたので、説明を差し上げます。

LLM の構築の主な要素は、通常は多少フィルタされた膨大な量のトレーニング データ(テキスト)です。トレーニングの最初のフェーズは通常、そのトレーニング データに対するなんらかの教師なし学習です。具体的には、モデルはマスクされた予測でトレーニングします。つまり、トレーニング データ内の特定のトークンが意図的に隠されます。モデルは、不足しているトークンを予測することでトレーニングします。たとえば、次の文がトレーニング データの一部であるとします。

The residents of the sleepy town weren't prepared for what came next.

ランダムなトークンが削除されます。例:

The ___ of the sleepy town weren't prepared for ___ came next.

LLM は単なるニューラル ネットであるため、損失(モデルが正しく考慮したマスクされたトークンの数)に基づいて、バックプロパゲーションによってパラメータ値が更新される程度が決まります。

欠落データを予測するようにトレーニングされた Transformer ベースのモデルは、データ内のパターンと高次構造を検出して欠落トークンの手がかりを得ることを徐々に学習します。次に、マスクされたインスタンスの例を示します。

Oranges are traditionally ___ by hand. Once clipped from a tree, __ don't ripen.

大量のマスクされた例で広範なトレーニングを行うと、LLM は「収穫」または「摘み取る」が最初のトークンとの一致確率が高いこと、「オレンジ」または「それら」が 2 番目のトークンに適していることを学習できます。

命令チューニングと呼ばれるオプションの追加トレーニング ステップでは、LLM の命令実行能力を向上させることができます。

Transformer が非常に大きいのはなぜですか?

Transformer には、数百億から数兆ものパラメータが含まれています。このコースでは、一般に、パラメータ数の少ないモデルをパラメータ数の多いモデルよりも構築することを推奨してきました。パラメータ数が少ないモデルは、パラメータ数の多いモデルよりも予測に使用するリソースが少なくなります。ただし、研究によると、パラメータが多い Transformer は、パラメータが少ない Transformer よりも常に優れたパフォーマンスを発揮します。

LLM はどのようにテキストを生成するのでしょうか。

研究者が LLM をトレーニングして不足している単語を予測する方法を見て、感心しなかったかもしれません。結局のところ、1、2 語の予測は、さまざまなテキスト、メール、作成ソフトウェアに組み込まれている自動入力機能に他なりません。LLM がアービトラージに関する文章や段落、俳句を生成する仕組みについて疑問に思われるかもしれません。

実際、LLM は基本的に、数千のトークンを自動的に予測(補完)できる自動入力メカニズムです。たとえば、次のような文とマスクされた文について考えてみましょう。

My dog, Max, knows how to perform many traditional dog tricks.
___ (masked sentence)

LLM は、次のようなマスクされた文の確率を生成できます。

確率 単語
3.1% たとえば、座る、待つ、転がるなどのことができます。
2.9% たとえば、座る、待つ、転がるなどのコマンドを理解しています。

十分に大きな LLM は、段落やエッセイ全体の確率を生成できます。LLM に対するユーザーの質問は、「与えられた」文に続く仮想マスクと考えることができます。次に例を示します。

User's question: What is the easiest trick to teach a dog?
LLM's response:  ___

LLM は、さまざまな可能性のある回答の確率を生成します。

別の例として、数学的な「文章問題」を大量にトレーニングした LLM は、高度な数学的推論を行っているように見えることがあります。ただし、これらの LLM は基本的に、数式の問題の入力を自動的に補完するだけです。

LLM のメリット

LLM は、さまざまなターゲット ユーザー向けに、明確でわかりやすいテキストを生成できます。LLM は、明示的にトレーニングされたタスクについて予測を行うことができます。LLM は、明示的にトレーニングされていない入力についても予測できると主張する研究者もいれば、この主張を反論する研究者もいます。

LLM に関する問題

LLM のトレーニングには、次のような多くの問題が伴います。

  • 膨大なトレーニング セットを収集する。
  • 数か月を要し、膨大な計算リソースと電力を消費します。
  • 並列処理の課題を解決。

LLM を使用して予測を推論すると、次の問題が発生します。

  • LLM は幻覚を起こすため、予測に誤りが含まれることがよくあります。
  • LLM は大量の計算リソースと電力を消費します。通常、大規模なデータセットで LLM をトレーニングすると、推論に必要なリソースの量が削減されますが、大規模なトレーニング セットではトレーニング リソースが増えます。
  • 他の ML モデルと同様に、LLM にはさまざまなバイアスが存在する可能性があります。

演習: 理解度を確認する

Transformer が 10 億個のドキュメントでトレーニングされているとします。このドキュメントには、elephant という単語が 1 つ以上含まれているドキュメントが数千個含まれています。次の記述のうち、おそらく正しいものはどれですか。
Transformer は、トレーニング データで「象」という単語が皮肉や皮肉として使用されている場合は無視するように徐々に学習します。
象の食生活で重要な役割を果たすアカシアは、という単語とともに、徐々に高いセルフアテンション スコアを獲得します。
Transformer は、単語「elephant」を、単語「elephant」を含むさまざまな慣用表現に関連付けます。