GPTとは何か Transformerの視覚化 | Chapter 5, Deep Learning

3Blue1BrownJapan
10 May 202426:36

Summary

TLDRこのスクリプトは、事前訓練されたトランスフォーマーモデルであるGPTとその仕組みについて解説しています。GPTは大量のデータを学習し、新しいテキストを生成することができます。その中核はアテンションメカニズムで、これは文脈を理解し、各単語が他の単語とどう関連しているかを把握する役割を果たします。また、トランスフォーマーは多層パーセプトロンブロックを使い、入力データを意味的に更新していきます。最適な単語の選択にはソフトマックス関数が使われ、これは確率分布を作り出すことで、次の単語を予測する際に役立ちます。さらに、温度パラメータの調整により、生成されるテキストの確度やオリジナリティを制御できます。トランスフォーマーモデルは、自然言語処理の進化の中で重要な役割を果たしており、AIの発展に寄与しています。

Takeaways

  • 📚 GPTは事前訓練されたトランスフォーマーモデルで、新しいテキストを生成することができます。
  • 🧠 事前訓練とは、モデルが大量のデータを学習し、具体的なタスクに応じてファインチューニングを適用するプロセスを指します。
  • 🔑 トランスフォーマーは、現在のAI技術の中心的な発明であり、様々な種類のモデルを構築することができます。
  • 🎭 トランスフォーマーは音声からテキストを書き取り、テキストから音声を生成するなど、多様な応用が可能です。
  • 🌐 2022年に登場したDALL-EやMidjourneyなどの画像生成AIも、トランスフォーマーモデルに基づいています。
  • ✍️ GPTのようなモデルは、テキストを受け取り、次の出現する単語や画像、音声を予測するように訓練されています。
  • 🔮 予測モデルは、テキストを生成するプロセスで、ランダムなサンプルを生成し、テキストに連結することで長い文章を構築します。
  • 📈 トランスフォーマーは、入力を小さな部分(トークン)に分け、ベクトルに変換することで処理を行います。
  • 🤖 アテンションブロックは、文脈を把握し、意味を更新する演算であり、ニューラルネットワークの重要な部品です。
  • 🧮 多層パーセプトロンブロックは、ベクトルに同じ演算を平行で適用し、パラメータを調整することで振る舞いを学習します。
  • 🔄 学習プロセスは繰り返しされ、最終的なベクトルが文章の意味を含み、次に来るトークンの確率分布を作成します。
  • 🔑 チャットボットやAIアシスタントは、システムプロンプトを作成し、ユーザーの入力に基づいて応答を予測します。

Q & A

  • GPTはどのような種類のニューラルネットワークモデルですか?

    -GPTは事前訓練されたトランスフォーマーモデルです。これは大量のデータをもとに学習し、テキスト生成などを行うことができます。

  • トランスフォーマーモデルはどのようなタスクに使われますか?

    -トランスフォーマーモデルはテキスト生成、音声認識、翻訳など、言語処理タスクに幅広く使われています。また、テキストから画像を生成するなどの創造的なタスクにも応用されています。

  • 事前訓練とは何を意味しますか?

    -事前訓練とは、モデルが特定のタスクに応じて追加のトレーニングをする前に、大量のデータを用いて事前に学習することで、一般的な言語パターンを捉えるプロセスを指します。

  • アテンションブロックとは何ですか?

    -アテンションブロックは、トランスフォーマーモデル内の重要な部品で、各単語が文脈内の他の単語とどれだけ関連しているかを把握する役割を果たします。これにより、モデルはより適切な予測を行い、生成されたテキストの質を向上させることができます。

  • GPT3はなぜ機械学習コミュニティを超えて注目されたのですか?

    -GPT3はその大規模なパラメータ数と高い性能によって、テキスト生成や自然言語処理タスクで優れた結果を出し、そのために世界中の注目を集めました。また、その能力を応用した様々なアプリケーションが提案され、インパクトを与えているためです。

  • テキストをどのようにしてベクトルに変換するのですか?

    -テキストは、まず単語や記号などの小さな部分に分割され、それらをトークンと呼ばれます。その後、これらのトークンは埋め込み行列を通じて、各単語に対応するベクトルに変換されます。これらのベクトルは高次元空間内の点を表し、意味を持つ情報を含んでいます。

  • ソフトマックス関数は何に使われますか?

    -ソフトマックス関数は、数値のリストを正規化された確率分布に変換するために使われます。これは、例えば、次に来る単語の予測や、アテンション機構での重みの計算に用いられます。

  • GPT3のパラメータ数はいくつですか?

    -GPT3は約1750億のパラメータを持つ巨大なモデルです。これらのパラメータは、学習過程で調整され、モデルの振る舞いを決定します。

  • トランスフォーマーモデルの入力データはどのように処理されますか?

    -トランスフォーマーモデルは、入力データを小さな部分に分割し、各部分をベクトルに変換します。これらのベクトルは、アテンションブロックや多層パーセプトロンブロックを通じて処理され、最終的な意味のベクトルに集約されます。

  • テキスト生成において、どのようにして意味のあるストーリーが生成されるのですか?

    -テキスト生成では、モデルは与えられたテキストに基づいて、次に来る単語の確率分布を作り、その分布からランダムにサンプルを選ぶことで、徐々にストーリーを構築していきます。

  • 温度パラメータはGPT3の生成プロセスでどのような役割を果たしますか?

    -温度パラメータは、生成されるテキストの多様性と確率性を制御します。高い温度は一様分布に近づけ、低い温度は高い確率の単語を選ぶ傾向があります。これにより、生成テキストの創造性や予測可能性を調整できます。

Outlines

00:00

🧠 GPTとは何か?

