AI・機械学習
初級

LLMソース引用(エルエルエムソースインヨウ)

LLMが回答を生成する際に参照した情報源のURLやドキュメント名を回答に付記する機能で、ユーザーが出典を確認・検証できるようにする仕組み。

0 回閲覧
0 いいね

LLMソース引用とは

LLMソース引用(Source Citation)は、AIチャットボットや検索エンジンが回答と一緒に「この情報はここから来ました」という出典を表示する機能です。Google検索の結果に参照サイトのリンクが付くのと同様に、LLMの回答にも情報源へのリンクを付けることで、ユーザーが内容の正確性を自分で確認できるようにします。

2024年以降、Perplexity AI の成功によってソース引用が AI アシスタントの標準機能として定着し、Google Gemini・Microsoft Copilot・Anthropic Claude も同様の機能を実装しています。

主要サービスの引用機能比較

サービス引用スタイル最大引用数引用精度特徴
Perplexity AI番号付き脚注 [1][2]制限なし高回答全体に引用分布。学術的スタイル
Google Gemini出典カード3〜5中〜高Google Search Grounding 統合
Microsoft Copilotインライン + サイドパネル5〜10中Bing 検索結果ベース
ChatGPT (Browse)脚注リンク3〜8中Web browsing 有効時のみ
Claude (Citations β)ドキュメント参照制限なし高アップロード文書への引用に強い

引用の仕組み

検索統合型(Search-Augmented)

Web検索の結果をLLMのコンテキストに注入し、回答生成時に参照した検索結果のURLを引用として表示します。

処理フロー:

  1. ユーザーのクエリを検索エンジンに送信
  2. 検索結果(タイトル・スニペット・URL)を取得
  3. 検索結果をLLMのプロンプトに含めて回答を生成
  4. LLMが回答中で参照した検索結果のURLを引用として付記

ドキュメント参照型(Document-Grounded)

ユーザーがアップロードしたPDF・ドキュメントをチャンク分割し、関連チャンクを取得して回答に引用を付けます。

{
  "response": "売上高は前年比15%増の120億円でした。",
  "citations": [
    {
      "text": "2025年度の連結売上高は120億円(前年比+15%)",
      "source": "annual_report_2025.pdf",
      "page": 12,
      "chunk_id": "chunk_047"
    }
  ]
}

API実装例

Anthropic Claude の Citations API(β)を使った実装:

import anthropic

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-sonnet-4-6-20260620",
    max_tokens=1024,
    messages=[{
        "role": "user",
        "content": [
            {
                "type": "document",
                "source": {"type": "base64", "media_type": "application/pdf", "data": pdf_b64},
                "title": "Annual Report 2025",
                "citations": {"enabled": True}
            },
            {"type": "text", "text": "売上高について教えてください"}
        ]
    }]
)

引用の品質評価

引用精度(Citation Precision)

付与された引用のうち、実際に回答の根拠となっている引用の割合です。

Citation Precision = 正確な引用数 / 全引用数

不要な引用が多いと、ユーザーが確認すべきリンクが増えて UX が悪化します。

引用再現率(Citation Recall)

回答中の事実主張のうち、適切な引用が付いている主張の割合です。

Citation Recall = 引用付き主張数 / 全事実主張数

引用漏れがあると、ユーザーが検証できない主張が残ります。

引用関連性(Citation Relevance)

引用先のコンテンツが、対応する主張の裏付けとして実際に関連しているかどうかです。URLは付いているが、リンク先の内容が主張と無関係な場合(誤帰属)を検出します。

ソース引用のベストプラクティス

RAG アプリケーションでソース引用を実装する際の推奨事項です。

  • チャンクIDを保持する: 検索で取得したチャンクのIDとソース情報を回答生成まで保持し、引用に使用する
  • 引用粒度を文単位にする: 段落単位の引用はどの部分がどの出典かが曖昧になる
  • リンク切れチェック: 引用URLの定期的な死活監視を実装する
  • 引用なし回答を許容しない: 引用を付けられない場合は「この情報は確認できません」と明示する
  • 引用元のスニペットを表示する: URLだけでなく、該当箇所の抜粋を表示してクリック前に確認できるようにする

FAQ

Q1: ソース引用があればハルシネーションは防げる?

引用があっても、引用先の内容と回答の主張が一致していない(誤帰属)場合があります。引用は検証の助けにはなりますが、ハルシネーションの完全な防止策ではありません。引用先を実際に確認することが重要です。

Q2: 引用機能がないLLMでも出典付き回答は可能?

プロンプトで「各主張の後に情報源を[1]のように記載してください」と指示することで、擬似的な引用が可能です。ただし、LLM が生成した引用URLは実在しない場合があるため、Web検索で取得したURLのみを使用するように制約する必要があります。

Q3: 社内文書に対する引用機能の実装コストは?

ベクトルDBに文書をチャンク分割して格納し、各チャンクにファイル名・ページ番号のメタデータを付与すれば、基本的な引用機能は 1〜2 週間で実装できます。チャンク分割の品質が引用精度を大きく左右します。