ChatGPTに入力するプロンプトによっては、事実でない間違った情報を出力してくることがあります。この現象をハルシネーション(幻覚)と呼び、生成AIをビジネスで活用する際の大きな課題となっています。生成AIの仕組み上、今のところ完ぺきにハルシネーションをなくすことはできません。しかし、プロンプトを工夫することで、ハルシネーションを抑制することはできます。

ChatGPTのライバルの1つであるClaudeを開発するAnthropicは、ハルシネーションを軽減するためのテクニックを公開しています。とても効果があるテクニックもあり、もちろん、ChatGPTでも有効です。今回は、このテクニックをもとに、できる限りハルシネーションを軽減させるためのプロンプトを紹介します。

  • 柳谷智宣の「ChatGPTプロンプトクリエイティブラボ」 第31回

    プロンプトを駆使して、ChatGPTのハルシネーションを退治しよう

ハルシネーションを抑える基本テクニック

1. 「わからない」と言える選択肢を与える

ChatGPTに指示を与えると全力で遂行しようとします。たとえ情報を持っていなくても、プロンプトを深読みし、それっぽい出力を生成するのです。そのでっち上げ能力はとても高く、こちらに知識がなければハルシネーションであることを見つけるのにも苦労してしまうほどです。

そこで、テクニック1は「「わからない」と言える選択肢を与える」です。ChatGPTに自信がないなら、わからないと正直に言って良いよ、と選択肢を与えます。人間に指示するような内容ですが、驚くべきことにAIにも有効なのです。

例えば「海底熟成ウイスキー・トゥールビヨンについて解説してください」とプロンプトを入力してみます。すると、海底で熟成させたウイスキーであるとそれっぽいことを言ってきますが、「トゥールビヨン」の名前が時計の機構から取られているとか(実際はフランス語の「渦」)、樽ごと海底に沈めている(実際は瓶を沈めている)とか、事実でないことも含まれています。これが、ハルシネーションです。

そこで、テクニック1を適用して「もしわからない場合は“情報がないため自信をもって解説できない”と出力してください」という文言をプロンプトに追加しました。すると、「現時点では詳細な解説を提供することができません」と回答してきました。結果が得られなかったのは残念ですが、ハルシネーションで混乱させられるよりはマシです。

  • プロンプト

    海底熟成ウイスキー・トゥールビヨンについて解説してください。もしわからない場合は、「情報がないため自信をもって解説できない」と出力してください。

  • 出力

    「海底熟成ウイスキー・トゥールビヨン」についての情報は確認できませんでした。よって、現時点では詳細な解説を提供することができません。

選択肢を追加したことで、すべてのパターンで逃げることも考えられるので、定番ウイスキーで同じプロンプトを試してみましたが、こちらはきちんと回答してくれました。

  • 柳谷智宣の「ChatGPTプロンプトクリエイティブラボ」 第31回

    定番ウイスキーは、しっかりと回答してくれた

なお、「GPT-4o」はネットにアクセスすることも可能です。「海底熟成ウイスキー・トゥールビヨンについて検索し、解説してください」と入力すれば、きちんと正確な情報をまとめてくれます。

2. 長文の分析を行う際は先に該当箇所の抽出を行う

ChatGPTに2万文字以上の長文を読み込ませて分析させる場合、まずは事実確認のために、分析に必要な情報を抽出させます。その情報を元に指示をすることで、実際の情報を元に回答するのでハルシネーションのリスクを抑えることができます。

例えば「令和6年版情報通信白書(PDF版)」を読み込ませて、内容に関して解説してもらいましょう。ファイルはサイズ19MBのPDFで、ドラッグ&ドロップでChatGPTにアップロードします。まずは、「PDFを読み、「Beyond 5G」を詳細に解説してください」とシンプルに指示しました。すると、3項目約590文字の解説文が得られました。

このPDFには「Beyond 5G」と言う単語が91カ所登場しており、登場する場所もまちまちです。よくまとまってはいますが、抜けている部分もあります。そこで、プロンプトを追加し、まずは関連情報を抽出してもらいました。

その結果、5項目約770文字を抽出できたので、続けて「この情報をもとに「Beyond 5G」を詳細に解説してください」と入力したところ、1400文字以上の詳細な解説文が得られました。ダイレクトに指示するよりも格段に精度が向上していることがわかります。

  • 柳谷智宣の「ChatGPTプロンプトクリエイティブラボ」 第31回

    定番ウイスキーは、しっかりと回答してくれた

3. 引用を使った検証

