/
models
Weichen Fan*,Haiwen Diao*,Penghao Wu,Siyuan Hu,Ziqi Huang,Tianqi Liu,Mingze Sun,Ziyi Wang,Zhongang Cai,Hanming Deng,Quan Wang,Lei Yang,Lewei Lu,Fangzhou Hong,Zhaoxi Chen,Dahua Lin,Ziwei Liu

NEO-VLA: Towards Native Vision-Language-Action Policies

Dithered illustration of a robot arm reaching toward a grid of image patches

Code | Weights | Dataset | Project Page

From Pixels to Actions: Towards Native Vision-Language-Action Policies. S-Lab, Nanyang Technological University · SenseTime Research · Ropedia. Weichen Fan and Haiwen Diao contributed equally; Haiwen Diao is the project lead and Ziwei Liu is the corresponding author. The paper is coming soon.

Overview

Most vision-language-action (VLA) models see the world through a separately pretrained vision encoder. The action policy only receives that encoder's final output, after local geometry, edges and depth cues have already been abstracted away. NEO-VLA drops the encoder. Pixels go through a lightweight convolutional patch embedder straight into a native vision-language backbone, and a flow-matching action expert reads from whichever backbone layers we choose.

Because the readout depth becomes a design choice, we can ask where in the backbone the information needed for control actually lives. Three findings come out of this study:

  1. Action-relevant information sits in the shallow layers of the VLM. Reading early layers beats reading late layers at matched expert size, and intervening on layers 0–10 changes the predicted action far more than intervening on later layers.
  2. Attaching Qwen's vision encoder to the action expert does not help. The gain comes from native vision-language pretraining. Routing the expert to Qwen3-VL's intermediate vision-tower features lowers frozen-backbone LIBERO success from 79.5% to 64.9%. The frozen native backbone reaches 90.9%.
  3. Understanding data matters in post-training. On RoboTwin 2.0 Clean2Rand, co-training with NEO's understanding corpus gives 69.4%, a caption-only mix gives 47.2%, and action data alone gives 10.7%.

NEO-VLA in two minutes

Robot clips are sped up 2–4×; the speed is marked in each shot.

Model: pixels in, continuous actions out

Encoder-based VLAs (a and b below) pass pixels through a visual encoder and hand its output to the language model. NEO-VLA (c) maps pixels directly into the backbone token space, so image patches and instruction words are processed together in every layer. A separate, narrow action expert attends to the cached keys and values of selected backbone layers and predicts a flow-matching velocity field over 30-step action chunks.

Three VLA policy designs: encoder-based with discrete action tokens, encoder-based with a continuous action head, and encoder-free NEO-VLA
Three VLA policy designs. (a) Encoder-based VLA with discrete action tokens. (b) The same encoder-based interface with a continuous action head. (c) NEO-VLA removes the separately pretrained encoder; a patch embedder feeds pixels into the backbone, and the action expert reads keys and values from selected backbone layers.
NEO-VLA architecture: multi-view images, camera parameters, prompt and robot state enter the NEO-2B backbone, and an action expert reads selected layers
NEO-VLA architecture. The prefix holds previous and current multi-view images (up to 88 visual tokens per view, stride-32 patches), camera intrinsics and rotation, a structured prompt (control frequency, embodiment, action frame, instruction) and robot state. The backbone is NEO-2B, a 40-layer decoder-only native vision-language model with no ViT, autoencoder or VQ codebook in the visual path. The action expert outputs two 26-D arm chunks and one 8-D body chunk; inference uses 10 Euler steps.

Finding 1: Action-relevant information sits in the shallow layers

Each layer of the action expert reads the cached keys and values of one backbone layer. We keep the expert fixed at 28 layers and change only which backbone layers it reads: skip-28 spreads its reads across all 40 layers, end-28 reads layers 12–39, and first-28 reads layers 0–27.

Layer-map ablation on LIBERO. Average success (%) over the four suites, 2,000 rollouts per configuration, step 30k.

SettingLayer mapBackbone layers readLIBERO average
Frozen backbonefirst-280–27, depth 2894.9
skip-28uniform over 0–3990.9
end-2812–3986.7
Frozen backbone, disjoint 14-layer mapsfirst-140–13, depth 1493.6
last-1426–3989.6
Full fine-tuningfirst-280–27, depth 2894.6
skip-28uniform over 0–3995.3
end-2812–3992.5

The cleanest comparison is skip-28 vs. end-28: both keep all 40 backbone layers and the same 28-layer expert, and differ only in whether early layers are read. first-28 and first-14 also shorten the backbone, so they change depth and compute as well as readout position.

With a frozen backbone, dropping access to the first 12 layers costs 4.2 points (90.9 → 86.7). Full fine-tuning narrows the gap but does not close it (95.3 vs. 92.5).

Where the expert is sensitive

To see which attachment points matter, we intervene on one at a time. Replacing the keys and values at one layer with those from a different observation and task raises translation error most at layers 0–10. Noise of the same magnitude stays within 0.004 cm of the unchanged error, so the effect comes from the content being replaced, not the size of the disturbance. Masking the wrist image hurts most around layers 6–10; masking the instruction hurts most at layer 0, with a smaller rise near layer 17.

