この記事ではRAGに特化して解説します。RAG全般は RAGとは?仕組み・構築・ベクトルDB選定まで【2026年完全ガイド】 をご覧ください。

MinerUとは:60,000スターを超えたドキュメント解析OSS

MinerUは、PDF・DOCX・PPTX・XLSX・画像をLLM対応のMarkdownやJSONに変換するオープンソースのドキュメント解析ツールだ。 GitHub 60,000スター超(2026年4月時点)を誇るプロジェクトで、opendatalab(上海AIラボ)が開発・メンテナンスしている。

2026年4月18日にv3.1.0がリリースされ、ライセンスが AGPL-3.0 から MinerU Open Source License(Apache 2.0ベース) に変更された。これにより商用利用の敷居が大幅に下がり、エンタープライズ環境への採用が加速している。

MinerUはRAGシステムやAIエージェントのデータ前処理として設計されており、複雑なレイアウト(段組み、ヘッダー・フッター、数式、表、画像キャプション)を正確に解析してLLMが読み込みやすい形式に変換する。単純なPDFテキスト抽出ではなく、文書の意味構造を保持した変換が最大の特徴だ。

InternLM(中国の大規模言語モデル)の事前学習データ生成プロセスで生まれたツールであり、科学論文・技術文書・法律文書など複雑なPDFの解析に特に強みを持つ。

MinerUのデモ動画

技術アーキテクチャ:3種類のパースバックエンド

MinerUは v3.0以降、目的に応じて選択できる3種類の推論バックエンドを提供している。

