Instructions to use EurekaTian/SyncPro-SFT with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use EurekaTian/SyncPro-SFT with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="EurekaTian/SyncPro-SFT") 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("EurekaTian/SyncPro-SFT") model = AutoModelForMultimodalLM.from_pretrained("EurekaTian/SyncPro-SFT", 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 EurekaTian/SyncPro-SFT with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "EurekaTian/SyncPro-SFT" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "EurekaTian/SyncPro-SFT", "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/EurekaTian/SyncPro-SFT
- SGLang
How to use EurekaTian/SyncPro-SFT 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 "EurekaTian/SyncPro-SFT" \ --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": "EurekaTian/SyncPro-SFT", "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 "EurekaTian/SyncPro-SFT" \ --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": "EurekaTian/SyncPro-SFT", "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 EurekaTian/SyncPro-SFT with Docker Model Runner:
docker model run hf.co/EurekaTian/SyncPro-SFT
SyncPro-SFT
SyncPro-SFT is the official supervised checkpoint for SyncPro: Synchronous Reasoning and Responding for Proactive Streaming Video Understanding.
SyncPro synchronously decodes an internal reasoning stream and an external response stream under a causal streaming attention map.
Model
SyncPro forks the decoder into synchronous internal-reasoning and external-response branches. At each streaming step, it learns whether to remain silent, reason internally, or speak, while preserving causal processing.
This checkpoint was initialized from Qwen/Qwen3.5-4B and trained on 189,403 streaming trajectories using:
- split action loss over the dual-stream grammar;
- Action Temporal Ranking (ATR) against nearby hard negatives;
- dual LoRA with rank 64, alpha 128, and dropout 0.05;
- fixed additive branch merging with gamma = 0.5.
The release contains merged BF16 inference weights. Optimizer shards, scheduler state, RNG state, and other resume-only training artifacts are intentionally excluded. Inference code and benchmark adapters are documented in the SyncPro repository.
Data and intended use
The model is intended for research on causal streaming-video understanding, proactive response timing, and separated internal/external generation. Training annotations are available in SyncPro-189k. Source videos are not redistributed and must be obtained from their original publishers under the applicable terms.
The checkpoint may inherit limitations and biases from Qwen3.5-4B and the public research datasets used for training. It should not be treated as a safety-critical monitoring system.
License
The model weights are released under the Apache License 2.0. The annotation dataset has separate licensing and source-specific terms described on its dataset card.
Citation
@misc{tian2026syncpro,
title = {SyncPro: Synchronous Reasoning and Responding for
Proactive Streaming Video Understanding},
author = {Tian, Xueyun and Xu, Bingbing and Liu, Jiaming and
Yu, Jinpeng and Shi, Yang and Zhao, Yu and
Huang, Ruihua and Wang, Yuanzhuo and Shen, Huawei},
year = {2026},
url = {https://eureka-maggie.github.io/SyncPro/}
}
- Downloads last month
- -