人気のある分解された言語の大規模モデルがどのように機能するか

コンパイル: OneFlow

作宇|ティム・リー、ショーン・トロット

画像出典: Unbounded AI によって生成

大規模な言語モデルは内部的にどのように正確に機能するのでしょうか?この記事では、最小限の数学と用語を使用して説明します。

この記事の著者であるティム・リー氏は、テクノロジーメディア「Ars Technica」で働いていましたが、最近、主に人工知能の動作原理について議論するニュースレター「Understanding AI」を創刊しました。ショーン・トロットはカリフォルニア大学サンディエゴ校の助教授で、人間の言語理解と言語モデルを研究しています。 (以下の内容はOneFlowが許可を得て編集・公開しています。転載の許可についてはOneFlowにお問い合わせください。原文:

ChatGPT が昨年秋にローンチされたとき、テクノロジー業界だけでなく世界中に波紋を巻き起こしました。当時、機械学習の研究者は言語ラージ モデル (LLM) の開発に何年も努力していましたが、一般の人々はあまり注目せず、LLM がどれほど強力になったかを認識していませんでした。

今日、ほとんどの人が LLM について聞いたことがあり、何千万人もの人が LLM を使用していますが、その仕組みを理解している人は多くありません。 LLM は「次の単語を予測する」ように訓練されており、これを行うには大量のテキストが必要である、ということを聞いたことがあるかもしれません。ただし、説明は通常そこで終わります。次の単語を予測する方法の詳細は、難解なパズルとして扱われることがよくあります。

その理由の 1 つは、これらのシステムが異なる方法で開発されたことです。一般的なソフトウェアは、コンピュータに明確な段階的な指示を提供する人間のエンジニアによって作成されます。対照的に、ChatGPT は、数十億の言語を使用してトレーニングされたニューラル ネットワーク上に構築されています。

したがって、LLM の内部動作を完全に理解している人は地球上に誰もいません。研究者たちはこれらのモデルを理解しようと懸命に取り組んでいますが、完了するまでに数十年とは言わないまでも、数年かかる時間のかかるプロセスです。

ただし、専門家はこれらのシステムがどのように機能するかについてかなりの知識を持っています。この記事の目的は、この知識を幅広い読者に公開することです。専門用語や高度な数学に立ち入ることなく、これらのモデルの内部動作についてわかっていることを説明するよう努めます。

まず、言語モデルが言語を表現し推論するための驚くべき方法であるワード ベクトルについて説明します。次に、ChatGPT のようなモデル構築の基礎となるトランスフォーマーについて詳しく説明します。最後に、これらのモデルがどのようにトレーニングされるかを説明し、大量のデータで良好なパフォーマンスが達成できる理由を探ります。

単語ベクトル

言語モデルがどのように機能するかを理解するには、まず言語モデルが単語をどのように表現するかを理解する必要があります。人間は、猫を表す CAT など、一連の文字を使用して英単語を表します。言語モデルは、ワード ベクトルと呼ばれる数値の長いリストを使用します。たとえば、猫をベクトルとして表す 1 つの方法は次のとおりです。

[0.0074、0.0030、-0.0105、0.0742、0.0765、-0.0011、0.0265、0.0106、0.0191、0.0038、-0.0468、-0.0212、0.0091、0.0030、-0.0563、-0 .0396、-0.0998、-0.0796、…、0.0002]

(注: ベクトルの完全な長さは実際には 300 個の数値です)

なぜこのような複雑な表記を使用するのでしょうか?これを類推すると、ワシントン DC は北緯 38.9 度、西経 77 度に位置しており、これをベクトル表記で表すことができます。

• ワシントン DC の座標は [38.9, 77] です。

• ニューヨークの座標は [40.7, 74] です。

• ロンドンの座標は [51.5, 0.1] です。

• パリの座標は [48.9, -2.4] です。

これは、空間関係を推論するのに役立ちます。座標では 38.9 が 40.7 に近く、77 が 74 に近いため、ニューヨークがワシントン DC に非常に近いことがわかります。同様に、パリはロンドンに非常に近いです。しかし、パリはワシントン DC からは遠いです。

言語モデルも同様のアプローチを採用しています。つまり、各単語ベクトルは、同様の意味を持つ単語が互いに近くに位置する「単語空間」内の点を表します。たとえば、ベクトル空間で猫に最も近い単語には、犬、子猫、ペットなどがあります。 (「CAT」のような文字列とは対照的に) 単語を実数のベクトルとして表す主な利点は、文字ではできない演算を数値で実行できることです。

単語は 2 次元だけで表現するには複雑すぎるため、言語モデルでは数百、さらには数千次元のベクトル空間が使用されます。人間はこれほど高次元の空間を想像することはできませんが、コンピューターはそれを推論して有用な結果を生み出すことができます。

研究者たちは何十年にもわたってワード ベクトルを研究してきましたが、この概念が本格的に注目を集めたのは、2013 年に Google が word2vec プロジェクトを発表したときでした。 Google は、Google ニュースから収集した何百万もの文書を分析し、類似した文章にどの単語が出現する傾向があるかを調べました。時間が経つにつれて、訓練されたニューラル ネットワークは、類似したカテゴリ (犬と猫など) の単語をベクトル空間内で隣接して配置することを学習します。

Google の単語ベクトルには、別の興味深い機能もあります。それは、ベクトル演算を使用して単語を「推測」できることです。たとえば、Google の研究者は最大 (最大) ベクトルを取得し、その大きい (大きな) ベクトルを減算し、小さい (小さい) ベクトルを加算します。結果のベクトルに最も近い単語が最小 (最小) ベクトルになります。

ベクトル演算を類似に使用できます。この例では、大きいものと最大のものの関係は、小さいものと最小のものの関係に似ています。 Google の単語ベクトルは、他の多くの関係を捉えます。

• カンボジアにとってのカンボジア人と同様に、スイスにとってのスイス人。 (国籍)

• パリとフランスはベルリンとドイツに似ています。 (資本)

• 不道徳と道徳は、可能と不可能に似ています。 (対義語)

• マウス (ラット) とマウス (マウスの複数形) は、ドル (ドル) とドル (ドルの複数形) に似ています。 (複数形)

• 男性と女性は王と女王のようなものです。 (性別役割)

これらのベクトルは人々が言語を使用する方法から構築されているため、人間の言語に存在する偏見の多くを反映しています。たとえば、一部の単語埋め込みモデルでは、(医師) マイナス (男性) プラス (女性) は (看護師) と等しくなります。このバイアスを軽減することは、新しい研究分野です。

それにもかかわらず、単語の埋め込みは、単語間の微妙だが重要な関係情報をエンコードするため、言語モデルの有用な基盤となります。言語モデルが猫について何かを学習した場合 (たとえば、獣医に行くこともあります)、同じことが子猫や犬にも当てはまる可能性があります。モデルがパリとフランスの関係 (たとえば、言語が共通であるなど) を学習している場合、ベルリンとドイツ、ローマとイタリアの関係も同様である可能性があります。

単語の意味は文脈によって異なります

このような単純な単語埋め込みスキームでは、単語には複数の意味があるという自然言語の重要な事実を捉えることができません。

たとえば、「bank」という単語は金融機関や川岸を指す場合があります。または、次の文を考えてみましょう。

• ジョンは雑誌を手に取ります (ジョンは雑誌を手に取ります)。

• スーザンは雑誌で働いています (スーザンは雑誌で働いています)。

これらの文では、「雑誌」の意味は関連していますが、異なります。ジョンは物理的な雑誌を手に取り、スーザンは物理的な雑誌を発行する代理店で働いていました。

ある単語に 2 つの関連のない意味がある場合、言語学者はそれらを同音異義語と呼びます。 「雑誌」のように、ある単語に 2 つの密接に関連した意味がある場合、言語学者はそれを多義性と呼びます。

ChatGPT のような言語モデルは、単語が出現するコンテキストに応じて、同じ単語を異なるベクトルで表現できます。 「銀行(金融機関)」のベクトルと「銀行(川岸)」のベクトルがあります。 「雑誌(出版物の実体)」のベクトルと「雑誌(出版機関)」のベクトルがあります。ご想像のとおり、言語モデルでは、多義語の意味には類似性が高く、同音異義語の意味には類似性の低いベクトルが使用されます。

これまでのところ、言語モデルがこれをどのように行うかについては説明していません。これについてはすぐに説明します。ただし、言語モデルがどのように機能するかを理解するために重要なこれらのベクトル表現について詳しく説明します。

従来のソフトウェアは、明示的なデータを処理するように設計されています。コンピューターに「2+3」の計算を依頼した場合、2、+、または 3 が何を意味するかについて曖昧さはありません。しかし、自然言語の曖昧さは同音異義語や多義性をはるかに超えています。

• 「顧客は整備士に自分の車の修理を頼んだ」の「彼」は顧客のことを指すのでしょうか、それとも整備士のことを指すのでしょうか?

• 「教授は学生に宿題をするように促した」の「彼女」は教授を指しているのか、学生を指しているのか?

• 「フルーツはバナナのように飛ぶ」の「ハエ」は動詞(バナナのように空を飛ぶ果物を指す)ですか、それとも名詞(バナナが好きなショウジョウバエを指す)ですか?

この種のあいまいさは状況に応じて解決されますが、単純または明確なルールはありません。むしろ、世界で実際に何が起こっているのかを理解することが必要です。整備士は通常、顧客の車を修理し、学生は通常、自分で宿題をし、果物は通常は飛ばないことを知っておく必要があります。

単語ベクトルは、言語モデルが特定の段落のコンテキストで各単語の正確な意味を表現するための柔軟な方法を提供します。では、彼らがこれをどのように行うかを見てみましょう。

単語ベクトルを単語予測に変換する

ChatGPT のオリジナル バージョンの背後にある GPT-3 モデルは、数十のニューラル ネットワーク層で構成されています。各レイヤーは一連のベクトル (入力テキスト内の単語ごとに 1 つ) を入力として受け取り、その単語の意味を明確にし、次に来る可能性のある単語をより正確に予測するのに役立つ情報を追加します。

簡単な例から始めましょう。

LLM の各層は Transformer であり、2017 年に Google はマイルストーン ペーパーで初めてこのニューラル ネットワーク構造を導入しました。

グラフの下部にあるモデルへの入力テキストは「John は銀行に現金化を望んでいます」であり、これらの単語は word2vec スタイルのベクトルとして表され、最初の Transformer に渡されます。この Transformer は、want とCash の両方が動詞であると判断します (これら 2 つの単語は名詞になることもあります)。この追加のコンテキストを括弧内の赤いテキストで示しますが、モデルは実際には、人間が解釈するのが難しい方法で単語ベクトルを変更することによってこの情報を保存します。これらの新しいベクトルは隠れ状態と呼ばれ、次の Transformer に渡されます。

2 番目の Transformer はさらに 2 つの文脈情報を追加します。bank は川岸ではなく金融機関 (金融機関) を指し、his は John の代名詞を指すことを明確にします。 2 番目の Transformer は、モデルが以前に学習したすべての情報を反映する別の隠れ状態ベクトルのセットを生成します。

上のグラフは純粋に仮説的な LLM を示しているため、詳細にはあまりこだわりすぎないでください。実際の LLM にはさらに多くのレイヤーがある傾向があります。たとえば、GPT-3 の最も強力なバージョンには 96 層があります。

研究によると、(最初の数層は文の文法を理解し、上に示した曖昧さを解決することに重点を置いています。後の層(図のサイズを管理しやすいようにするために上には示されていません)は、段落全体の高度な理解に専念しています。

たとえば、LLM が短編小説を「読む」と、性別や年齢、他の登場人物との関係、過去と現在の場所、性格や目標など、物語の登場人物に関するあらゆる種類の情報を記憶しているようです。

研究者らは、LLM がこの情報をどのように追跡するのか完全には理解していませんが、論理的には、隠れ状態ベクトルを変更することによって層間で情報が受け渡される必要があります。最新の LLM のベクトル次元は非常に大きいため、より豊富な意味情報を表現するのに役立ちます。

たとえば、GPT-3 の最も強力なバージョンは、12288 次元のワード ベクトルを使用します。つまり、各ワードは 12288 個の数値のリストで表されます。これは、2013 年に Google が提案した word2vec スキームの 20 倍です。これらすべての追加の次元は、GPT-3 が各単語のコンテキストを記録するために使用できる一種の「スクラッチ スペース」と考えることができます。前の層で作成された有益なメモは、後の層で読み取って変更することができるため、モデルはテキスト全体の理解を徐々に深めることができます。

そこで、1000 語のストーリーを解釈するための 96 層の言語モデルを記述するために上の図を変更するとします。レベル 60 には、ジョンのベクトルが含まれる可能性があります。括弧内に「(主人公、男性、ドナルドのいとこであるシェリルと結婚、ミネソタ州出身、現在ボイジーにおり、紛失した財布を探しています)」と示されたベクトルが含まれます。繰り返しますが、これらすべての事実 (そしておそらくそれ以上) は、John という単語に対応する 12,288 個の数字のリストにエンコードされます。あるいは、そのストーリーの一部の情報は、シェリル、ドナルド、ボイジー、財布、またはその他の単語の 12288 次元ベクトルにエンコードされている可能性があります。

この目的は、ネットワークの 96 番目の最後の層に、次の単語を予測するために必要なすべての情報を含む隠れた状態を出力させることです。

アテンションメカニズム

ここで、各トランスフォーマーの内部で何が起こっているかについて話しましょう。 Transformer には、入力段落の各単語の非表示状態を更新するときに 2 つのプロセスがあります。

  1. 注意ステップ中、語彙は関連するコンテキストを持ち、相互に情報を共有する他の単語を「探し回ります」。

  2. フィードフォワード ステップでは、各単語は前のアテンション ステップで収集された情報について「考え」、次の単語を予測しようとします。

もちろん、これらのステップを実行するのはネットワークであり、個々の単語ではありません。ただし、Transformer がこの分析の基本単位として文全体や段落全体ではなく単語を使用することを強調するために、このように述べています。このアプローチにより、LLM は最新の GPU チップの大規模並列処理機能を最大限に活用できるようになります。また、LLM を数千の単語を含む長い段落に拡張するのにも役立ちます。これら 2 つの側面は、初期の言語モデルが直面する課題です。

アテンションのメカニズムは、単語間のマッチング サービスと考えることができます。各単語は、検索している単語の特徴を説明するチェックリスト (クエリ ベクトルと呼ばれます) を作成します。各単語は、それ自体の特徴を説明するチェックリスト (キーベクトルと呼ばれる) も作成します。ニューラル ネットワークは、各キー ベクトルと各クエリ ベクトルを (ドット積を計算して) 比較することにより、最も一致する単語を見つけます。一致が見つかると、キー ベクトルを生成した単語からクエリ ベクトルを生成した単語に関連情報が渡されます。

たとえば、前のセクションでは、「ジョンは自分の銀行に現金化してもらいたい」という文の一部で、「彼の」が「ジョン」を指していることが判明する仮想の Transformer モデルを示しました。内部的には、プロセスは次のようになります。「彼」のクエリ ベクトルは、「探しています: 男性を表す名詞」として効果的に表現される可能性があります。 「ジョン」の重要なベクトルは、「私は男性を表す名詞である」と効果的に表現されるかもしれません。ネットワークはこれら 2 つのベクトルが一致することを検出し、「John」ベクトルに関する情報を「his」ベクトルに転送します。

各アテンション層には複数の「アテンション ヘッド」があります。これは、この情報交換プロセスが各層で複数回 (並行して) 発生することを意味します。各アテンションヘッドは異なるタスクに焦点を当てます。

• 前に説明したように、アテンションヘッドは代名詞を名詞に一致させることができます。

• 別のアテンション ヘッダーは、「bank」などの多義語の意味の解析を処理する可能性があります。

• 3 番目の注目ヘッドは、「ジョー バイデン」のような 2 単語のフレーズをリンクする可能性があります。

このようなアテンション ヘッドは、多くの場合、連続的に動作し、1 つのアテンション レイヤーでのアテンション操作の結果が、次のレイヤーのアテンション ヘッドへの入力になります。実際、今列挙したそれぞれのタスクには、1 つだけではなく複数のアテンション ヘッドが必要になる場合があります。

GPT-3 の最大バージョンには 96 のレイヤーがあり、各レイヤーには 96 のアテンション ヘッドがあるため、新しい単語が予測されるたびに、GPT-3 は 9216 のアテンション オペレーションを実行します。

実際の例

上の 2 つのセクションでは、注意力のヘッドがどのように機能するかの理想化されたバージョンを示しました。次に、実際の言語モデルの内部動作に関する研究を見てみましょう。

昨年、レッドウッドリサーチの研究者らは、ChatGPTの前身であるGPT-2で「メアリーとジョンが店に行ったとき、ジョンは〜に飲み物を与えた(メアリーとジョンが店に行ったとき、ジョンは〜に飲み物を与えた)」という一節を研究した。 ) 「次の単語を予測するプロセス。

GPT-2 は、次の単語が Mary であると予測します。研究者らは、次の 3 つのタイプの注意頭がこの予測に寄与していることを発見しました。

• Name Mover Head と呼ばれる 3 つのアテンション ヘッドは、Mary ベクトルから最終入力ベクトル (単語 to のベクトル) に情報をコピーします。 GPT-2 は、この右端のベクトルの情報を使用して次の単語を予測します。

• ニューラル ネットワークは、Mary がコピーする正しい単語であるとどのように判断するのでしょうか。 GPT-2 の計算プロセスを逆にして、科学者らは被験者抑制ヘッド (被験者抑制ヘッド) と呼ばれる 4 つの注意ヘッドのセットを発見しました。これは 2 番目のジョン ベクトルをマークし、名前移動ヘッドがジョンの名前をコピーするのを防ぎます。

• 主体抑圧責任者は、ジョンがコピーされるべきではないことをどのようにして知るのでしょうか?チームはさらに推定を進め、重複トークン ヘッドと呼ばれる 2 つのアテンション ヘッドを発見しました。彼らは、2 番目のジョン ベクトルを最初のジョン ベクトルの重複コピーとしてマークします。これは、被験者が頭を抑えてジョンをコピーすべきではないと判断するのに役立ちます。

つまり、これら 9 つのアテンション ヘッドにより、GPT-2 は「ジョンがジョンに飲み物をあげた」が意味をなさないことを理解し、代わりに「ジョンがメアリーに飲み物をあげた (ジョンはメアリーに飲み物を与えた)」を選択することができます。

この例は、LLM を完全に理解することがいかに難しいかを示しています。 5人の研究者からなるレッドウッドのチームは、これらの注目の的をどのように特定し検証したかを説明した25ページの論文を発表した。しかし、これだけの作業があったとしても、GPT-2 が次の単語として「Mary」を予測することにした理由の完全な説明にはまだ程遠いです。

たとえば、モデルは次の単語が他の種類の単語ではなく誰かの名前であるべきであることをどのようにして知るのでしょうか?同様の文では、メアリーが次の予測者として適切ではないことは容易に想像できます。たとえば、「メアリーとジョンがレストランに行ったとき、ジョンは鍵を〜に渡しました(メアリーとジョンがレストランに行ったとき、ジョンは鍵を〜に渡しました)」という文では、論理的には、次の単語は「係員(駐車監視員を表します)」。

コンピューター科学者によって十分な研究が行われていると仮定すると、GPT-2 の推論プロセスの他のステップを明らかにして説明できるでしょう。最終的には、GPT-2 が文中の次の単語として最も可能性が高いのは「Mary」であるとどのように判断したかを完全に理解できるようになるかもしれません。しかし、単語がどのように予測されるかを理解するには、何か月、あるいは何年も余分な努力が必要になる場合があります。

ChatGPT の背後にある言語モデル (GPT-3 および GPT-4) は GPT-2 よりも大きく複雑で、Redwood チームが研究した単純な文よりも複雑な推論タスクが可能です。したがって、これらのシステムを完全に説明する作業は大規模なプロジェクトとなり、人間が短期間で完了する可能性は低いです。

フィードフォワードステップ

アテンション ヘッドが単語ベクトル間で情報を転送した後、フィードフォワード ネットワークは各単語ベクトルについて「考え」、次の単語を予測しようとします。この段階では、単語間で情報は交換されず、フィードフォワード層は各単語を独立して分析します。ただし、フィードフォワード層は、アテンション ヘッドによって以前にコピーされた情報にアクセスできます。以下は、GPT-3 の最大バージョンのフィードフォワード層構造です。

緑と紫の円はニューロンを表します。これらは、入力の加重和を計算する数学関数です。

フィードフォワード層は接続数が多いため強力です。このネットワークは、出力層として 3 つのニューロン、隠れ層として 6 つのニューロンを使用して描画しますが、GPT-3 のフィードフォワード層ははるかに大きく、出力層には 12288 個のニューロンがあります (モデルの 12288 次元の単語ベクトルに対応します)。 、隠れ層には 49152 個のニューロンがあります。

したがって、GPT-3 の最大バージョンでは、隠れ層には 49152 個のニューロンがあり、各ニューロンには 12288 個の入力値があり (したがって、各ニューロンには 12288 個の重みパラメーターがあります)、また 12288 個の出力ニューロンがあり、各ニューロンには 49152 個の入力値があります。 (したがって、ニューロンごとに 49152 の重みパラメーター)。これは、各フィードフォワード層に 49152*12288+12288*49152=12 億の重みパラメーターがあることを意味します。フィードフォワード層は 96 あり、合計 12 億 *96 = 1,160 億のパラメータがあります。これは、1,750 億個のパラメーターを含む GPT-3 のパラメーター量のほぼ 3 分の 2 に相当します。

2020 年の論文 (で、テルアビブ大学の研究者らは、フィードフォワード層がパターン マッチングによって機能することを発見しました。隠れ層の各ニューロンは、入力テキストの特定のパターンと一致します。以下は 16 層バージョンです。GPT の一部のニューロンは、 2 パターンに一致します:

• レイヤ 1 のニューロンは、「substitutes」で終わる単語シーケンスと一致します。

• レイヤー 6 のニューロンは、軍事関連で「base」または「base」で終わる単語シーケンスと一致します。

• レイヤー 13 のニューロンは、「午後 3 時から午後 7 時まで」または「金曜日の午後 7 時から」などの時間範囲で終了するシーケンスと一致します。

• レイヤ 16 のニューロンは、「オリジナルの NBC 昼間バージョン、アーカイブ済み」または「時間遅延により、このエピソードの視聴者数が 57 パーセント増加した」など、テレビ番組に関連付けられたシーケンスと一致します。

ご覧のとおり、後の層ではスキーマがより抽象的になります。初期のレイヤーは特定の単語に一致する傾向がありますが、後のレイヤーはテレビ番組や時間間隔など、より広い意味論的なカテゴリに分類されるフレーズに一致します。

前述したように、フィードフォワード層は一度に 1 つの単語しかチェックできないため、これは興味深いことです。したがって、シーケンス「オリジナル NBC 昼間リリース、アーカイブ済み」を「テレビ関連」として分類すると、NBC や昼間などの単語ではなく、単語「アーカイブ済み」のベクトルのみにアクセスできます。フィードフォワード層が「アーカイブ済み」が TV 関連シーケンスの一部であると判断できる理由は、アテンション ヘッドが事前にコンテキスト情報を「アーカイブ済み」ベクトルに移動したためであると推測できます。

ニューロンがパターンの 1 つに一致すると、情報を単語ベクトルに追加します。この情報を解釈するのは必ずしも簡単ではありませんが、多くの場合、次の単語の暫定的な予測として考えることができます。

ベクトル演算を使用したフィードフォワード ネットワークの推論

ブラウン大学の最近の研究 (フィードフォワード層が次の単語の予測にどのように役立つかを示す洗練された例を示しています。以前、ベクトル演算を使用して類推できることを示す Google の word2vec 研究について説明しました。たとえば、ベルリン - ドイツ + フランス = パリ) 。

ブラウン大学の研究者らは、フィードフォワード層が次の単語を予測するためにこの正確な方法を使用する場合があることを発見しました。たとえば、彼らは次のプロンプトに対する GPT-2 の応答を研究しました:「質問: フランスの首都はどこですか? 答え: パリ。質問: ポーランドの首都はどこですか? 答え:」

研究チームは、24 層の GPT-2 バージョンを研究しました。各層の後、ブラウン大学の科学者はモデルを調査し、次のトークンの最良の推測を調べました。最初の 15 レイヤーでは、最も可能性の高い推測は、一見ランダムな単語です。レイヤー 16 と 19 の間で、モデルは次の単語がポーランド語であると予測し始めます。不正確ではありますが、それに近づいています。次に、ティア 20 では、最も可能性の高い推測はワルシャワとなり、これが正解となり、最後の 4 つのティアでは同じままになります。

ブラウン大学の研究者らは、国のベクトルを対応する首都にマッピングするベクトルを追加することで、20 番目のフィードフォワード層がポーランドをワルシャワに変換することを発見しました。同じベクトルを中国に加えると、答えは北京に帰着する。

同じモデルのフィードフォワード層はベクトル演算を使用して、小文字の単語を大文字の単語に変換し、現在形の単語を過去形の単語に変換します。

アテンション層とフィードフォワード層は機能が異なります

これまでのところ、GPT-2 単語予測の 2 つの実際的な例を見てきました: アテンション ヘッドはジョンがメアリーに飲み物を与えるという予測に役立ち、フィードフォワード レイヤーはワルシャワがポーランドの首都であるという予測に役立ちます。

最初のケースでは、Mary はユーザー指定のプロンプトから取得されます。しかし、2 番目のケースでは、ワルシャワはプロンプトに表示されませんでした。代わりに、GPT-2 はワルシャワがポーランドの首都であることを「記憶」する必要があり、この情報はトレーニング データから学習されました。

ブラウン大学の研究者がポーランドをワルシャワに変換するフィードフォワード レイヤーを無効にすると、モデルは次の単語がワルシャワであると予測しなくなりました。しかし興味深いことに、プロンプトの冒頭に「ポーランドの首都はワルシャワです」という文を追加すると、GPT-2 は再び質問に答えることができました。これは、GPT-2 がアテンション メカニズムを使用してキューからワルシャワという名前を抽出するためである可能性があります。

この分業はより広範囲に現れます。アテンション メカニズムはキューの以前の部分から情報を取得しますが、フィードフォワード層により、言語モデルはキューに現れなかった情報を「記憶」できます。

実際、フィードフォワード層は、モデルがトレーニング データから学習した情報のデータベースと考えることができます。初期のフィードフォワード層は、「トランプはドナルドの後に来ることが多い」など、特定の単語に関連する単純な事実をエンコードする可能性が高くなります。後の層は、「国を首都に変換するには、このベクトルを追加します。」のような、より複雑な関係をエンコードします。

言語モデルのトレーニング方法

初期の機械学習アルゴリズムの多くでは、人間がラベル付けしたトレーニング サンプルが必要でした。たとえば、トレーニング データは、人工的なラベル (「犬」または「猫」) が付いた犬または猫の写真である可能性があります。ラベル付きデータが必要なため、強力なモデルをトレーニングするのに十分な大きさのデータセットを作成することが困難になり、コストが高くなります。

LLM の主な革新点は、明示的にラベル付けされたデータを必要としないことです。代わりに、テキストの一節内の次の単語を予測しようとすることで学習します。ウィキペディアのページからニュース記事、コンピューター コードに至るまで、ほとんどすべての文書がこれらのモデルのトレーニングに適しています。

たとえば、LLM は、「私はクリーム入りのコーヒーが好きです、そして (私はクリーム入りのコーヒーが好きです、そして)」という入力を受け取り、次の単語として「砂糖 (砂糖)」を予測しようとします。新しく初期化された言語モデルは、この点ではひどいものです。なぜなら、その各重みパラメータ (GPT-3 の最も強力なバージョンでは 1,750 億のパラメータもあります) は、最初は基本的に乱数から始まるからです。

しかし、モデルがより多くの例 (数千億語) を参照するにつれて、それらの重みはより適切な予測を行うために徐々に調整されます。

たとえを使用して、このプロセスがどのように機能するかを説明してみましょう。シャワーを浴びているとき、水の温度を熱すぎず、冷たすぎず、ちょうどよい温度にしたいとします。初めて使う蛇口なので、蛇口のハンドルの向きを自在に調節し、水の温度を感じます。熱すぎたり冷たすぎたりする場合は、ハンドルを逆方向に回すと、適切な水温に近づくにつれてハンドルの調整が少なくなります。

さて、このアナロジーにいくつかの変更を加えてみましょう。まず、50,257 個のタップがあり、それぞれが「the」、「cat」、または「bank」などの異なる単語に対応していると想像してください。目標は、シーケンス内の次の単語に対応する蛇口からのみ水を流すことです。

次に、蛇口の後ろには相互接続されたパイプがたくさんあり、それらのパイプにはバルブがたくさんあります。したがって、間違った蛇口から水が出ている場合は、蛇口のノブを調整するだけでは済みません。あなたは賢いリスの軍隊を送り込み、すべてのパイプを追跡し、途中で見つけたすべてのバルブを調整します。

これは複雑で、同じパイプから複数の蛇口に供給されることが多いため、どのバルブを締めて緩めるのか、またどの程度緩めるのかを慎重に検討する必要があります。

明らかに、この例は文字通りに解釈するとばかげたものになります。 1,750 億個のバルブを備えたパイプライン ネットワークを構築することは現実的でも有用でもありません。しかし、ムーアの法則のおかげで、コンピューターはこの規模で動作することができ、実際に動作するようになりました。

これまでのところ、この記事で説明している LLM のすべての部分 (フィードフォワード層のニューロンと、単語間のコンテキスト情報を渡すアテンション ヘッド) は、一連の単純な数学関数 (主に行列乗算) として実装されており、その動作は次のようになります。調整可能な重みパラメータによって決定されます。私の物語のリスがバルブを緩めることで水の流れを制御するのと同じように、トレーニング アルゴリズムは、言語モデルの重みパラメーターを増減することによって、ニューラル ネットワークを通る情報の流れを制御します。

トレーニングのプロセスは 2 つのステップに分かれています。最初に「順方向パス」を実行し、水をオンにし、水が正しい蛇口から出ていることを確認します。その後、水が遮断されて「逆流」が行われ、リスが各パイプを駆け下り、バルブを締めたり緩めたりします。デジタル ニューラル ネットワークでは、リスの役割は、バックプロパゲーションと呼ばれるアルゴリズムによって実行されます。このアルゴリズムは、微積分を使用して、各重みパラメーターをどの程度変更する必要があるかを推定するためにネットワーク内を「逆方向に歩く」ものです。

これを行うには、例を順伝播し、次にその例でのネットワークのパフォーマンスを向上させるために逆伝播することですが、数百億の数学的演算が必要です。そして、GPT-3 のような大規模なモデルのトレーニングでは、すべてのトレーニング データのすべての単語に対して、このプロセスを何十億回も繰り返す必要があります。 OpenAI は、GPT-3 のトレーニングには 3,000 億テラフロップスを超える計算が必要であると推定しています。これは数十個のハイエンド コンピューター チップを実行するには数か月かかる計算です。

GPT-3 の驚異的なパフォーマンス

トレーニングプロセスがうまく機能していることに驚かれるかもしれません。 ChatGPT は、記事の作成、類推の作成、さらにはコンピューター コードの作成など、さまざまな複雑なタスクを実行できます。では、このような単純な学習メカニズムはどのようにして強力なモデルを生成するのでしょうか?

理由の 1 つは規模です。 GPT-3 のようなモデルに含まれるサンプルの数はいくら強調してもしすぎることはありません。 GPT-3 は、約 5,000 億語のコーパスでトレーニングされています。それに比べ、人間の平均的な子供は 10 歳になるまでに約 1 億語に遭遇します。

過去 5 年間にわたり、OpenAI は言語モデルのサイズを継続的に拡大してきました。広く流通した 2020 年の論文 (言語モデルの精度は、モデルのサイズ、データセットのサイズ、トレーニングに使用される計算量とべき乗則の関係があると報告) では、一部の傾向は 7 つ以上に及ぶことさえありました。桁違い」。

モデルのサイズが大きいほど、言語を含むタスクのパフォーマンスが向上します。ただし、トレーニング データの量が同様の要因で増加した場合に限ります。また、より多くのデータで大規模なモデルをトレーニングするには、より多くのコンピューティング能力が必要になります。

2018年、OpenAIは最初の大型モデルGPT-1をリリースした。 768 次元のワード ベクトル、合計 12 層、合計 1 億 1,700 万個のパラメータを使用します。数か月後、OpenAI は GPT-2 をリリースしました。その最大バージョンには 1600 次元のワード ベクトル、48 層、合計 15 億のパラメータがあります。 2020 年に OpenAI は、12288 次元のワード ベクトル、96 層、合計 1750 億個のパラメータを備えた GPT-3 をリリースしました。

今年、OpenAI は GPT-4 をリリースしました。同社はアーキテクチャの詳細を明らかにしていないが、業界ではGPT-4がGPT-3よりもはるかに大きいと広く信じられている。

各モデルは、より小規模な前モデルよりも多くの事実を学習しただけでなく、何らかの形の抽象的な推論を必要とするタスクで優れたパフォーマンスを示しました。

たとえば、次の話を考えてみましょう。ポップコーンが入った袋。袋の中にチョコレートは入っていません。ただし、袋のラベルには「ポップコーン」ではなく「チョコレート」と書かれていました。サムはバッグを見つけました。彼女はそのバッグをそれまで見たことがありませんでした。彼女はバッグの中に何が入っているのか見えませんでした。彼女はラベルを読みました。

おそらくご想像のとおり、サムは袋の中にチョコレートが入っていると信じており、中にはポップコーンが入っていることに驚きました。

心理学者は、他人の精神状態について推論する能力に関するこの研究を「心の理論」と呼んでいます。ほとんどの人は小学校の初めからこの能力を持っています。心の理論がチンパンジーなどの人間以外の動物に当てはまるかどうかについては専門家の間で意見が分かれているが、心の理論が人間の社会的認知の中心であるというのは一般的なコンセンサスである。

今年の初めに、スタンフォード大学の心理学者ミハル・コシンスキーは、ある研究を発表しました(心の理論の課題を解決するLLMの能力を調査しました)。彼は、さまざまな言語モデルを読んで、先ほど引用したような物語を読み、次のような文を完成させるよう求めました。彼女はバッグがいっぱいだと信じています」の場合、正解は「チョコレート」ですが、未熟な言語モデルは「ポップコーン」などと言うかもしれません。

GPT-1 と GPT-2 はこのテストに不合格でした。しかし、2020年にリリースされたGPT-3の最初のバージョンは40%近く正解しており、コシンスキー氏が3歳児と比較したパフォーマンスのレベルだった。昨年 11 月にリリースされた最新バージョンの GPT-3 では、上記の質問の精度が約 90% に向上し、これは 7 歳児の精度に匹敵します。 GPT-4 は、心の理論に関する質問の約 95 パーセントに正解しました。

「これらのモデルには、ToM(メンタライジング)が意図的に作られたという証拠も、科学者がそれを達成する方法を知っていたことを示す研究もないことを考えると、おそらくこの能力は自発的かつ自律的に生じたものと考えられます。これは、モデル A の言語能力です。」絶え間ない強化の産物だ」とコシンスキー氏は書いた。

これらの結果が心の理論を証明しているということに研究者全員が同意しているわけではないことは注目に値します。たとえば、誤った信念のタスクに小さな変更を加えると、GPT-3 のパフォーマンスが大幅に低下しました (一方、理論を測定する他のタスクでは GPT-3 のパフォーマンスが低下しました)。より不安定(ショーンがその中で書いているように、成功したパフォーマンスは、その課題の交絡因子に起因する可能性があります。「賢いハンス」とは、いくつかの単純な知的課題を完了できるように見えるハンスという名前の馬のことを指しますが、実際には人々が与える無意識の合図に頼るだけです)」効果ですが、それは馬ではなく言語モデルに現れます。

それにもかかわらず、GPT-3 は、心の理論を測定するために設計されたいくつかのタスクにおける人間のパフォーマンスにアプローチしています。これは、ほんの数年前には想像もできませんでした。これは、高度な推論の観点を必要とするタスクでは一般に、より大きなモデルのパフォーマンスが優れているという事実と一致しています。 。

これは、言語モデルが高度な推論能力を自発的に発達させることが示された多くの例のうちの 1 つにすぎません。 4月にマイクロソフトの研究者らは論文を発表した(GPT-4は、一般的な人工知能、つまり複雑で人間のような方法で考える能力の、そそられる兆候を初期に示したと述べている)。

たとえば、ある研究者は、GPT-4 に、TiKZ と呼ばれる無名なグラフィックス プログラミング言語を使用してユニコーンを描画するように依頼しました。 GPT-4 は数行のコードで応答し、研究者たちはそれを TiKZ ソフトウェアに入力しました。得られた画像は、粗雑ではありますが、GPT-4 がユニコーンがどのようなものかをある程度理解していることを明らかに示しています。

研究者らは、GPT-4 がトレーニング データからユニコーンを描画するコードを何らかの形で記憶したのではないかと考え、追加の課題を与えました。ユニコーンのコードを修正して角を削除し、他の体の一部を動かしました。それから彼らはGPT-4にユニコーンの角を元に戻すように頼みました。 GPT-4 は、ヘッド角度を正しい位置に配置することで応答しました。

著者のテスト バージョンは完全にテキストでトレーニングされ、画像は含まれていませんでしたが、GPT-4 は依然としてこのタスクを達成できるようです。それでも、GPT-4は大量の書かれたテキストで訓練された後、ユニコーンの体の形について推論することを学んだようです。

現時点では、LLM がどのようにしてそのような偉業を達成するのかについてはまったく理解されていません。このような例は、モデルがトレーニング セット内の単語の意味を実際に理解し始めていることを示していると考える人もいます。言語モデルは単に「ランダムなオウム」(実際には理解することなく、ますます複雑になる単語のシーケンスを繰り返すだけ)であると主張する人もいます。

この議論は、解決されない可能性のある深い哲学的議論を示しています。それにもかかわらず、私たちは GPT-3 などのモデルの経験的なパフォーマンスに焦点を当てることが重要であると考えています。言語モデルが特定のタイプの質問に対して常に正しい答えを得ることができ、研究者が交絡因子を排除できると確信している場合 (たとえば、トレーニング中に言語モデルがそれらの質問にさらされていないことを確認することによって)、人間の場合とまったく同じで、これは興味深く重要な結果です。

次の補題予測のトレーニングが非常にうまく機能するもう 1 つの理由は、言語自体が予測可能であることです。言語の規則性は、多くの場合 (常にではありませんが) 物理世界の規則性と関連しています。したがって、言語モデルが単語間の関係を学習するとき、通常は世界に存在する関係も暗黙的に学習します。

さらに、予測は人工知能だけでなく生物知能の基礎となる可能性があります。アンディ・クラークなどの哲学者によると、人間の脳は「予測マシン」と考えることができ、その主な役割は環境について予測を行い、その予測を使用して環境をうまくナビゲートすることです。予測は、生物知能と人工知能の両方にとって重要です。直観的には、優れた予測は優れた表現と密接に関係しており、正確な地図は不正確な地図よりも人々がより適切にナビゲートするのに役立つ可能性が高くなります。世界は広大で複雑であり、予測を行うことは、生物が効率的にナビゲートし、この複雑さに適応するのに役立ちます。

言語モデルを構築する際の主な課題は、特に多くの単語の意味が文脈に大きく依存するため、さまざまな単語を表す最も有用な方法を見つけ出すことです。次の単語の予測方法により、研究者らはこの厄介な理論的難問を経験的問題に変えることで回避することができました。

十分なデータと計算能力があれば、言語モデルは次の単語の最適な予測を見つけ出すことで、人間の言語がどのように機能するかを学習できることがわかりました。欠点は、結果として生じるシステムの内部動作が人間にはまだ完全に理解されていないことです。

ノート:

  1. 技術的に言えば、LLM の単語の断片は補題になりますが、この記事を扱いやすい長さに抑えるために、この実装の詳細は無視します (記事「GPT トークナイザーの動作原理を明らかにする」を参照)。

  2. フィードフォワード ネットワークは、多層パーセプトロンとしても知られています。コンピューター科学者は、1960 年代からこのタイプのニューラル ネットワークを研究してきました。

  3. 技術的には、ニューロンは入力の加重和を計算した後、その結果を活性化関数に渡します。この記事ではこの実装の詳細は無視します。ニューロンがどのように機能するかについての完全な説明については、以下を確認してください。

  4. バックプロパゲーションについてさらに詳しく知りたい場合は、ニューラル ネットワークの仕組みに関する Tim の 2018 年の説明をご覧ください。

  5. 実際には、計算効率を高めるために、トレーニングは通常、バッチで行われます。したがって、ソフトウェアは逆伝播の前に 32000 個のトークンに対して順方向パスを実行する可能性があります。

原文表示
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • 報酬
  • コメント
  • 共有
コメント
0/400
コメントなし
  • ピン
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)