NEO-VLA
Checkpoints for From Pixels to Actions – Towards Native Vision-Language-Action Policies.
Paper · Project page · Code · Dataset
| Checkpoint | Training stage | Step |
|---|---|---|
stage1/ |
Action pretraining with a frozen backbone | 113,400 |
stage2/ |
Joint vision-language and action training | 75,000 |
stage2_backbone/ |
Vision-language backbone cropped from stage2/ |
75,000 |
stage_libero/ |
LIBERO fine-tuned policy | — |
stage_rtw/ |
RoboTwin 2.0 fine-tuned policy | — |
Stage 2 initializes from stage 1 at step 113,400. stage_libero/ and
stage_rtw/ are policies fine-tuned for the LIBERO and RoboTwin 2.0 simulation
benchmarks, released for inference; their files do not record a training step.
stage2_backbone/ is the vision-language backbone taken from the stage-2
checkpoint at step 75,000 and saved as a standalone Hugging Face model, with the
action expert removed. It is not the original NEO-2B (NEOpp-2B-SFT)
checkpoint, which is not released. The backbone was fully fine-tuned during
stage-2 joint vision-language and action training, so essentially every tensor
differs from the original. EMA weights are used where available. It is a
post-training artifact of NEO-VLA, not a general-purpose replacement for NEO-2B.
Multimodal understanding performance of stage2_backbone:
| Benchmark | Score |
|---|---|
| RealWorldQA | 66.80 |
| AI2D (test) | 82.87 |
| ChartQA (test) | 80.76 |
| TextVQA (val) | 76.59 |
| MMBench-EN (dev) | 82.65 |
| MMBench-EN (dev, circular) | 74.48 |
Files
Each stage*/ checkpoint directory contains the native state.pt checkpoint, meta.json and its own
embodiments.json normalization records. The stage1/ and stage2/ checkpoints
include model weights and native training state (optimizer, scheduler and EMA).
stage_libero/ contains model weights only; stage_rtw/ contains model and EMA
weights. Use the normalization records supplied with that
checkpoint; the action representation and masks depend on them.
stage2_backbone/ instead holds model.safetensors with its configuration,
tokenizer and modeling code, and no meta.json or embodiments.json.
Use the original NEOpp-2B-SFT tokenizer and the policy configuration supplied
with the code.
Download checkpoints with huggingface_hub; keep only the directories you need
in allow_patterns:
from huggingface_hub import snapshot_download
snapshot_download(
repo_id="weepiess2383/NEO-VLA",
allow_patterns=["stage1/*", "stage2/*", "stage2_backbone/*", "stage_libero/*", "stage_rtw/*"],
local_dir="NEO-VLA",
)
For adaptation, set trainer.init_from to the downloaded NEO-VLA/stage2
directory, or NEO-VLA/stage1 to initialize from action pretraining.
Architecture and training configuration are described in the
training guide.
Use and limitations
These checkpoints support robot-learning research and require task-specific
adaptation and evaluation before use on a physical robot. The stage*/
checkpoints (except stage2_backbone/) are native NEO-VLA checkpoints, not
Transformers AutoModel exports.
The original joint-training run used multimodal understanding co-training data. The released code provides COCO ShareGPT as a default configuration example; it does not reproduce that original data mixture by itself.
The code is distributed under Apache-2.0. Backbone weights and source datasets retain their upstream terms; the code license does not relicense those assets.