はじめに
業務でAIツールを使ってPDFや画像ファイルからテキストを抽出しようとした際、GeminiとClaudeで大きな差が生まれました。この記事では、その体験から得た学びと、公式ドキュメントを調べてわかった根拠をまとめます。AIツールを使い始めたばかりの方にも役立てれば幸いです。
使用環境
| ツール | プラン |
|---|---|
| Gemini | 無料版(gemini.google.com) |
| Claude | 無料版(claude.ai) |
本記事の検証結果は無料プランでの動作に基づいています。有料プランでは対応状況や精度が異なる場合があります。
やりたかったこと
添付ファイル(PDF・SVG・PNG・JPG)の内容をAIに読み取ってもらい、テキストとして抽出するプロンプトを作成しました。
プロンプトの条件として、以下を追加しました。
- ファイルの内容をそのまま抽出すること
- 文書を新たに作成・修正することを禁ずる
起きたこと
Geminiの場合
| 問題 | 内容 |
|---|---|
| ハルシネーション | 存在しないテキストを生成した |
| 禁止条件を追加しても | ハルシネーションが繰り返し発生した |
| ファイル形式 | PDF・SVG・PNGを認識しなかった。JPGでやっと認識 |
Claude の場合
- 同じプロンプトで問題なく動作
- 画像ファイルからのテキスト抽出に成功
なぜこの差が生まれたのか
1. ハルシネーションの原因
根拠:Anthropic公式リサーチ「Tracing the thoughts of a large language model」
https://www.anthropic.com/research/tracing-thoughts-language-model
Anthropicの研究によると、言語モデルがハルシネーションを起こすメカニズムは次のように説明されています。モデルは「既知の答えがある」と判断すると、デフォルトの「わからない」という反応を抑制して回答を生成します。この回路が誤って作動した場合にハルシネーションが発生します。
同研究では「Claudeのデフォルト動作は、質問に対して推測を避けることであり、何かがそのデフォルトの抑制を阻害した場合にのみ回答する」という反直感的な結果が示されており、これがClaudeのハルシネーション抑制の仕組みです。
根拠:Anthropic公式ドキュメント「Reduce hallucinations」
https://docs.anthropic.com/claude/docs/minimizing-hallucinations
公式ドキュメントでは、ハルシネーション対策として以下が推奨されています。
- 「わからない場合はわからないと言ってよい」と明示的に許可する
- 長い文書では、回答前に原文から直接引用させてからタスクを実行させる
- 提供された文書のみを使用し、一般知識を使わないよう指示する
根拠:Anthropic「Claude's Model Spec(魂のドキュメント)」
https://www.anthropic.com/research/model-spec
Anthropicのトレーニング方針では「Claudeは正直であり、自信がないことについては不確実性を認めること(calibrated uncertainty)」が明記されています。これがClaudeの「知らないことを知らないと言う」誠実さの根拠です。
| 観点 | Gemini | Claude |
|---|---|---|
| 曖昧な入力への対応 | 補完・推測して回答しようとする | 不確実性を明示して留まる |
| プロンプト制約への追従 | やや弱い場面がある | 比較的厳密 |
| ハルシネーション抑制 | 有用性寄り | 誠実性寄り |
ポイント: プロンプトに「作成・修正禁止」と書いてもハルシネーションが止まらなかったのは、モデル内部の「生成補完バイアス」がプロンプトの制約を上回ってしまうためです。
2. ファイル形式の対応状況
SVGが認識されない理由
根拠:Google AI公式ドキュメント「Document understanding - Gemini API」
https://ai.google.dev/gemini-api/docs/document-processing
公式ドキュメントには「document visionが意味のある形で理解できるのはPDFのみ。他のファイル形式はテキストとして抽出されるが、チャートや図・HTMLタグ・Markdownのフォーマットなどは失われる」と明記されています。
SVGはXMLベースのベクター形式であり、AIのマルチモーダル処理はピクセルデータ(ラスター画像)を前提としているため、意味のある処理ができません。
PDFが認識されなかった理由
根拠:Firebase AI Logic「Supported input files and requirements」
https://firebase.google.com/docs/ai-logic/input-file-requirements
公式ドキュメントには「GeminiはPDFを画像として扱う。手書きテキストを含むPDF文書では、モデルがハルシネーションを起こす可能性がある」と明記されています。
また、利用プランやインターフェースによって対応状況が異なります。
- ファイルサイズ上限:30MB(Files API経由は50MB)
- パスワード保護されたPDFは処理不可
- スキャンPDFよりテキストPDFの方が精度が高い
PNGが認識されなかった理由
根拠:Google AI for Developers「Files API」
https://ai.google.dev/gemini-api/docs/files
PNGは本来対応していますが、以下が原因になりえます。
- リクエスト全体のサイズが100MBを超えている
- 低解像度・回転した画像では精度が落ちる(公式に明記)
- 透過(アルファチャンネル)を含む場合の処理エラー
ClaudeとGeminiのファイル形式対応比較
| フォーマット | Claude | Gemini |
|---|---|---|
| JPG/JPEG | ○ | ○ |
| PNG | ○ | ○(サイズ制限あり) |
| ○ | ○(プラン・種類による) | |
| SVG | △(XMLテキストとして読む) | ✕(視覚的理解は不可) |
プロンプト設計の教訓
今回の体験と公式ドキュメントから、テキスト抽出プロンプトを設計する際に役立つポイントをまとめました。
禁止条件だけでは不十分です。「作成・修正禁止」と書いても、モデルの生成バイアスには効きにくいことがあります。Anthropic公式ドキュメント(Reduce hallucinations)に基づいた以下の工夫が有効です。
-
判読不能箇所の扱いを明示する
→ 「読み取れない部分は[判読不能]と表記すること」と指示する -
外部知識の使用を禁止する
→ 「提供されたファイルの情報のみを使用し、一般知識で補完しないこと」と明示する -
出力形式を構造化する
→ JSONやXML形式で出力させると、モデルの逸脱を検知しやすくなる -
画像品質を上げる
→ 公式ドキュメントにも「低解像度画像ではハルシネーションが起きやすい」と記載されており、解像度が高いほど補完の余地が減る -
ツール・プランを事前確認する
→ 使いたいファイル形式が対象ツールで対応しているかを、公式ドキュメントで事前に確認する
まとめ
同じプロンプトでGeminiとClaudeに差が出た最大の理由は、「曖昧な部分に直面したとき、Geminiは生成で埋めようとし、Claudeはそのままにとどまる」というトレーニング上の哲学の違いにあります。
Anthropicの研究では、Claudeのデフォルト動作は「推測しない」であり、何かがそれを阻害したときにのみ回答を生成するという設計になっていることが確認されています。
AIツールを使う際は、モデルの特性を理解した上でプロンプトを設計することが大切です。禁止条件を追加するだけでなく、「読み取れない場合の振る舞い」まで明示的に指示することが、ハルシネーション対策として有効です。
参考文献・公式ドキュメント
| 内容 | リンク |
|---|---|
| AnthropicのClaudeハルシネーション研究 | https://www.anthropic.com/research/tracing-thoughts-language-model |
| Claude公式:ハルシネーション対策 | https://docs.anthropic.com/claude/docs/minimizing-hallucinations |
| Anthropic Model Spec(Claudeの設計方針) | https://www.anthropic.com/research/model-spec |
| Gemini APIドキュメント処理ガイド | https://ai.google.dev/gemini-api/docs/document-processing |
| Gemini Files APIガイド | https://ai.google.dev/gemini-api/docs/files |
| Firebase AI:対応ファイル形式と要件 | https://firebase.google.com/docs/ai-logic/input-file-requirements |
この記事は実際のAI活用体験と公式ドキュメントをもとにまとめたものです。AIツールのアップデートにより、対応状況が変わる場合があります。
なお、本記事は Claude(Anthropic) を活用して作成しました。