GPTは生成事前訓練トランスフォーマーの略であり、新しいテキストを生成するボットです。事前訓練は大量のデータに基づいてモデルが学習することを意味し、トランスフォーマーは特定のニューラルネットワークの種類で、現在のAI技術の中心的な発明です。この動画では、トランスフォーマー内部でデータがどのように処理されるかを視覚的に説明し、様々なモデルの利用例についても紹介します。例えば、音声からテキストを生成するモデルや、テキストから画像を生成するモデルなどです。原型のトランスフォーマーはGoogleによって2017年に発明され、チャットGPTなどの基礎となっています。テキストの予測を通じて長い文章を生成するプロセスを説明し、GPT3とGPT2の違いについても触れています。

05:00

🔄 トランスフォーマーのプロセス

トランスフォーマーのデータ処理の流れを簡単に説明します。入力データはトークンと呼ばれる小さな部分に分割され、それぞれがベクトルに変換されます。このベクトルはアテンションブロックと多層パーセプトロンブロックを通じて情報を交換し、意味を更新します。最終的に生成されたベクトルは次に来るトークンの確率分布を作り出し、この分布をもとに次の単語を予測することができます。このプロセスは繰り返し行われ、長いテキストを生成することができます。

10:02

📊 埋め込みベクトルとその役割

トランスフォーマーでは、単語やトークンは埋め込みベクトルとして表現されます。これらのベクトルは高次元空間内の座標として考えることができ、意味の似ている単語は近いベクトルになります。埋め込みベクトルはトランスフォーマーの処理を通じて意味を持つ方向に変化し、モデルは訓練データをもとにこの方向性を学習します。例えば、性別や国に関連するベクトルの差を取ることで、意味のある情報を抽出することができます。

15:02

🌐 トランスフォーマーの文脈理解

トランスフォーマーは単語の埋め込みベクトルを用いて文脈を理解し、次に来る単語を予測します。モデルは1度に決まった数のベクトルしか処理できず、この数はコンテキストサイズと呼ばれます。GPT3では2048のベクトルが処理され、これがモデルが扱えるテキストの量を決定します。ネットワークの各層を通じて、ベクトルは意味を持つ方向に変化し、最終的に次に来る単語の予測に使用されます。

20:03

🎯 確率分布とソフトマックス関数

トランスフォーマーの最終ステップでは、次に来るトークンの確率分布を生成します。これにはソフトマックス関数が使用され、出力の数値を0と1の間に正規化し、全体の合計が1になるようにします。これにより、確率分布として解釈可能な形になります。モデルはこの分布をもとに次の単語を予測し、温度パラメータを調整することで、予測の多様性をコントロールできます。

25:04

📚 アテンション機構の準備

次回の動画では、アテンション機構について詳しく説明します。アテンション機構はトランスフォーマーの中心的な部分であり、埋め込みベクトルやソフトマックス、内積の概念を理解することでスムーズに理解できます。アテンション機構は、AIモデルが文脈を効率的に取り入れるための重要な要素です。

Mindmap

Keywords

💡GPT

GPTは「生成事前訓練トランスフォーマー」の略で、大量のデータをもとに学習し、新しいテキストを生成するAIモデルです。このキーワードは、ビデオの中心テーマであるAIのテキスト生成能力に直結し、ビデオ全体を通じて説明されています。

💡事前訓練

事前訓練とは、モデルが具体的なタスクに追加のトレーニングをする前に、大量のデータを用いて学習することを指します。ビデオでは、GPTが事前訓練を通じてテキスト生成能力を獲得し、その後のファインチューニングが可能になるプロセスが説明されています。

💡トランスフォーマー

トランスフォーマーは、特定の種類のニューラルネットワークであり、現在のAI技術の主流を占めています。ビデオでは、トランスフォーマーがテキスト生成や翻訳などの多様なタスクで用いられる理由とその仕組みが詳述されています。

💡アテンションブロック

アテンションブロックは、トランスフォーマーの核心的な要素であり、テキスト内の各単語が他の単語とどれだけ関連しているかを把握する役割を果たします。ビデオでは、アテンションブロックがどのようにして文脈を理解し、テキスト生成に寄与するのかが解説されています。

💡多層パーセプトロン

多層パーセプトロンは、深層学習モデルの基本的な構成要素で、入力されたベクトルに対して同じ演算を平行で行うことができます。ビデオでは、この概念がどのようにしてGPTの学習プロセスに貢献し、テキストの意味を更新するのかが説明されています。

💡埋め込み行列

埋め込み行列は、テキストの各単語を意味を含んだベクトルに変換する行列であり、GPTがテキストを理解する際に重要な役割を果たします。ビデオでは、埋め込み行列が単語をどのように表し、テキストの意味を伝えるプロセスが解説されています。

💡コンテキストサイズ

コンテキストサイズは、トランスフォーマーが一度に扱えるテキストの量を決定するパラメータです。ビデオでは、コンテキストサイズがモデルが文脈を理解する範囲にどのように影響を与えるのかが説明されています。

💡確率分布

確率分布は、次に来る単語を予測する際に生成される一連の可能性を表す数学的な表現です。ビデオでは、GPTが確率分布をどのように用いてテキストを生成し、その過程がどのように機能するのかが解説されています。

💡ソフトマックス関数

ソフトマックス関数は、数値のリストを正規化し、確率分布に変換する数学関数です。ビデオでは、ソフトマックスがGPTの予測プロセスでどのように用いられるのか、またどのようにして確率分布を生成するのかが説明されています。

💡温度パラメータ

温度パラメータは、ソフトマックス関数の適用時に用いられる定数で、生成されるテキストの予測の確率分布に影響を与えます。ビデオでは、温度パラメータがどのようにして生成されるテキストの多様性と確度を制御するのかが解説されています。

