AIじゃないよ

LlamaParse 完全ガイド:PDFやパワポをOCR・構造化してテキスト変換するAI時代の必須ツール

当サイトはアフィリエイト広告を一部掲載しています。

表やグラフを含むPDFファイルから、情報をうまくコピペで抽出できず、ストレスを感じたことがある人は多いのではないだろうか。

PDFで共有されたパワポスライドから、テキストや表をコピーしてWordに転記しようとして失敗し、結局自分で手打ちする羽目になる、という事態は、全ての学生・社会人が経験したことがあるに違いない。

表、図、グラフ、多段組のテキストなどを、視覚的には美しく共有できるPDFファイルだが、文書構造を再編集・再利用が可能な形で保持するのには向いていない。

一方で、ChatGPTを始めとするLLMツールを使用する上で、PDFファイル内にある情報を、AIに読み込ませたい場面も非常に多くなってきた。
LLMに充実した背景情報を与えれば与えるほど、回答の質も高まるので、PDFからの情報の抽出は、AI時代の死活問題だ。

そんな時に役立つのが、本記事で紹介する「LlamaParse」だ。

LlamaParseは、OCR技術やLLMを組み合わせ、PDFなどの複雑なファイルから正確に文書構造、テキスト、図表を抽出し、Markdown形式に変換することに特化したツールだ。

単にテキストを抽出するだけでなく、見出し、リスト、表、グラフなどの構造も含めて、簡単にコピペできるLLMフレンドリーなMarkdownテキストに整えてくれる。

本記事では、LlamaParseの使い方を解説するとともに、実際にLlamaParseに複雑なPDFデータを読み取らせた結果を紹介する。

結論としては、図表の読み取りを含めて非常に精度が高く、PDFからのコピペ問題を完全に解消してくれる神ツールなので、是非とも試してみることをお勧めする。



LlamaParseの概要:あらゆるドキュメントを解析・変換

LlamaParseは、複雑な非構造化ドキュメント(PDF、Word、PowerPoint、スプレッドシートなど)を読み込んで、構造化されたMarkdown形式に変換するツールだ。

内部では、高度なAI(LLMやビジョンモデル)と、従来のOCR技術を組み合わせて、与えられたドキュメントのレイアウトとコンテンツを正確に読み取っている。

出力される「Markdown」とは、見出し、リスト、表、リンクなどを、記号と文字の組み合わせだけで表現するプレーンテキスト形式である。

PDF内の文書の順番や階層構造、またテーブルデータなども、テキストだけで正確に再現してくれるので、そのままChatGPTなどのLLMにコピペしてコンテキスト(背景情報)として活用でき、本当に便利だ。

LlamaCloudというサービス上で提供されており、Webブラウザ上で利用できるほか、Pythonプログラムなどに埋め込んでAPIで利用することもできる。

LlamaParseの特徴と強み

LlamaParseの主な強みを簡単にまとめると、以下の通りだ。

  • 文書構造の保持:見出し、段落、リスト、画像を検出し、その階層と順序を正確に再現する。
  • 表の抽出:PDF内のテーブルデータから、行、列、さらには結合セルをも構造化された形式で読み取る。
  • マルチモーダル処理:テキストだけでなく、画像やグラフ、図表も抽出できる。
  • 概念図や数式の処理:「プレミアム」モードでは、フロー図などもMermaidダイアグラム(Markdownに似た図表構文)として抽出可能。数式もLaTeX形式で抽出する。
  • ファイルサポート:PDFに限らず、Wordファイル、PowerPointスライド、Excelスプレッドシート、HTMLウェブページ、EPUBブック、画像など、10種類以上のファイル形式をサポート。
  • 特別な指示も可能:LlamaParse自体もAIであるため、プロンプトで「参考文献を無視する」などの追加的な指示を与えることもできる。

ChatGPTなどに読み込ませるには手間が大きかったPDFやパワポスライドなどを、一瞬で正確にテキスト変換してくれるのは大きな利点だ。

LlamaParseを使えば、企業内に眠っているPDF等の非構造化データを読み取って、AI活用の基盤データとして利用することができるようになる。

AI活用を進めたくても、そもそもAIに読み込ませるためのデータベースが整っていない、というありがちな問題を、低コストで解決できる。

料金形態:毎月6,500ページ超まで無料で読み取り可能

個人利用の場合、プランは以下の2種類である。

  • Freeプラン: 1ヶ月あたり10,000クレジットまで無料
  • Proプラン: 1ヶ月あたり20,000クレジットまで無料、その後は1000クレジット/$1

無料クレジットの範囲内で使用する限り、例えProプランのユーザーであっても、クレジットカードの登録が必要なだけで、請求は発生しない。

無料の「20,000クレジット」で、何ページ分のドキュメントの読み取りができるかは、使用する「モード」によって異なる。

LlamaParseでは、読み取りの正確性をどこまで重視するかに応じて、3つのモードを選択できる。モードによって消化されるクレジットの量が異なるのだ。

