mirror of
https://github.com/DS4SD/docling.git
synced 2025-12-11 22:28:31 +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 io
|
||||||
|
import sys
|
||||||
import time
|
import time
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Annotated, Literal
|
from typing import Annotated, Literal
|
||||||
@@ -36,6 +37,7 @@ import typer
|
|||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
|
||||||
from docling.datamodel import vlm_model_specs
|
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.base_models import ConversionStatus, DocumentStream, InputFormat
|
||||||
from docling.datamodel.pipeline_options import (
|
from docling.datamodel.pipeline_options import (
|
||||||
PdfPipelineOptions,
|
PdfPipelineOptions,
|
||||||
@@ -47,8 +49,10 @@ from docling.datamodel.pipeline_options_vlm_model import ApiVlmOptions, Response
|
|||||||
from docling.datamodel.settings import settings
|
from docling.datamodel.settings import settings
|
||||||
from docling.document_converter import DocumentConverter, ImageFormatOption
|
from docling.document_converter import DocumentConverter, ImageFormatOption
|
||||||
from docling.pipeline.base_pipeline import ConvertPipeline
|
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.standard_pdf_pipeline import StandardPdfPipeline
|
||||||
from docling.pipeline.vlm_pipeline import VlmPipeline
|
from docling.pipeline.vlm_pipeline import VlmPipeline
|
||||||
|
from docling.utils.accelerator_utils import decide_device
|
||||||
|
|
||||||
|
|
||||||
def process_document(
|
def process_document(
|
||||||
@@ -97,12 +101,32 @@ def run(
|
|||||||
),
|
),
|
||||||
doc_size: int = 192,
|
doc_size: int = 192,
|
||||||
batch_size: int = 64,
|
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":
|
if pipeline == "standard":
|
||||||
pipeline_cls: type[ConvertPipeline] = StandardPdfPipeline
|
pipeline_cls: type[ConvertPipeline] = StandardPdfPipeline
|
||||||
pipeline_options: PipelineOptions = PdfPipelineOptions(
|
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,
|
ocr_batch_size=batch_size,
|
||||||
layout_batch_size=batch_size,
|
layout_batch_size=batch_size,
|
||||||
table_batch_size=4,
|
table_batch_size=4,
|
||||||
|
|||||||
3
docs/usage/gpu.md
vendored
3
docs/usage/gpu.md
vendored
@@ -156,7 +156,8 @@ TBA.
|
|||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<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>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>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user