flowchart TD A["入力ドキュメント
PDF・DOCX・PPTX・XLSX・画像"] --> B{"パースバックエンド選択"} B --> C["pipeline
(高互換性・CPU対応)"] B --> D["vlm-engine
(高精度・VLM使用)"] B --> E["hybrid-engine
(高精度・低幻覚)"] C --> F["レイアウト解析
(深層学習)"] D --> G["VLMモデル
MinerU2.5-Pro-2604-1.2B"] E --> H["ネイティブテキスト抽出
+ VLM補完"] F --> I["構造化出力"] G --> I H --> I I --> J["Markdown
(NLP向け)"] I --> K["JSON
(構造化データ)"] I --> L["HTML表
(テーブル)"] I --> M["LaTeX
(数式)"]

3つのバックエンドの特徴

バックエンド 精度 速度 ハードウェア要件 主な用途
pipeline 高(OmniDocBench 86.2点) 速い CPU/GPU対応 バッチ処理・本番安定稼働
vlm-engine 最高精度 遅め GPU推奨 精度優先の研究・高品質変換
hybrid-engine 非常に高精度 中間 GPU推奨 幻覚最小化・高精度並立

解析能力の詳細

OCR・テキスト抽出

  • 109言語のOCR対応
  • スキャンPDF・手書き文字の認識
  • 縦書きテキストのサポート
  • 複数カラムレイアウトの正確な読み取り順序復元

表の抽出

  • 複雑な表構造をHTML形式で再現
  • クロスページ(ページをまたぐ)表の自動結合
  • 表内の画像・数式の認識(v3.0以降)

数式処理

  • インライン数式・ディスプレイ数式をLaTeX形式に自動変換
  • 数式番号(インターライン数式番号)の認識

文書構造の保持

  • ヘッダー・フッター・脚注の自動除去
  • 見出しレベルの正確な判定
  • 画像・図のキャプション抽出
v3.1.0の主要アップデート
2026年4月18日リリース。ライセンスをAGPL-3.0からApache 2.0ベースのMinerU Open Source Licenseへ変更。PPTXとXLSXのネイティブパースサポートを追加。VLMメインモデルをMinerU2.5-Pro-2604-1.2Bにアップグレードし、全体的なパース精度が向上。

インストール・セットアップ

基本インストール

Python環境(Python 3.9以上)に uv または pip でインストール:

# uv を使用(推奨・高速)
uv pip install "mineru[all]"

# pip を使用
pip install "mineru[all]"

[all] オプションで全依存パッケージが含まれる。特定のバックエンドのみ使う場合は [pipeline][vlm] などを指定できる。

CLIでの使い方

# 基本的なPDF変換
mineru -i input.pdf -o output/

# 複数ファイルの一括処理
mineru -i "docs/*.pdf" -o output/ --workers 4

# バックエンドを指定(vlmエンジンで高精度変換)
mineru -i research_paper.pdf -o output/ --backend vlm-auto

# APIサーバーとして起動
mineru-api --port 8080

Python APIでの使い方

from mineru import MinerU

# デフォルト(pipelineバックエンド)
converter = MinerU()
result = converter.convert("input.pdf")

# 変換結果の取得
print(result.markdown)    # Markdown形式
print(result.json)        # JSON形式(構造化データ)

# 表の抽出
for table in result.tables:
    print(table.html)     # HTML形式の表

非同期APIを使ったバッチ処理

v3.0以降の新エンドポイントを使ったバッチ処理:

import requests
import time

# タスクの投入
response = requests.post(
    "http://localhost:8080/tasks",
    json={
        "file_path": "/data/documents/report.pdf",
        "backend": "pipeline",
    }
)
task_id = response.json()["task_id"]

# ステータスのポーリング
while True:
    status = requests.get(f"http://localhost:8080/tasks/{task_id}").json()
    if status["status"] == "completed":
        print("変換完了")
        print(status["result"]["markdown"][:500])
        break
    time.sleep(1)

Dockerでのデプロイ

# Docker コンテナとして起動
docker run -p 8080:8080 \
  -v /local/data:/data \
  opendatalab/mineru:latest \
  mineru-api --port 8080

# 変換リクエストの送信
curl -X POST http://localhost:8080/file_parse \
  -F "file=@/local/data/document.pdf" \
  -F "backend=pipeline"
GPU環境の推奨
pipelineバックエンドはCPU環境でも動作しますが、vlm-engineおよびhybrid-engineはGPUを強く推奨します。v3.1.0からCUDA/NPU/MPSの各アクセラレーターに対応。torch >= 2.8との互換性問題も本バージョンで解消されています。

対応フォーマットと出力形式

入力フォーマット(v3.1.0時点)

フォーマット サポート状況 備考
PDF ✅ 完全対応 スキャン・テキストベース両方
画像(JPG・PNG等) ✅ 完全対応 OCR処理
DOCX ✅ ネイティブ対応(v3.0〜) Wordドキュメント
PPTX ✅ ネイティブ対応(v3.1〜) PowerPointスライド
XLSX ✅ ネイティブ対応(v3.1〜) Excelスプレッドシート

出力フォーマット

# マルチモーダル対応Markdown(デフォルト)
mineru -i doc.pdf -o output/ --output-format markdown

# 読み取り順に並べたJSON
mineru -i doc.pdf -o output/ --output-format json

# 両方出力
mineru -i doc.pdf -o output/ --output-format both

実践的なユースケース

1. RAGシステムへのPDF投入パイプライン

社内ナレッジベースをLangChainRAGFlowに投入する際、MinerUを前処理として使うことで検索精度が大幅に向上する。

import subprocess
from pathlib import Path
from langchain_community.document_loaders import UnstructuredMarkdownLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import Chroma

def pdf_to_rag_pipeline(pdf_dir: str, output_dir: str, vector_db_path: str):
    """MinerU → LangChain RAGパイプライン"""
    
    # Step 1: MinerUでPDFをMarkdownに変換
    subprocess.run([
        "mineru",
        "-i", f"{pdf_dir}/*.pdf",
        "-o", output_dir,
        "--workers", "4"
    ])
    
    # Step 2: Markdownをロード
    docs = []
    for md_file in Path(output_dir).glob("**/*.md"):
        loader = UnstructuredMarkdownLoader(str(md_file))
        docs.extend(loader.load())
    
    # Step 3: チャンキング
    splitter = RecursiveCharacterTextSplitter(
        chunk_size=1000,
        chunk_overlap=200,
    )
    chunks = splitter.split_documents(docs)
    
    # Step 4: ベクトルストアに格納
    embeddings = OpenAIEmbeddings()
    vectorstore = Chroma.from_documents(
        documents=chunks,
        embedding=embeddings,
        persist_directory=vector_db_path,
    )
    
    return vectorstore

# 実行例
vectorstore = pdf_to_rag_pipeline(
    pdf_dir="./company_docs",
    output_dir="./markdown_output",
    vector_db_path="./vector_db"
)

2. 学術論文の構造化データ抽出

研究論文のPDFから表・数式・参考文献を構造化して抽出:

from mineru import MinerU

converter = MinerU(backend="vlm-auto")
result = converter.convert("arxiv_paper.pdf")

# 数式の抽出(LaTeX形式)
print("=== 数式一覧 ===")
for formula in result.formulas:
    print(f"位置: {formula.position}")
    print(f"LaTeX: {formula.latex}")
    print()

# 表の抽出(HTML形式)
print("=== 表一覧 ===")
for i, table in enumerate(result.tables):
    print(f"{i+1}:")
    print(table.html[:300])
    print()

3. 大量PDFのバッチ変換(マルチスレッド)

MinerU v3.0以降ではスレッドセーフな並行推論をサポートしており、mineru-routerと組み合わせたマルチGPU展開も可能:

# mineru-routerでマルチサービス統合・ロードバランシング
mineru-router --services http://gpu1:8080,http://gpu2:8080 --port 9000

# ルーター経由でバッチ変換
mineru -i "/data/*.pdf" -o output/ --api-url http://localhost:9000

4. MCP Server経由でのエージェント統合

MinerUにはMCPサーバーが付属しており、Claude Desktop・Cursor・Windsurfから直接PDFパースを呼び出せる:

{
  "mcpServers": {
    "mineru": {
      "command": "mineru-mcp",
      "args": ["--backend", "pipeline"]
    }
  }
}

5. LlamaIndex・Difyとのネイティブ統合

MinerUはLangChain・LlamaIndex・RAGFlow・Dify・FastGPTとのネイティブ統合を提供している:

# LlamaIndexとの統合
from llama_index.readers.file import PDFReader
from mineru import MinerUReader  # MinerU LlamaIndex Integration

# MinerUをLlamaIndexのリーダーとして使用
reader = MinerUReader(backend="hybrid-auto")
documents = reader.load_data("./technical_spec.pdf")

# LlamaIndexのインデックスに直接投入
from llama_index.core import VectorStoreIndex
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()
response = query_engine.query("APIのエンドポイント一覧を教えてください")

競合ツールとの詳細比較

MinerUの最大の強みは、OSS・高精度・多フォーマット対応の3点を同時に実現している点だ。

ツール レイアウト解析 数式認識 OCR言語数 OSS ライセンス 月額費用
MinerU 非常に高精度 ✅ LaTeX 109言語 Apache 2.0ベース 無料
PyMuPDF 基本的 AGPL/商用 無料〜
Unstructured 高精度 限定的 ✅(OSS版) Apache 2.0 無料〜
Adobe Extract 高精度 多言語 商用API 有料
LlamaParse 高精度 多言語 商用API 有料(無料枠あり)
marker 高精度 多言語 GPL-3.0 無料
nougat 非常に高精度 限定的 CC BY-NC 無料(非商用)

MinerUが選ばれる理由

  1. フォーマット網羅性:PDF・DOCX・PPTX・XLSX・画像を1つのツールで処理
  2. ライセンス:v3.1.0からApache 2.0ベースに変更。商用プロジェクトへの採用が容易
  3. 本番実用性:スレッドセーフ・マルチGPU・APIサーバー・Docker完備
  4. エコシステム統合:LangChain・LlamaIndex・Dify・RAGFlowとのネイティブ統合
  5. 継続開発:opendatalabとInternLMチームによる活発なメンテナンス

Webで試す・オンラインデモ

ローカルインストールなしにMinerUを試したい場合は以下のオプションがある:

まず試すなら HuggingFace Spaces
HuggingFace Spacesのデモはログイン不要で基本的なPDF→Markdownの変換を試せます。手元のPDFで変換品質を確認してから本番導入を検討するのが効率的です。

よくある質問

Q:MinerUのライセンスはAGPLではなくなりましたか?

A:v3.1.0(2026年4月18日リリース)からMinerU Open Source License(Apache 2.0ベース)に変更されました。以前のAGPLv3で問題になっていたGPLの伝播条件がなくなり、商用プロジェクトへの組み込みが容易になりました。

Q:GPUなしで動きますか?

A:pipelineバックエンドはCPU環境でも動作します。ただし処理速度はGPU環境に比べて大幅に遅くなります。vlm-engineとhybrid-engineはGPUを推奨します。

Q:日本語PDFの変換精度は?

A:109言語のOCRに日本語も含まれており、スキャンPDFの日本語テキスト認識にも対応しています。縦書きテキストのサポートもv3.0以降で強化されています。

Q:PDFの表が複数ページにまたがる場合は?

A:MinerUはクロスページ表結合機能を持っており、ページをまたぐ表を自動的に1つの表として認識・結合します。これはRAGシステムへのデータ投入において表データの断片化を防ぐ重要な機能です。

Q:どのくらい大きなPDFまで対応できますか?

A:v3.0でスライドウィンドウ機構が導入され、数万ページの文書でも手動分割なしに処理できるようになりました。ストリーミング書き込みにより、変換完了した部分から随時ディスクに出力されます。

関連記事: RAGとは?仕組み・構築・ベクトルDB選定まで【2026年完全ガイド】

まとめ

MinerUはGitHub 60,000スター超のOSSドキュメント解析ツールとして、PDF・DOCX・PPTX・XLSX・画像をLLM対応のMarkdown/JSONに変換する分野での事実上の標準ツールになりつつある。

2026年4月のv3.1.0リリースでライセンスがApache 2.0ベースに変更され、商用利用の障壁が取り除かれた。pipeline・vlm・hybridの3バックエンド、スレッドセーフな並行処理、mineru-routerによるマルチGPU展開、LangChain・LlamaIndex・Difyとのネイティブ統合──これらが揃い、RAGシステムのデータ前処理基盤として本番環境への採用が現実的な選択肢になった。

社内PDFナレッジベースをRAGFlowLangChainのナレッジベースに投入する場合、DifyのワークフローにPDF解析を組み込む場合、いずれにおいてもMinerUを前処理レイヤーとして配置することで、最終的な検索精度と応答品質が向上する。

参照ソース