💡ロジット

ロジットは、ソフトマックス関数適用前の数値のリストであり、各要素が次に来る単語を予測する指標として用いられます。ビデオでは、ロジットが確率分布を作成する前の予測モデルの出力を表す役割が説明されています。

Highlights

GPTは事前訓練されたトランスフォーマーモデルで、新しいテキストを生成することができます。

事前訓練とは、モデルが大量のデータを学習し、具体的なタスクに応じてファインチューニングが可能という意味です。

トランスフォーマーは、現在のAIブームの中心的な発明であり、様々な種類のニューラルネットワークモデルの基礎となっています。

トランスフォーマーを使用すると、音声からテキストを書き取り、テキストから音声を生成するモデルを作成できます。

2022年に登場したDALL-EやMIDJOURNEYは、トランスフォーマーを用いてテキストから画像を生成するAIです。

原型のトランスフォーマーは、Googleが言語間の翻訳タスクに特化して開発しましたが、チャットGPTなどのテキスト予測モデルにも使用されています。

GPTは、与えられたテキストに基づいて次の単語を予測するように訓練され、その予測は確率分布として表現されます。

GPT2を動かすと、次の単語を予測し、ストーリーを生成することができますが、そのストーリーは必ずしも意味を持っていません。

GPT3はより大きなモデルで、意味のあるストーリーを生成することができます。

入力テキストは小さな部分に分けられ、トークンと呼ばれ、それぞれのトークンはベクトルに変換されます。

アテンションブロックは、ベクトルがお互いに情報を渡し合い、意味を更新する演算を行います。

多層パーセプトロンブロックは、ベクトルに同じ演算を平行で行い、値を更新します。

これらの演算は、巨大な行列の掛け算と見なされ、行列の理解が重要です。

アテンションと多層パーセプトロンの繰り返しによって、文章の意味が最後のベクトルに集約されます。

最後のベクトルから、次に来る全てのトークンの確率分布を作成し、テキストを生成することができます。

チャットボットは、ユーザーとの交流を通じて学習し、プロンプトを生成することで応答します。

深層学習は、逆伝播アルゴリズムを用いて学習され、モデルは入力データからパラメーターを調整します。

GPT3は150億のパラメーターを持ち、これは2万8000円の行列にまとめることができます。

埋め込み行列は、単語をベクトルに変換し、高次元空間内の点を表すために使用されます。

アテンション機構は、AIブームの中心であり、トランスフォーマーモデルを理解する上で重要です。

Transcripts

play00:00

GPTは生成事前訓練トランスフォーマー

play00:03

の略です1つ目は分かりやすいですねこれ

play00:05

は新しいテキストを生成するボットです

play00:08

事前訓練とはモデルが大量のデータを元に

play00:11

学習したことを表していますまたセト時

play00:14

から具体的なタクについて追加の

play00:17

トレーニングによってファイン

play00:18

チューニングをする余地があることが

play00:20

読み取れますしかし最後の単語これが真の

play00:22

鍵ですトランスフォーマーは特定の種類の

play00:25

ニューラルネットワーク機械学習モデルで

play00:27

現在のAIブームの元となっている中心的

play00:30

な発明ですこの動画と続編では

play00:32

トランスフォーマーの中で何が起こって

play00:34

いるのかを資格的に説明し

play00:37

ます内部を通るデータの流れに沿って

play00:40

一歩一歩見ていきましょう

play00:42

トランスフォーマーを使って作ることが

play00:44

できるモデルはたくさんありますある

play00:46

モデルは音声を元に台本を書き取ることが

play00:49

できますまたその逆でテキストから合成

play00:52

音声を作るモデルもあり

play00:54

ます2022年世界を接見したドリーや

play00:58

ミッジャーニーといったテキストから画像

play01:00

を生成するAIはトランスフォーマーで

play01:02

できてい

play01:03

ますフイクリーチャーが本来どんな見た目

play01:06

かは私にも分からないんですがこういった

play01:08

ことがある程度できるだけでもすごいと

play01:10

思い

play01:12

ます原型のトランスフォーマーは2017

play01:15

年にGoogleによってある言語から別

play01:17

の言語にテキストを翻訳する具体的な

play01:20

ユースケースのために発明されました

play01:22

しかし私たちが見ていくのはチャトGPT

play01:24

などの元になっているモデルでこれは

play01:26

テキストを受け取って場合によっては一緒

play01:29

に画像や音声を受け取って次に続くものが

play01:32

何であるか予測するように訓練されてい

play01:34

ますこの予測は次に続くテキストの候補

play01:37

異なるたくさんの塊の確率分布の形をして

play01:40

います一見すると次の単語を推測すること

play01:44

は新しいテキストを生成することから

play01:47

だいぶ離れていると感じられるかもしれ

play01:49

ませんがこうした予測モデルがあればより

play01:51

長い文章を最初に与えたテキストから作る

play01:54

ことができますモデルに生成された分布

play01:57

からランダムなサンプルを選ばせて

play02:00

これをテキストにくっつけてそれから全体

play02:02

のプロセスを今加えたものを含めた

play02:04

テキスト全体について再び実行します人に

play02:07

よるかもしれませんがこれがうまくいく気

play02:09

がしないという方もいらっしゃるかもしれ

play02:11

ません画面に示しているのはノート

play02:13

パソコンでGPT2を動かしている様子で

play02:16

繰り返し次の単語を予測させこれを

play02:18

取り込んで与えたテキストを元に

play02:20

ストーリーを生成させていますこの

play02:22

ストーリーはあんまり意味をなしていない

play02:24

ですねしかしこれをGPT3のAPIに

play02:27

変えるとこれは基本的に同じでただより

play02:30

