Skip to page content
SAVRN
Search Plan a project

Open-weight model · Image and text to text

povl-rl-gsapo-200

by Cheney Wong CheneyWong/povl-rl-gsapo-200

povl-rl-gsapo-200 is an open-weight model for image and text to text from Cheney Wong, released under Apache License 2.0. It has 906M parameters and a 131,072-token context. At 16-bit it needs about 2.2 GB of GPU memory, which fits on 1x MI300X from $1.85 an hour, at the lowest prices in the SAVRN Index.

Reinforcement learning round 2, GSAPO, 200 steps. The delivered model of that round. Equal-weight TEDS 0.8473 / TEDS-Struct 0.9078 over 33,545 samples. Fine-tuned from CheneyWong/povl-rl-dapo-400, which is RL round 1 -- the stages form a single linear chain.

Parameters906M
Context131,072
Weights1.8 GB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads—

Runs On

What it takes to serve povl-rl-gsapo-200 (906M parameters): the memory its weights need at each precision, and the cheapest way to rent enough data-center GPUs to hold them.

PrecisionWeightsMemory neededCheapest setupPer hourAlso fits
16-bit 1.8 GB 2.2 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
8-bit 0.9 GB 1.1 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
4-bit 0.5 GB 0.5 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00

Memory is the weights at that precision plus 20% for the runtime and a short context; a long context needs more. Prices are the lowest on-demand hourly rates in the SAVRN Index, read Oct 18, 2026.

povl-rl-gsapo-200 on every accelerator the SAVRN Index prices, at every precision

Model Card

By Cheney Wong, published under apache-2.0, revision 3480fd14ed31.

Reinforcement learning round 2, GSAPO, 200 steps. The delivered model of that round. Equal-weight TEDS 0.8473 / TEDS-Struct 0.9078 over 33,545 samples. Fine-tuned from CheneyWong/povl-rl-dapo-400, which is RL round 1 -- the stages form a single linear chain. Base = the unmodified base model. Public datasets only; the project's self-built benchmarks are excluded. (~0.22 here) measures how well the model reproduces empty cells and should be ignored -- a perturbation test shows a structurally perfect prediction that correctly reads the visible text scores 0.33 TEDS / 1.00 TEDS-S. Only the TEDS-S column is meaningful for that dataset. Rejected at the gate. The one substantive gap: every…

Read Cheney Wong's full model card

What this checkpoint is

Reinforcement learning round 2, GSAPO, 200 steps. The delivered model of that round. Equal-weight TEDS 0.8473 / TEDS-Struct 0.9078 over 33,545 samples.

Lineage

Fine-tuned from CheneyWong/povl-rl-dapo-400, which is RL round 1 -- the stages form a single linear chain.

PaddleOCR-VL-1.6 (base)
  └─ povl-rl-gsapo-200   <-- this checkpoint

Results on public datasets

Base = the unmodified base model. Public datasets only; the project's self-built benchmarks are excluded.

Dataset n Base TEDS Ours TEDS d TEDS Base TEDS-S Ours TEDS-S d TEDS-S
PubTables-1M 2000 0.9015 0.9412 +0.0397 0.9243 0.9513 +0.0270
PubTables-v2 2000 0.9026 0.9555 +0.0529 0.9239 0.9644 +0.0405
FinTabNet (OTSL) 2000 0.9442 0.9655 +0.0212 0.9524 0.9731 +0.0207
PubTabNet / ICDAR 2000 0.9297 0.9284 -0.0012 0.9464 0.9416 -0.0048
SynthTabNet 2000 0.8093 0.9217 +0.1124 0.8474 0.9340 +0.0866
TableVerse-5K 4951 0.8608 0.8370 -0.0238 0.9101 0.8923 -0.0178
OmniDocBench v1.5 512 0.9580 0.9327 -0.0253 0.9797 0.9648 -0.0150
OmniDocBench v1.6 665 0.9492 0.9160 -0.0332 0.9753 0.9543 -0.0210
CC-OCR 300 0.8304 0.7873 -0.0430 0.8762 0.8347 -0.0415
OCRBench-v2 681 0.8120 0.8013 -0.0106 0.8526 0.8400 -0.0126
Real5 (re-shot OmniDoc) 1320 0.8930 0.8560 -0.0369 0.9307 0.8957 -0.0350
SPRINT-MUSTARD 1429 0.2184 0.2180 -0.0004 0.8754 0.8603 -0.0151
TABLET 909 0.9048 0.8824 -0.0224 0.9277 0.9031 -0.0246
Overall (equal weight) - 0.8395 0.8418 +0.0022 0.9171 0.9161 -0.0010

