ChatGPT~対話形式の大規模言語モデルとプロンプト~
本記事では大規模言語モデルの一つである「ChatGPT」についてご紹介します。
ChatGPTとは
ChatGPTは、2022年11月30日にOpenAIより公開された大規模言語モデルの一種です。大規模言語モデルは、膨大なテキストデータを用いて事前に学習されており、新規タスクに対応させる際には少量データを用いた学習で高精度を達成できることが特徴です。ChatGPTはタスクごとに追加学習をさせることなく、文章の生成や要約、機械翻訳などの様々な自然言語処理タスクを実行することができます。
ChatGPTは、大規模言語モデルの一種であるGPT-3.5をベースとしており、対話形式に最適化されたモデルです。利用者が指示を文章(プロンプト)で与えると、入力内容に沿った回答をモデルが生成します。
試しに、ChatGPT自身に何ができるのかを尋ねて説明してもらいました。
また、翻訳の例として以下の内容を英語に翻訳してもらいました。入力文(日本語)は「将来的に大企業になる」という意味であるのに対して、生成された文章では「大企業になることを目的とする」(aims to become~)といったニュアンスが含まれています。ニュアンスは多少変わりますが、解いてほしいタスクを指定した上で入力すると、指定通りのタスクを実行してくれていることが確認できます。
ChatGPTを利用された方はお気づきだと思いますが、生成された文章は必ずしも正しいわけではなく、誤った情報が含まれることが多々あります。
以下の例では、AIの自然言語処理を研究テーマとした日本国内の学会を5つ聞いてみました。
出力結果には、「3.人工知能学会 自然言語処理研究会」「4.日本認知科学会 言語理解とコミュニケーション研究分科会」「5.電子情報通信学会 自然言語処理研究会」が挙げられています。これらを調べてみると、学会は存在していますが研究会や分科会の名称に誤りがあります。
このように、事実と異なる情報が含まれた文章が生成されるため、ユーザーには利用時に真偽を見極める能力が求められます。
プロンプトエンジニアリング
プロンプトとは、ChatGPTのような大規模言語モデルへの指示内容を文章で記述したものです。プロンプトによって「モデルに対してどんなことをしてほしいのか」を指定します。抽象的な内容を指定すると望んだ結果が得られないなど、モデルから適切な回答を引き出すことができません。
以下の例では広島県のおすすめ観光スポットを聞いてみました。プロンプトの内容が抽象的なため、広島県内の有名な観光スポットを幅広く出力しています。
プロンプトの内容を工夫し、モデルの出力結果の質を向上させる手法のことを「プロンプトエンジニアリング」と言います。指示内容に思考過程も含めることで、算術や常識の推論能力が向上することが知られています(Chain-of-Thought)。 下記はプロンプトに条件付けをした例ですが、指定した内容に沿って出力が変化していることが確認できます。
プロンプトエンジニアリングによって、モデルから適切な回答を引き出すことを可能とするには、時間と労力、知識が必要となります。しかし、基本となる考え方を押さえてプロンプトを作成するだけでも、モデルの回答精度や振る舞いが大幅に向上します。OpenAIは「OpenAI Cookbook」を公開し、GPT-3関連のガイドを提供しています。この中には、効果的なプロンプトに含めるべき基本情報が紹介されています。
下記はOpenAI Cookbookの内容を日本語で取り上げている記事へのリンクです。プロンプト作成の参考にぜひ覗いてみてください。
参考:OpenAI Cookbookで学ぶChatGPTプロンプトの基礎の基礎
ChatGPTの普及と課題
ChatGPTのAPIは2023年3月2日に公開され、SlackやLINEにAPIを組み込んだチャットボットが登場するなど、社会実装が急速に進んでいます。ドキュメントの要約や、テンプレート作成、コーディングなど多岐にわたって使用可能なChatGPTですが、その利用の是非については様々な分野で議論されています。
企業では機密情報の入力による漏洩リスクや、不正確な出力内容による損失を防ぐため、ChatGPTの利用制限を設ける動きがあります。また教育現場では、ChatGPTのによるレポート作成が学生の思考力の発達機会を損なう可能性が懸念されています。社会実装が急速に進むChatGPTですが、利用にあたってのルールの整備はまだまだこれからのようです。
最後に
ChatGPTは対話形式で流暢な回答を生成し、様々なタスクを解かせることができる大変高性能なモデルです。しかし、生成結果の内容の真偽については依然として課題が残ります。ユーザーとしては、便利なツールを使う上でその情報の真偽性について常に意識する必要があります。