大きなモデルなんですが急に意味をなす

play02:32

ストーリーが得られますパイクリーチャー

play02:34

が数学と計算の世界に住むとすら言ってい

play02:37

ますこの繰り返しの予測とサンプリングが

play02:41

まさに皆さんがチャットGPTや他の大

play02:43

規模言語モデルを使う時に起こっている

play02:45

こと

play02:46

です1単語ずつ生成される様子ですね次に

play02:50

来る新しい単語の元になっている分布が見

play02:53

られる機能は結構面白いと思います

play03:01

まずはトランスフォーマーがデータをどう

play03:03

処理するかざっくりと見ていきましょう

play03:06

それぞれのステップについて後でより深く

play03:08

詳細に見ていきますが全体像としては

play03:10

チャットボットがある単語を生成する時

play03:13

こんなことが起こってい

play03:15

ますまず入力はたくさんの小さな部分に

play03:18

分けられますこれらの小さな部分は

play03:21

トークンと呼ばれテキストの場合これは

play03:23

単語単語の1部分その他のよくある文字の

play03:26

組み合わせなどになります画像や音声を

play03:29

扱う場合トークンは画像の1区画や音声の

play03:33

1部分になりますこうしたトークンの1つ

play03:36

1つはベクトルつまり数のリストと

play03:38

結びつけられていますこれはその部分の

play03:40

意味を何らかの形で表現するものになって

play03:43

いますこれらのベクトルを非常に公次元の

play03:46

空間の座標として考えると似ている意味の

play03:48

単語はこの空間で互いに近いベクトルに

play03:51

なる傾向にありますこの1つきのベクトル

play03:54

はアテンションブロックという演算を経て

play03:57

ここでベクトルがお互いに情報を渡し値を

play04:00

更新します例えばモデルという単語は機械

play04:04

学習モデルという時とファッションモデル

play04:07

という時で意味が異なりますアテンション

play04:10

ブロックはある文脈でどの単語が他のどの

play04:13

単語と関連しているのか把握する役割を

play04:15

果し具体的にどのように意味を更新するか

play04:18

を導き出しますおさいですが意味という時

play04:21

これはベクトルの要素で完全に表現される

play04:24

ものを指してい

play04:25

ますそれからこれらのベクトルは別の演算

play04:29

多パーセプトロンやフィードフォワード層

play04:31

と呼ばれる部分を通り

play04:33

ますここではそれぞれのベクトルはお互い

play04:36

に干渉することなく同じ演算を平行で通り

play04:40

ますこのブロックは少し解釈が難しいの

play04:42

ですが後々このステップがそれぞれの

play04:45

ベクトルについていくつもの質問をして

play04:47

それからその答えに基づいて値を更新して

play04:50

いるようなものだということをお話しし

play04:52

ますこうした演算の全ては巨大な行列の

play04:54

掛け算の見た目をしていてこの基礎となっ

play04:57

ている行列をどう読むか理解することが

play05:00

私たちの第1目標になり

play05:03

ます途中にある正規化のステップなど詳細

play05:06

を飛ばしてはいるもののこれがざっくりと

play05:08

した見た目

play05:10

ですその後は基本的に同じプロセスの

play05:13

繰り返しになりますアテンションブロック

play05:15

と多層パーセプトロンブロックをいったり

play05:17

来たりしてついに最後まで来ると一塊の

play05:20

文章の根本的な意味全部がこの最後の

play05:23

ベクトルに焼きつけられ

play05:25

ますそれからこの最後のベクトルに特定の

play05:28

演算をして次に来るかもしれない全ての

play05:31

トークンの確率分布を作り

play05:33

ます前述の通り与えられたテキストの次に

play05:37

来るものを予測するツールがあれば初期値

play05:39

となるテキストを与えて次に何が来るかを

play05:42

繰り返し予測させることができます分布

play05:45

からサンプルを取ってきて元のテキストに

play05:47

付け加えてこれをひたすら繰り返すことが

play05:49

できますね詳しい方はチットGPTが

play05:52

現れるずっと前にGPT3のデモがこんな

play05:55

見た目だったのを覚えているかもしれませ

play05:57

んストーリーやエッセイを与えられた

play05:59

テキストにに基づいて自動保管させるわけ

play06:01

ですこうした道具をチャットボットにする

play06:03

簡単な方法はまずユーザーと優秀なAI

play06:07

アシスタントの交流の設定を作るような

play06:09

テキストを作ってこれはシステム

play06:11

プロンプトと呼びますがそれからユーザー

play06:13

の最初の質問あるいはプロンプトを対話の

play06:16

最初の部分にしてそれからこういった優秀

play06:19

なAIアシスタントがどのように応答し

play06:21

そうか予測させますこれがうまくいくため

play06:24

に必要な事前学習のステップはありますが

play06:27

ざっくり言うとこれが基本的な考え方です

play06:30

ですこのチャプターではネットワークの

play06:33

1番最初と1番最後で何が起こっているか

play06:36

詳しく見ていきますそれから

play06:38

トランスフォーマーが登場した時点でどの

play06:40

機械学習エンジニアにとっても当たり前に

play06:42

なっていたであろう重要な背景知識も時間

play06:45

をかけておさいしたいと思いますもしこの

play06:48

背景知識に馴染みがある場合はご自由に次

play06:50

のチャプターに飛んでいただいて構いませ

play06:52

んそちらではトランスフォーマーの心臓と

play06:55

も言えるアテンションブロックに焦点を

play06:57

当てますその後は多層パーセプトロン

play06:59

ブロックや学習の仕組みその他そこまで

play07:01

飛ばしてきた詳細な部分についてお話しし

play07:05

ますより広い視点ではこれらの動画は深層

play07:09

