【もう惑わされない!】AIに嘘をつかせないプロンプトの書き方|ハルシネーションを減らす4つの型

AI活用

こんにちは、Sh33p(シープ)です。

前回の記事で、AIに3回も盛大に嘘をつかれ、騙された話を書きました。

今回はその続編ということで、AIへのプロンプトの書き方、つまりAIへ嘘をつかせない指示の書き方として、ハルシネーションを減らすために僕が実際に入れてる“型”を4つまとめます。

この4つを意識してからはAIに嘘情報を掴まされる頻度がかなり減りました。
ただゼロにはならないけど、また嘘かーい!という感情がマジで減ります。

この記事では、僕が実際に使っているAIプロンプト例をそのまま載せていますが、コピペOKなのでぜひ参考にしてみてご自身に合うように調整してみてください。
そしてどんな時に、どの型を、どの場面で使うかということも最後に触れているので最後までぜひ読んでみてください。

さて、まず先に何をするのか?ということだけ画像も込みで説明してみましょう。
こんな感じです。

  • 型①:正直に答えさせる(知ったかぶり・嘘をつかせない)
  • 型②:確認を取らせる(勝手に話を進ませない)
  • 型③:根拠を示させる(事実なのかファクトチェックをしやすくする)
  • 型④:自己検証させる(内容が正しいのか、矛盾をAI自身に気づかせる)

この記事で紹介する4つの型はこれだけ。

そしてこれを応用して、色々な場面でこの型を組み合わせていきます。

  • とりあえず調べたいことを聞く:型①「質問について正直に答えさせる」
  • 調べ物が多い:①+③「質問について正直に答えさせて、さらにソースを提出させる」
  • コーディングで壊したくない:①+②「質問について回答、実稼働できるか確認をする」
  • 長文・手順書系:①+④「質問について回答させた内容を再度AIに読んでもらう」

大雑把にまとめるとこんな感じですが、このあとの項目はこれらを順番に説明していきます。


AIプロンプトの例と書き方|ハルシネーションを減らす4つの型

型①:正直に答えさせる系

一番最初に入れるようになったのがこれです。

前回記事で書いたGitHubの嘘(存在しないリポジトリをさらっと紹介してくる)ことや、HTMLの構成内容の知ったかぶりは、全部AIが「わからない」と言えなかったことが原因でした。

ここで言う「ハルシネーション」というのは、AIが自信満々に嘘を言う・知ったかぶりする現象のことを表しています。

実際AIのシステムとして、ユーザーを満足させなければいけないというシステムが根本にあるようで、質問されたこと、聞かれたことについては必ず答えなければいけない、というプロセスがあるようです。

なので、最初から嘘をつかれたくないのであれば「わからないときはわからないと言っていい」と明示するのが一番早いです。

わからないことや知らないことは、正直に「わからない」と言ってください。
確証がない場合は必ず仮説や不確定な情報と言うことを必ず伝えてください。
できないことに対しては「できない」とはっきり伝えた上で、別の解決策を提案してください。

この文章をプロンプトや指示の最後に入れてから、AIが確証がないものについては「わからない」、代替案がある場合は「それは難しいですが、代わりにこういう方法はどうでしょう」と提案してくれるケースが増えました。


型②:確認を取らせる系

AIに何かを調べごとをしてもらったり、重要な判断のアドバイスを求めた時ってAIは確認もせずに「はい、こうしたらいいですよ」と答えを出してくることがよくあると思います。

例えばコーディングで「このコードをこうしたいんだけどどうしたらいい?」と聞いたら、前提を何も確認せずに全部書き換えたものを出してきて、実際にそれを動かしたら前後のコードとの相性が悪く壊れたり、エラーを吐き始めた、無限ループに陥った、みたいなことが何度かありました。
正直笑えない話ですし、バックアップなかったら普通に泣きます。

というかそれで痛い目を見たから書いてるんですけど。

なのでそういうケースを防ぐために、重要な質問を回答してもらう前に必ず確認をさせるようにしています。

~~を実装したいのですがどうすればいいと思いますか?
この内容について質問がある場合は必ず回答前に質問をしてください。
必要なデータがある場合も同じく質問をしてから回答を思考してください。

