TableFormerV2

Preview model. TableFormerV2 is a preview release. Its weights, outputs, and integration options can change in future releases without notice. The default table structure model in Docling is still TableFormer V1.

TableFormerV2 is a table structure recognition model for Docling. It takes an image of a table and predicts its structure as an OTSL token sequence, together with a bounding box for each cell. Docling then maps the cells back to the text of the document to build a TableItem in the DoclingDocument.

Model details

Developed by IBM Research, for the Docling project
Model type Image-to-sequence (table structure + cell boxes)
Parameters ~52M (FP32)
Input Table crop, resized to 448×448
Output OTSL structure tokens and one bounding box per cell
License Apache-2.0
Status Preview

Architecture

  • Image encoder: EfficientNetV2-S backbone with Squeeze-and-Excitation.
  • Spatial mixer: depthwise separable convolutions (no self-attention in the encoder).
  • Structure decoder: cache-aware Transformer decoder with cross-attention to the image features.
  • Bounding-box head: multi-layer attention decoder that predicts one box per cell.

The design is lightweight. It targets fast CPU inference and GPU batch inference.

The model implementation is in docling-ibm-models (docling_ibm_models.tableformer_v2).

Usage with Docling

Install Docling:

pip install docling

Docling downloads the weights from this repository automatically the first time you use the model. To download them before you run a conversion (for example, for offline use), run:

docling-tools models download tableformerv2

Option 1: Use the preset

The fastest way to enable TableFormerV2 is to select it by name.

CLI:

docling report.pdf --table-structure-engine docling_tableformer_v2

Docling Serve / Service Client: set the tableformer_v2 preset.

from docling.datamodel.service.options import ConvertDocumentsOptions
from docling.service_client import DoclingServiceClient

options = ConvertDocumentsOptions(table_structure_preset="tableformer_v2")

with DoclingServiceClient(url="http://localhost:5001") as client:
    result = client.convert(source="report.pdf", options=options)
    print(result.document.export_to_markdown())

Option 2: Set the full pipeline options

Use the Python SDK when you need full control over the pipeline. Set table_structure_options to TableStructureV2Options:

from docling.datamodel.accelerator_options import AcceleratorOptions
from docling.datamodel.base_models import InputFormat
from docling.datamodel.pipeline_options import (
    PdfPipelineOptions,
    TableStructureV2Options,
)
from docling.document_converter import DocumentConverter, PdfFormatOption

pipeline_options = PdfPipelineOptions(
    do_table_structure=True,
    table_structure_options=TableStructureV2Options(
        # True:  match the predicted cells to the text cells of the PDF.
        # False: use the cells predicted by the model and ignore the PDF cells.
        do_cell_matching=True,
    ),
    accelerator_options=AcceleratorOptions(device="auto", num_threads=8),
)

converter = DocumentConverter(
    format_options={
        InputFormat.PDF: PdfFormatOption(pipeline_options=pipeline_options),
    }
)

result = converter.convert("report.pdf")

for table in result.document.tables:
    print(table.export_to_dataframe())

To load pre-downloaded weights, set artifacts_path on the pipeline options:

pipeline_options = PdfPipelineOptions(
    artifacts_path="/path/to/models",  # contains docling-project--TableFormerV2/
    table_structure_options=TableStructureV2Options(),
)

Options

Option Default Description
do_cell_matching True Match the predicted cells to the PDF text cells. Set to False if PDF cells span more than one column, because this can break the table output.

Limitations

  • This is a preview model. Quality and behavior can change between releases.
  • On Apple Silicon, the model runs on CPU. Docling does not use MPS for this model.
  • The model sees only the table crop. Errors in the layout model (missed or wrongly cropped tables) propagate to the table structure.

License

This model is released under the Apache License 2.0.

Citation

If you use TableFormerV2, please cite Docling:

@misc{Docling,
  author = {Docling Team},
  title = {Docling: An Efficient Open-Source Toolkit for AI-driven Document Conversion},
  url = {https://arxiv.org/abs/2501.17887},
  eprint = {2501.17887},
  archivePrefix = {arXiv},
  doi = {10.48550/arXiv.2501.17887},
  year = {2025}
}
Downloads last month
12,661
Safetensors
Model size
52.4M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for docling-project/TableFormerV2

Finetunes
1 model

Collection including docling-project/TableFormerV2

Papers for docling-project/TableFormerV2