Note on SPRINT-MUSTARD: its ground truth carries no cell text, so its TEDS (~0.22 here) measures how well the model reproduces empty cells and should be ignored -- a perturbation test shows a structurally perfect prediction that correctly reads the visible text scores 0.33 TEDS / 1.00 TEDS-S. Only the TEDS-S column is meaningful for that dataset.

Known limitations

Rejected at the gate. The one substantive gap: every real-scene Chinese cohort regressed by 2-6 pt, and 82% of those failures are structural rather than non-termination. Three RL rounds together bought less than 0.2 pt, i.e. the optimisation algorithm is at its noise floor -- the bottleneck is the composition of the training data, not the optimiser.


Task format: a single table image plus the prompt Table Recognition:, one pass, emitting OTSL markup (<fcel> <ecel> <ucel> <lcel> <xcel> <nl>). Evaluation numbers are tracked separately and are not part of this card.

Configuration

Architecture
PaddleOCRVLForConditionalGeneration
Context length (tokens)
131,072
Layers
18
Hidden size
1,024
Feed-forward size
3,072
Attention heads
16
Key/value heads
2
Head dimension
128
Vocabulary size
103,424
RoPE base
500,000
Stored precision
bfloat16
Model type
paddleocr_vl

Identity and Version

Repository
CheneyWong/povl-rl-gsapo-200
Publisher
Cheney Wong
Task
Image and text to text
Modality
Image and text
Library
transformers
Parameters
906M parameters
Languages
Not stated by the source
Revision
3480fd14ed31459651450258325eda6a213e47f9
First published
2026-10-12
Last updated
2026-10-12

Files and Weights

24 files, 1.8 GB in total. The weights are 1 file totalling 1.8 GB in safetensors.

Weights1 file · 1.8 GB
Configuration16 files · 218.1 KB
Tokenizer3 files · 13.0 MB
Documentation2 files · 3.4 KB
Other1 file · 1.5 KB
Repository1 file · 1.6 KB
Every file
FileTypeSizeSHA-256
model.safetensorsWeights1.8 GB 64f50e6e5a0e
added_tokens.jsonConfiguration25.4 KB —
args.jsonConfiguration24.2 KB —
config.jsonConfiguration2.1 KB —
configuration_paddleocr_vl.pyConfiguration8.1 KB —
eval/public_metrics.jsonConfiguration6.5 KB —
eval/summary_baseline.jsonConfiguration2.8 KB —
eval/summary_rl3_final.jsonConfiguration2.2 KB —
eval/summary_rl3_final_fixed.jsonConfiguration767 B —
eval/summary_rl3_final_fullbench.jsonConfiguration2.8 KB —
generation_config.jsonConfiguration133 B —
image_processing_paddleocr_vl.pyConfiguration25.0 KB —
modeling_paddleocr_vl.pyConfiguration103.9 KB —
preprocessor_config.jsonConfiguration641 B —
processing_paddleocr_vl.pyConfiguration12.3 KB —
processor_config.jsonConfiguration137 B —
special_tokens_map.jsonConfiguration1.2 KB —
README.mdDocumentation2.9 KB —
eval/MANIFEST.mdDocumentation485 B —
chat_template.jinjaOther1.5 KB —
.gitattributesRepository1.6 KB —
tokenizer.jsonTokenizer11.2 MB c8a215a59183
tokenizer.modelTokenizer1.6 MB 34ef7db83df7
tokenizer_config.jsonTokenizer186.9 KB —

License and Download

License
apache-2.0
Access
Open weights, no gate
Download size
1.8 GB
Download from Cheney Wong

Released by Cheney Wong through its official repository on Hugging Face. Read the license.

Memory Requirements

PrecisionWeights in memory
As published1.8 GB
16-bit1.8 GB
8-bit0.9 GB
4-bit0.5 GB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Questions About povl-rl-gsapo-200

How much GPU memory does povl-rl-gsapo-200 need?

About 2.2 GB at 16-bit and 0.5 GB at 4-bit: the weights (906M parameters) plus a working margin. A long context needs more.

What is the cheapest GPU to run povl-rl-gsapo-200 on?

At 16-bit, 1x MI300X from $1.85 an hour; at 4-bit, 1x MI300X from $1.85 an hour, at the lowest on-demand prices the SAVRN Index lists.

Can I use povl-rl-gsapo-200 commercially?

Yes. povl-rl-gsapo-200 is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.

What is povl-rl-gsapo-200's context length?

131,072 tokens, from the maximum position embeddings in its published configuration.

Similar Models

Model · Image and text to text

povl-opd-scale05

Cheney Wong