学習についての短いシリーズの続きになっ

play07:11

ています前回までをご覧になっていなくて

play07:14

も大丈夫ですが特にトランスフォーマーに

play07:16

ついて見ていく前に深層学習の基本的な

play07:18

前提や構造について確認しておくと良いと

play07:21

思います明らかかもしれませんがこれは

play07:24

機械学習のアプローチの1つですモデルが

play07:27

どう振る舞うかを何かしらでデータを使っ

play07:30

て決めるようなどんなモデルのことも指し

play07:33

ますこれはつまり例えば画像を受け取って

play07:36

それが何であるかラベル付けしたり

play07:39

テキストを元に次に来る単語を予測したり

play07:41

ある種の直感やパターン認識の要素を必要

play07:44

とするタスクのことです最近だとこれを

play07:47

当たり前だと思うかもしれませんが機械

play07:49

学習の考え方はこのタスクを遂行する

play07:51

手続きを具体的にコードで定義しようと

play07:54

するのではなくちなみにこれはAIの最初

play07:57

期に人々がやっていたことなんですがその

play07:59

代わりに調整可能なパラメーターある種

play08:02

ダイヤルやノブのようなものをたくさん

play08:04

持った柔軟な構造を持たせてそれから与え

play08:07

られた入力に対してどんな出力が適切かと

play08:10

いうたくさんの例を使ってこの

play08:11

パラメーターを調整することでこの振舞を

play08:14

真似させようというものです例えば機械

play08:16

学習の最も単純な例は線形会期かもしれ

play08:19

ません入力と出力はそれぞれ1つの数で

play08:22

例えば住宅の面積とその価格でこれを元に

play08:26

住宅価格を予測するために1番合う直線を

play08:29

見つけたいとし

play08:30

ますこの直線を2つの連続変数例えば傾き

play08:34

とY接辺で表すことにすると線形会期の

play08:38

ゴールはデータにできるだけ合うような

play08:40

これらの変数を決定することになります

play08:43

言うまでもなく深層学習モデルはずっと

play08:45

複雑です例えばGPT3は2つではなく

play08:49

1750SECのパラメーターを持ってい

play08:51

ますしかし問題は膨大な数のパラメーター

play08:54

を持つ巨大なモデルを作ることができたと

play08:57

してもそれが訓練データに過剰に適しない

play08:59

ことやあるいは全く訓練できない手に負え

play09:02

ないといったことにならない保証はないと

play09:04

いうことです深層学習はここ数十年で

play09:07

目覚ましくスケールできることが分かった

play09:09

モデルですその共通点は学習の

play09:12

アルゴリズムで以前お話しした逆電波と

play09:14

呼ばれるものですねここで皆さんと共有し

play09:17

ておきたいのはこの学習アルゴリズムが大

play09:20

規模でもうまくいくためにはこれらの

play09:22

モデルは特定の形式に従う必要があると

play09:25

いうことですこの先この形式が分かって

play09:27

いればトランスフォーマーに同言語を処理

play09:29

させているかたくさんのデザイン上の選択

play09:32

が当てずぽに感じられることなく説明し

play09:34

やすくなりますまずどのようなモデルでも

play09:37

入力は実数の配列である必要があります

play09:40

これは数のリストかもしれないし2次元の

play09:43

配列かもしれません大抵テンソルと呼ば

play09:47

れるより高次元の配列を扱います入力

play09:50

データはたくさんの異なる層に変換されて

play09:53

いくと考えることができ

play09:55

ます角層は実数の配列の構造をしていて

play09:58

最後のまで来るとこれは出力になります

play10:01

例えばテキスト処理モデルでは最後の層は

play10:04

次に来るトークンの確率分布を表す数の

play10:07

リストになっています深層学習ではこれら

play10:10

のパラメーターは大抵重みと呼ばれます

play10:13

これはこのパラメーターがデータ処理に

play10:15

どう関わるかに由来していますつまり重み

play10:18

つきは

play10:20

です非線形関数も登場しますがこれは

play10:23

パラメーターとは関係ないですねしかし

play10:26

大抵このように直接重み付きを書く割に

play10:29

行列とベクトルの席の要素として一まとめ

play10:32

にされているのを見かけると思い

play10:34

ます行列とベクトルの席を知っていれば

play10:37

これは同じものを表していると分かります

play10:40

ね出力のそれぞれの成分は重みつきはの見

play10:43

た目をしています単に概念的により明確だ

play10:46

と思うんですが行列を調整できるたくさん

play10:48

のパラメーターと考えてこれがデータから

play10:51

取ってきたベクトルを変換

play10:52

トランスフォームすると考え

play10:54

ましょう例えばGPT3の150億の重み

play10:59

は2万8000円に満たない行列に

play11:01

まとめることができますこれらの行列は8

play11:04

つに分類されます1つ1つのカテゴリに

play11:07

ついてそれが何をするのか見ていくことに

play11:10

play11:11

ましょうこのGPT3の150億という

play11:15

数字がどこから来たのか数え上げながら

play11:17

進むのは面白いのではないかと思います

play11:20

最近はより大きなより性能の良いモデルが

play11:23

ありますがGPT3には機械学習

play11:25

コミュニティを超えて世界の注目を浴びた

play11:28

魅力があるのではないですでしょかそれ

play11:30

から現実的に企業は最近のネットワークに

play11:33

関連した数字は言わない傾向にあります

play11:35

からチットGPTのようなツールの仕組み

play11:38

を見ていく準備をしっかりしておきたいと

play11:40

思い

play11:42

ますほとんどの計算は行列とベクトルの席

play11:45

の見た目をしていますが膨大な数の波に

play11:47

飲まれて迷子になってしまわないように先

play11:50

にしっかり区別をしておき

