Instructions to use CheneyWong/povl-opd-teacher with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use CheneyWong/povl-opd-teacher with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="CheneyWong/povl-opd-teacher", trust_remote_code=True) messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("CheneyWong/povl-opd-teacher", trust_remote_code=True) model = AutoModelForMultimodalLM.from_pretrained("CheneyWong/povl-opd-teacher", trust_remote_code=True, device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use CheneyWong/povl-opd-teacher with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "CheneyWong/povl-opd-teacher" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "CheneyWong/povl-opd-teacher", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/CheneyWong/povl-opd-teacher
- SGLang
How to use CheneyWong/povl-opd-teacher with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "CheneyWong/povl-opd-teacher" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "CheneyWong/povl-opd-teacher", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "CheneyWong/povl-opd-teacher" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "CheneyWong/povl-opd-teacher", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use CheneyWong/povl-opd-teacher with Docker Model Runner:
docker model run hf.co/CheneyWong/povl-opd-teacher
povl-opd-teacher
What this checkpoint is
The teacher used for on-policy distillation: final checkpoint of a dedicated teacher SFT run (2,367 steps).
Lineage
Fine-tuned from PaddleOCR-VL-1.6 (base), which is trained separately from the student chain on a teacher-specific data mixture.
PaddleOCR-VL-1.6 (base)
ββ povl-opd-teacher <-- this checkpoint
Results on public datasets
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)
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
Teacher qualification was effectively never performed. All 16 candidate checkpoints failed both guardrails (max truncation 15.0% against a 5% threshold; worst-cohort TEDS 0.4548 against a 0.50 threshold), but the cohort responsible for the veto is a known measurement artefact: a double-cropping bug makes it report 0.486 where the correct value is 0.857. Excluding it voids the veto, so selection needs to be redone.
The teacher's own training pool was also found to be 98% contaminated with evaluation data.
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.
- Downloads last month
- 23