主なモードは以下の3つである。文書の読み取り時に、大規模言語モデル(LLM)を用いるかどうか、また画像に対応したマルチモーダルなモデル(LVM)を用いるかどうか、によって差があるイメージだ。

モード消費クレジット概要
Fast1 cred. / 1p
($1=1,000p)
速さ重視
LLMもLVMも使わずテキスト情報のみ抽出
Balanced3 cred. / 1p
($1= 333p)
質とコストのバランス重視
OCR+LLMを用いて文書構造を再現
構造化されたMarkdownを出力
Premium45 cred. / 1p
($1= 22p)
正確性重視
全ページのスクショをLVMに読み取らせ正確に構造分析
構造化されたMarkdownを出力
LlamaParseのモードの違い

Premiumモードでは、画像の読み取りにも対応したOpenAIのGPT-4oを用いて、全ページのスクリーンショットを解析して、単純なOCRでは再現不可能な図や表などの正確な再現を試みる。
ページ中の数式はLaTeX形式で抽出され、図解はMermaid記法(フローチャートやガントチャート)で抽出されるなど、元のドキュメントの構造を徹底的に正確に再現してくれる。

20,000クレジットもの無料枠があるということは、最も高精度なPremiumモードを使った場合でさえ、毎月約450ページを無料で読み取り可能なわけで、非常にありがたい。

そこまで複雑な図表がないのであれば、基本的にはBalancedモードを使用しておけば良いので、毎月6500ページ以上のPDFのMarkdown変換を、無料で利用できてしまうということだ。

LlamaParseの使い方:Webブラウザで簡単に使う

LlamaParseを使う方法は、Webブラウザ上で使用する方法と、プログラムのコードの中に埋め込んでAPI経由で利用する方法の2通りがある。

LlamaParseのブラウザ版を利用すれば、一切コードを書く必要なく、ブラウザ上のWebアプリを通して利用できる。

初心者でも非常に簡単に使えるので、安心して欲しい。

以下、実際にLlamaParseを使って、PDFからテキストと表を抽出するための手順を紹介する。

まず、LlamaIndex Cloudにアクセスし、会員登録をする。LlamaParseは、LlamaIndexによって提供されている様々なサービスのうちの一つだ。

ログインしたら、左側メニューの「Parse」を選択すると、LlamaParseのWebインターフェースが表示される。

インターフェースを開いたら、まずはPDFファイルをアップロードする。

アップロードエリアにPDFファイルをドラッグ&ドロップするか、オンライン上のPDFのURLを直接貼り付ける。

解析モードを選択し、解析したいページ範囲も指定する。

今回は検証用のサンプルPDFとして、DeepSeek R1のホワイトペーパーを使用することにした。このPDFは冒頭部分に複雑なグラフやデータテーブルが含まれており、LlamaParseの性能を試すのに最適な素材だ。Premiumモード(最高精度)を選択し、最初の5ページを解析してみる。

準備ができたら、Parseボタンをクリックして解析を開始する。解析が完了すると、PDFの内容がテキスト形式で表示される。

解析したPDFの1ページ目には、以下のような複雑な棒グラフが含まれている。グラフの色から、どのモデルのベンチマーク結果かを正しく読み取れるか、また数値を正しく読み取って整理できるかどうかが見所だ。

従来であれば、このグラフをExcelなどで再現しようと思ったら、手動でデータを入力するしかなかった。

以下が、LlamaParseで解析した結果である。グラフの色や数値を正確に読み取って、表形式で整理できていることが分かる。

数値を正確に読み取り、しかも棒グラフを表形式に変換して構造を維持できているのは、従来のOCRでは到底不可能だったレベルの神技だ。

BenchmarkDeepSeek-R1OpenAI-o1-1217DeepSeek-R1-32BOpenAI-o1-miniDeepSeek-V3
AIME 2024 (Pass@1)79.879.263.672.639.2
Codeforces (Percentile)96.396.693.490.658.7
GPQA Diamond (Pass@1)71.575.762.160.059.1
MATH-500 (Pass@1)97.396.494.390.090.2
MMLU (Pass@1)90.891.887.485.288.5
SWE-bench Verified (Resolved)49.248.941.636.842.0
LlamaParseによる解析・テキスト変換結果

また、DeepSeekのホワイトペーパー内にある数式の部分の読み取りについても試してみた。論文中にある以下のような非常に複雑な数式で、これを手打ちでLaTeXで再現しようとすると非常に面倒だ。

LlamaParseで解析した結果のうち、(1)の行の数式を例にとると、一発で出力された結果が以下である。

$\frac{1}{G} \sum_{i=1}^G \left( \min \left( \frac{\pi_\theta(o_i|q)}{\pi_{\theta_{old}}(o_i|q)} A_i, \text{clip} \left( \frac{\pi_\theta(o_i|q)}{\pi_{\theta_{old}}(o_i|q)}, 1 - \epsilon, 1 + \epsilon \right) A_i \right) - \beta D_{KL} (\pi_\theta||\pi_{ref}) \right), \tag{1}$