play11:52

ましょうモデルの重みは青か赤の色をつけ

play11:55

て表示します処理されるデータの方は

play11:59

グレースケールで表示します重みが脳の

play12:02

部分で訓練により学習し振る舞いを決める

play12:04

部分

play12:06

です処理されるデータはモデルが動く時に

play12:09

与えられる入力例えばテキストの一部の

play12:12

ような具体的な入力の情報を単に表してい

play12:15

ますこれを基礎としてテキスト処理の対1

play12:18

歩を見ていきましょう入力を細切れにして

play12:22

それをベクトルに変えることでしたこれら

play12:24

の細切れになった部分をトークンと呼ぶ話

play12:27

をしました単語の一部や記号などですね

play12:30

しかし今後動画の中ではもう少し綺麗に

play12:32

単語ごとに区切られているというふりをし

play12:34

たいと思います実際には違うんですが人間

play12:38

は単語で考えるので説明がずっと分かり

play12:40

やすくなりますから

play12:41

ねモデルには定義済みの語意考えられる

play12:45

あらゆる単語例えば5万5くらいのリスト

play12:47

があります我々が出くわす最初の行列は

play12:50

埋め込み行列と言ってこれらの単語1つ1

play12:53

つの列を持ってい

play12:55

ますこれらの列が最初のステップで

play12:58

それぞれの単がどのベクトルになるか決め

play13:00

ていますこれをWeと呼ぶことにし

play13:04

ましょう他の行列同様ランダムに始まって

play13:07

データを元に学習をさせ

play13:10

ます単語をベクトルにすることは

play13:12

トランスフォーマーの前から機械学習では

play13:14

よくあることでしたが初めて見る方にとっ

play13:17

てはやや奇妙に感じられるかもしれません

play13:19

のでちょっとこれになれる練習をし

play13:21

ましょう

play13:22

かこれは埋め込みと呼ばれてこれらの

play13:25

ベクトルは高次元の空間内の点を指すもの

play13:28

と考えることがができ

play13:30

ます3つの数のリストを3次元空間内の点

play13:34

の座標として資格化するのは簡単ですね

play13:37

しかし単語の埋め込みはずっと高次元です

play13:40

GPT3では

play13:41

2228次元ありますたくさんの異なる

play13:45

方向を持つ空間で扱うことには実は意味が

play13:47

あるんですね3次元空間を横切る2次元の

play13:50

平面を取ってきて全ての点をこの平面に

play13:54

投影するのと同様に単語の埋め込みを説明

play13:57

するためにこの非常に高次元の空間を通る

play13:59

3次元のスライスを選んで単語のベクトル

play14:02

をここに投影した結果をお見せしたいと

play14:04

思い

play14:05

[音楽]

play14:07

ますここで重要なのはモデルが重みを調整

play14:11

し学習する中で具体的にどのように単語が

play14:14

ベクトルに埋め込まれるかを決めるんです

play14:16

がこの時空間の中での方向がある種言葉の

play14:19

意味と関連するようになるということです

play14:22

例えばここで示している単純な単語と

play14:24

ベクトルのモデルではタワーに近い

play14:26

埋め込みのベクトルを探すと対応する単は

play14:29

どれもタワーっぽい感じを出していますよ

play14:32

ねご自宅でpyonでやってみたい方は

play14:35

このモデルが今アニメーションに使われて

play14:37

いるものですトランスフォーマーではあり

play14:39

ませんが説明するには十分ですねとにかく

play14:42

空間内の方向が意味を表すことができると

play14:45

いうことです昔ながらの例を示すと例えば

play14:48

女性と男性を表すベクトルの差を取ること

play14:50

を考えますこれはベクトルの先端をつげて

play14:54

こんな見た目になるのです

play14:55

がこれは女王とOの差にとても似たものに

play14:59

なってい

play15:01

ますなので例えば女性の君主を表す言葉を

play15:05

知らなかったらまず王を見つけてきて次に

play15:08

これに女性引く男性の方向を足してこの点

play15:11

に1番近い埋め込みを検索しますま大体

play15:15

こんな感じですこれは昔ながらの例なん

play15:17

ですが今回説明に使ったモデルでは

play15:19

クイーンはもうちょっと離れているみたい

play15:21

です多分訓練データでのクイーンの使われ

play15:24

方にバンドのクイーンとか他の用法が入っ

play15:27

ていたんでしょう

play15:29

色々試すと家族関係がより良い資格化に

play15:32

なっていまし

play15:32

たとにかくトレーニングの過程でモデルは

play15:36

空間のある位方向が性別の情報を表すよう

play15:39

に学習したよう

play15:43

です別の例ではイタリアの埋込みを取って

play15:46

きてドイツを引き算してこれにヒトラーを

play15:50

足す

play15:51

とムッソリーニの埋め込みにとても近い

play15:54

ものが得られますまるでモデルがある方向

play15:57

をイタリアっぽさと学習して別の方向を第

play16:00

2次世界大戦の数字国指導者たちと学んだ

play16:03

かのようですちなみに面白いのはある

play16:05

モデルではドイツと本の差を取っ

play16:08

てそこに寿司を加えるとソーセージ

play16:12

ブラッドブルストに近いものが得られると

play16:15

いうことですね他にも近いベクトルを探す

play16:17

例では猫が獣とモンスターの近くになって

play16:20

いました特に次回に向けて覚えておくと

play16:24

良い数学的知識が2つのベクトルの内積

play16:26

ですこれは2つのベクトルがどれだだけ

play16:29

揃っているか測る方法として考えることが

play16:31

できます計算的には内積は全ての成分を

play16:35

それぞれペアで掛け算して足し合わせる

play16:37

ことになります私たちの計算のほとんどは

play16:40