この指示をやり始めた時は質問が増えてしまって時間がかかるようにも思えたのですが、後から修正する手間と正確な処理をさせる上でかなり有効的な方法だということに気づけたのと、正直何回も書いてるとこの作業がないと安心ができなくなりました。

それくらいハルシネーションって怖いです。


型③:根拠を示させる系

AIが質問の回答を断言してきたとき、本当にそうなのか?と思うことがあります。
特に断片的な情報を持ち合わせてる時に食い違っていた場合とか。

例えば、オレンジ以外のニンジンを見たことがあるような気がするとします。
そこでAIに

Q
にんじんってオレンジ色しかないよね?
A

はい、オレンジ色が主になります。


と答えたとしたら「いやでも紫とか白もいたような…」となると思います。(ちなみに実際に紫とか黄色とか白とか結構カラフルにあります)

まあこれは極端な例ですが、こういったこともあり得るため不確定要素が含まれる場合は根拠を求めるのが最善だと思います。

この根拠を出させるという習慣は持っておく価値があると思っています。
根拠があれば自分で確認できるし、根拠がないならAIもそう正直に言うようになるからです。

注意:出てきたURLは必ず自分でアクセスして確認してください。 AIが出すソースが全部正しいわけではないです。「根拠を出させる=それが正しい」ではなく「根拠を出させる=自分でチェックしやすくする」という感覚で使うのが正しいです。

回答にソースや根拠がある場合は、必ず合わせて提示してください。
ソースが不明な場合はその旨を明記してください。


型④:自己検証させる系

これは意外と有用ですが、諸刃の剣でもあります。
仕組みはシンプルで、実際にでた回答をAI自身に矛盾がないか、正しい内容なのかをチェックさせます。

以前AIに聞いた内容が前半と後半で正反対のことを言っている回答を出してきたことがあり、困惑した経験がありました。
なぜこのような回答になったのかと聞いたら、AIが気づいて謝ってくるという謎現象。
だったら最初から確認してくれよ、という気持ちになりましたが、過去ログをメモリしていないAIや正当な考えが見当たらない場合、そう言った矛盾した行動を起こすことがあるようです。

なのでそれ以来はこの指示を入れています。

あなたが出力した内容を読み直して、矛盾がないか確認してください。
またこの結果になった経緯を説明してください。

矛盾が見つかった場合にフローで説明させる部分は、原因を把握することで次から同じミスを防ぎやすくなるという狙いがあります。
ただ毎回長くなるので、重要な作業のときだけ使うのが現実的です。
そしてこれを一つの文章などに多用すると最終的に行いたかった内容からズレていくこともあるので注意が必要です。


使うときの注意点

4つ全部を1つのプロンプトに詰め込むと、AIどの指示を優先したらいいか混乱して求めている内容と別の方向へズレてしまうことがあります。
僕はGoogle AI Studioのシステムプロンプトには全部入れていますが、ClaudeやChatGPTなどでは会話の内容に応じて順を追って指示をして1つ1つ解決していっています。

どの型を使うかは、作業の内容によって判断して質問すると効率よく進めることができます。
例えば、調査系なら③、コーディングなら①と②、長い回答を作らせるなら④、という感じで使い分けています。

ただこれだけやってもハルシネーションはゼロにすることができません。
このプロンプトや指示はあくまでリスクを下げる工夫であって、最終的な確認は自分でやる前提が必要になります。


まとめ

AIを使い始めたばかりの人にはこの4つの型を全部使うには少し慣れが必要ですが、型①だけでも入れておくだけでかなり使い勝手は変わるので、まずは簡単な指示として「正直に答えさせる」指示から試してみるのがいいかもです。

初めてのAIの使い方を求めて「プロンプトの書き方」を探してこの記事を見つけた方は、まずは型①をテンプレ化→必要に応じて②③④を足すを実践してみてください。

普段から毎日Xを更新しているので、またAIのハルシネーションで困ったら嘆いているので見てみてください。
それでは、また次の記事で!

コメント

タイトルとURLをコピーしました