主要な数値#
docling.org が Docling 2.143.1 で計測。低いほど高速。
データ表を表示
| 秒/ページ | |
|---|---|
| デフォルト(OCR 自動 + 表) | 8.51 秒 |
| OCR オフ | 2.31 秒 |
| OCR オフ + 高速テーブル | 2.05 秒 |
| OCR オフ + 表モデルなし | 1.59 秒 |
| 設定 | CLI フラグ | 中央値(9 ページ) | 1 ページあたり |
|---|---|---|---|
| 既定 | — | 76.6 秒 | 8.51 秒 |
| OCR オフ | --no-ocr | 20.8 秒 | 2.31 秒 |
| OCR オフ + 高速な表 | --no-ocr --table-mode fast | 18.4 秒 | 2.05 秒 |
| OCR オフ + 表モデルなし | --no-ocr --no-tables | 14.3 秒 | 1.59 秒 |
時間はどこに使われているか#
Docling のプロファイリング計時(settings.debug.profile_pipeline_timings)、docling.org 計測。
データ表を表示
| レイアウト | OCR | 表構造 | 解析・組み立て | 合計 | |
|---|---|---|---|---|---|
| デフォルト(OCR 自動 + 表) | 15.5 | 61.0 | 11.6 | 0.7 | 88.7 |
| OCR オフ | 13.2 | 0.0 | 12.8 | 0.9 | 26.8 |
| OCR オフ + 高速テーブル | 12.7 | 0.0 | 8.3 | 0.8 | 21.8 |
| OCR オフ + 表モデルなし | 13.5 | 0.0 | 0.0 | 0.8 | 14.4 |
既定の設定では OCR が圧倒的です。このテクニカルレポートはデジタル生成 PDF なので、文字はファイルから直接取得されます。OCR が処理したのは埋め込まれた図(スクリーンショットやグラフ)だけですが、それでも 9 ページで 61 秒かかりました。その代わり、画像内から約 5,000 文字多く見つけています(Markdown で 34,063 文字対 29,036 文字)。
計測方法#
- マシン:4 vCPU x86_64 クラウドインスタンス、メモリ 15 GB、GPU なし、Linux、Python 3.13、PyTorch 2.14.1 CPU 版。
- ソフトウェア:Docling 2.143.1・docling-parse 7.23.1・docling-ibm-models 4.0.4。既定のモデル(Heron レイアウト、TableFormer accurate、auto エンジン経由の RapidOCR)。
- 文書:Docling Technical Report、arXiv 2408.09869——9 ページ、表 3 つ、図いくつか。
- 方法:設定ごとに
DocumentConverterを 1 つ作り、ウォームアップ変換を 1 回したあと同じプロセスで 3 回計測し、中央値を採用。ステージ時間は Docling 内蔵のプロファイラー(settings.debug.profile_pipeline_timings = True)によるものです。
自分の文書で同じプロファイルを取るには:
docling convert your.pdf --profiling # ステージ別の表を表示
docling convert your.pdf --profiling --save-profiling # JSON にも保存コールドスタートとウォーム#
新しいプロセスはモデルの読み込みにコストを払います。OCR オフの設定では最初の変換が 27.5 秒、続く 3 回の中央値は 20.8 秒でした。サービスやバッチ処理ではコンバーターを 1 回だけ作って使い回すか、起動時にモデルを読み込む docling-serve を使いましょう。
スキャン文書#
docling.org 計測:元テキストの固有語(4 文字以上)が各出力に含まれる割合。
データ表を表示
| 復元率 | |
|---|---|
| Unstructured | 99.7% |
| Marker | 97.2% |
| Docling | 94.2% |
| PyMuPDF4LLM | 93.8% |
| MarkItDown | 0.0% |
同じ論文の最初の 4 ページを 150 DPI でラスタライズし、わずかなぼかしと傾きを加えたため、テキスト層はまったくありません。Docling の既定パイプラインは CPU で 1 ページ 20.4 秒、原文の単語の 94.2% を復元しました。ローカル OCR のない MarkItDown は何も返さず、PyMuPDF4LLM も Tesseract を入れるまでは何も返しませんでした。Docling の OCR エンジンを Tesseract にすると 95.1%・6.8 秒/ページ、onnxruntime 版 RapidOCR は出力が同じまま時間が半分(8.7 秒/ページ)でした。大量のスキャン文書には CUDA GPU か Apple Silicon が最も効きます。エンジンの選び方は OCR ガイドへ。
速度を左右する設定#
| 設定 | CLI | 効果 |
|---|---|---|
| OCR を省く | --no-ocr | デジタル生成 PDF のテストで 3.7 倍速 |
| 高速な表 | --table-mode fast | テストで全体が 11% 速く |
| スレッド | --num-threads N(既定 4) | 物理コア数に合わせる |
| デバイス | --device auto|cpu|cuda|mps|xpu | auto は利用可能な最良のものを選ぶ |
| ページバッチ | --page-batch-size N(既定 4) | GPU では大きいバッチが有利 |
| ページを減らす | --page-range 1-5 | 必要な部分だけ変換 |
| 安全網 | --document-timeout 300 | 止まったジョブの代わりに部分的な結果 |
| モデルを一切使わない | --pipeline native(+ --parser-threads N) | モデル不要:PDF 自身のテキストセルと画像だけ。レイアウト・見出し・読み順・表はなし。最速だが構造は最小。 |
| メモリ | --release-native-memory-every-n-pages N(既定 128) | 長い文書でメモリを使いすぎるなら下げる |
Python での同等の設定は PdfPipelineOptions と AcceleratorOptions にあります。Python API ガイドを参照してください。
IBM が公表している数値#
Docling テクニカルレポート(v1、2024 年 8 月)は、OCR オフで 225 ページのテストセットを使い旧バージョンを計測しています:Apple M3 Max で毎秒 1.27–1.34 ページ、Intel Xeon E5-2690 で毎秒 0.60–0.92 ページ(4 スレッドと 16 スレッド)。当サイトより速いマシンで古い Docling なので、比較ではなく参考として扱ってください。
よくある質問
Docling は 1 ページに何秒かかる?
GPU なしの 4 vCPU テストマシンで、Docling 2.143.1 は既定の設定で 1 ページ 8.5 秒、OCR オフで 2.3 秒、全面 OCR が必要なスキャン文書で約 20 秒でした。実際の数値は CPU・GPU・文書の種類で変わります。
Docling を速くするには?
デジタル生成 PDF では OCR を切り(--no-ocr)、--table-mode fast を使い、必要なページだけ変換し(--page-range)、コア数の多いマシンでは --num-threads を上げ、DocumentConverter を使い回し、OCR が多い処理や VLM には GPU を使います。
Docling は自動で GPU を使う?
はい。--device auto(既定)では CUDA → Apple MPS → Intel XPU → CPU の順に選びます。PyTorch のビルドがそのデバイスに対応していることが条件です。
Docling の初回実行が遅いのはなぜ?
初回はモデルのダウンロードと読み込みが発生します。テストでは新しいプロセスでの最初の変換が 27.5 秒、モデル読み込み後の同じ文書は 20.8 秒でした。
出典
- Docling のプロファイリング:settings.debug.profile_pipeline_timings
- テスト文書:Docling Technical Report(arXiv 2408.09869)
- Docling テクニカルレポートの表 1(IBM 自身の実行時間)