ChatGPTの利用者が1億人を超えたそうですね。
自分も業務で毎日のように使っていますが、本当にあれは役に立ちます。特に技術系の知識は豊富に持っているのでコーディングしている際にライブラリの仕様を聞いたり、デバックしてもらったりいろいろ活躍してもらってます。
エンジニアリング以外にも文章の校閲ができたり、英訳ができたり。どういう文章に英訳してとか、文章のどういうところを修正してほしいとか、細かい指定を自然言語でできるのが本当に素晴らしいんですよね。
データサイエンス界隈でも(界隈だから?)の実力は他のモデルとは一線を画していると認められてきたなと感じています。
自然言語処理系のモデルで大量の文章を認識できたモデルはこれまでもありましたが、ChatGPTは今までのAIがビジネスメリットを生み出してこなかった部分まで手が届くようになりました。
感覚的には、自然言語処理系のAIが汎用AIとして実用的と感じるためにはある閾値があって、ChatGPTは初めてその領域に達したなと感じるんですよね。
さて、ITシステム、そしてシステムのUIとしてChatGPTと見たときに、これまでのITシステムとは、ChatGPTが明らかに異なっている部分があると思います。
- 自然言語(普段使ってる日本語や英語)で操作できる
- 結果が間違っていることがある
この2つの特徴はChatGPTがITシステムらしくなく、逆に人間らしいと言えるところだと思います。
ということで、ChatGPTのこの2つの特徴について考えていこうと思います。
ChatGPTは自然言語で操作できるアプリケーション
アプリやシステムには必ず操作するためのUIが必要です。
UIとは人間に情報を提示して、人間の指示を受け付けるための人間とシステムとの情報伝達手段です。
一般的にはwebページのような画面がこのUIに該当し、画面上のボタンやキーボードによる入力によって人間の指示を受け付けます。
CHatGPTの情報伝達手段はチャットです。文章で情報を提示して、文章で人から支持を受けます。
ChatGPTのすごいところは、あらゆる操作を人が使っている言葉である自然言語で受け付けるところです。
例えば、英訳をしてほしい際、普通の英訳サイトの場合は専用のフォームにアクセルしてそこに訳したい文章を入力して翻訳ボタンを押す必要があります。
しかし、ChatGPTは「以下の文章を英語に翻訳してください「….」」と自然言語で指示をすることで翻訳することができるのです
これまでもチャットボットなど自然言語で操作を受けるシステムは存在しました。しかし、これまでの場合は人間が入力されるであろう文字列と対応する処理を1対1でルールとして定義している場合や、機械学習を使用してモデル入力される文字列と対応する処理を学習させる場合がありました。
ルールを定義している場合人が定義しなかった文字列には対応しません。
機械学習を使用した場合は、完全に決まった表現じゃなくても対応することができますが、学習データに全くない文章は理解できないのである程度決まった表現、決まった単語を用いる必要があります。
となると、使用者は操作するためのコツを習得する必要がありますし、AIに理解させられる概念の範囲も限りがあるわけです。となると、自然言語というよりはある種のコマンドで操作している感覚人間は陥ります。
さらに、対応する処理も人による定義が必要なことがほとんどでした。
しかし、ChatGPTは通常人間が使用している言葉で指示を受け付けて、人間が普段使っている言葉を返してきます。
これはChatGPTが何かこれまでのAIと特別違って優れているわけではないと思います。実際OpenAIの発表をちゃんと見ているわけではありませんが、モデルの構造や学習の原理はこれまで発表されたAIモデル何か革新的な違いがあるように思えません。
ただ、ChatGPTは人がコマンドでは言葉で操作できると感じる閾値を超えて自然言語を認識することができるということです。
そして、実際にChatGPT実際に使っていてこの「自然言語」で操作できるという特徴がどれだけ便利なことなのか改めて感じました。
自分は、業務で(一応)プログラミングコードを書きますが、コードは機械に指示を出す手段として最も代表的なもので、日常的に使用しているので慣れているものですが、それでも自然言語のほうが自由に使いこなすことができます。
それは、一度自然言語で頭に思い浮かべたことを、プログラミング言語に置き換えているからです。そして、自分は大したプログラマーではないので、変換作業にかなりのエネルギーを使いますし、プログラミング言語の仕様で理解してないことがたくさんあるのでネットでいろいろ調べながらコードを書くことになります。
どんなに熟練のプログラマーであっても自然言語を介さず直接プログラミング言語で思考できる人はいないはずです。だから、自在にプログラムが書ける人であってもChatGPTは便利だと感じるわけです。
じゃぁ、プログラムを書いたことがない非エンジニアの人はどうでしょうか?といったら言わずもがなですよね。
ローコードツールやノーコードツール、RPAなど様々なツールがありますが、普及しないのはそれらもかなりのITリテラシーがないと操作できないからです。
でも、自然言語だけ操作できるなら、すべてが覆ります。ITスキルがなくても、多くの人が母国語となる言語は自由に使えますよね。
いままでのアプリやシステムは人間がそれを使うために、スキルを学ぶ必要がありましたが、それが一切なくなる可能性を示したのがChatGPTだったんだと思います。
結果が間違っていることがある
自然言語だけ操作できる機械があるのなら、プログラミング言語はいらないのかというとそれはまた話が違ってきます。
理由はChatGPTは処理を間違えるから、そしてこれは、ChatGPTだけではなく汎用AI(俗にいう強いAI)の特徴になると思います。
ChatGPTを使っていると使用している普通に間違えるんですよね。四則演算もたまに間違えますし、ネットに普通に存在する知識も間違えて答えることがあります。
これはプログラミングの話なってしまうのでコードを書かない人にとってにはなんのこっちゃという感じだと思いますが、あるライブラリのある機能を持った関数はなにか質問しました。
ChatGPTはサンプルコードも含めて、該当の関数を教えてくれたんですが、使用してもエラーが出るんですよね。
エラーが出たことを伝えたら、ChatGPTは使ってるライブラリのバージョンが古いと返してきましたが、バージョンは最新だったんですよね。
しょうがないのでそのライブラリの公式のドキュメント(マニュアル)を確認したらそんな関数は存在しなくて、すべてでっち上げだったことが発覚しました。きっと違うライブラリの関数からそれっぽいことを知ったかぶりしていたんだと思います(逆にChatGPTの創造性に驚いた)。
逆に、プログラミング言語で定義された処理は人間が正しく実装できていれば絶対に間違えることはありません。人間は100個処理を行えば1つは必ず間違えますが、システムはバグがない限り間違えることはない、これはITの常識だったわけです。
しかし、ChatGPTは間違えます。しかも人間よりも高頻度で。
さらに、間違えを知ったかぶりしたり、正しいと言い張って隠そうとするんですよね。
これは、あくまでChatGPTが人間とスムーズに会話するために学習されたAIだからというところが大きいと思いますが、他のモデルで改良されても、完全には克服できないAIのデメリットだと思います。
AIが間違えるというのはChatGPTが初めてというわけではなくて、AIの社会実装が増える中で最近注目されている現象です。
そして、Human in the LoopといったAIが間違っても問題のないシステム構築の考え方が研究されています。
ただ、ChatGPTはAIが間違えるという事実をより明確かつ一般の方も理解しやすい形で示したと思います。
今後は間違えるリスクがあってもAIで処理したい高度な処理はAI、間違えずに確実にやってほしい処理は従来のプログラム言語でというように使い分けがなされるのではないでしょうか。
ChatGPTは第4次AIブームのAI(第4世代AI)である
第3次AIブームではAIはタスクに対応したデータを用意して学習を行わないと何もできませんでした。
しかし、ChatGPTは自然言語よしなに理解してタスクを実施します(少なくともユーザーはそう感じる)。
これは、第3次AIブームではAIとは違う部分だと思います。
ChatGPTはビジネス用にチューニングされたモデルとは言えないと思いますが、今後は様々なビジネス向けの汎用AIが開発されていくと思います。はっきり言ってそのスピードは業界にいる自分でもまったく予想できないです。
確実にいえることは、AIはもっと人々の生活に入り込んでいくと思います。そして、システムやアプリケーションと深い次元で融合していくことで、ITの概念は大きく変化していくのではないでしょうか。
第4次AIブームに関しては前に違う記事を書いているのでこちらもご覧ください。
それでは。