ChatGPTに生成させた出力に対して、すべて引用元を明示させ、裏取できなかった場合はその出力を取り下げるように指示することで、信頼性を高めることができます。

Anthropicが公開していたプロンプトを流用して試してみます。まず、セキュリティルーターの詳細な製品概要資料と、セキュリティ製品市場レポートを用意しました。どちらもChatGPTに作ってもらったダミーです。

その2つの資料をアップロードし、リリース作成を指示しました。しかし、その出力ごとに引用元を表示させ、引用元が見当たらない場合はその出力を削除するように指示しました。その際、削除した部分は[]で示すようにします。

  • プロンプト

    新しいサイバーセキュリティ製品トゥールビヨン2025のプレスリリースを、この製品概要と市場レポートに基づいて作成してください。作成後、各主張について該当するドキュメントから直接引用を見つけて確認してください。引用が見つからなかった主張はプレスリリースから削除し、削除した部分を[]で示してください。

  • 柳谷智宣の「ChatGPTプロンプトクリエイティブラボ」 第31回

    リリース作成を指示

初稿では環境負荷削減や省エネモードに関する記述が入っていたようですが、検証の結果、裏が取れなかったので削除されています。今回は2つのハルシネーションを回避できました。

  • 柳谷智宣の「ChatGPTプロンプトクリエイティブラボ」 第31回

    ChatGPTが自分で添削し、引用元が資料にない部分を削除してくれた

ハルシネーションを抑える高度なテクニック

さらに、ハルシネーションを抑えるための高度なテクニックとして4つ紹介されていました。

1. Chain-of-thought検証

Google Researchの論文で提唱された「連鎖思考プロンプティング(Chain-of-Thought Prompting)」を使うと、回答の精度を向上できます。複雑な問題を解決するために、中間の推論ステップを生成することで、最終的な出力の精度が高まるのです。

生成AIは計算問題が苦手ですが、推論の手順をプロンプトに入れることでハルシネーションを防ぐことができます。また、最近のChatGPTは賢くなっているので、推論を入れずとも、「ステップバイステップで考えてください」と入力するだけで正解にたどり着ける可能性が高くなっています。

「昨年、○○市場の売上はA社が1位で10億円、B社が2位で5億円、C社が3位で3億円、D社が4位で2億円です。今年は、A社、B社、C社が1割アップし、D社は1.5億円アップしました。今年のD社の売り上げ順位は何番ですか?」という問題を考えてみましょう。

今のChatGPTは賢いので、すぐに正解してしまいます。テクニックの有効性を確認するため、無料で生成AIモデルを利用できる「天秤AI」を利用し、「GPT-3.5 Turbo」で試してみます。

上記の問題を入れると、3位を抜いたので、2位と回答してしまいます。しかし、「ステップバイステップで考えてください」と追加すると、計算して、比較したうえ、D社は3位になったと回答します。

  • 柳谷智宣の「ChatGPTプロンプトクリエイティブラボ」 第31回

    「ステップバイステップで考えてください」と入れると回答の精度が向上する。画面は「天秤AI」

2. Best-of-N検証

同じプロンプトを何度か入力し、出力の内容が一貫しているかどうか確認します。異なる内容が出力される場合は、怪しいと考えましょう。どちらも間違っている可能性もあります。

3. 精査を繰り返す

ChatGPTが出力した情報をフォローアッププロンプトとして使い、内容を検証したり、拡張させることで矛盾点を探します。例えば、「海底熟成ウイスキーの味が変化する理由は?」と入力すると、半分くらいハルシネーションが混じります。世の中にほとんど情報がないためですが、一般常識で明らかにおかしいとわかる内容もあります。

そこで、ChatGPTに科学者のロールを与え、正確でない記述を指摘させてみました。すると、圧力がウイスキーの分子構造に影響を与えるとか、海の塩気がウイスキーに加わる、といったハルシネーションを指摘してくれました。

他にも、メールの文章や原稿をChatGPTに書いてもらったら、編集者のロールを与えて校閲してもらうとクオリティをアップできます。ビジネスで使う情報を生成させた時には、一度精査しておくことをおすすめします。

  • 柳谷智宣の「ChatGPTプロンプトクリエイティブラボ」 第31回

    精査を繰り返すのもハルシネーションを抑制する手立ての1つとなる

以上が、ChatGPTのハルシネーションを抑えるプロンプトとなります。Claude用の情報ではありますが、ChatGPTにも効くので活用しない手はありません。とは言え、ハルシネーションを確実に防ぐわけではないので、やはり人の目での最終チェックは必須です。事実確認は怠らないようにしてください。