ブログに戻る
コラム

LLMのハルシネーションを減らす方法:実践的な7つの対策

FastMetal

ハルシネーションとは、LLM が事実と異なる内容を、もっともらしく生成してしまう現象です。 完全にゼロにはできませんが、設計次第で大きく減らせます。この記事では実践的な対策を紹介します。

ハルシネーションとは

LLM は「次に来そうな言葉」を確率的に生成します。そのため、知らないことでも自信ありげに答えてしまうことがあります。特に、最新情報・固有名詞・数値・専門知識で起きやすい傾向があります。

減らすための対策

1. 根拠を与える(RAG)

最も効果的なのは、答えの根拠となる情報をプロンプトに含めることです。検索やデータベースから関連文書を取り出して渡す「RAG」により、モデルは記憶ではなく与えられた事実に基づいて答えられます。

2. 「分からない」を許可する

「分からない場合は分からないと答えてください」と明示するだけで、無理な断定が減ります。

3. 適切なモデルを選ぶ

タスクによってハルシネーションの起きやすさは異なります。事実重視の用途では、その傾向が低いとされるモデルを選ぶのも有効です。

4. 出力を構造化・検証する

JSON など決まった形式で出力させ、プログラム側で検証すれば、誤りを早期に弾けます。

5. 複数モデルで相互検証する

同じ質問を複数のモデルに投げて突き合わせると、片方の誤りに気づきやすくなります。重要な判断ほど有効です。

6. 温度(temperature)を下げる

創造性より正確性が欲しいタスクでは、出力のばらつきを抑える設定が向きます(モデルにより対応は異なります)。

7. 人間の確認を挟む

高リスクな用途では、最終確認を人間が行う設計にします。

実際に:根拠を与える

curl https://api.fastmetal.ai/v1/chat/completions \
  -H "Authorization: Bearer $FASTMETAL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic-claude-opus-5",
    "messages": [
      {"role": "system", "content": "以下の資料だけを根拠に回答し、資料にないことは「資料に記載なし」と答えてください。"},
      {"role": "user", "content": "資料:〜〜〜\n\n質問:〜〜〜"}
    ]
  }'

FastMetal の活用

「5. 複数モデルで相互検証」は、FastMetal と相性が良い対策です。一つのAPIキーmodel を差し替えるだけで、複数モデルに同じ質問を投げて突き合わせられます。契約を分ける必要はありません。

まとめ

ハルシネーションは、根拠の付与・プロンプト設計・検証ステップの組み合わせで大きく減らせます。特に複数モデルでの相互検証は効果的で、FastMetal なら一つのキーで手軽に試せます。対応モデルはモデルカタログをご覧ください。