重み付きはの見た目をしているのでこれは

play16:42

いいですね科学的には内積は2つの

play16:45

ベクトルが近い方向を向いていると正に

play16:47

なり垂直だと0になり逆方向を向いている

play16:51

と負になり

play16:53

ます例えばこのモデルで遊んでいて猫の

play16:56

複数形から端数形を引き算したら数を表す

play17:00

方向が分かるのではないかと予想でき

play17:03

ますこれをテストするにはこのベクトルと

play17:06

他の単数の名刺の埋め込みの内積を計算し

play17:09

てこれを複数形との内積と比較します

play17:14

いろんな単語で試すと複数形は確かに単数

play17:17

形よりも常に高い値を与えつまりこの方向

play17:20

に揃っているように見え

play17:23

ますさらに面白いのはこの内積を1や23

play17:27

といった単語の埋めと取ると増えていく値

play17:30

が得られてまるである単語がどれだけ複数

play17:33

っぽいかを量的に測ることができるかの

play17:35

ようです

play17:36

ね単語が具体的にどう埋め込まれるかは

play17:40

データを元に学習されます列がそれぞれの

play17:42

単語に何が起こるかを決める埋め込み行列

play17:45

は私たちのモデルの最初の重みの集まり

play17:47

ですGPT3では語意のサイズは5257

play17:52

ですおさいですが厳密にはこれは単語では

play17:55

なくトークンからなります埋め込みの次元

play17:59

は1万2188でこれらを掛け算すると

play18:02

重みが6億1700万ほどあることが

play18:05

分かります集計表にこれを書き加えておき

play18:08

ましょう最後には合計150億になるはず

play18:11

でした

play18:12

ねトランスフォーマーではこの埋込み空間

play18:15

のベクトルはただそれぞれの単語を表して

play18:17

いるだけではありませ

play18:19

んまずこれらは単語の位置を表す情報も

play18:22

持っていますこれは後でお話ししますが

play18:25

より重要なのはこれらが分脈を吸収する

play18:28

余裕を持っていると考えるべきであると

play18:30

いうことです例えばOを表す単語の

play18:32

埋め込みのベクトルから始まってこの

play18:35

ネットワークの様々なブロックに押したり

play18:37

引いたりされながら最後にはずっと具体的

play18:40

な方向に行くことができるということです

play18:43

スコットランドに住み前の台の王を殺し

play18:46

シェイクスピアの戯曲になったとか

play18:51

ね皆さんがどう単語を理解するか考えてみ

play18:55

ましょうその単語の意味は明らかに周辺の

play18:58

情報を使理解しますこれが離れたところの

play19:00

文脈である時もありますねなので次の単語

play19:04

を予測できるモデルを作るためにはどうに

play19:06

かこの文脈を効率的に盛り込む力を持たせ

play19:09

ないといけませんはっきりさせておくと

play19:12

最初入力テキストを元に配列を作るところ

play19:15

ではそれぞれのベクトルは単純に埋め込み

play19:18

行列から作られますなのではめ1つ1つは

play19:21

周囲の情報を持たない1つの単語の意味

play19:23

のみを持っていますしかしこの

play19:25

ネットワークがやりたいことはそれぞれの

play19:27

ベクトルが単語単体よりもずっと豊かで

play19:30

具体的な意味を吸収できるようにすること

play19:35

ですネットワークは1度に決まった数の

play19:38

ベクトルしか処理することができずこの数

play19:41

はコンテキストサイズと呼ばれますGPT

play19:43

3ではこの数は2048なので

play19:46

ネットワークを流れるデータは2048の

play19:48

列がそれぞれ1万2000ほどの次元を

play19:51

持った配列の見た目をしていますこの

play19:53

コンテキストサイズはトランスフォーマー

play19:55

が次の単語を予測する際に扱えるテキスト

play19:58

のの量を決めていますだから初期の

play20:00

チャットGPTなどのチャットボットと

play20:02

長く会話していると会話の流れを失った

play20:05

ような感じがするんです

play20:09

ねアテンションについては次回説明します

play20:12

が飛ばして先に最後の部分についてお話し

play20:15

したいと思いますおさいですが欲しい出力

play20:18

は次に来るトークンの確率分布でし

play20:21

た例えば最後の単語が教授

play20:25

で文脈にハリーポッターのような単語が

play20:28

含まれてい

play20:29

その直後に1番嫌いな先生といった言葉が

play20:32

あってそれからここではトクが単純に単語

play20:35

の見た目をしていることにするとハリー

play20:37

ポッターの知識を持つ訓練された

play20:39

ネットワークはスネイプという単語に高い

play20:41

数値を結びつけますこれは2つのステップ

play20:45

からなります1つ目はまた別の強烈を使っ

play20:47

て最後のベクトルから語意にある5万の

play20:50

トークンそれぞれについての値を導き出し

play20:54

ますそれからこれを正規化して確率分布に

play20:57

する関数ソフトマックスがあってすぐ後で

play21:00

このお話もしますしかしその前にこの最後

play21:03

の埋め込みのみを使って予測をするのは

play21:06

少し奇妙な感じがしませんかこの最後の層

play21:09

でも数千の他のベクトルがそれぞれ文脈を

play21:12

含んだ意味を持ってそこにあるにも関わら

play21:15

ずこれは訓練の段階で最後の層のそれぞれ

play21:19

のベクトルに同時に直後に何が来るか推測

play21:22

させた方がずっと効率的だったということ

play21:24

に由来するんです

play21:27

ね後で訓練トレーニングについては詳細に

play21:30

扱い

play21:32

ますこの行列はアニベディメイトリックス

play21:35

と言って訳語が見つからなかったんですが

play21:37

このシリーズでは掘り出し行列ということ

