mirror of
https://github.com/DS4SD/docling.git
synced 2025-12-11 06:08:09 +00:00
docs(gpu): Add benchmarks of standard pipeline with OCR (#2764)
* add results for standard + OCR and more Windows timings Signed-off-by: Michele Dolfi <dol@zurich.ibm.com> * fix runtime selection for py 3.14 in CI Signed-off-by: Michele Dolfi <dol@zurich.ibm.com> --------- Signed-off-by: Michele Dolfi <dol@zurich.ibm.com>
This commit is contained in:
28
docs/examples/parquet_images.py
vendored
28
docs/examples/parquet_images.py
vendored
@@ -27,6 +27,7 @@
|
||||
# %%
|
||||
|
||||
import io
|
||||
import sys
|
||||
import time
|
||||
from pathlib import Path
|
||||
from typing import Annotated, Literal
|
||||
@@ -36,6 +37,7 @@ import typer
|
||||
from PIL import Image
|
||||
|
||||
from docling.datamodel import vlm_model_specs
|
||||
from docling.datamodel.accelerator_options import AcceleratorDevice, AcceleratorOptions
|
||||
from docling.datamodel.base_models import ConversionStatus, DocumentStream, InputFormat
|
||||
from docling.datamodel.pipeline_options import (
|
||||
PdfPipelineOptions,
|
||||
@@ -47,8 +49,10 @@ from docling.datamodel.pipeline_options_vlm_model import ApiVlmOptions, Response
|
||||
from docling.datamodel.settings import settings
|
||||
from docling.document_converter import DocumentConverter, ImageFormatOption
|
||||
from docling.pipeline.base_pipeline import ConvertPipeline
|
||||
from docling.pipeline.legacy_standard_pdf_pipeline import LegacyStandardPdfPipeline
|
||||
from docling.pipeline.standard_pdf_pipeline import StandardPdfPipeline
|
||||
from docling.pipeline.vlm_pipeline import VlmPipeline
|
||||
from docling.utils.accelerator_utils import decide_device
|
||||
|
||||
|
||||
def process_document(
|
||||
@@ -97,12 +101,32 @@ def run(
|
||||
),
|
||||
doc_size: int = 192,
|
||||
batch_size: int = 64,
|
||||
pipeline: Literal["standard", "vlm"] = "standard",
|
||||
pipeline: Literal["standard", "vlm", "legacy"] = "standard",
|
||||
):
|
||||
acc_opts = AcceleratorOptions()
|
||||
device = decide_device(acc_opts.device)
|
||||
|
||||
ocr_options = RapidOcrOptions()
|
||||
if "cuda" in device:
|
||||
ocr_options = RapidOcrOptions(backend="torch")
|
||||
|
||||
# On Python 3.14 we only have torch
|
||||
if sys.version_info >= (3, 14):
|
||||
ocr_options = RapidOcrOptions(backend="torch")
|
||||
|
||||
if pipeline == "standard":
|
||||
pipeline_cls: type[ConvertPipeline] = StandardPdfPipeline
|
||||
pipeline_options: PipelineOptions = PdfPipelineOptions(
|
||||
# ocr_options=RapidOcrOptions(backend="openvino"),
|
||||
ocr_options=ocr_options,
|
||||
ocr_batch_size=batch_size,
|
||||
layout_batch_size=batch_size,
|
||||
table_batch_size=4,
|
||||
)
|
||||
elif pipeline == "legacy":
|
||||
settings.perf.page_batch_size = batch_size
|
||||
pipeline_cls: type[ConvertPipeline] = LegacyStandardPdfPipeline
|
||||
pipeline_options: PipelineOptions = PdfPipelineOptions(
|
||||
ocr_options=ocr_options,
|
||||
ocr_batch_size=batch_size,
|
||||
layout_batch_size=batch_size,
|
||||
table_batch_size=4,
|
||||
|
||||
3
docs/usage/gpu.md
vendored
3
docs/usage/gpu.md
vendored
@@ -156,7 +156,8 @@ TBA.
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr><td>Standard - Inline (no OCR)</td><td>3.1 pages/second</td><td>-</td><td>7.9 pages/second<br /><small><em>[cpu-only]* 1.5 pages/second</em></small></td><td>-</td><td>4.2 pages/second<br /><small><em>[cpu-only]* 1.2 pages/second</em></small></td><td>-</td></tr>
|
||||
<tr><td>VLM - Inference server (GraniteDocling)</td><td>2.4 pages/second</td><td>-</td><td>3.8 pages/second</td><td>3.6-4.5 pages/second</td><td>-</td><td>-</td></tr>
|
||||
<tr><td>Standard - Inline (with OCR)</td><td></td><td></td><td>tba</td><td>1.6 pages/second</td><td>tba</td><td>1.1 pages/second</td></tr>
|
||||
<tr><td>VLM - Inference server (GraniteDocling)</td><td>2.4 pages/second</td><td>-</td><td>3.8 pages/second</td><td>3.6-4.5 pages/second</td><td>2.0 pages/second</td><td>2.8-3.2 pages/second</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user