File size: 6,133 Bytes
4465c93 e5a8997 4465c93 e5a8997 30c4906 e5a8997 30c4906 e5a8997 30c4906 4465c93 e5a8997 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | ---
license: other
license_name: apache-2.0-and-agpl-3.0
license_link: https://www.apache.org/licenses/LICENSE-2.0
tags:
- onnx
- document-parsing
- layout-analysis
- ocr
- table-structure-recognition
- formula-recognition
---
# docparser-models
Every model file [DocParser](https://github.com/docparser-rs) (a Rust
document-parsing engine: Triton serving + an in-process ONNX Runtime
backend) loads, flat, one commit per deployment. The checkout's
`models/MANIFEST.toml` pins a commit and maps each file to its place in
the Triton model repository; `scripts/fetch-models.sh` downloads and
verifies them against `MANIFEST.txt` here (sha256 per file). Nothing is
trained here: the files are PaddlePaddle's own ONNX exports and scripted
derivations of them, all Apache-2.0.
Each file is named `<official PaddlePaddle model name>_<part>`, so the name
says which published checkpoint it came from.
| File | What | Provenance | Licence |
| --- | --- | --- | --- |
| `PP-DocLayoutV3_fp32.onnx` | PP-DocLayoutV3 (RT-DETR-L, 25 classes + reading order), FP32 | bit-identical copy of [`PaddlePaddle/PP-DocLayoutV3_onnx`](https://huggingface.co/PaddlePaddle/PP-DocLayoutV3_onnx) `inference.onnx` @ `46bbdf18` (sha256 `45bf7175…`) | Apache-2.0 |
| `PP-DocLayoutV3_fp16_batchable.onnx` | the same, output reshaped to `[B,300,7]` and converted to FP16 (GridSample / NMS kept FP32) for Triton batching on TensorRT | `scripts/models/batchable_layout.py` + `convert_fp16.py` over the file above (onnx 1.21, onnxconverter-common 1.16) | Apache-2.0 |
| `PP-OCRv6_medium_det.onnx` | PP-OCRv6 text detection, medium tier (`OCR_DET_MODEL=medium`) | bit-identical copy of [`PaddlePaddle/PP-OCRv6_medium_det_onnx`](https://huggingface.co/PaddlePaddle/PP-OCRv6_medium_det_onnx) `inference.onnx` @ `61323801` (`eb13b44b…`) | Apache-2.0 |
| `PP-OCRv6_small_det.onnx` | PP-OCRv6 text detection, small tier — **the tier served by default** (`OCR_DET_MODEL`) | bit-identical copy of [`PaddlePaddle/PP-OCRv6_small_det_onnx`](https://huggingface.co/PaddlePaddle/PP-OCRv6_small_det_onnx) `inference.onnx` @ `28fe5895` (`d73e0058…`) | Apache-2.0 |
| `PP-OCRv6_tiny_det.onnx` | PP-OCRv6 text detection, tiny tier (0.43 M parameters) | bit-identical copy of [`PaddlePaddle/PP-OCRv6_tiny_det_onnx`](https://huggingface.co/PaddlePaddle/PP-OCRv6_tiny_det_onnx) `inference.onnx` @ `2ba1506c` (`193bab7a…`) | Apache-2.0 |
| `PP-OCRv6_tiny_rec_fp32.onnx` | PP-OCRv6 text recognition, tiny tier (6906-way CTC) | bit-identical copy of [`PaddlePaddle/PP-OCRv6_tiny_rec_onnx`](https://huggingface.co/PaddlePaddle/PP-OCRv6_tiny_rec_onnx) `inference.onnx` @ `2612ab37` (`9ef676d6…`) | Apache-2.0 |
| `PP-OCRv6_tiny_rec_fp16.onnx` | the same in FP16 | `convert_fp16.py` over the file above | Apache-2.0 |
| `PP-OCRv6_small_rec_fp32.onnx` | PP-OCRv6 text recognition, small tier (18710-way CTC) — **the tier served by default** (`OCR_REC_MODEL`) | bit-identical copy of [`PaddlePaddle/PP-OCRv6_small_rec_onnx`](https://huggingface.co/PaddlePaddle/PP-OCRv6_small_rec_onnx) `inference.onnx` @ `b8f84f0b` (`5435fd74…`) | Apache-2.0 |
| `PP-OCRv6_small_rec_fp16.onnx` | the same in FP16 | `convert_fp16.py` over the file above | Apache-2.0 |
| `PP-OCRv6_medium_rec_fp32.onnx` | PP-OCRv6 text recognition, medium tier (18710-way CTC, the same dictionary as small) | bit-identical copy of [`PaddlePaddle/PP-OCRv6_medium_rec_onnx`](https://huggingface.co/PaddlePaddle/PP-OCRv6_medium_rec_onnx) `inference.onnx` @ `50c7eaca` (`9c09abf0…`) | Apache-2.0 |
| `PP-OCRv6_medium_rec_fp16.onnx` | the same in FP16 | `convert_fp16.py` over the file above | Apache-2.0 |
| `SLANet_plus_encoder.onnx` | SLANet-Plus encoder (PP-LCNet), the official graph up to the GRU loop's feature input | `onnx.utils.extract_model` over [`PaddlePaddle/SLANet_plus_onnx`](https://huggingface.co/PaddlePaddle/SLANet_plus_onnx) `inference.onnx` @ `7dbe640e` (`7790c0c1…`) — `scripts/models/export_slanet_plus.py::extract_encoder` | Apache-2.0 |
| `SLANet_plus_decoder.bin` | the GRU decoder's 16 parameter tensors as float32 (DocParser's host decoder) | `export_slanet_plus.py::dump_decoder` over the same file; byte-identical to TurboOCR's `slanet_plus_decoder.bin` (`f4b9f9b2…`), and 16 of 16 tensors bit-equal to the named `head.` subtree of `SLANet_plus_pretrained.pdparams` (`--verify-decoder`) | Apache-2.0 |
| `PP-FormulaNet_plus-M_encoder.onnx`, `_prep.onnx`, `_decoder_step.onnx`, `_tokenizer.json` | PP-FormulaNet_plus-M split for a host decode loop: vision encoder, the cross-attention K/V computed once per crop, and one greedy step against a static KV cache | `scripts/models/export_ppformulanet.py --model plus_m` over [`PaddlePaddle/PP-FormulaNet_plus-M`](https://huggingface.co/PaddlePaddle/PP-FormulaNet_plus-M) — the encoder cut from the paddle2onnx graph, the decoder's 165 tensors read by name from the official training checkpoint (`PP-FormulaNet_plus-M_pretrained.pdparams`, 165 of 165 bit-equal to the conversion's own numbering); gated at 12/12 identical tokens against PaddleX's own runtime | Apache-2.0 |
| `PP-FormulaNet_plus-S_encoder.onnx`, `_prep.onnx`, `_decoder_step.onnx`, `_tokenizer.json` | the same split for plus-S, which decodes **three tokens per step** (`parallel_step: 3`) — the throughput tier | `scripts/models/export_ppformulanet.py --model plus_s`; decoder weights by name likewise (61 of 61); same gate, 12/12 | Apache-2.0 |
Contracts (inputs, normalisation, post-processing) follow each source's
`inference.yml`; the pre/post-processing code is in the DocParser checkout
(`crates/docparser-inference/src/preprocess/`,
`deploy/triton_model_repository/`). The CTC dictionary of the recogniser is
a text file in that checkout, not here. Why these models and not their
siblings is measured in `docparser-bench/docs/BENCH-2026-09.md` (OmniDocBench
v1.6 §8, the per-slot ablations §1–7).
Redistribution: all files are Apache-2.0, under that licence with this
attribution. (Texo, an AGPL-3.0 checkpoint, served the formula slot's
throughput tier until Stage 14 and was replaced by PP-FormulaNet_plus-S;
nothing here is copyleft any more.)
|