play21:39

にしますそしてこの掘り出し行列はWUと

play21:42

書くことにしますこれも他の全ての重みの

play21:45

行列と同様成分ははめランダムで

play21:47

トレーニングによって学習されていきます

play21:50

そういえばパラメーターの数を数えてい

play21:51

ましたねこの掘り出し行列は語意の単語

play21:54

それぞれについて行を持っておりそれぞれ

play21:56

の行は埋め込み次元と同じ数の要素を持っ

play21:59

ています埋め込み行列ととても似ていて

play22:02

順番が入れ替わっただけですねなのでまた

play22:05

6億1700万パラメーターが加わって

play22:07

ここまでで12億ぐらいになりました全部

play22:10

で1750のうち小さいけど無視できない

play22:14

一部

play22:15

ですこのチャプターのミニ講座として

play22:18

ソフトマックス関数についてお話しします

play22:21

これはアテンションブロックでも出てき

play22:23

ますから

play22:24

ね数のリストがあってこれを確率分布とし

play22:28

して解釈したい場合例えば次に来る単語の

play22:31

分布とかですねそれぞれの値は0と1の間

play22:34

になっていないといけないのとまた全部

play22:37

足し合わせたら1になっている必要があり

play22:39

ますしかし行列とベクトルの席がたくさん

play22:42

ある学習を一通り終えるとデフォルトの

play22:45

出力の見た目は全くこうなっていませ

play22:48

ん負の値もたくさんあるし1より大きい

play22:51

ものもあるしほとんど確実に足して1に

play22:54

なりませんソフトマックスは2位の数の

play22:56

リストを有効な分布に変関する標準的な

play22:59

方法で大きな値は1に近く小さな値は0に

play23:03

近くなり

play23:04

ますひとまず必要なのはここまでです興味

play23:08

がある方向けに説明するとまずそれぞれの

play23:10

数でEを上して正の数のリストにし

play23:14

ますそれからこれらの正の値の輪を取って

play23:18

この輪でそれぞれの値を割り算しますこれ

play23:21

で正規化されてリストの合計が1になり

play23:23

ますもし入力のうち1つの数が他より

play23:26

明らかに大きければ出力で対応する値が

play23:30

分布で突出しますなのでここから標本を

play23:33

取ったらほとんど確実に最大の入力を取っ

play23:36

ていることになりますしかし他の値が同様

play23:38

に大きい場合分布に有意味な重みが現れ

play23:41

ますからその意味で最大MAを取るより

play23:44

ソフトなんですねそれから入力を連続的に

play23:47

変えると分布も連続的に変化します

play23:49

チャットGPTのようないくつかの場合に

play23:52

はこの分布に1工夫をしていますこれらの

play23:54

指数の分母に定数Tを入れていますこれは

play23:58

温度テンパラチャーと呼ばれますなんと

play24:00

なく熱力学方程式の温度のような役割を

play24:03

彷彿とさせますからねTが大きい時には

play24:06

小さな値により重みを与えることになり

play24:08

ますつまり分布はより一様に近くなり

play24:11

ますTが小さい時にはより大きな値がより

play24:15

分布を独占するようになりますTが0だと

play24:18

最大値に全ての重みが割り振られ

play24:21

ます例えばGPT3にストーリーを書かせ

play24:24

ましょう昔々あるところに誰々がいました

play24:27

の途中まで書いたテキストを与えますが

play24:30

それぞれ異なる温度を設定しています温度

play24:33

0は常に最も確からしい単語を選ぶことを

play24:35

意味します動画の3匹のクマを持ってきた

play24:39

ような話になりましたより高い温度では

play24:42

より低い確率の単語も選ぶチャンスがあり

play24:44

ますがリスクもありますここでは

play24:46

ストーリーはよりオリジナリティがある

play24:48

韓国の若いウェブアーティストの話から

play24:51

始まりましたがすぐに出たらめになって

play24:53

しまいました厳密にはAPIでは2より

play24:56

大きい温度を選べないようにいます数学的

play24:59

な理由はなくめちゃくちゃな内容を生成さ

play25:02

せないようにするためのC的な制限だと

play25:04

思われますなのでこのアニメーションは

play25:06

GPT3が作る次のトークン予測から

play25:09

APIで選べる最大の上位20件を取って

play25:12

きてそれからEの1/5上を元に確率を

play25:15

調整して作っていますもうちょっと用語の

play25:18

話をするとこの関数の出力の成分を確率と

play25:21

呼ぶのと同様にこの入力の部分はロジット

play25:24

と呼ばれ

play25:25

ます例えばあるテキストを入力して

play25:28

埋め込みがネットワークを流れてこの最後

play25:31

の掘り出し行列で掘り出されてくる時機械

play25:34

学習の人々はこの行の性分正規化されてい

play25:37

ない出力を次の単語の予測のロジットと

play25:40

呼び

play25:42

ますこのチャプターのゴールは

play25:44

アテンションを理解するための基礎を

play25:46

固めることでした素ぶり練習みたいな感じ

play25:50

ですねというのも単語埋め込みやソフト

play25:53

マックス内積が類似性を図ることそれから

play25:57

ほとんどの計算が行列の席の見た目をして

play26:00

いて行列がたくさんの調整できる

play26:02

パラメーターからなることを知っていれば

play26:04

アテンション機構このAIブームの中心は

play26:07

比較的スムーズに理解することができる

play26:09

ようになり

play26:10

ますアテンションについては次回見ていき

play26:27

ましょうOG

Rate This

5.0 / 5 (0 votes)

Related Tags
GPT事前訓練アテンション深層学習ニューラルネットワーク機械学習テキスト生成自然言語処理AI技術学習アルゴリズム
Do you need a summary in English?