On-policy distillation. The weight delta learned by the teacher was merged into the SFT base with an extra scale of 0.5, the best point of an alpha sweep (0.25 -> +0.32, 0.5 -> +0.44, 0.75 -> -0.29, 1.5 -> -3.01 with t = -12.42). Fine-tuned from CheneyWong/povl-sft-2d-merge, which is NOT the RL checkpoint -- the teacher delta was merged into the SFT base, which is why it neither clearly beats nor clearly follows round 2. Base = the unmodified base model. Public datasets only; the project's self-built benchmarks are excluded. (~0.22 here) measures how well the model reproduces empty cells and should be ignored -- a perturbation test shows a structurally perfect prediction that correctly…

Open weights apache-2.0 906M parameters 131,072 tokens transformers

Model · Image and text to text

povl-rl-dapo-400

Cheney Wong

Reinforcement learning round 1, DAPO algorithm, 400 steps. Fine-tuned from CheneyWong/povl-dpo-2ep, which is its own immediate predecessor in the same run. Base = the unmodified base model. Public datasets only; the project's self-built benchmarks are excluded. (~0.22 here) measures how well the model reproduces empty cells and should be ignored -- a perturbation test shows a structurally perfect prediction that correctly reads the visible text scores 0.33 TEDS / 1.00 TEDS-S. Only the TEDS-S column is meaningful for that dataset. Only works with DAPO's dynamic sampling. The first attempt with GSAPO had 78% of groups contributing zero gradient (49.0% saturated, 16.5% identical rewards, 12.6%…

Open weights apache-2.0 906M parameters 131,072 tokens transformers

Model · Image and text to text

povl-dpo-2ep

Cheney Wong

Direct preference optimisation on top of the corrective SFT, 2 epochs over 8,383 preference pairs. Intended to move the model from 'roughly right structure' to 'exactly right structure'. Fine-tuned from CheneyWong/povl-sft-2d-merge, which is its own immediate predecessor in the same run. Base = the unmodified base model. Public datasets only; the project's self-built benchmarks are excluded. (~0.22 here) measures how well the model reproduces empty cells and should be ignored -- a perturbation test shows a structurally perfect prediction that correctly reads the visible text scores 0.33 TEDS / 1.00 TEDS-S. Only the TEDS-S column is meaningful for that dataset. The gain is within sampling…

Open weights apache-2.0 906M parameters 131,072 tokens transformers

Model · Image and text to text

povl-sft-2d-merge

Cheney Wong

Corrective supervised fine-tuning. The core fix is the two-dimensional merge token (a cell spanning both rows and columns): it accounted for only 0.89% of cell tokens in the previous training mixture, and one source had 0.00%. 22,110 samples with two or more 2D merges were added, lifting the rate to 3.92% (1.06 -> 4.96 per table). This also eliminated the runaway-truncation failure mode entirely. Fine-tuned from CheneyWong/povl-sft-full-3ep, which is its own immediate predecessor in the same run. Base = the unmodified base model. Public datasets only; the project's self-built benchmarks are excluded. (~0.22 here) measures how well the model reproduces empty cells and should be ignored -- a…

Open weights apache-2.0 906M parameters 131,072 tokens transformers

Model · Image and text to text

povl-sft-full-3ep

Cheney Wong

First-stage supervised fine-tuning: full-parameter, 100,122 samples, 3 epochs. Its job was to stop the model from generating unbounded output on unseen layouts -- average completion length on real photographed pages had grown to 6,610 characters with a 37.3% truncation rate. Fine-tuned from CheneyWong/tablerecognitionpaddleocrvl16 (PaddleOCR-VL-1.6), which is the released base model, unmodified except for a cleaning pass. Base = the unmodified base model. Public datasets only; the project's self-built benchmarks are excluded. (not evaluated) (~0.22 here) measures how well the model reproduces empty cells and should be ignored -- a perturbation test shows a structurally perfect prediction…

Open weights apache-2.0 906M parameters 131,072 tokens transformers

Model · Image and text to text

povl-opd-teacher

Cheney Wong

The teacher used for on-policy distillation: final checkpoint of a dedicated teacher SFT run (2,367 steps). Fine-tuned from PaddleOCR-VL-1.6 (base), which is trained separately from the student chain on a teacher-specific data mixture. Base = the unmodified base model. Public datasets only; the project's self-built benchmarks are excluded. (never gated on the public sets -- see Known limitations) (~0.22 here) measures how well the model reproduces empty cells and should be ignored -- a perturbation test shows a structurally perfect prediction that correctly reads the visible text scores 0.33 TEDS / 1.00 TEDS-S. Only the TEDS-S column is meaningful for that dataset. Teacher qualification was…

Open weights apache-2.0 906M parameters 131,072 tokens transformers