Intervention results at each attachment point of the action expert
Interventions at the expert's attachment points (diagnostic skip-28 models). (A) Translation error after swapping one attachment's cached keys and values with another observation's (bars), adding matched-magnitude noise (orange), or no change (dashed). (B) Action change when masking the wrist image or the instruction; filled and open markers are separate even- and odd-attachment runs. (C) Masking the wrist-camera pose has little effect in the robot-frame model but a large effect at layer 0 in a wrist-frame model, which shows the test can detect pose use.

Control draws on early, spatially detailed computation inside the backbone, and a policy that only sees the last layers leaves that on the table.

Finding 2: The gain comes from native pretraining, not encoder access

We put three backbones under the same action expert and robot-training corpus: Qwen3-VL-2B, Gemma-3-4B and NEO-2B. With the backbone frozen, only the expert learns, so the policy must work with the pretrained representations as they are. NEO-2B reaches 90.9% here, 11.4 points above Qwen3-VL and on par with both encoder-based models after full fine-tuning.

Backbone comparison on LIBERO. Success (%) at the final 30k-step checkpoint, 500 episodes per suite.

BackboneSizeAdaptationSpatialObjectGoalLongAverage
Qwen3-VL2BFrozen71.489.892.864.079.5
Encoder unfrozena91.892.094.079.089.2
Full FT92.296.695.878.690.8
Gemma-34BFrozen80.293.692.671.684.5
Full FT89.097.694.882.891.05
NEO-VLA2BFrozen89.295.893.285.490.9
Full FT96.497.296.284.693.6

a Updates the vision encoder and action expert with other layers frozen; uses a replan interval of 4 and horizon of 8 instead of 12 and 20.

Giving the expert direct access to Qwen's vision tower

A natural objection is that NEO-VLA wins only because its expert can reach early visual features, which an encoder-based VLA hides behind the encoder output. We tested this directly: in Qwen3-VL we route 13 expert layers to intermediate vision-tower features instead. This adds no parameters.

Direct encoder access in Qwen3-VL. Average LIBERO success (%), same setting as above.

SettingQwen3-VL, original interfaceQwen3-VL + encoder accessNEO-VLA
Frozen backbone79.564.990.9
Full fine-tuning90.890.993.6

Encoder access makes the frozen Qwen3-VL policy worse (79.5 → 64.9), and after full fine-tuning the two interfaces are equal (90.8 vs. 90.9). Early visual features are only useful when they are learned jointly with language and presented in the space the rest of the model uses. NEO's encoder-free pretraining produces such features; an encoder bolted on in front of a language model does not.

Caveat: the backbones differ in pretraining data and capacity, so this comparison does not isolate the effect of removing the encoder alone. It does show that the native backbone is a strong starting point for action learning.

Exposing more of a conventional encoder is not enough. The benefit of NEO-VLA comes from native, encoder-free vision-language pretraining.

Finding 3: Understanding data matters in post-training

VLA post-training is usually done either on action data alone or with some vision-language data mixed in. We compared three recipes on RoboTwin 2.0, trained on clean scenes and evaluated on randomized ones (Clean2Rand): co-training with NEO-2B's own multimodal understanding corpus, co-training with ShareGPT4V-COCO captions, and action data only.

Post-training recipe ablation. RoboTwin 2.0 Clean2Rand success (%).

Post-training dataClean2Rand success
Action data + NEO understanding data69.4
Action data + ShareGPT4V-COCO captions47.2
Action data only10.7

Training on action data alone collapses under randomization. Simple captions recover part of the gap, and the backbone's own understanding corpus recovers most of it. In our recipe, understanding examples are packed into every other optimizer step with an auxiliary next-token loss weighted by 0.1.

Keeping the backbone's understanding ability alive during action training is what lets the policy hold up when scenes change, and the closer the co-training data is to the backbone's pretraining corpus, the better.

Real robot: three tasks, 50 demonstrations each

We built a small real-world benchmark to test precise placement, multi-step execution and object reorientation. Each model is fine-tuned on 50 episodes per task and evaluated over 20 trials: 10 in-domain and 10 out-of-domain. All methods use the same real data and their own recommended post-training settings.

The three real-robot tasks: tennis ball on can, tape in bowl then ball in tape, and stand a lying can upright in the tape roll
  • Task 1: place the tennis ball on the can. The top of the can is smaller than the ball, so the ball has to be released gently and centered.
  • Task 2: tape roll into the bowl, then the ball into the tape. A two-stage task: the second placement depends on where the first one ended up.
  • Task 3: stand the lying can upright in the tape roll. The can must be grasped on its side, rotated by 90° and inserted into the roll.

Real-world success (successes / 20 trials).

ModelSizeTask 1: ball on canTask 2: tape & ballTask 3: can in tape
StarVLA3B1/202/200/20
π0.53B10/2014/2013/20
NEO-VLA2B12/2017/2013/20

