---
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
**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},
}
```