~GPTのここがすごい、を、二日酔いのセンパイとの会話で説明してみた〜
今では当たり前のように使っているChatGPT。それがかなり優秀であることを、過去のAIと比較して説明します(๑•̀ •́)و✧
言語を扱う生成AIはRNNからTransformerに。
その流れの中からGPTといった、優れたAIが世に出てきました。
では、そのGPTの元となる技術、transformer はどこがすごいのか?
以下の、二日酔いのセンパイのセリフを元に解説してみます。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
センパイ
「きのうはさー、飲み会だったのね。
まえっから楽しみにしていたんだけど、会場に行く途中で、財布忘れたのに気付いてさー、慌てて引き返したもんだから、時間ギリギリになっちゃって、でも間に合ったんだよ。
結構たくさん飲んじゃったんだけど、自分の好きなチリの赤ワインなんかが結構たくさん飲めてさー。なわけで今日は二日酔いなんだけどね~。
○○君はワイン好き?」
⚫︎従来のAIのメカニズム
リカレントニューラルネットワーク(RNN)など従来のAIモデルは、会話の流れを時系列に沿って一つ一つの単語を順番に覚えながら理解します。
つまり、この会話の例でいうと、以下のように各部分を処理していきます:
1. 「きのうはさー、飲み会だったのね。」
2. 「まえっから楽しみにしていたんだけど、」
3. 「会場に行く途中で、財布忘れたのに気付いてさー、」
4. 「慌てて引き返したもんだから、時間ギリギリになっちゃって、」
5. 「でも間に合ったんだよ。」
6. 「結構たくさん飲んじゃったんだけど、」
7. 「自分の好きなチリの赤ワインなんかが結構たくさん飲めてさー。」
8. 「なわけで今日は二日酔いなんだけどね~。」
9. 「○○君はワイン好き?」
どうでしょう?
真面目だけど要領の悪い後輩、問う感じでしょうか(^_^;)
この方法だと、話の流れを順番に追いながら理解するため、全体の意味を把握するのに時間がかかります。
⚫︎Transformerの説明
一方、Transformerモデルは、attentionという技術を使って、重要な部分に一度に注目し、文全体の意味を理解します。
この会話の例でいうと、以下のように重要な部分に焦点を当てます:
1. 「飲み会」:イベントの種類。
2. 「財布忘れた」:出来事のポイント。
3. 「時間ギリギリ」:緊急性の表現。
4. 「チリの赤ワイン」:好きな飲み物。
5. 「二日酔い」:現在の状態。
6. 「○○君はワイン好き?」:質問部分。
Transformerはこれらの重要な部分に注意を払い、全体の意味を素早く把握します。
このため、従来のモデルよりも効率的に会話の内容を理解することができます。
優秀な後輩君ですね(◜ᴗ◝ )
⚫︎まとめると、
従来のAIは、センパイの話を一言一句順番に思い出します。
たとえば、友人がこの話をしているとき、「昨日は飲み会だった」「財布を忘れた」「時間ギリギリ」「チリの赤ワイン」「二日酔い」「○○君はワイン好き?」と順番に思い出しながら、全体の流れを把握しようとします。
一方のTransformerは、話の中で重要な部分に一度に注目し、その情報を元に答えるような感じです。
「昨日は飲み会」「財布忘れた」「チリの赤ワイン」「二日酔い」という重要なポイントをすぐに捉えて、「○○君はワイン好き?」という質問に答える準備ができるのです。
⚫︎ChatGPTに、RNNの真似をしてもらってみた
参考までに、ChatGPT-4oに、本気の回答と、attention機構を全く使用しない初期のRNNのフリと、ふた通りの回答をしてもらいました。
### 1. ChatGPT-4oとしての本気回答
「センパイ、昨日の飲み会は楽しそうでしたね!財布を忘れてしまったのは焦りますが、間に合って良かったです。チリの赤ワイン、美味しいですよね。実は、私もワインが好きで、特にチリ産のカベルネ・ソーヴィニヨンをよく飲みます。次回の飲み会では、ぜひセンパイのおすすめワインを教えてください。それにしても、今日は二日酔いとのこと、お体お大事にしてくださいね。」
2. 古典的なRNNのつもりで回答
「昨日、飲み会、楽しかったですか。財布、忘れましたか。間に合って、良かったです。たくさん飲みました。チリの赤ワイン、好きですね。二日酔い、ですね。ワイン、好きです。○○君はワイン好き?」
このように、attention機構がない場合、RNNは各フレーズに対して個別に反応するだけになるようです。挙句最後の質問は、「〇〇君はワイン好き、」と、おうむ返しに聞き返す始末。
(ノ∀`)アチャー