見出し画像

chatGPTの仕組みと活用アイデア①


はじめに

さて皆さん、chatGPT使ってますか?

  • 何かすごいらしいけど使ったことはない。

  • 使ってみたけど全然あてにならないよ!

色んな感想があると思います。使ったことのない人は無料で使えるのでまずは体験してもらうとして、使ったことのある人はまず、その流暢な会話に驚くと思います。日常会話的なものはほぼ人間レベルでこなすでしょう。

そして、段々使っていくにつれて、「ん?少しおかしいこと言ってない?」となり、「まあ会話能力はすごいけど、仕事にはつかえないな~」となっている方が多いかもしれません。

何故なら、chatGPTは最新の情報を聞いても2022年1月以前の知識しかありませんと自ら説明しますし、よくよく気を付けて見ていると、それ以前の知識もまったく適当であったりします。

でも、以前の私の記事にように適切なプロンプトを与えるとコードに関する回答はかなりの精度のものが出てきます。

これは何故なのでしょうか?仕組みをものすごく簡単に見ながら、本当に仕事に使うことはできないのか、考えてみます。

先に結論

  • chatGPTは文章生成AIとして優秀だが、知識をあてにするのはやめよう。

  • 文章理解と生成能力の高さを活かした業務導入を考えていくのが吉。

chatGPTの仕組み

chatGPTは、与えられた文に続く確率が高い言葉を選び続けているだけ

chatGPTのコアな部分については色々な記事で説明されています(詳しくは下の参考サイトがおすすめです)。
何やら難しい言葉が並んでいますが、簡単に言うと
大量の文章を読み込ませて、この文字の次にはこの文字が来る確率が高い、といったデータを蓄積させたものがchatGPTの大元です。

当然、そのままではまともな文章にはならなかったり、とんでもない回答をしたりしてしまうかもしれないので、その後に人力で調整をしています。

そうして完成したものがGPT3.5とかGPT4と呼ばれる大規模言語モデルです。
つまり、chatGPTの中身には、文字と文字(厳密にはトークン)がどう関係するかのデータだけがあり、「地球の直径」「光の速さ」などのデータベースや、文法に関するデータさえもないようです。

では何故、chatGPTは会話をし、質問に答えられるのか?

これについては、桁違いのデータ学習と調整を経て、「結果的にできるようになった」というだけです。

chatGPTの元の学習に使われたデータは、一定時点のWEB上の文章から、「学習に使うにふさわしい」データが選ばれています(他にも書籍のデータ等があります)。ジャンルも偏らないようになっているので、当然、正しい文法で書かれた、自然科学に関する文章もあるのでしょう。その過程で、「光の速さはどれくらいですか?」との文には、「光の速さは、真空中で約299,792,458メートル/秒~」と繋がる確率が高い、と学習できただけで、論理的な思考を持っているわけではないのです。

確率高めなら少し違ってもばれない これは強みであり弱みでもある

実際に、chatGPTは簡単な連立方程式も解けないことがよくあります。

更に言うと、chatGPTが文を生成するときは、単純に確率が高い順に選んでいくと「人間味のない」文章になってしまうようで、「温度」と呼ばれる不確実性を表すパラメータが与えられています。デフォルトでは0~2の間の0.7くらいに設定されているようで、聞くたびに答えが変わることがあります(0にしても完全一致はしないようです)。

コードの生成能力に関しては推測になりますが、もともと自然言語よりルールが厳格なので学習しやすいことや、強みとなるように入念に調整されているのかもしれません。

chatGPTはただの会話アプリ?

では、chatGPTはただの「それらしい」文章を生成するだけで、業務クオリティには使用できないのか?と言われると、そういうわけでもありません。

chatGPTはスマホやブラウザで利用する会話形式のアプリ以外にも、PythonやGoogleAppsScriptで呼び出すことのできるAPIが用意されています。

chatGPTのモデル自体を我々が変更することはできませんが、APIとして利用する際に、適切な「知識」を用意し、与えてあげれば、それに基づいた回答を生成してくれます。
(プロンプトで一緒に与えることで疑似的に実現できますが、知識量に応じてトークンがすぐに増加してしまいます。Embeddingsというテクニカルな手法があるようです。)

chatGPTが正しい知識に基づいて回答してくれれば、カスタマーサポート、メール返信、社内チャットボットや、他のAPIとの連携をさせることもできるかもしれません。

chatGPTは自然言語の理解と生成に関しては驚異的な能力を持っています。できることとできないことを正しく認識して、次回は仕事での活用アイデアを探っていきます。


参考

少し古い情報ですが、基本的な仕組みは上のサイトがわかりやすいです。一応私は、アルトマンおすすめとの解説本を読んでみましたが、こちらのサイトの数式部分を飛ばすくらいがエンジニア以外の人でも理解しやすいと思います。

LangChainを勉強がてら次の記事を考えてみます。

この記事が気に入ったらサポートをしてみませんか?