LaTeXエンジンでこれをレンダリングしてみると、見事に元の数式が再現できていることがわかる。

LlamaParseと好きなモデルを組み合わせて使う方法

APIを経由してLlamaParseをプログラム内で使う場合、より高度な設定が可能になる。

LlamaParseは、デフォルトではGPT-4oによって画像の解析が行われているが、ClaudeやGeminiなどの他のモデルを使うことも可能だ。
APIリクエスト時にvendor_multimodal_model_nameというパラメータを付することで、使用するモデルを指定できる。

公式ドキュメントには、以下のモデル別の料金表が掲示されている。

ModelModel stringPrice
GPT-4o (Default)openai-gpt4o10 credits per page
GPT-4o Miniopenai-gpt-4o-mini5 credits per page
Claude 3.5 Sonnetanthropic-sonnet-3.520 credits per page
Claude 3.7 Sonnetanthropic-sonnet-3.720 credits per page
Gemini 2.0 Flashgemini-2.0-flash-0015 credits per page
Gemini 1.5 Flashgemini-1.5-flash5 credits per page
Gemini 1.5 Progemini-1.5-pro10 credits per page
LlamaParseで利用できるLVM(ビジョンモデル)

なお、LlamaParseに対して他社モデルの使用料を支払うのではなく、自分のAPIキーを持ち込んで使うこともできる。その場合、LVMによる画像解析を行った場合でも、1ページあたり1クレジットで解析が可能になる。

OpenAIやClaude、GeminiなどのAPIキーを持っている人は、簡単に使えるので試してみると良いだろう。

LlamaParseでClaude 3.5 Sonnetを使うサンプルコード

実際に、AnthropicのClaude 3.5 Sonnetを使って、LlamaParseによるPDF解析をGoogle Colab上で行うためのサンプルノートブックを作成してみた。今回はPythonで書いている。

前提として、ClaudeのAPIキーと、LlamaParseのAPIキーを取得しておく必要がある。LlamaCloudのメニューから、「API Keys」を選択して、APIキーを取得する。

取得したAPIキーは、Google Colabのシークレット機能を使って、環境変数として設定する。

実際のAPIリクエストのコードは以下の通り。

vendor_multimodal_model_nameで、AnthropicのClaude 3.5 Sonnetを指定し、
vendor_multimodal_api_keyで、環境変数からClaudeのAPIキーを呼び出している。

非常にシンプルなコードで、PDFの解析が可能なので、大量のPDFファイルを解析する際などには、プログラムを書いて自動化してしまうと良いだろう。

# llama_cloud_servicesからLlamaParseをインポート
from llama_cloud_services import LlamaParse

# LlamaParseオブジェクトを作成
parser = LlamaParse(
    result_type="markdown", # Markdown形式を指定
    use_vendor_multimodal_model=True, # ベンダー(今回はAnthropic)のモデルを使用
    vendor_multimodal_model_name="anthropic-sonnet-3.5", # モデル名を指定
    vendor_multimodal_api_key=ANTHROPIC_API_KEY, # 持ち込みAPIキー(指定しないことも可)
    target_pages="0", # 解析ページの指定。最初のページは0
    invalidate_cache=True # キャッシュ無効
)

解析結果をprintして表示した状態が以下だが、正しく解析できていることがわかる。ページ番号の情報などがJSON形式で保持されているので、色々と活用しやすい。

LlamaParseが解決するPDF問題:非構造化データを宝の山に

企業などにおいて、これまでPDF形式で蓄積されてきたデータを、AIが解釈可能な構造化データにどうやって変換するかは、AI時代の重要な課題の一つである。

多くのLLMモデルはPDFの読み込みに対応しておらず、テキストをコピペするしかないが、その過程で文書構造や図表などの重要なコンテキストが失われてしまう。また、PDFアップロードに対応したモデルでさえ、単純なテキスト抽出しか行わず、図表やグラフなどの複雑な情報をうまく読み取れないことが多い。

AI活用においては「ゴミを入れればゴミが出る(garbage in, garbage out)」と言われる通り、入力情報の質が出力の質を左右する。

PDFやその他の非構造化ドキュメントから、構造化テキストやテーブルを高精度に抽出し、LLMフレンドリーなMarkdown形式に変換してくれるLlamaParseは、そのような課題を解決するための強力なツールである。

特に日本のようにビジネス文書でPDF形式が広く使われている環境では、LlamaParseの活用により、埋もれていた情報をAIで活用する道が開かれる。

もちろん個人レベルでも、PDF内のグラフや表を瞬時にコピペ可能なテキストに変換してくれるツールは非常にありがたい。

無料枠も十分に用意されているため、個人でも企業でも、ぜひ一度試してみることをお勧めする。



Make a comment

*
*
* (公開されません)

CAPTCHA