GPTとは何か Transformerの視覚化 | Chapter 5, Deep Learning
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
🧠 GPTとは何か?
GPTは生成事前訓練トランスフォーマーの略であり、新しいテキストを生成するボットです。事前訓練は大量のデータに基づいてモデルが学習することを意味し、トランスフォーマーは特定のニューラルネットワークの種類で、現在のAI技術の中心的な発明です。この動画では、トランスフォーマー内部でデータがどのように処理されるかを視覚的に説明し、様々なモデルの利用例についても紹介します。例えば、音声からテキストを生成するモデルや、テキストから画像を生成するモデルなどです。原型のトランスフォーマーはGoogleによって2017年に発明され、チャットGPTなどの基礎となっています。テキストの予測を通じて長い文章を生成するプロセスを説明し、GPT3とGPT2の違いについても触れています。
🔄 トランスフォーマーのプロセス
トランスフォーマーのデータ処理の流れを簡単に説明します。入力データはトークンと呼ばれる小さな部分に分割され、それぞれがベクトルに変換されます。このベクトルはアテンションブロックと多層パーセプトロンブロックを通じて情報を交換し、意味を更新します。最終的に生成されたベクトルは次に来るトークンの確率分布を作り出し、この分布をもとに次の単語を予測することができます。このプロセスは繰り返し行われ、長いテキストを生成することができます。
📊 埋め込みベクトルとその役割
トランスフォーマーでは、単語やトークンは埋め込みベクトルとして表現されます。これらのベクトルは高次元空間内の座標として考えることができ、意味の似ている単語は近いベクトルになります。埋め込みベクトルはトランスフォーマーの処理を通じて意味を持つ方向に変化し、モデルは訓練データをもとにこの方向性を学習します。例えば、性別や国に関連するベクトルの差を取ることで、意味のある情報を抽出することができます。
🌐 トランスフォーマーの文脈理解
トランスフォーマーは単語の埋め込みベクトルを用いて文脈を理解し、次に来る単語を予測します。モデルは1度に決まった数のベクトルしか処理できず、この数はコンテキストサイズと呼ばれます。GPT3では2048のベクトルが処理され、これがモデルが扱えるテキストの量を決定します。ネットワークの各層を通じて、ベクトルは意味を持つ方向に変化し、最終的に次に来る単語の予測に使用されます。
🎯 確率分布とソフトマックス関数
トランスフォーマーの最終ステップでは、次に来るトークンの確率分布を生成します。これにはソフトマックス関数が使用され、出力の数値を0と1の間に正規化し、全体の合計が1になるようにします。これにより、確率分布として解釈可能な形になります。モデルはこの分布をもとに次の単語を予測し、温度パラメータを調整することで、予測の多様性をコントロールできます。
📚 アテンション機構の準備
次回の動画では、アテンション機構について詳しく説明します。アテンション機構はトランスフォーマーの中心的な部分であり、埋め込みベクトルやソフトマックス、内積の概念を理解することでスムーズに理解できます。アテンション機構は、AIモデルが文脈を効率的に取り入れるための重要な要素です。
Mindmap
Keywords
💡GPT
💡事前訓練
💡トランスフォーマー
💡アテンションブロック
💡多層パーセプトロン
💡埋め込み行列
💡コンテキストサイズ
💡確率分布
💡ソフトマックス関数
💡温度パラメータ
💡ロジット
Highlights
GPTは事前訓練されたトランスフォーマーモデルで、新しいテキストを生成することができます。
事前訓練とは、モデルが大量のデータを学習し、具体的なタスクに応じてファインチューニングが可能という意味です。
トランスフォーマーは、現在のAIブームの中心的な発明であり、様々な種類のニューラルネットワークモデルの基礎となっています。
トランスフォーマーを使用すると、音声からテキストを書き取り、テキストから音声を生成するモデルを作成できます。
2022年に登場したDALL-EやMIDJOURNEYは、トランスフォーマーを用いてテキストから画像を生成するAIです。
原型のトランスフォーマーは、Googleが言語間の翻訳タスクに特化して開発しましたが、チャットGPTなどのテキスト予測モデルにも使用されています。
GPTは、与えられたテキストに基づいて次の単語を予測するように訓練され、その予測は確率分布として表現されます。
GPT2を動かすと、次の単語を予測し、ストーリーを生成することができますが、そのストーリーは必ずしも意味を持っていません。
GPT3はより大きなモデルで、意味のあるストーリーを生成することができます。
入力テキストは小さな部分に分けられ、トークンと呼ばれ、それぞれのトークンはベクトルに変換されます。
アテンションブロックは、ベクトルがお互いに情報を渡し合い、意味を更新する演算を行います。
多層パーセプトロンブロックは、ベクトルに同じ演算を平行で行い、値を更新します。
これらの演算は、巨大な行列の掛け算と見なされ、行列の理解が重要です。
アテンションと多層パーセプトロンの繰り返しによって、文章の意味が最後のベクトルに集約されます。
最後のベクトルから、次に来る全てのトークンの確率分布を作成し、テキストを生成することができます。
チャットボットは、ユーザーとの交流を通じて学習し、プロンプトを生成することで応答します。
深層学習は、逆伝播アルゴリズムを用いて学習され、モデルは入力データからパラメーターを調整します。
GPT3は150億のパラメーターを持ち、これは2万8000円の行列にまとめることができます。
埋め込み行列は、単語をベクトルに変換し、高次元空間内の点を表すために使用されます。
アテンション機構は、AIブームの中心であり、トランスフォーマーモデルを理解する上で重要です。
Transcripts
GPTは生成事前訓練トランスフォーマー
の略です1つ目は分かりやすいですねこれ
は新しいテキストを生成するボットです
事前訓練とはモデルが大量のデータを元に
学習したことを表していますまたセト時
から具体的なタクについて追加の
トレーニングによってファイン
チューニングをする余地があることが
読み取れますしかし最後の単語これが真の
鍵ですトランスフォーマーは特定の種類の
ニューラルネットワーク機械学習モデルで
現在のAIブームの元となっている中心的
な発明ですこの動画と続編では
トランスフォーマーの中で何が起こって
いるのかを資格的に説明し
ます内部を通るデータの流れに沿って
一歩一歩見ていきましょう
トランスフォーマーを使って作ることが
できるモデルはたくさんありますある
モデルは音声を元に台本を書き取ることが
できますまたその逆でテキストから合成
音声を作るモデルもあり
ます2022年世界を接見したドリーや
ミッジャーニーといったテキストから画像
を生成するAIはトランスフォーマーで
できてい
ますフイクリーチャーが本来どんな見た目
かは私にも分からないんですがこういった
ことがある程度できるだけでもすごいと
思い
ます原型のトランスフォーマーは2017
年にGoogleによってある言語から別
の言語にテキストを翻訳する具体的な
ユースケースのために発明されました
しかし私たちが見ていくのはチャトGPT
などの元になっているモデルでこれは
テキストを受け取って場合によっては一緒
に画像や音声を受け取って次に続くものが
何であるか予測するように訓練されてい
ますこの予測は次に続くテキストの候補
異なるたくさんの塊の確率分布の形をして
います一見すると次の単語を推測すること
は新しいテキストを生成することから
だいぶ離れていると感じられるかもしれ
ませんがこうした予測モデルがあればより
長い文章を最初に与えたテキストから作る
ことができますモデルに生成された分布
からランダムなサンプルを選ばせて
これをテキストにくっつけてそれから全体
のプロセスを今加えたものを含めた
テキスト全体について再び実行します人に
よるかもしれませんがこれがうまくいく気
がしないという方もいらっしゃるかもしれ
ません画面に示しているのはノート
パソコンでGPT2を動かしている様子で
繰り返し次の単語を予測させこれを
取り込んで与えたテキストを元に
ストーリーを生成させていますこの
ストーリーはあんまり意味をなしていない
ですねしかしこれをGPT3のAPIに
変えるとこれは基本的に同じでただより
大きなモデルなんですが急に意味をなす
ストーリーが得られますパイクリーチャー
が数学と計算の世界に住むとすら言ってい
ますこの繰り返しの予測とサンプリングが
まさに皆さんがチャットGPTや他の大
規模言語モデルを使う時に起こっている
こと
です1単語ずつ生成される様子ですね次に
来る新しい単語の元になっている分布が見
られる機能は結構面白いと思います
まずはトランスフォーマーがデータをどう
処理するかざっくりと見ていきましょう
それぞれのステップについて後でより深く
詳細に見ていきますが全体像としては
チャットボットがある単語を生成する時
こんなことが起こってい
ますまず入力はたくさんの小さな部分に
分けられますこれらの小さな部分は
トークンと呼ばれテキストの場合これは
単語単語の1部分その他のよくある文字の
組み合わせなどになります画像や音声を
扱う場合トークンは画像の1区画や音声の
1部分になりますこうしたトークンの1つ
1つはベクトルつまり数のリストと
結びつけられていますこれはその部分の
意味を何らかの形で表現するものになって
いますこれらのベクトルを非常に公次元の
空間の座標として考えると似ている意味の
単語はこの空間で互いに近いベクトルに
なる傾向にありますこの1つきのベクトル
はアテンションブロックという演算を経て
ここでベクトルがお互いに情報を渡し値を
更新します例えばモデルという単語は機械
学習モデルという時とファッションモデル
という時で意味が異なりますアテンション
ブロックはある文脈でどの単語が他のどの
単語と関連しているのか把握する役割を
果し具体的にどのように意味を更新するか
を導き出しますおさいですが意味という時
これはベクトルの要素で完全に表現される
ものを指してい
ますそれからこれらのベクトルは別の演算
多パーセプトロンやフィードフォワード層
と呼ばれる部分を通り
ますここではそれぞれのベクトルはお互い
に干渉することなく同じ演算を平行で通り
ますこのブロックは少し解釈が難しいの
ですが後々このステップがそれぞれの
ベクトルについていくつもの質問をして
それからその答えに基づいて値を更新して
いるようなものだということをお話しし
ますこうした演算の全ては巨大な行列の
掛け算の見た目をしていてこの基礎となっ
ている行列をどう読むか理解することが
私たちの第1目標になり
ます途中にある正規化のステップなど詳細
を飛ばしてはいるもののこれがざっくりと
した見た目
ですその後は基本的に同じプロセスの
繰り返しになりますアテンションブロック
と多層パーセプトロンブロックをいったり
来たりしてついに最後まで来ると一塊の
文章の根本的な意味全部がこの最後の
ベクトルに焼きつけられ
ますそれからこの最後のベクトルに特定の
演算をして次に来るかもしれない全ての
トークンの確率分布を作り
ます前述の通り与えられたテキストの次に
来るものを予測するツールがあれば初期値
となるテキストを与えて次に何が来るかを
繰り返し予測させることができます分布
からサンプルを取ってきて元のテキストに
付け加えてこれをひたすら繰り返すことが
できますね詳しい方はチットGPTが
現れるずっと前にGPT3のデモがこんな
見た目だったのを覚えているかもしれませ
んストーリーやエッセイを与えられた
テキストにに基づいて自動保管させるわけ
ですこうした道具をチャットボットにする
簡単な方法はまずユーザーと優秀なAI
アシスタントの交流の設定を作るような
テキストを作ってこれはシステム
プロンプトと呼びますがそれからユーザー
の最初の質問あるいはプロンプトを対話の
最初の部分にしてそれからこういった優秀
なAIアシスタントがどのように応答し
そうか予測させますこれがうまくいくため
に必要な事前学習のステップはありますが
ざっくり言うとこれが基本的な考え方です
ですこのチャプターではネットワークの
1番最初と1番最後で何が起こっているか
詳しく見ていきますそれから
トランスフォーマーが登場した時点でどの
機械学習エンジニアにとっても当たり前に
なっていたであろう重要な背景知識も時間
をかけておさいしたいと思いますもしこの
背景知識に馴染みがある場合はご自由に次
のチャプターに飛んでいただいて構いませ
んそちらではトランスフォーマーの心臓と
も言えるアテンションブロックに焦点を
当てますその後は多層パーセプトロン
ブロックや学習の仕組みその他そこまで
飛ばしてきた詳細な部分についてお話しし
ますより広い視点ではこれらの動画は深層
学習についての短いシリーズの続きになっ
ています前回までをご覧になっていなくて
も大丈夫ですが特にトランスフォーマーに
ついて見ていく前に深層学習の基本的な
前提や構造について確認しておくと良いと
思います明らかかもしれませんがこれは
機械学習のアプローチの1つですモデルが
どう振る舞うかを何かしらでデータを使っ
て決めるようなどんなモデルのことも指し
ますこれはつまり例えば画像を受け取って
それが何であるかラベル付けしたり
テキストを元に次に来る単語を予測したり
ある種の直感やパターン認識の要素を必要
とするタスクのことです最近だとこれを
当たり前だと思うかもしれませんが機械
学習の考え方はこのタスクを遂行する
手続きを具体的にコードで定義しようと
するのではなくちなみにこれはAIの最初
期に人々がやっていたことなんですがその
代わりに調整可能なパラメーターある種
ダイヤルやノブのようなものをたくさん
持った柔軟な構造を持たせてそれから与え
られた入力に対してどんな出力が適切かと
いうたくさんの例を使ってこの
パラメーターを調整することでこの振舞を
真似させようというものです例えば機械
学習の最も単純な例は線形会期かもしれ
ません入力と出力はそれぞれ1つの数で
例えば住宅の面積とその価格でこれを元に
住宅価格を予測するために1番合う直線を
見つけたいとし
ますこの直線を2つの連続変数例えば傾き
とY接辺で表すことにすると線形会期の
ゴールはデータにできるだけ合うような
これらの変数を決定することになります
言うまでもなく深層学習モデルはずっと
複雑です例えばGPT3は2つではなく
1750SECのパラメーターを持ってい
ますしかし問題は膨大な数のパラメーター
を持つ巨大なモデルを作ることができたと
してもそれが訓練データに過剰に適しない
ことやあるいは全く訓練できない手に負え
ないといったことにならない保証はないと
いうことです深層学習はここ数十年で
目覚ましくスケールできることが分かった
モデルですその共通点は学習の
アルゴリズムで以前お話しした逆電波と
呼ばれるものですねここで皆さんと共有し
ておきたいのはこの学習アルゴリズムが大
規模でもうまくいくためにはこれらの
モデルは特定の形式に従う必要があると
いうことですこの先この形式が分かって
いればトランスフォーマーに同言語を処理
させているかたくさんのデザイン上の選択
が当てずぽに感じられることなく説明し
やすくなりますまずどのようなモデルでも
入力は実数の配列である必要があります
これは数のリストかもしれないし2次元の
配列かもしれません大抵テンソルと呼ば
れるより高次元の配列を扱います入力
データはたくさんの異なる層に変換されて
いくと考えることができ
ます角層は実数の配列の構造をしていて
最後のまで来るとこれは出力になります
例えばテキスト処理モデルでは最後の層は
次に来るトークンの確率分布を表す数の
リストになっています深層学習ではこれら
のパラメーターは大抵重みと呼ばれます
これはこのパラメーターがデータ処理に
どう関わるかに由来していますつまり重み
つきは
です非線形関数も登場しますがこれは
パラメーターとは関係ないですねしかし
大抵このように直接重み付きを書く割に
行列とベクトルの席の要素として一まとめ
にされているのを見かけると思い
ます行列とベクトルの席を知っていれば
これは同じものを表していると分かります
ね出力のそれぞれの成分は重みつきはの見
た目をしています単に概念的により明確だ
と思うんですが行列を調整できるたくさん
のパラメーターと考えてこれがデータから
取ってきたベクトルを変換
トランスフォームすると考え
ましょう例えばGPT3の150億の重み
は2万8000円に満たない行列に
まとめることができますこれらの行列は8
つに分類されます1つ1つのカテゴリに
ついてそれが何をするのか見ていくことに
し
ましょうこのGPT3の150億という
数字がどこから来たのか数え上げながら
進むのは面白いのではないかと思います
最近はより大きなより性能の良いモデルが
ありますがGPT3には機械学習
コミュニティを超えて世界の注目を浴びた
魅力があるのではないですでしょかそれ
から現実的に企業は最近のネットワークに
関連した数字は言わない傾向にあります
からチットGPTのようなツールの仕組み
を見ていく準備をしっかりしておきたいと
思い
ますほとんどの計算は行列とベクトルの席
の見た目をしていますが膨大な数の波に
飲まれて迷子になってしまわないように先
にしっかり区別をしておき
ましょうモデルの重みは青か赤の色をつけ
て表示します処理されるデータの方は
グレースケールで表示します重みが脳の
部分で訓練により学習し振る舞いを決める
部分
です処理されるデータはモデルが動く時に
与えられる入力例えばテキストの一部の
ような具体的な入力の情報を単に表してい
ますこれを基礎としてテキスト処理の対1
歩を見ていきましょう入力を細切れにして
それをベクトルに変えることでしたこれら
の細切れになった部分をトークンと呼ぶ話
をしました単語の一部や記号などですね
しかし今後動画の中ではもう少し綺麗に
単語ごとに区切られているというふりをし
たいと思います実際には違うんですが人間
は単語で考えるので説明がずっと分かり
やすくなりますから
ねモデルには定義済みの語意考えられる
あらゆる単語例えば5万5くらいのリスト
があります我々が出くわす最初の行列は
埋め込み行列と言ってこれらの単語1つ1
つの列を持ってい
ますこれらの列が最初のステップで
それぞれの単がどのベクトルになるか決め
ていますこれをWeと呼ぶことにし
ましょう他の行列同様ランダムに始まって
データを元に学習をさせ
ます単語をベクトルにすることは
トランスフォーマーの前から機械学習では
よくあることでしたが初めて見る方にとっ
てはやや奇妙に感じられるかもしれません
のでちょっとこれになれる練習をし
ましょう
かこれは埋め込みと呼ばれてこれらの
ベクトルは高次元の空間内の点を指すもの
と考えることがができ
ます3つの数のリストを3次元空間内の点
の座標として資格化するのは簡単ですね
しかし単語の埋め込みはずっと高次元です
GPT3では
2228次元ありますたくさんの異なる
方向を持つ空間で扱うことには実は意味が
あるんですね3次元空間を横切る2次元の
平面を取ってきて全ての点をこの平面に
投影するのと同様に単語の埋め込みを説明
するためにこの非常に高次元の空間を通る
3次元のスライスを選んで単語のベクトル
をここに投影した結果をお見せしたいと
思い
[音楽]
ますここで重要なのはモデルが重みを調整
し学習する中で具体的にどのように単語が
ベクトルに埋め込まれるかを決めるんです
がこの時空間の中での方向がある種言葉の
意味と関連するようになるということです
例えばここで示している単純な単語と
ベクトルのモデルではタワーに近い
埋め込みのベクトルを探すと対応する単は
どれもタワーっぽい感じを出していますよ
ねご自宅でpyonでやってみたい方は
このモデルが今アニメーションに使われて
いるものですトランスフォーマーではあり
ませんが説明するには十分ですねとにかく
空間内の方向が意味を表すことができると
いうことです昔ながらの例を示すと例えば
女性と男性を表すベクトルの差を取ること
を考えますこれはベクトルの先端をつげて
こんな見た目になるのです
がこれは女王とOの差にとても似たものに
なってい
ますなので例えば女性の君主を表す言葉を
知らなかったらまず王を見つけてきて次に
これに女性引く男性の方向を足してこの点
に1番近い埋め込みを検索しますま大体
こんな感じですこれは昔ながらの例なん
ですが今回説明に使ったモデルでは
クイーンはもうちょっと離れているみたい
です多分訓練データでのクイーンの使われ
方にバンドのクイーンとか他の用法が入っ
ていたんでしょう
色々試すと家族関係がより良い資格化に
なっていまし
たとにかくトレーニングの過程でモデルは
空間のある位方向が性別の情報を表すよう
に学習したよう
です別の例ではイタリアの埋込みを取って
きてドイツを引き算してこれにヒトラーを
足す
とムッソリーニの埋め込みにとても近い
ものが得られますまるでモデルがある方向
をイタリアっぽさと学習して別の方向を第
2次世界大戦の数字国指導者たちと学んだ
かのようですちなみに面白いのはある
モデルではドイツと本の差を取っ
てそこに寿司を加えるとソーセージ
ブラッドブルストに近いものが得られると
いうことですね他にも近いベクトルを探す
例では猫が獣とモンスターの近くになって
いました特に次回に向けて覚えておくと
良い数学的知識が2つのベクトルの内積
ですこれは2つのベクトルがどれだだけ
揃っているか測る方法として考えることが
できます計算的には内積は全ての成分を
それぞれペアで掛け算して足し合わせる
ことになります私たちの計算のほとんどは
重み付きはの見た目をしているのでこれは
いいですね科学的には内積は2つの
ベクトルが近い方向を向いていると正に
なり垂直だと0になり逆方向を向いている
と負になり
ます例えばこのモデルで遊んでいて猫の
複数形から端数形を引き算したら数を表す
方向が分かるのではないかと予想でき
ますこれをテストするにはこのベクトルと
他の単数の名刺の埋め込みの内積を計算し
てこれを複数形との内積と比較します
いろんな単語で試すと複数形は確かに単数
形よりも常に高い値を与えつまりこの方向
に揃っているように見え
ますさらに面白いのはこの内積を1や23
といった単語の埋めと取ると増えていく値
が得られてまるである単語がどれだけ複数
っぽいかを量的に測ることができるかの
ようです
ね単語が具体的にどう埋め込まれるかは
データを元に学習されます列がそれぞれの
単語に何が起こるかを決める埋め込み行列
は私たちのモデルの最初の重みの集まり
ですGPT3では語意のサイズは5257
ですおさいですが厳密にはこれは単語では
なくトークンからなります埋め込みの次元
は1万2188でこれらを掛け算すると
重みが6億1700万ほどあることが
分かります集計表にこれを書き加えておき
ましょう最後には合計150億になるはず
でした
ねトランスフォーマーではこの埋込み空間
のベクトルはただそれぞれの単語を表して
いるだけではありませ
んまずこれらは単語の位置を表す情報も
持っていますこれは後でお話ししますが
より重要なのはこれらが分脈を吸収する
余裕を持っていると考えるべきであると
いうことです例えばOを表す単語の
埋め込みのベクトルから始まってこの
ネットワークの様々なブロックに押したり
引いたりされながら最後にはずっと具体的
な方向に行くことができるということです
スコットランドに住み前の台の王を殺し
シェイクスピアの戯曲になったとか
ね皆さんがどう単語を理解するか考えてみ
ましょうその単語の意味は明らかに周辺の
情報を使理解しますこれが離れたところの
文脈である時もありますねなので次の単語
を予測できるモデルを作るためにはどうに
かこの文脈を効率的に盛り込む力を持たせ
ないといけませんはっきりさせておくと
最初入力テキストを元に配列を作るところ
ではそれぞれのベクトルは単純に埋め込み
行列から作られますなのではめ1つ1つは
周囲の情報を持たない1つの単語の意味
のみを持っていますしかしこの
ネットワークがやりたいことはそれぞれの
ベクトルが単語単体よりもずっと豊かで
具体的な意味を吸収できるようにすること
ですネットワークは1度に決まった数の
ベクトルしか処理することができずこの数
はコンテキストサイズと呼ばれますGPT
3ではこの数は2048なので
ネットワークを流れるデータは2048の
列がそれぞれ1万2000ほどの次元を
持った配列の見た目をしていますこの
コンテキストサイズはトランスフォーマー
が次の単語を予測する際に扱えるテキスト
のの量を決めていますだから初期の
チャットGPTなどのチャットボットと
長く会話していると会話の流れを失った
ような感じがするんです
ねアテンションについては次回説明します
が飛ばして先に最後の部分についてお話し
したいと思いますおさいですが欲しい出力
は次に来るトークンの確率分布でし
た例えば最後の単語が教授
で文脈にハリーポッターのような単語が
含まれてい
その直後に1番嫌いな先生といった言葉が
あってそれからここではトクが単純に単語
の見た目をしていることにするとハリー
ポッターの知識を持つ訓練された
ネットワークはスネイプという単語に高い
数値を結びつけますこれは2つのステップ
からなります1つ目はまた別の強烈を使っ
て最後のベクトルから語意にある5万の
トークンそれぞれについての値を導き出し
ますそれからこれを正規化して確率分布に
する関数ソフトマックスがあってすぐ後で
このお話もしますしかしその前にこの最後
の埋め込みのみを使って予測をするのは
少し奇妙な感じがしませんかこの最後の層
でも数千の他のベクトルがそれぞれ文脈を
含んだ意味を持ってそこにあるにも関わら
ずこれは訓練の段階で最後の層のそれぞれ
のベクトルに同時に直後に何が来るか推測
させた方がずっと効率的だったということ
に由来するんです
ね後で訓練トレーニングについては詳細に
扱い
ますこの行列はアニベディメイトリックス
と言って訳語が見つからなかったんですが
このシリーズでは掘り出し行列ということ
にしますそしてこの掘り出し行列はWUと
書くことにしますこれも他の全ての重みの
行列と同様成分ははめランダムで
トレーニングによって学習されていきます
そういえばパラメーターの数を数えてい
ましたねこの掘り出し行列は語意の単語
それぞれについて行を持っておりそれぞれ
の行は埋め込み次元と同じ数の要素を持っ
ています埋め込み行列ととても似ていて
順番が入れ替わっただけですねなのでまた
6億1700万パラメーターが加わって
ここまでで12億ぐらいになりました全部
で1750のうち小さいけど無視できない
一部
ですこのチャプターのミニ講座として
ソフトマックス関数についてお話しします
これはアテンションブロックでも出てき
ますから
ね数のリストがあってこれを確率分布とし
して解釈したい場合例えば次に来る単語の
分布とかですねそれぞれの値は0と1の間
になっていないといけないのとまた全部
足し合わせたら1になっている必要があり
ますしかし行列とベクトルの席がたくさん
ある学習を一通り終えるとデフォルトの
出力の見た目は全くこうなっていませ
ん負の値もたくさんあるし1より大きい
ものもあるしほとんど確実に足して1に
なりませんソフトマックスは2位の数の
リストを有効な分布に変関する標準的な
方法で大きな値は1に近く小さな値は0に
近くなり
ますひとまず必要なのはここまでです興味
がある方向けに説明するとまずそれぞれの
数でEを上して正の数のリストにし
ますそれからこれらの正の値の輪を取って
この輪でそれぞれの値を割り算しますこれ
で正規化されてリストの合計が1になり
ますもし入力のうち1つの数が他より
明らかに大きければ出力で対応する値が
分布で突出しますなのでここから標本を
取ったらほとんど確実に最大の入力を取っ
ていることになりますしかし他の値が同様
に大きい場合分布に有意味な重みが現れ
ますからその意味で最大MAを取るより
ソフトなんですねそれから入力を連続的に
変えると分布も連続的に変化します
チャットGPTのようないくつかの場合に
はこの分布に1工夫をしていますこれらの
指数の分母に定数Tを入れていますこれは
温度テンパラチャーと呼ばれますなんと
なく熱力学方程式の温度のような役割を
彷彿とさせますからねTが大きい時には
小さな値により重みを与えることになり
ますつまり分布はより一様に近くなり
ますTが小さい時にはより大きな値がより
分布を独占するようになりますTが0だと
最大値に全ての重みが割り振られ
ます例えばGPT3にストーリーを書かせ
ましょう昔々あるところに誰々がいました
の途中まで書いたテキストを与えますが
それぞれ異なる温度を設定しています温度
0は常に最も確からしい単語を選ぶことを
意味します動画の3匹のクマを持ってきた
ような話になりましたより高い温度では
より低い確率の単語も選ぶチャンスがあり
ますがリスクもありますここでは
ストーリーはよりオリジナリティがある
韓国の若いウェブアーティストの話から
始まりましたがすぐに出たらめになって
しまいました厳密にはAPIでは2より
大きい温度を選べないようにいます数学的
な理由はなくめちゃくちゃな内容を生成さ
せないようにするためのC的な制限だと
思われますなのでこのアニメーションは
GPT3が作る次のトークン予測から
APIで選べる最大の上位20件を取って
きてそれからEの1/5上を元に確率を
調整して作っていますもうちょっと用語の
話をするとこの関数の出力の成分を確率と
呼ぶのと同様にこの入力の部分はロジット
と呼ばれ
ます例えばあるテキストを入力して
埋め込みがネットワークを流れてこの最後
の掘り出し行列で掘り出されてくる時機械
学習の人々はこの行の性分正規化されてい
ない出力を次の単語の予測のロジットと
呼び
ますこのチャプターのゴールは
アテンションを理解するための基礎を
固めることでした素ぶり練習みたいな感じ
ですねというのも単語埋め込みやソフト
マックス内積が類似性を図ることそれから
ほとんどの計算が行列の席の見た目をして
いて行列がたくさんの調整できる
パラメーターからなることを知っていれば
アテンション機構このAIブームの中心は
比較的スムーズに理解することができる
ようになり
ますアテンションについては次回見ていき
ましょうOG
5.0 / 5 (0 votes)