Geminiを使うと本当に1ドルで6000ページ分のPDFをMarkdown化できるのか?
少し前に、Hacker Newsで以下の記事が話題になっていました。
この記事では、Geminiのモデル(Gemini 2.0 Flash)を使うと、1ドルで6000ページ分のPDFをMarkdown化できるという話が書いてあります。方法的には、各ページを画像化してモデルに渡してMarkdownを出力するだけなので珍しくはないのですが、その価格でそれだけ処理できるの?という部分に興味を持ちました。そこで、価格の計算をし、実際に試してみることにしました。
価格の計算
記事にも価格計算の方法は書かれているのですが、ここでも改めて計算してみます。対象とするモデルはGemini 2.0 Flash、価格計算には2025/02/25時点の価格表[1]を使います。また、APIとしては、通常のAPIと比べて半額のバッチAPIを使った場合の価格を計算します。以下に計算に使う数字を示します。
| タイプ | 価格 |
|---|---|
| 100万入力トークン | $0.075 |
| 100万出力トークン | $0.30 |
| 画像1枚 | $0.00009675 |
価格を計算するために、いくつかの仮定をします。
- PDFの各ページを1枚の画像に変換し、テキストプロンプトとともに入力する
- テキストプロンプトのトークン数は100トークンとする
- 1ページあたりのトークン数は800トークンとする(A4一枚の文字数を1200文字として、その0.7掛けをおおよそのトークン数としている)
この仮定のもとで、1ページあたりの価格を計算します*1。
1ページあたりの価格が0.00034425ドルとなりました。したがって、1ドルで処理できるページ数は約3000ページということになります。参照している記事とは仮定が異なるので、計算結果も異なることに注意する必要があります。価格に占める割合では出力トークンの価格が大きいこと、実際にはA4いっぱいに書かれたページばかりではないことを考慮すると、処理できるページ数はさらに多いと考えられます。
実際に試してみる
金融庁が公開している『2023年保険モニタリングレポート【概要】』のPDFから以下のページを対象として、Markdown化とチャンキングをしてみます。見てわかるように、テキストと表、グラフが混在しているページです。実際に扱うデータは、さらに汚いものもありますが、今回は試したいだけなので、このページを選びました。

コードは以下のとおりです。事前にGoogle Gen AI SDKをインストールしておく必要があります。とくに難しいところはありませんが、プロンプトではOCRを行うように指示しています。また、チャンキングのプロンプトは、ページを250から1000語程度のセクションに分割するように指示しています。
import os from pathlib import Path from google import genai import PIL.Image # クライアントの用意 client = genai.Client(api_key=os.environ["GOOGLE_API_KEY"]) # 画像化したページの読み込み image_path = Path("path/to/image.png") img = PIL.Image.open(image_path) # Markdown化とチャンキングの実行 CHUNKING_PROMPT = """\ OCR the following page into Markdown. Tables should be formatted as HTML. Do not surround your output with triple backticks. Chunk the document into sections of roughly 250 - 1000 words. Surround each chunk with <chunk> and </chunk> tags. Preserve as much content as possible, including headings, tables, etc. Don't try to output any image. """ response = client.models.generate_content( model="gemini-2.0-flash", contents=[CHUNKING_PROMPT, img] )
結果は4つのチャンクに分割されました。それぞれを以下に示します。確認した限りではハルシネーションはなさそうですが、グラフの細かい数字は無視され、要約された英語のテキストとして抽出されていました。検索目的であれば、この要約でもよいかもしれませんが、このままだと具体的な数字や傾向については回答できないため、ユースケースによってはプロンプトを調整する必要がありそうです。




おわりに
本記事では、Gemini 2.0 Flashを使ってPDFをMarkdown化する際の価格を計算し、実際に試してみました。PDFに含まれる画像を検索用のテキストに変換するためにGPT-4o等のマルチモーダルモデルを使うことはあったのですが、1ドルでここまで処理できるようになったのだなという驚きがありました。ただし、ハルシネーションの問題はあるため、適用するユースケースに注意したり、起こりにくくする対策は必要そうです。