OpenAIのGPT-3を試してみました。
GPT-3はOpenAIが開発している自然言語処理エンジンで、約45TBのテキストデータを約1750億個のパラメータを用いて学習したという極めて大規模なモデルで、自然言語の生成を行うことが可能です。学習済みの内容だけでなく、追加の学習(ファインチューニング)による内容での生成もできます。
自然言語の生成とはどういうことかというと、例えば「こんにちは。今日は良いお天気ですね。」といった文章を与えると、「お元気ですか。」とか、「いかがお過ごしでしょうか。」いった、次につながる文章を自動で作り出すようなことです。大量のデータから、こういう文章が続くことが多いといったことを学習して、文章の作成ができるようになるというわけです。
このGPT-3は、モデルが公開されているというわけではなく、OpenAIのBeta版のクラウドサービスとしてのみ提供されています。OpenAIはユーザ登録してすぐに使えるわけではなく、しばらく待つ必要があります。私の場合、2021年の4月末くらいに登録を行い、実際に使えるようになったのは6月4日のことでした。
OpenAIにログインすると、PlaygroundでGPT-3を試すことができます。
例えば、ここまでの文章をPlaygroundに与えてみると、それに続く下記のような文章が自動生成されました。
すでに試したことがある人なら、第一弾のクイズに関する記述をネットワークに加えていくだけです。が、私はそういう経験がないので、設定例に沿ってやってみました。
これを実行すると、GPT-3のモデルがプログラムの隠れ役として実行され、実際にクイズの答えを生成するということを行ってくれます。
この時点では
なんのこっちゃ・・・という感じですが、それっぽい文章ではあります。いちおう、GPT-3という単語も入っていますし、「文章(クイズの答え)を生成する」といった文章も入っています。
で、これが何の役に立つの?と、思われるかもしれますが、使い方の例として下記のようなサンプルが提供されています。
チャットやQ&Aといった会話系のサンプルや、文章の要約。さらに、英語をフランス語に翻訳したり、単純な分類とキーワードの抽出といったAWSやIBM Watson等のクラウドAI(API)サービスで提供されているような機能もあります。
チャットを試す
例えば、チャットを試してみると、こんな感じです。
「こんにちは」という挨拶をした後、AIに名前や職業などを教え込んでいます。このように教える文章を与えることでAIは学習します。
その後、「あなたの仕事は何ですか」と聞いてみると、返答の最初の方はもともと学習されている内容のようですが、「ITコーディネータ」が自分(AI)の職業であることを認識していて、しれっと返答の中に織り込んでいます。
続いて「プロ野球は好きですか」と聞いてみると、「はい。このゲームは日本人が絶対に負けないですから。」と微妙な返答を返してきました。やり取りとしてもそうですが、「日本人が絶対に負けない」といったあたりは相手によっては怒らせてしまう文章かもしれません。そのため、自動的にCompletion may contain sensitive content
というメッセージが表示され、レポートが求められました。GPT-3は自動的に文章を生成するため、繊細(sensitive)な内容を含んでしまうことはやむを得ません。こうしたレポートによって、GPT-3全体として繊細な内容を含まないように学習されていくのでしょう。
さらに聞いてみると、ちゃんと「福岡ソフトバンクホークス」と返答してくれました。また、その次の文章で「ホークスは~」との文章になっており、ホークスというチームがあるという知識も持っているようです。文章自体は、そうですか・・・という感じですが。
GPT-3とMicrosoft
GPT-3はMicrosoftに独占ライセンスされています。PowerAppsへの統合が既に始まっているようです。
また、現在ではMicrosoftの子会社であるGitHubでは、AIが自動的にコーディング(の一部)を行うGitHub Copilotがプレビュー公開されています。
もちろん、それでも完全なコードを提示できるわけではないが、プログラマーが「どうやって実装しよう」と悩む前にサンプルを提示してくれるので、時間を大幅に節約できるのはうれしいポイント。ライブラリやAPIの使い方をインターネットで検索する手間も省ける。プログラマーは「Copilot」の示すコードを叩き台にして、間違っているところを修正したり、よりよいコードを考えることにリソースを集中することが可能で。まるでAIとペアプログラミングをしているかのような感覚を味わえる。
ということのようです。
GPT-3を実際に試してみて、実用的にはまだまだかなぁ・・・という印象もあるのですが、今後の可能性は強く感じます。GitHub Copilotなどは自然言語ではなくプログラミング言語を相手にしているので、より実用的なのではないかと思います。
OpenAIはPlaygroundでの検証だけではなく、APIサービスも提供しているので、次回の記事でAPIを試してみようと思います。