--- license: cc-by-nc-4.0 library_name: transformers pipeline_tag: robotics tags: - robotics - vision-language-action - vla - libero - qwen3-vl - prts - custom_code language: - en base_model: TeleEmbodied/PRTS-4B ---

PRTS-4B-LIBERO

arXiv   GitHub   Base model

**PRTS-4B-LIBERO** is the LIBERO fine-tuned variant of [`TeleEmbodied/PRTS-4B`](https://huggingface.co/TeleEmbodied/PRTS-4B). This is the exact checkpoint used to report the LIBERO numbers in the PRTS paper. For the base model card (architecture, prompt format, contrastive RL design), please refer to the parent [PRTS-4B](https://huggingface.co/TeleEmbodied/PRTS-4B) repository. ## Post-training budget Fine-tuned from `TeleEmbodied/PRTS-4B` with the launch script [`scripts/ft/launch_finetune.sh`](https://github.com/TeleHuman/PRTS/blob/main/scripts/ft/launch_finetune.sh) in the open-source repo. Key settings: | | | | :--- | :--- | | Base model | `TeleEmbodied/PRTS-4B` | | Dataset config | `configs/post-train/libero.yaml` | | Embodiment tag | `libero_panda` | | Hardware | 4 GPUs, DeepSpeed ZeRO-2, bf16, `flash_attention_3`, no gradient checkpointing | | Steps | 30,000 total, 5,000 warmup, save every 10,000 | | Effective batch | 8 (per-device) × 4 GPUs × 1 (grad-acc) = **32** | | LRs | `1e-5` for vision / merger / LLM; `1e-4` for the action head | | Scheduler | `cosine_with_min_lr` (min `1e-6`) | | Optimizer | AdamW (β1=0.9, β2=0.95, ε=1e-8), weight decay `1e-8`, grad clip `1.0` | | Action head | DiT-L + MoT action expert, chunk size `20`, max action dim `32` | | Action normalization | `QUANTILE` (stats bundled in this checkpoint) | | Seed | 42 | ## Loading for evaluation This checkpoint plugs into the policy server [`scripts/serve_policy.py`](https://github.com/TeleHuman/PRTS/blob/main/scripts/serve_policy.py). Update the `EnvMode.LIBERO` entry in `DEFAULT_CHECKPOINT` so that `dir=` points to your local download of this repo. Normalization stats are already bundled in the checkpoint, so `dataset_path` can be left as `None`: ```python EnvMode.LIBERO: Checkpoint( config="prts_libero", dir="/path/to/PRTS-4B-libero", # local download path of this repo action_dim=7, dataset_path=None, # normalization stats are bundled in the checkpoint state_mode="QUANTILE", ), ``` ## Running LIBERO evaluation Follow the LIBERO simulation setup in [`examples/libero/README.md`](https://github.com/TeleHuman/PRTS/blob/main/examples/libero/README.md), then start the policy server from the PRTS repo root with [`examples/libero/run_libero_server.sh`](https://github.com/TeleHuman/PRTS/blob/main/examples/libero/run_libero_server.sh): ```bash bash examples/libero/run_libero_server.sh # which runs: # CUDA_VISIBLE_DEVICES=0 python scripts/serve_policy.py --env LIBERO --port 10000 ``` The LIBERO simulator (Terminal 1 in the example README) connects to this server over websocket and rolls out the 4 LIBERO task suites. ## License Released under [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/) — free for academic and non-commercial research; commercial use is **not** permitted. ## Citation ```bibtex @article{zhang2026prts, title = {PRTS: A Primitive Reasoning and Tasking System via Contrastive Representations}, author = {Yang Zhang and Jiangyuan Zhao and Chenyou Fan and Fangzheng Yan and Tian Li and Haitong Tang and Sen Fu and Xuan'er Wu and Qizhen Weng and Weinan Zhang and Xiu Li and Chi Zhang and Chenjia Bai and Xuelong Li}, journal = {arXiv preprint arXiv:2604.27472}, year = {2026}, } ```