Downloads · 30 days
0
shanyangmie/physics-r1-seed17-v4-step40-fsdp
physics-r1-seed17-v4-step40-fsdp is a image-text-to-text model from shanyangmie. Use it for the image-text-to-text task on the model card, and read the license before you ship it in a product. It is set up for transformers. The card lists the license as apache-2.0.
Project Page | Paper | Code | Training corpus
Downloads · 30 days
0
Access
Public
Updated May 19, 2026
Repo size
105 GB
Likes
0
Public
Click a slice to open those files.
.pt105 GB · 100%
From the Hugging Face model README
Project Page | Paper | Code | Training corpus
Step-40 intermediate checkpoint from the seed-17 v4 (audited-data) Physics-R1 training run. Released for training-curve ablations and reproducibility. 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.
Released alongside Physics-R1: An Audited Olympiad Corpus and Recipe for Visual Physics Reasoning.
Intermediate-step checkpoint released for training-curve ablations. Not the paper-headline checkpoint — for exact Table 2 numbers see:
physics-r1-seed42-v4-step60-fsdpphysics-r1-seed17-canonical-step63-fsdpphysics-r1-seed23-canonical-step60-fsdp| Checkpoint | Used for | Notes |
|---|---|---|
physics-r1-seed42-v4-step60-fsdp | Paper Table 2 seed-42 row | Binary, step 60 |
physics-r1-seed17-canonical-step63-fsdp | Paper Table 2 seed-17 row | Binary, step 63 |
physics-r1-seed23-canonical-step60-fsdp | Paper Table 2 seed-23 row | Binary, step 60 |
physics-r1-seed17-v4-step60-fsdp | Seed-17 v4 re-validation, tracks canonical | Binary, step 60 |
physics-r1-seed42-v4-step{40,50}-fsdp | Step ablation (seed 42) | Earlier steps |
physics-r1-seed17-v4-step{40,50}-fsdp | Step ablation (seed 17) | Earlier steps |
Qwen/Qwen3-VL-8B-Thinkingactor.strategy=fsdp, not fsdp2; FSDP2 fails on Qwen3-VL visual encoder device placement)shanyangmie/physr1corp — 2,268 audited closed-form problemsFull hyperparameters in the paper appendix.
This checkpoint is saved in verl's FSDP-sharded format, not safetensors. It is not directly loadable via AutoModelForImageTextToText.from_pretrained without a merge step.
actor/
├── huggingface/ # HF-style config + tokenizer
├── model_world_size_4_rank_{0,1,2,3}.pt # 4-way FSDP weight shards (~8.7 GB each, ~35 GB total)
├── optim_world_size_4_rank_{0,1,2,3}.pt # optimizer state (~17.5 GB each, not needed for inference)
├── extra_state_world_size_4_rank_{0..3}.pt
└── fsdp_config.json
data.pt # verl bookkeeping (not needed for inference)
Use verl's model_merger.py:
git clone https://github.com/volcengine/verl
cd verl
# Download only the inference-required files (skips ~70 GB of optimizer state)
huggingface-cli download shanyangmie/physics-r1-seed17-v4-step40-fsdp \\
--include "actor/model_world_size_4_rank_*.pt" \\
--include "actor/huggingface/*" \\
--include "actor/fsdp_config.json" \\
--include "actor/extra_state_world_size_4_rank_*.pt" \\
--local-dir ./ckpt
# Merge FSDP shards into HF safetensors
python scripts/model_merger.py merge \\
--backend fsdp \\
--hf_model_path Qwen/Qwen3-VL-8B-Thinking \\
--local_dir ./ckpt/actor \\
--target_dir ./physics-r1-seed17-v4-step40-fsdp-hf
Then load with standard HF:
from transformers import AutoModelForImageTextToText, AutoProcessor
model = AutoModelForImageTextToText.from_pretrained(
"./physics-r1-seed17-v4-step40-fsdp-hf",
torch_dtype="bfloat16",
device_map="auto",
)
processor = AutoProcessor.from_pretrained("./physics-r1-seed17-v4-step40-fsdp-hf")
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.
@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}
}