Twenty trials per task is a small sample; differences of one or two successes are within noise.

Task 1: tennis ball on can
Task 2: tape in bowl, then ball in tape
Task 3: stand can in tape

More rollouts for each task, and a water-pouring task outside the benchmark, are on the project page.

Simulation benchmarks

Simulator versions, camera inputs, training data and evaluation protocols differ across papers, so the tables below give context rather than controlled comparisons. Numbers for other methods are as reported in prior work. Open marks methods with both code and weights public.

LIBERO

ModelSizeOpenSpatialObjectGoalLongAverage
OpenVLA7Byes84.788.479.253.776.5
π0.53Byes98.898.298.092.496.8
MMaDA-VLA8Byes98.899.898.095.298.0
EO-13Byes99.799.899.294.898.4
Qwen-RobotManip4Bno––––99.1
NEO-VLA2Byes98.499.495.696.297.4

NEO-VLA: 2,000 episodes per suite at step 27,500. LIBERO is close to saturated, so we report it mainly to show that in-distribution performance is retained.

LIBERO-Plus

LIBERO-Plus evaluates seven kinds of distribution shift separately. NEO-VLA is strongest when the way the scene is observed changes (camera, noise), and weaker when the robot or the layout changes.

ModelSizeOpenCameraRobotLanguageLightBackgroundNoiseLayoutTotal
π03Byes13.86.058.885.081.479.068.953.6
StarVLA4Byes52.549.888.595.795.773.076.974.1
ABot-M04Byes60.467.986.496.291.686.482.680.5
Cosmos-Policy2Byes75.863.381.796.588.992.782.282.2
π0.53Byes78.473.680.896.294.189.084.584.4
Qwen-RobotManip-scratch4Bno70.444.988.195.895.584.479.178.3
Being-H0.73Bno82.059.082.897.890.093.588.584.8
Qwen-RobotManip4Bno87.275.585.696.697.797.787.389.0
NEO-VLA2Byes94.572.691.796.296.696.982.489.7

The total is task-weighted rather than the mean of the seven axes. Other results follow Qwen-RobotManip.

RoboTwin 2.0

Under the official setting (2.5K clean training episodes), the main difference shows up when the policy is evaluated on randomized scenes.

ModelSizeOpenCleanClean2Rand
FastWAM6Byes77.801.90
StarVLA-OFT3Byes46.523.16
π0.53Byes70.7046.00
OLA-Sem8Bno75.1267.56
Qwen-RobotManip4Bno89.5868.12
NEO-VLA2Byes75.7869.40

LIBERO-Pro

LIBERO-Pro changes object appearance, object positions, instruction wording and task goals. NEO-VLA handles reworded instructions well but, like the other policies here, mostly fails when positions or goals change. Robust perception alone does not yet give flexible task execution.

ModelSizeObjectPositionSemanticTaskAverage
OpenVLA7B93.00.097.30.047.6
π03B90.50.090.50.045.3
π0.53B96.020.895.80.853.3
X-VLA0.9B79.00.896.86.845.8
NEO-VLA2B84.33.098.06.347.9

Training data and recipe

Backbone. NEO-2B is a 40-layer decoder-only native vision-language model, trained in three stages (image-text pretraining, mid-training on captioning, conversation, OCR and detection data, then supervised instruction tuning). It uses native rotary position embeddings over time, height and width, causal attention for text and bidirectional attention within each image.

Robot pretraining corpus. Nine public dataset families (AgiBot-World, Bimanual YAM, RoboCOIN, Open X-Embodiment, Galaxea Open-World, RoboMIND, RH20T, DROID and the simulated InternData-A1), 2.23M episodes and about 9,900 hours. Unreliable joint readings, constant channels, action outliers and corrupt episodes are masked or dropped, and camera calibration is checked against projected arm motion.

Recipe. Stage 1 trains the action expert on a frozen backbone (113,400 steps, batch 8,192). Stage 2 unfreezes everything for 75,000 steps and co-trains with NEO-2B's understanding data. Stage 3 continues full fine-tuning on in-house action data for another 75,000 steps.

Robot data quality filtering pipeline
Data quality filtering. Each check removes only the affected readings, channels, targets, episodes or calibration records, so usable data is kept.

Citation

@article{fan2026neovla,
  title   = {From Pixels to Actions: Towards Native Vision-Language-Action Policies},
  author  = {Fan, Weichen and Diao, Haiwen and Wu, Penghao and Hu, Siyuan and
             Huang, Ziqi and Liu, Tianqi and Sun, Mingze and Wang, Ziyi and
             Cai, Zhongang and Deng, Hanming and Wang, Quan and Yang, Lei and
             Lu, Lewei and Hong, Fangzhou and Chen, Zhaoxi and Lin, Dahua and
             Liu, Ziwei},
  year    = {2026}
}

NEO-VLA builds on the NEO native vision-language backbone: Diao et al., From Pixels to Words: Towards Native Vision-Language Primitives at Scale, ICLR 2026.

Correspondence: ziwei.liu@ntu.edu.sg

Comments

Loading