SE_BOKUのまとめノート的ブログ

SE_BOKUが知ってること・勉強したこと・考えたことetc

ChatGPTの「GPT=文を生成する訓練済Transformerモデル」をざっくり理解

目次

ChatGPTの「GPT=文を生成する訓練済Transformerモデル」をざっくり理解

話題の「ChatGPT(チャットGPT)」。

たいていの人が「Chat(チャット)の部分はわかるけど、GPTは良くわからない」状態のようで・・実際、僕もそうだったので・・調べてみました。

GPTは「訓練済のTransformerモデル」

GPTの正式名称は「Generative Pretrained Transformer」です。

意味は「文を生成する訓練済(学習済)のTransformerモデル」です。

この「Transformer」とは、2017年12月の論文「Attention Is All You Need」でGoogleが提案した技術(モデル)の名称です。

まとめると、GPTはこの技術(モデル)をベースに、大規模なテキスト等のデータを事前に学習しておき、実行時にわずか数例の入力を与えるだけで文章生成・質問応答(チャット)などの実行を可能にした「汎用的な大規模言語モデル (LLM)」です。、

Transformerモデルをベースにした「汎用的な大規模言語モデル(LLM)」はOpenAI社のGPT以外にもたくさんあります。

Google社の「BERT(Bidirectional Encoder Representations from Transformers)」とか、「 T5(Text-to-Text Transfer Transformer)」とか、探せばどんどんでてきます。

この 2 年間で arXiv に投稿された AI に関する論文の 70% が「Transformer 」について言及しているそうですし、今やAIの主流技術になっているようです。

実際、GoogleMicrosoft Bing の検索でも Transformer を使用しているそうですし、画像生成AIとか最近話題のものは、ほぼほぼ「Transformer 」ベースみたいです。

Transformerモデルは何がすごいのか

Transformer モデルは、GPTのように「複雑な文章の文意を正確に解釈して、自然な文章を生成する」にあたって従来の技術では難しいことを解決しました。

例えば「これ」「あれ」などそれだけで意味が確定できず、文章全体の単語(データ)の関係性によって意味が変わるものに対して「文章全体のデータの関係性を追跡して学習する」ことなどがそうです。

これをTransformer モデルで解決策が提案されたことで、連続したデータの関係を追跡し、文脈や意味を学習できるニューラルネットワークの構築が可能になりました。

もうひとつ。

従来のCNNやRNNでは「教師あり学習」が必要でした。

つまり、大規模な言語モデルを作成するための問題「正解ラベル付き学習用データ」を人間が用意しなければならず、これに非常にコスト(労力と時間)がかかるというのが大きな問題でした。

対して、Transformer モデルは「教師なし学習」が可能です。

つまり、正解ラベルがなくても、自らパターンを見つけ出して学習できます。

そのため、Web 上や企業データベース内に存在する膨大な数の画像やテキスト データを学習に利用しやすくなり、大規模モデルを作成しやすくなっています。

もうひとつ。

大規模言語モデルを作成するハードルで処理時間の問題もあります。

従来の技術(CNNやRNN)は前の結果を受けて連続的に処理する必要がある・・つまりシーケンシャルにしか処理できない・・ので並列化でパフォーマンスをあげる手段が使えませんでした。

しかし、Transformer モデルでは並列化しやすい処理構造で、処理の並列化によりパフォーマンスアップをはかることが可能になりました。

これだけのメリットがあれば、僕レベルでも使わない手はないと思いますし、実際そうなっているということのようです。

Transformerは何でそんなにすごいのか

技術的なことを詳しく知りたいならGoogleの論文ということになります。

ちょうど解説してくれている記事がありました。

qiita.com

詳しく知りたい方はそりたを見てくださいということで、この記事ではざっくりポイントだけを書くにとどめます。

さて。

Transformer モデルのポイントです。

まず、ひとつめは「エンコーダ-デコーダモデル」であることです。

エンコーダ-デコーダモデル自体は昔からあり、目新しさはありませんが、「エンコーダ-デコーダモデル」であることで「教師なし学習」が可能になっています。

エンコーダ-デコーダモデルを定義するなら「入力(画像・テキストなど)を解釈・符号化して特徴を抽出するエンコーダと、抽出した特徴を受け取り復元もしくは出力を生成するデコーダで構成されるモデル」ということになります。

詳しい理屈はやや複雑なので、とりあえずは、ざっくり「チャットで入力された文章をエンコーダで処理して、学習済パラメータをもとに応答文をデコーダで生成するんだな」ってイメージして、訓練時は生成した結果を数学的・統計的に評価して正解に近づけるよう繰り返し学習していくんだな・・と思っておけばよいのではと思います。

さて。

今度は「連続したデータの関係を追跡し、文脈や意味を学習できる」ポイントです。

Transformer モデルは「Attention」という技術で実現しています。

例えば、文中のある単語を理解する時に、文中の単語のどれに注目すれば良いかをスコアとして計算で求めて、相互影響や相互依存関係をモデルに含める技術です。

このスコアの計算も単純な方法ではなく、学習結果を反映するパラメータを使って出現する単語間の関連度をスコア化したり、単純なカンニング的なコピーにならないようにマスクをかける処理をしたり、巧妙な数学的な工夫がなされているようです。

もうひとつ。

並列化で処理の高速化を可能にする件については、並列処理できない原因となる従来の技術(CNNやRNN)との併用をやめることことで実現しています。

つまり、Attentionだけをエンコード部とデコード部に置き、単語ごとに独立してニューラルネットワークをおき(重みは共有)、内部での他単語との干渉をなくす構造上の工夫をしているということです。

ざっくりだと、こんな感じです。

理屈を理解したければ、論文を読むか、より詳しい本か記事を読む必要があります。

簡単ではないですけど、今後間違いなくAI技術の主流となるのは間違いないので勉強する価値は十分にあると、僕は思います。

ではでは。