How to use from the
Use from the
Transformers library
# Use a pipeline as a high-level helper
from transformers import pipeline

pipe = pipeline("image-text-to-text", model="shanyangmie/physics-r1-seed23")
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)
# Load model directly
from transformers import AutoProcessor, AutoModelForImageTextToText

processor = AutoProcessor.from_pretrained("shanyangmie/physics-r1-seed23")
model = AutoModelForImageTextToText.from_pretrained("shanyangmie/physics-r1-seed23")
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=40)
print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:]))
Quick Links

Physics-R1 — Seed 23 (HF safetensors)

Project Page | Paper | Code | Training corpus

The Physics-R1 paper checkpoint for the seed-23 row of Table 2 (canonical step 60). Fine-tune of Qwen3-VL-8B-Thinking on the audited PhysR1Corp (2,268 closed-form physics problems) via full-parameter FSDP1 GRPO with binary correctness reward.

This seed has the highest individual PhysOlym-A score (28.2) among the paper's three seeds.

This is the easy-to-use HF safetensors release. For the original verl FSDP-sharded archive, see physics-r1-seed23-canonical-step60-fsdp.

Quickstart

from transformers import AutoModelForImageTextToText, AutoProcessor
import torch

model = AutoModelForImageTextToText.from_pretrained(
    "shanyangmie/physics-r1-seed23",
    dtype=torch.bfloat16,
    device_map="auto",
    trust_remote_code=True,
)
processor = AutoProcessor.from_pretrained(
    "shanyangmie/physics-r1-seed23",
    trust_remote_code=True,
)

For evaluation against the paper's benchmark, see PhysOlym-A and the code release.

Performance (paper Table 2, seed-23 row)

Eval Physics-R1 (this checkpoint) Base Qwen3-VL-8B-Thinking Δ
PhyX-mini 77.9 73.7 +4.2
PhyX-3k 76.6 74.4 +2.2
PhysReason 43.4 23.9 +19.5
PUB-OE 30.9 35.3 -4.4
OlympiadBench-Physics 48.0 39.3 +8.7
PhysOlym-A 28.2 8.0 +20.2

Scoring: problem-level liberal Sonnet-as-judge (every subpart of a multi-part problem must be correct). The 3-seed mean across {42, 17, 23} is the paper's headline (+18.9 pp on PhysOlym-A).

Other seeds (HF safetensors mirrors)

Training recipe

  • Base model: Qwen/Qwen3-VL-8B-Thinking
  • Algorithm: GRPO (verl 0.6.1, full-parameter FSDP1 — actor.strategy=fsdp, not fsdp2)
  • Reward: binary correctness, per-subpart Sonnet judge with problem-level AND aggregation (see paper §3.2)
  • Data: shanyangmie/physr1corp — 2,268 audited closed-form problems
  • Seed / step: 23 / 60
  • Hardware: 4×H200 (FSDP1 4-way sharded)

Full hyperparameters in paper Appendix.

License

Apache 2.0, inheriting from the base model Qwen3-VL-8B-Thinking. Training data (physr1corp) is CC BY-NC 4.0, so this derivative checkpoint is intended for non-commercial research use.

Citation

@misc{yang2026physicsr1,
  title  = {Physics-R1: An Audited Olympiad Corpus and Recipe for Visual Physics Reasoning},
  author = {Yang, Shan},
  year   = {2026},
  url    = {https://huggingface.co/papers/2605.14040}
}
Downloads last month
29
Safetensors
Model size
9B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for shanyangmie/physics-r1-seed23

Finetuned
(60)
this model

Paper for shanyangmie/physics-r1-seed23