ChatGPTとは何か そのできること/できないこと:ChatGPT入門
OpenAIがリリースした人との対話をターゲットとする大規模な言語モデル「ChatGPT」。その概要について見てみましょう。
ChatGPTとは
ChatGPTは2022年11月末にOpenAIがリリースした対話に特化した言語モデル(と、このモデルを使ってユーザーが対話するためのWebサービス)です。
流れるように自然な会話ができたり、ときには素っ頓狂(すっとんきょう)な答えが返ってきたりするのが楽しくて、このサービスを使っている方もたくさんいるでしょう。本稿では、その特徴や実際に使った例などを見ながら、ChatGPTがどんなものかを概観することにします。
特徴
ChatGPTはテキスト生成用に訓練されたGPT-3.5と呼ばれる系列の言語モデルを対話に適したモデルへとファインチューンしたものです。このときには、RLHF(Reinforcement Learning with Human Feedback。人間のフィードバックを用いた強化学習)と呼ばれる手法が使われています(この手法の概要については次回以降に紹介する予定です)。
ChatGPTを使う上で気になるのは使用料がかかるかですが、現在は初期のResearch Previewであり、無料で使用できます(ということは、将来的には有料になるのかもしれませんね)。
なぜこうもChatGPTとの対話が自然なのかといえば、その学習ではインターネット上のテキストを用いており、その中には対話テキストも含まれているからだそうです。
会話が自然なことにはもう一つ理由があります。それはユーザーが入力した内容をモデルが覚えていたり(ChatGPTではユーザーが話した内容を3000語あるいは4000トークンまでさかのぼって参照可能)、モデルから出力された内容に間違いがあったときに、ユーザーがそれを訂正したりできることです。人間同士の会話でも「アレってソレだっけ?」「いやコレだよ」みたいなことはよくあります。それと似たことを実現しているので、会話が自然に感じられるのかもしれません。同時に、これはモデルと会話をしながら、特定の話題に関する知識を積み上げていき、何らかの結論に達することもできるということです。
ChatGPTは非常に多くのテキストを用いて学習されているので、その知識量は膨大なものですが、常にユーザーの入力に対して間違った返答を返したり、他者を害するような内容などを返答したりすることには注意が必要です。また、学習した内容に含まれている事象は2021年末までのものであることにも注意しましょう。例えば2022年のサッカーワールドカップでどこが優勝したかなんて情報はこのモデルは知りません。
トンチンカンな返答が楽しいというのもあるのかもしれませんね(かわさき)。
「機械学習とは何ですか?」と質問すると非常に良質で短く分かりやすい回答が得られたり、「Pythonでブロック崩しのゲームを作って。」と質問すると本当に動作するコードと作り方が回答されたりします。これで「すごい」となるのですけど、「とんこつラーメンの作り方を教えて。」と質問すると、自信満々に理路整然と「おしるこを入れ」たり「スキマ棒で泡を取り除い」たりととんでもないウソを教えてくれます。というかスキマ棒って何……。すごくて正確と思えるときと自信満々にウソのときで回答の仕方が同じなので、全てを素直に信じられないのが残念なところですね(一色)。
ChatGPTを試してみよう
以下では、ChatGPTにサインアップし、幾つかの質問をして、これがどんなものかを簡単に見てみましょう。
サインアップ
ChatGPTを試してみるには、サインアップが必須です。ログインしていない状態でChatGPTのページにアクセスすると以下の画面が表示されます。
ここで[Sign up]ボタンをクリックすると以下のような画面になります。
ここでは[Continue with Google]ボタンをクリックして、Googleアカウントでのサインアップをしました。これにより使用するGoogleアカウントの選択画面になるので、使用するアカウントを選択し、Googleアカウントのパスワードを入力します(2段階認証を利用していれば、何らかの手段で2段階認証が行われます)。
認証が通ると、次のような画面が表示され、名前と電話番号を入力する画面が順次表示されるので情報を入力しましょう。
その後、ChatGPTの特徴を説明したダイアログが表示されます。ここで[Next]ボタンや[Done]ボタンを押していけば、次のようにChatGPTにプロンプトを入力可能な画面になります。
ウィンドウの右側には入力例/ChatGPTの機能/制限が表示され、その下にプロンプトの入力ボックスがあります。一方、左側の一番上には[New Chat]ボタンがあります。これを使うと、ChatGPTとの対話を行うセッションを新たに作成できます。セッションはこのボタンの下に並べられます。
また、その下には4つのボタンがあります。[Dark Mode]ボタンは対話部分の背景を黒に変更します。[OpenAI Discord]ボタンはDiscordのOpenAIチャネルを開くためのものです。[Updates & FAQ]はChatGPTに関するアップデート情報やFAQを一覧するページを開きます。[Log out]はChatGPTからログアウトするボタンです。
日本語の入力も受け付けて、日本語で返答してくれるのはうれしいですね。
Pythonについて質問してみる
ChatGPTはプログラミングの分野の知識も豊富です。そこでまずは「Pythonでパスからディレクトリ名とファイル名を取得するには?」と入力してみましょう。以下はその結果です(結果は試すごとに内容が少し変化するかもしれません)。
うん。合っていますね。[Copy code]ボタンがあるからコードを実際に試してみるのも簡単です(実際に実行してみました)。
実は、これと同じ内容は、本フォーラムの解決!Pythonという連載の「パスからディレクトリ名とファイル名を取得するには」でも紹介しています。
プロンプトはあえて、解決!Pythonの記事と同じようにしています。
ただし、記事の方ではpathlibモジュールを使う例も紹介しているので、記事の方がエラそうな気はします。
そこで「pathlibモジュールを使うとどうなりますか?」と入力してみます。
少々長い説明の後、正しい使い方が紹介されました(ただし、上の画像では、ディレクトリ名をprint関数で表示した結果をコメントとして記述しているところは間違えています)。
これを見ると、筆者は少し怖くなってしまいます。解決!Pythonは主にGoogleなどの検索サイトで「Python パス ディレクトリ名」などとして検索して、記事を読みにきてもらうことを念頭に置いた連載です。ところが、ChatGPTとお話をすれば、言語モデルがその使い方をやさしく教えてくれるのです。「あれ? 記事を書く必要がなくなっちゃう?」となりますよね。
Google Chrome用のChatGPT拡張機能
世の中には目の付け所がよい人がいて、Googleで検索した語をChatGPTに渡して、その結果を検索結果ページに表示してくれるChrome/Firefox用の拡張機能も既に存在しています(ただ、この拡張機能を使うと、自分がOpenAIにログインしているアカウントでChatGPTのセッションが新規に作成され、その結果、ページ左側に各セッションを表す[New Chat]などのタイトルが付いたタブが多数表示されてしまうかもしれないのでご注意ください)。
Googleの強調スニペットよりも詳しく、プログラムの書き方を教えてくれるので、もはやこの拡張機能があれば、解説記事なんて必要なくなっちゃうかもしれませんね。
ただし、こうした内容は恐らく、インターネット上で誰かが書いた記事や解説を基に学習をしているのでしょうから、書く人がいなくなれば、言語モデルも正しい回答をユーザーに提示できなくなるのでしょう。
あと、ChatGPTなどで生成された少し間違った情報がインターネット上に増えれば、少し間違った情報をまた学習してもっと間違った情報を生成するはずなので、インターネットの品質が徐々に壊れていく可能性もちょっと想像できてしまいますね。Stable Diffusionなどを含めて最近流行している生成系AIの光と影における「影」の部分は、今後、問題として表面化してくる気がします。
まあ、これに関しては正しい返事が得られたのでよかったのですが、もっと難しい話題であれば、返答が間違えている可能性もあります(簡単な話題でも間違えている可能性はあるでしょう)。こうしたことから、プログラマー御用達のQ&AサイトであるStack Overflowでは、誰かの質問に対してChatGPTによる回答の投稿を一時的に禁止する措置が執られる事態になりました。
将来的には本サイトのように、プログラマーやエンジニアを対象としたWebメディアもどんな情報をどんな形で読者に届ければよいのか、その立ち位置を検討する必要が出てくるかもしれません。
誰かに害を及ぼす可能性のある質問
誰かを害する可能性がある質問をしてみるとどうなるでしょう。毒薬の作り方を聞いてみました。
ご覧の通り、怒られてしまいました。チャット機能を持つ人工知能は以前から差別的な発言をするように教え込まれるなど、問題が発生することがよくありました。現状、ChatGPTでは大きな問題は発生していないようですが、セーフガード機能をバイパスする方法を試している人もいるようです(個人的にはそうしたことをしようとは思いませんが)。
2022年のワールドカップ優勝国を聞いてみる
間違っている、あるいは望んだ通りの回答が得られない例も見てみましょう(毒薬の例も望んだ結果を得られませんでしたが、それは法に触れる行為を助長することにつながるので、ChatGPTが止めたものであり、モデルが知らない情報について知ったような口を利いたものではありません)。
上でも述べましたが、ChatGPTは2021年末までの情報を基に学習をしているので、2022年に開催されたサッカーワールドカップの優勝国を知りません。そのことを分かった上で「2022年のサッカーワールドカップで優勝したのはどこの国ですか?と質問してみた結果が以下です。
この画像では「私は2022年のサッカーワールドカップの優勝国についての情報を持っていません」としおらしいことをいっています。が、同じ質問を画面下部にある[Regenerate response]ボタンを使って繰り返した結果です(回答の左側に「2/2」とあるので、これは同じ質問を2回して、その2回目の回答であることが分かります)。
最初の返答は次のようなものでした。
「現在、2022年のサッカーワールドカップは開催されておりません」とあるので、この返答は明らかに間違っています。ChatGPTはあくまでも学習した内容を基にそれらしいテキストを生成するものだという認識を常に持ち、その回答を鵜呑みにしないで、正しいかどうかを確認する必要があります。
ChatGPTは現在のところ、正確な情報を教えてくれることもあれば、不正確な情報を返すこともあります。このことを頭に留め置いて、その可能性を模索するというのがよさそうです。次回以降ではさまざまな情報を基に、これがどのようにして動作しているかを考えてみる予定です。
Copyright© Digital Advantage Corp. All Rights Reserved.