Research Note
September 2, 2026 · Harry Tran
SenOCR-Zh is our 0.9B document OCR model for Chinese text, structured document parsing, and historical CJK material. Built on PaddleOCR-VL-1.6, it uses a decoder-only LoRA that updates 12.09M parameters, about 1.26% of the full model. We evaluate it on a controlled 480-page MDPBench slice covering Vietnamese, English, and Chinese, with 160 pages per language. On the 160-page Chinese/ZH evaluation population, it reaches an 85.19 composite score, with strong results across text, tables, formulas, and clean digital documents.
The design goal is efficiency. We concentrate a small trainable surface on Chinese document transcription and structure.
| Metric | SenOCR-Zh |
|---|---|
| Chinese composite | 85.19 |
| Three-language composite, Vietnamese + English + Chinese | 83.38 |
| Chinese text, 1-NED | 84.77 |
| Chinese table, TEDS | 81.57 |
| Chinese formula, CDM | 79.47 |
| Chinese digital composite | 92.69 |
| Chinese photographed composite | 82.69 |
The headline result is the 85.19 Chinese/ZH composite, measured on the 160-page Chinese population of our 480-page Vietnamese-English-Chinese MDPBench evaluation.
The selection combines frontier general VLMs with compact OCR systems so the Chinese result can be read against both capability and model scale.
| Model | Type | Chinese / ZH score |
|---|---|---|
| Kimi-K3 | Frontier general VLM | 89.5 |
| SenOCR-Zh | Specialized OCR, 0.96B | 85.19* |
| Gemini-3-pro-preview | Frontier general VLM | 85.1 |
| PaddleOCR-VL-1.5 | Specialized OCR | 84.8 |
| dots.mocr | Specialized OCR | 84.6 |
| MonkeyOCRv2-S-Parsing | Specialized OCR | 84.4 |
| Kimi-K2.5 | General VLM, 1T | 81.7 |
Figure 1
Within this selected MDPBench ZH group, SenOCR-Zh sits 4.31 points below Kimi-K3, while scoring 0.09 points above Gemini-3-pro-preview, 0.39 above PaddleOCR-VL-1.5, 0.59 above dots.mocr, 0.79 above MonkeyOCRv2-S-Parsing, and 3.49 points above Kimi-K2.5.
SenOCR-Zh has not yet been submitted to the official MDPBench leaderboard. The 85.19 figure comes from our project-controlled 160-page Chinese/ZH evaluation within the 480-page VI/EN/ZH slice. All external comparison scores in this article use the official Hugging Face MDPBench leaderboard maintained by the benchmark authors.
The component scores below all come from the same 160-page Chinese/ZH evaluation population, not from the three-language aggregate. The composite is supported across all three evaluated tasks, so the 85.19 result is not carried by a single component.
| Chinese capability | Score | Evaluation support |
|---|---|---|
| Composite | 85.19 | 160 Chinese pages |
| Text, 1-NED | 84.77 | 156 pages / 3,016 instances |
| Table, TEDS | 81.57 | 68 pages / 128 instances |
| Formula, CDM | 79.47 | 32 pages / 88 instances |
Text recognition remains the largest part of the evaluation, with 84.77 1-NED across 3,016 matched Chinese text instances. On the same model, table recognition reaches 81.57 TEDS and formula recognition reaches 79.47 CDM. That combination is useful for registers, catalogs, textbooks, statistical records, historical scientific material, and other pages where prose, structured cells, and notation appear together.
Taken together, these results support treating SenOCR-Zh as a document parser.
Capture quality changes the result substantially. On clean digital pages, SenOCR-Zh reaches 92.69 composite; photographed pages fall to 82.69 under blur, perspective, lighting variation, and other capture noise.
| Chinese metric | Digital | Photographed |
|---|---|---|
| Composite | 92.69 | 82.69 |
| Text, 1-NED | 91.19 | 82.64 |
| Table, TEDS | 98.72 | 75.86 |
| Formula, CDM | 95.45 | 74.24 |
The degradation is largest for structured content. Table TEDS drops from 98.72 on digital pages to 75.86 on photographs, while formula CDM moves from 95.45 to 74.24. That gap maps directly onto archival workflows, where book curvature, skew, uneven illumination, low-resolution scans, phone photographs, faded ink, and damaged paper are routine.
Figure 2
Photographed pages remain harder under blur, uneven lighting, folds, and physical degradation.
Bars show digital-page scores. Photographed scores are listed beneath each language and are not drawn to the bar scale.
The photographed-document gap is also why historical material is a central use case. Historical Chinese and Hán-Nôm collections combine vertical text, Traditional Chinese, rare CJK characters, irregular spacing, marginalia, woodblock printing, damaged paper, handwritten corrections, and non-modern reading order. Hán-Nôm adds Nôm-specific characters, CJK extension characters, and unencoded forms that may need to be preserved through IDS.
For digitization, the useful output is therefore more than a plain transcription. The system should retain reading order and structure, preserve uncertain or rare characters, and produce editable output that a researcher can verify against the source image.
In practice, the workflow is:
Human review remains necessary for rare glyphs, damaged pages, bleed-through, handwritten corrections, and complex marginalia. To measure that domain directly, we plan to use AncientDoc as the main historical Chinese benchmark. Its 2,973 pages span roughly 100 books and 14 literature categories and include vertical Traditional Chinese, marginalia, variant characters, and real page degradation.
For Hán-Nôm, we plan a separate held-out evaluation split by source manuscript. This prevents different views of the same underlying page from appearing across training and test.
SenOCR-Zh keeps the PaddleOCR-VL-1.6 architecture intact. The specialization is concentrated in the language decoder, while the visual stack remains frozen.
| Item | Value |
|---|---|
| Base model | PaddleOCR-VL-1.6 |
| Total parameters | 958.6M |
| Vision encoder | 27-layer PaddleOCR vision model |
| Vision hidden size | 1152 |
| Patch size | 14 |
| Spatial merge | 2 |
| Language decoder | 18 layers |
| Decoder hidden size | 1024 |
| Decoder intermediate size | 3072 |
| Attention heads | 16 |
| KV heads | 2 |
| Vocabulary | 103,424 |
| Max sequence length used for tuning | 4,096 |
The adaptation uses decoder-only LoRA with rank 32 and alpha 64 across seven projections in each of the decoder's 18 layers: q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, and down_proj. This produces 126 adapted projections and 252 LoRA tensors. The vision encoder and visual-language aligner remain frozen, and the embeddings and output head are unchanged.
As a result, only 12,091,392 parameters are trainable, approximately 1.26% of the full model, with about 24.2 MB of adapter weights in BF16. The adaptation budget is therefore spent on converting existing visual representations into Chinese text, table structure, and formulas.
Training interleaves three task prompts so text, table, and formula examples remain mixed throughout optimization:
<image>OCR:
<image>Table Recognition:
<image>Formula Recognition:
Optimization uses supervised LoRA fine-tuning with AdamW-style updates, a peak learning rate of 1e-4, cosine decay to 1e-5, 3% warmup, BF16 precision, FlashMask attention, padding-free batches, and a maximum sequence length of 4,096 tokens.
| Setting | Value |
|---|---|
| LoRA rank | 32 |
| LoRA alpha | 64 |
| LoRA dropout | 0.0 |
| Peak learning rate | 1.0e-4 |
| Minimum learning rate | 1.0e-5 |
| Warmup | 3% |
| Weight decay | 0.01 |
| Gradient clipping | 1.0 |
| Microbatch | 8 |
| Gradient accumulation | 8 |
| Effective batch size | 64 |
| Precision | BF16 |
| Training steps | 2,367 |
| Training passes | about 3.0 |
| Lane | Target records | Share | Purpose |
|---|---|---|---|
| Chinese modern historical archives | 18,000 | 35.7% | handwriting, archival degradation, vertical/horizontal Chinese |
| Broad Chinese OCR regions | 14,000 | 27.7% | modern printed, scene, and document Chinese |
| Hán-Nôm and Literary Chinese | 12,000 | 23.8% | historical script, rare characters, vertical reading order |
| Chinese table synthesis | 3,000 | 5.9% | table structure and Chinese cell text |
| Formula recognition | 3,451 | 6.8% | mathematical expression transcription |
| Total | 50,451 | 100% |
Figure 3
The largest lane targets historical Chinese recognition through JIA244601/Handwritten-Historical-Archive-Image-Dataset-of-Modern-China_1840_1949, with real archival samples prioritized over synthetic ones. Modern OCR coverage comes from selected Chinese-oriented splits in Yesianrohn/OCR-Data, subject to source-level license review, deduplication, and exclusion of evaluation data.
Hán-Nôm adds a different kind of difficulty. Aerbote88/nom-ocr-data provides corrected character, line, and page labels together with bounding boxes, reading-order columns, marginalia and commentary metadata, rare-character coverage, and IDS placeholders for some unencoded characters. We prioritize sequence-level line and column transcription, using character crops selectively for rare and Nôm-specific forms.
The remaining lanes preserve structured-document capability. Table examples are generated from license-cleared Chinese text with variation in row and column counts, merged cells, headers, numerals, dates, financial values, Simplified and Traditional characters, borders, skew, perspective, blur, compression, and illumination. Formula examples come from lukbl/LaTeX-OCR-dataset, filtered for syntax validity and duplication, with coverage across fractions, radicals, superscripts, matrices, aligned equations, Greek symbols, and long expressions.
Before training, the corpus is audited for source overlap, missing or unreadable images, duplicate pages, sequence length, target-token distribution, uncertain annotations, and manuscript-level train/test leakage. The target is zero truncated training sequences. These gates tie the corpus design directly to the deployment conditions described above, especially rare characters, long vertical sequences, and degraded archival pages.
The same selected MDPBench ZH results make the size-performance tradeoff clear. SenOCR-Zh stays below one billion parameters while operating in the same Chinese performance band as much larger general-purpose systems.
| Model | Class | Parameters | Chinese / ZH score |
|---|---|---|---|
| Kimi-K3 | Frontier general VLM | 2.8T total / 104B active | 89.5 |
| SenOCR-Zh | Specialized OCR | 0.96B | 85.19* |
| Gemini-3-pro-preview | Frontier general VLM | Not publicly disclosed | 85.1 |
| PaddleOCR-VL-1.5 | Specialized OCR | 0.9B | 84.8 |
| dots.mocr | Specialized OCR | 3B | 84.6 |
| MonkeyOCRv2-S-Parsing | Specialized OCR | about 0.6B | 84.4 |
| Kimi-K2.5 | General VLM | 1T total / 32B active | 81.7 |
At 0.96B parameters, SenOCR-Zh scores 0.09 points above Gemini-3-pro-preview, 0.39 above PaddleOCR-VL-1.5, 0.59 above dots.mocr, and 0.79 above MonkeyOCRv2-S-Parsing in this selected ZH comparison. The scale difference is most visible against Kimi-K2.5: SenOCR-Zh is 3.49 points higher while Kimi-K2.5 uses a 1-trillion-parameter MoE with 32B active parameters per token.
Kimi-K3 remains ahead at 89.5, but at 2.8T total parameters and 104B active it represents a very different deployment class. Google does not publish a directly comparable parameter count for Gemini-3-pro-preview, so we leave that value undisclosed.
The tuning footprint is smaller still:
| Quantity | SenOCR-Zh |
|---|---|
| Total parameters | 958.6M |
| Trainable parameters | 12.09M |
| Trainable share | 1.26% |
| Adapter size | about 24.2 MB BF16 |
| Training GPU | 1 × NVIDIA A10G |
| Effective batch | 64 |
| Training passes | about 3.0 |
Only 12.09M parameters are updated during tuning, and the full recipe fits on a single NVIDIA A10G.
Figure 4
The primary use case is Chinese document digitization where transcription and document structure must be recovered together. That includes historical letters and records, vertical Traditional Chinese books, Republican-era archives, registers, catalogs, forms, financial tables, yearbooks, textbooks, scientific material, and photographed documents with perspective distortion.
Hán-Nôm digitization in Vietnam extends the same problem set. Manuscripts, genealogies, temple and pagoda records, local gazetteers, woodblock prints, historical educational materials, and mixed-script technical works can place Han, Nôm, Latin text, and mathematical notation on the same page. Because SenOCR-Zh handles prose, tables, and formulas in one parser, it can reduce the first-pass transcription work required before scholarly interpretation begins.
The same architecture is useful for historical mathematics and science, where older textbooks and technical works frequently combine dense prose, equations, and tables. These collections benefit directly from keeping text, formula, and table recognition inside one compact model.
Historical OCR introduces separate failure modes. Rare characters, damaged glyphs, bleed-through, handwritten corrections, ambiguous reading order, and unencoded Nôm forms can still produce errors, while collection and annotation bias may shift performance across manuscripts. We therefore plan to extend evaluation through official MDPBench verification, AncientDoc, ChineseOCRBench, and a manuscript-level held-out Hán-Nôm test.
PaddleOCR-VL-1.6 is Apache-2.0, the Hán-Nôm annotations and the LaTeX-OCR dataset are CC-BY-4.0, and the Chinese Modern Era archive dataset is MIT licensed. The broad Chinese OCR source pool requires source-by-source license review before the final release corpus and weight license are frozen.
The release package is designed to include the merged SenOCR-Zh weights, the LoRA adapter separately, inference configuration and a minimal PaddleOCR example, the training recipe, a public corpus manifest with source counts and licenses, benchmark outputs and evaluation scripts, and a dataset attribution file.