全3259文字

 人間の質問に対して、AI(人工知能)が適切な回答を返してくれる「ChatGPT」が相変わらず大人気だ。先日、テレビのワイドショーがChatGPTを取り上げているのを見た。タレントがChatGPTに悩み事を相談し、アドバイスを受けるという内容だ。「最近のAIはこんなことまでできるのですか」と驚いてみせるというよくある展開である。

 実際にChatGPTの回答には感心させられることが多い。なぜならChatGPTは「人間の好み」を知っているからだ。米OpenAI(オープンAI)が、「GPT」という巨大な基盤モデルを基に、人間のフィードバックに基づく強化学習を施している。

 もっとも、間抜けな回答を返してくることもそれなりにある。目玉焼きの作り方をChatGPTに尋ねたところ、「卵に水と砂糖を入れてかき混ぜ、それを目玉焼きの形に焼く」という回答を返された。それでは目玉焼きではなく卵焼きになってしまう。人間だとあまりやらないひどい勘違いだ。

 これは、質的な問題というよりは量的な問題だろう。最新の研究では、AIの性能が「計算リソース」「学習に使うデータの量」「モデルのパラメーター数」に直接依存することが明らかになっている。潤沢な計算リソースを用意し、より多くのデータで学習し、モデルをさらに大きくすれば、それに応じてAIは賢くなっていく。

 現状では少し不安が残るが、ChatGPTは様々な機能を持っている。文章の要約や翻訳なども可能だ。さらに、欲しいプログラムがあれば、プログラミングまでしてくれる。コードの自動生成機能を備えているのだ。

 コード生成に特化した別のサービスもある。米GitHub(ギットハブ)の「GitHub Copilot(コパイロット)」という有料サービスだ。プログラマーが開発ツール上でコードやコメントを入力すると、そのプログラムの文脈に沿ったコードの候補を提案してくれる。

 ChatGPTやCopilotがコードを生成できるのは、大量のコードを使って学習しているからだ。クローズドなコードは利用できないので、インターネットで公開されているコードで学習していると考えられる。

 公開されているコードには、オープンソースソフトウエアのコードなどもあるが、多いのはサンプルコードだろう。初心者向けにプログラミングを解説するコード、あるいはライブラリーやAPIの使い方を説明するコードなどだ。