SAVRN
Search Contact SAVRN

Open-weight model · Image and text to text

ProcVLM-2B

by Youhe Feng ce-amtic/ProcVLM-2B

ProcVLM-2B is a procedure-grounded vision-language model for estimating progress rewards from robot manipulation observations.

Parameters2.4B
Context262,144
Weights9.8 GB
Licensecc-by-4.0
AccessOpen weights
Monthly Downloads14.4k

Runs On

What it takes to serve ProcVLM-2B (2.4B 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 4.9 GB 5.9 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
8-bit 2.4 GB 2.9 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
4-bit 1.2 GB 1.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 Sep 18, 2026.

Model Card

By Youhe Feng, published under cc-by-4.0, revision a7f5c18c6128.

ProcVLM-2B is a procedure-grounded vision-language model for estimating progress rewards from robot manipulation observations. Given a task description and a recent window of video frames, the model reasons about the remaining atomic actions and predicts the current task completion percentage. ProcVLM-2B is designed for research on robot learning, progress reward modeling, embodied evaluation, and procedure-aware video understanding. Typical use cases include: - estimating task completion progress from robot videos; - producing dense progress rewards from sparse demonstrations; - adapting progress prediction to a new environment with one-shot LoRA fine-tuning. This model is not intended to…

Read Youhe Feng's full model card

ProcVLM-2B is a procedure-grounded vision-language model for estimating progress rewards from robot manipulation observations. Given a task description and a recent window of video frames, the model reasons about the remaining atomic actions and predicts the current task completion percentage.

Homepage | arXiv | Code

Model Details

  • Model name: ce-amtic/ProcVLM-2B
  • Model type: Vision-language model for robot progress reward inference
  • Architecture: Qwen3-VL-style multimodal causal language model
  • Input: One or more RGB images sampled from a robot trajectory, plus a natural-language task description
  • Output: Textual reasoning and a completion estimate formatted as <progress>XX%</progress>
  • Primary use case: Frame-wise progress reward prediction for robotic manipulation videos

Intended Use

ProcVLM-2B is designed for research on robot learning, progress reward modeling, embodied evaluation, and procedure-aware video understanding. Typical use cases include:

  • estimating task completion progress from robot videos;
  • producing dense progress rewards from sparse demonstrations;
  • adapting progress prediction to a new environment with one-shot LoRA fine-tuning.

This model is not intended to be used as a safety-critical controller without downstream validation.

Quick Start

Clone the ProcVLM repository and install the environment:

git clone https://github.com/ProcVLM/ProcVLM.git
cd ProcVLM

uv sync --python 3.10
source .venv/bin/activate
uv pip install flash-attn --no-build-isolation

Run progress reward inference on a video:

python evqa/inference.py \
    --model_path ce-amtic/ProcVLM-2B \
    --video_path path/to/your/video.mp4 \
    --output_path path/to/progress_predictions.jsonl \
    --task "fold the red T-shirt" \
    --window_size 8

Each JSONL row contains a sampled frame_index and its corresponding progress prediction.

You can also visualize predictions as a video:

python evqa/eval/visualize_progress_video.py \
    --model_path ce-amtic/ProcVLM-2B \
    --video_path path/to/your/video.mp4 \
    --output_path path/to/progress_visualization.mp4 \
    --task "fold the red T-shirt" \
    --window_size 8

Python API

The same inference workflow is available through infer_progress_from_video():

from evqa.inference import infer_progress_from_video

records = infer_progress_from_video(
    model_path="ce-amtic/ProcVLM-2B",
    video_path="path/to/your/video.mp4",
    task="fold the red T-shirt",
    window_size=8,
)

for item in records:
    print(item["frame_index"], item["progress"])

The returned records include:

  • frame_index: source video frame index;
  • timestamp_sec: source video timestamp;
  • window_frame_indices: frame indices used as the model input window;
  • progress: parsed progress value in [0, 100];
  • reasoning: model reasoning with the progress tag removed;
  • model_output: raw model output.

Prompt Format

ProcVLM uses a procedural progress prompt. The default template is:

Given the recent observation and the task "{task}", first infer the remaining atomic actions required to complete the task. Then estimate the current completion percentage and output it as a float wrapped by <progress> tags.

The model should answer with reasoning and a final progress tag, for example:

To complete the task: Tower the blocks, the following steps are required:
1. Grasp the green block.
2. Place the green block onto the red block.
Therefore, the estimated progress percentage is <progress>84.13%</progress>.

Or if the task is finished:

The task requires: Tower the blocks. Images show no block outside the tower, no further steps required. 
Therefore, the estimated progress percentage is <progress>100.00%</progress>.

vLLM Batch Inference

For high-throughput multi-image inference, the ProcVLM repository provides evqa.model.batch_chat_with_vllm():

from evqa.model import batch_chat_with_vllm

outputs = batch_chat_with_vllm(
    batch_items=[
        {
            "image": [
                "frames/frame_000000.jpg",
                "frames/frame_000010.jpg",
                "frames/frame_000020.jpg",
            ],
            "conversations": [
                {
                    "from": "human",
                    "value": 'Given the recent observation and the task "fold the red T-shirt", first infer the remaining atomic actions required to complete the task. Then estimate the current completion percentage and output it as a float wrapped by <progress> tags.',
                }
            ],
        }
    ],
    model_path="ce-amtic/ProcVLM-2B",
    max_new_tokens=1024,
    temperature=0.0,
    tp=1,
)

One-Shot LoRA Adaptation

ProcVLM can be adapted to a new environment with one successful task demonstration, plus optional additional successful or unsuccessful demonstrations. See the one-shot adaptation guide for:

  • annotating coarse sub-task stages with the visual UI;
  • generating a LoRA fine-tuning dataset;
  • running evqa/one-shot/lora_oneshot.sh;
  • using the saved LoRA checkpoint with evqa/inference.py --use_lora.

Limitations

  • The model estimates progress from visual observations and task text; it may be unreliable under strong domain shift, severe occlusion, unusual camera viewpoints, or ambiguous task descriptions.
  • The progress output is a learned estimate, not a calibrated physical measurement.
  • For long-horizon videos, inference quality depends on the sampled frame window and the task description.
  • The model should be validated in the target robot environment before being used as a reward signal for training or deployment.

Citation

If you use ProcVLM, please cite the paper:

@misc{feng2026procvlmlearningproceduregroundedprogress,
      title={ProcVLM: Learning Procedure-Grounded Progress Rewards for Robotic Manipulation}, 
      author={Youhe Feng and Hansen Shi and Haoyang Li and Xinlei Guo and Yang Wang and Chengyang Zhang and Jinkai Zhang and Xiaohan Zhang and Jie Tang and Jing Zhang},
      year={2026},
      eprint={2605.08774},
      archivePrefix={arXiv},
      primaryClass={cs.RO},
      url={https://arxiv.org/abs/2605.08774}, 
}

License

Please refer to the license information on this model repository and the upstream base model license before using the weights.

Configuration

Architecture
Qwen3VLForConditionalGeneration
Context length (tokens)
262,144
Layers
28
Hidden size
2,048
Feed-forward size
6,144
Attention heads
16
Key/value heads
8
Head dimension
128
Vocabulary size
151,936
RoPE base
5,000,000
Model type
qwen3_vl

Identity and Version

Repository
ce-amtic/ProcVLM-2B
Publisher
Youhe Feng
Task
Image and text to text
Modality
Image and text
Library
transformers
Parameters
2.4B parameters
Languages
en
Revision
a7f5c18c6128a9c2a478a62ecc356f19f0e0bcf5
First published
2026-04-01
Last updated
2026-05-18

Files and Weights

16 files, 9.8 GB in total. The weights are 5 files totalling 9.8 GB in bin, pt, safetensors.

Weights5 files · 9.8 GB
Configuration7 files · 123.0 KB
Tokenizer2 files · 7.0 MB
Documentation1 file · 7.0 KB
Repository1 file · 1.5 KB
Every file
FileTypeSizeSHA-256
model-00001-of-00002.safetensorsWeights3.1 GB b56d35efd5c2
model-00002-of-00002.safetensorsWeights1.8 GB 00addfac3617
procvlm_extra/procvlm_head.ptWeights69.3 MB a1ae24192f79
pytorch_model-00001-of-00002.binWeights3.1 GB d22bc474573a
pytorch_model-00002-of-00002.binWeights1.8 GB f151a2a55e39
chat_template.jsonConfiguration5.5 KB
config.jsonConfiguration1.5 KB
conversion_report.jsonConfiguration431 B
generation_config.jsonConfiguration269 B
model.safetensors.index.jsonConfiguration58.7 KB
preprocessor_config.jsonConfiguration390 B
pytorch_model.bin.index.jsonConfiguration56.2 KB
README.mdDocumentation7.0 KB
.gitattributesRepository1.5 KB
tokenizer.jsonTokenizer7.0 MB
tokenizer_config.jsonTokenizer10.9 KB

License and Download

License
cc-by-4.0
Access
Open weights, no gate
Download size
9.8 GB
Download from Youhe Feng

Released by Youhe Feng through its official repository on Hugging Face. Read the license.

Built From

  • Derived from Qwen/Qwen3-VL-2B-Instruct
  • Described by arXiv:2605.08774
  • Trained on (disclosed) ce-amtic/ProcCorpus-60M
  • Trained on (disclosed) ce-amtic/ProcVQA-20M-annotations

Memory Requirements

PrecisionWeights in memory
As published9.8 GB
16-bit4.9 GB
8-bit2.4 GB
4-bit1.2 GB

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

Questions About ProcVLM-2B

How much GPU memory does ProcVLM-2B need?

About 5.9 GB at 16-bit and 1.5 GB at 4-bit: the weights (2.4B parameters) plus a working margin. A long context needs more.

What is the cheapest GPU to run ProcVLM-2B 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 ProcVLM-2B commercially?

Yes. ProcVLM-2B is released under Creative Commons Attribution 4.0. CC BY 4.0 permits sharing and adapting the work, including commercially, provided the creator is credited and changes are indicated.

What is ProcVLM-2B's context length?

262,144 tokens, from the maximum position embeddings in its published configuration.

Similar Models

Model · Image and text to text

Cosmos-Reason2-2B

NVIDIA

NVIDIA Cosmos Reason 2 is an open, customizable, 2B-parameter reasoning vision language model (VLM) for physical AI and robotics that enables robots and vision AI agents to reason like humans, using prior knowledge, physics understanding and common sense to understand and act in the real world. This model understands space, time, and fundamental physics, and can serve as a planning model to reason what steps an embodied agent might take next. New features with Cosmos Reason 2: Enhanced physical AI reasoning with improved spatio-temporal understanding and timestamp precision. Supports object detection with 2D/3D point localization and bounding box coordinates with reasoning explanations and…

Access requested at publisher other 2.4B parameters cosmos

Model · Image and text to text

RynnBrain-2B

DAMO Academy

[2026.02.02] Release RynnBrain family weights and inference code. - [2026.02.02] Add cookbooks for cognition, localization, reasoning, and planning. RynnBrain aims to serve as a physics-aware embodied brain: it observes egocentric scenes, grounds language to physical space and time, and supports downstream robotic systems with reliable localization and planning outputs. - Comprehensive egocentric understanding Strong spatial comprehension and egocentric cognition across embodied QA, counting, OCR, and fine-grained video understanding. - Diverse spatiotemporal localization Locates objects, target areas, and predicts trajectories across long episodic context, enabling global spatial…

Open weights apache-2.0 2.4B parameters 262,144 tokens transformers

Model · Image and text to text

Qwen3.5-2B

Qwen

Over recent months, we have intensified our focus on developing foundation models that deliver exceptional utility and performance. Qwen3.5 represents a significant leap forward, integrating breakthroughs in multimodal learning, architectural efficiency, reinforcement learning scale, and global accessibility to empower developers and enterprises with unprecedented capability and efficiency. For more details, please refer to our blog post Qwen3.5. WMT24++: a harder subset of WMT24 after difficulty labeling and rebalancing; we report the averaged scores on 55 languages using XCOMET-XXL. Empty cells (--) indicate scores not yet available or not applicable. Scores of Qwen3.5 models are reported…

Open weights apache-2.0 2.3B parameters 262,144 tokens transformers

Model · Image and text to text

Rax-4.5

RaxCore

Over recent months, we have intensified our focus on developing foundation models that deliver exceptional utility and performance. Rax 4.5 represents a significant leap forward, integrating breakthroughs in multimodal learning, architectural efficiency, reinforcement learning scale, and global accessibility to empower developers and enterprises with unprecedented capability and efficiency. Rax 4.5 features the following enhancement: For more details, please refer to our blog post Rax 4.5. WMT24++: a harder subset of WMT24 after difficulty labeling and rebalancing; we report the averaged scores on 55 languages using XCOMET-XXL. Empty cells (--) indicate scores not yet available or not…

Open weights apache-2.0 2.3B parameters 262,144 tokens transformers

Model · Image and text to text

Qwen3.5-2B-auto-optimized

Islam Assanov

This is Qwen3.5-2B auto-optimized by Claude Fable for fast single-request text generation. Fable built and tuned the included qwen35fast inference engine while keeping Qwen's original BF16 weights unchanged. Across 12 development workloads, the Fable engine delivered 14× the decode speed of Transformers eager and 1.02× the speed of vLLM with MTP (geometric means). On 12 held-out workloads, it reached 528–866 tokens/s and 1.01× vLLM with MTP. Use Python 3.12 and an NVIDIA CUDA GPU. Download the model and install its dependencies: The original checkpoint also works with Transformers for Qwen's standard text and vision-language workflows; the speed figures above use qwen35fast. - Captured the…

Open weights apache-2.0 2.3B parameters 262,144 tokens transformers

Model · Image and text to text

Qwen2-VL-2B-Instruct

Qwen

We're excited to unveil Qwen2-VL, the latest iteration of our Qwen-VL model, representing nearly a year of innovation. SoTA understanding of images of various resolution & ratio: Qwen2-VL achieves state-of-the-art performance on visual understanding benchmarks, including MathVista, DocVQA, RealWorldQA, MTVQA, etc. Understanding videos of 20min+: Qwen2-VL can understand videos over 20 minutes for high-quality video-based question answering, dialog, content creation, etc. Agent that can operate your mobiles, robots, etc.: with the abilities of complex reasoning and decision making, Qwen2-VL can be integrated with devices like mobile phones, robots, etc., for automatic operation based on…

Open weights apache-2.0 2.2B parameters 32,768 tokens transformers