SAVRN
Search Contact SAVRN

Open-weight model · Robotics

xvla-base

by LeRobot lerobot/xvla-base

X-VLA is a Vision-Language-Action foundation model that uses soft prompts to handle cross-embodiment and cross-domain robot control within a unified Transformer architecture.

Parameters880M
Context
Weights3.5 GB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads3.8k

Runs On

What it takes to serve xvla-base (880M parameters): the memory its weights need at each precision, and the cheapest way to rent enough data-center GPUs to hold them.

PrecisionWeightsMemory neededCheapest setupPer hourAlso fits
16-bit 1.8 GB 2.1 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
8-bit 0.9 GB 1.1 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
4-bit 0.4 GB 0.5 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00

Memory is the weights at that precision plus 20% for the runtime and a short context; a long context needs more. Prices are the lowest on-demand hourly rates in the SAVRN Index, read Sep 18, 2026.

Model Card

By LeRobot, published under apache-2.0, revision cdb7964e4fe8.

X-VLA is a Vision-Language-Action foundation model that uses soft prompts to handle cross-embodiment and cross-domain robot control within a unified Transformer architecture. Original paper: X-VLA: Soft-Prompted Transformer as Scalable Cross-Embodiment Vision-Language-Action Model For full installation details (including optional video dependencies such as ffmpeg for torchcodec), see the official documentation: https://huggingface.co/docs/lerobot/installation If you’re training / fine-tuning, you typically call forward(...) to get a loss and then: - -policy.chunksize=... - -policy.nactionsteps=... - -policy.maxactiontokens=... - -policy.gradientcheckpointing=true You can use the record…

Read LeRobot's full model card

X-VLA (LeRobot)

X-VLA is a Vision-Language-Action foundation model that uses soft prompts to handle cross-embodiment and cross-domain robot control within a unified Transformer architecture.

Original paper: X-VLA: Soft-Prompted Transformer as Scalable Cross-Embodiment Vision-Language-Action Model Reference implementation: https://github.com/2toinf/X-VLA
LeRobot implementation: Follows the original reference code for compatibility.

Model description

  • Inputs: images (multi-view), proprio/state, optional language instruction
  • Outputs: continuous actions
  • Training objective: flow matching
  • Action representation: continuous
  • Intended use: Base model to fine tune on your specific use case

Quick start (inference on a real batch)

Installation

pip install "lerobot[xvla]"

For full installation details (including optional video dependencies such as ffmpeg for torchcodec), see the official documentation: https://huggingface.co/docs/lerobot/installation

Load model + dataset, run select_action

import torch
from lerobot.datasets.lerobot_dataset import LeRobotDataset
from lerobot.policies.factory import make_pre_post_processors

# Swap this import per-policy
from lerobot.policies.xvla.modeling_xvla import XVLAPolicy

# load a policy
model_id = "lerobot/xvla-base"  # <- swap checkpoint
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

policy = XVLAPolicy.from_pretrained(model_id).to(device).eval()

preprocess, postprocess = make_pre_post_processors(
    policy.config,
    model_id,
    preprocessor_overrides={"device_processor": {"device": str(device)}},
)
# load a lerobotdataset (we will replace with a simpler dataset)
dataset = LeRobotDataset("lerobot/libero")

# pick an episode
episode_index = 0

# each episode corresponds to a contiguous range of frame indices
from_idx = dataset.meta.episodes["dataset_from_index"][episode_index]
to_idx   = dataset.meta.episodes["dataset_to_index"][episode_index]

# get a single frame from that episode (e.g. the first frame)
frame_index = from_idx
frame = dict(dataset[frame_index])

batch = preprocess(frame)
with torch.inference_mode():
    pred_action = policy.select_action(batch)
    # use your policy postprocess, this post process the action
    # for instance unnormalize the actions, detokenize it etc..
    pred_action = postprocess(pred_action)

Training step (loss + backward)

If you’re training / fine-tuning, you typically call forward(...) to get a loss and then:

policy.train()
batch = dict(dataset[0])
batch = preprocess(batch)

loss, outputs = policy.forward(batch)
loss.backward()

Notes:

  • Some policies expose policy(**batch) or return a dict; keep this snippet aligned with the policy API.
  • Use your trainer script (lerobot-train) for full training loops.

How to train / fine-tune

lerobot-train \
  --dataset.repo_id=${HF_USER}/<dataset> \
  --output_dir=./outputs/[RUN_NAME] \
  --job_name=[RUN_NAME] \
  --policy.repo_id=${HF_USER}/<desired_policy_repo_id> \
  --policy.path=lerobot/[BASE_CHECKPOINT] \
  --policy.dtype=bfloat16 \
  --policy.device=cuda \
  --steps=100000 \
  --batch_size=4

Add policy-specific flags below:

  • -policy.chunk_size=...
  • -policy.n_action_steps=...
  • -policy.max_action_tokens=...
  • -policy.gradient_checkpointing=true

Real-World Inference & Evaluation

You can use the record script from lerobot-record with a policy checkpoint as input, to run inference and evaluate your policy.

For instance, run this command or API example to run inference and record 10 evaluation episodes:

lerobot-record  \
  --robot.type=so100_follower \
  --robot.port=/dev/ttyACM1 \
  --robot.cameras="{ up: {type: opencv, index_or_path: /dev/video10, width: 640, height: 480, fps: 30}, side: {type: intelrealsense, serial_number_or_name: 233522074606, width: 640, height: 480, fps: 30}}" \
  --robot.id=my_awesome_follower_arm \
  --display_data=false \
  --dataset.repo_id=${HF_USER}/eval_so100 \
  --dataset.single_task="Put lego brick into the transparent box" \
  # <- Teleop optional if you want to teleoperate in between episodes \
  # --teleop.type=so100_leader \
  # --teleop.port=/dev/ttyACM0 \
  # --teleop.id=my_awesome_leader_arm \
  --policy.path=${HF_USER}/my_policy

Configuration

Hidden size
1,024

Identity and Version

Repository
lerobot/xvla-base
Publisher
LeRobot
Task
Robotics
Modality
Control
Library
lerobot
Parameters
880M parameters
Languages
en
Revision
cdb7964e4fe842935d671bfab5a5ebe00a96648c
First published
2025-11-19
Last updated
2026-03-02

Files and Weights

6 files, 3.5 GB in total. The weights are 1 file totalling 3.5 GB in safetensors.

Weights1 file · 3.5 GB
Configuration3 files · 8.1 KB
Documentation1 file · 4.7 KB
Repository1 file · 1.5 KB
Every file
FileTypeSizeSHA-256
model.safetensorsWeights3.5 GB f05bc0fab1c9
config.jsonConfiguration5.5 KB
policy_postprocessor.jsonConfiguration575 B
policy_preprocessor.jsonConfiguration2.1 KB
README.mdDocumentation4.7 KB
.gitattributesRepository1.5 KB

License and Download

License
apache-2.0
Access
Open weights, no gate
Download size
3.5 GB
Download from LeRobot

Released by LeRobot through its official repository on Hugging Face. Read the license.

Built From

Memory Requirements

PrecisionWeights in memory
As published3.5 GB
16-bit1.8 GB
8-bit0.9 GB
4-bit0.4 GB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Questions About xvla-base

How much GPU memory does xvla-base need?

About 2.1 GB at 16-bit and 0.5 GB at 4-bit: the weights (880M parameters) plus a working margin. A long context needs more.

What is the cheapest GPU to run xvla-base on?

At 16-bit, 1x MI300X from $1.85 an hour; at 4-bit, 1x MI300X from $1.85 an hour, at the lowest on-demand prices the SAVRN Index lists.

Can I use xvla-base commercially?

Yes. xvla-base is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.

Similar Models

Model · Robotics

X-VLA-Pt

Jinliang Zheng

Paper: Zheng et al., 2025, “X-VLA: Soft-Prompted Transformer as Scalable Cross-Embodiment Vision-Language-Action Model” (arXiv:2510.10274) Successful generalist Vision-Language-Action (VLA) models rely on effective training across diverse robotic platforms with large-scale, cross-embodiment, heterogeneous datasets. To facilitate and leverage the heterogeneity in rich robotic data sources, X-VLA introduces a Soft Prompt approach with minimally added parameters: we infuse prompt-learning concepts into cross-embodiment robot learning, introducing separate sets of learnable embeddings for each distinct embodiment. These embodiment-specific prompts empower VLA models to exploit cross-embodiment…

Open weights apache-2.0 880M parameters

Model · Robotics

X-VLA-Libero

Jinliang Zheng

Paper: Zheng et al., 2025, “X-VLA: Soft-Prompted Transformer as Scalable Cross-Embodiment Vision-Language-Action Model” (arXiv:2510.10274) Successful generalist Vision-Language-Action (VLA) models rely on effective training across diverse robotic platforms with large-scale, cross-embodiment, heterogeneous datasets. To facilitate and leverage the heterogeneity in rich robotic data sources, X-VLA introduces a Soft Prompt approach with minimally added parameters: we infuse prompt-learning concepts into cross-embodiment robot learning, introducing separate sets of learnable embeddings for each distinct embodiment. These embodiment-specific prompts empower VLA models to exploit cross-embodiment…

Open weights apache-2.0 880M parameters

SmolVLA is a compact, efficient vision-language-action model that achieves competitive performance at reduced computational costs and can be deployed on consumer-grade hardware. This policy has been trained and pushed to the Hub using LeRobot. See the full documentation at LeRobot Docs. For a complete walkthrough, see the training guide. Below is the short version on how to train and run inference/eval: Writes checkpoints to outputs/train/ /checkpoints/. Prefix the dataset repo with eval\ and supply --policy.path pointing to a local or hub checkpoint.

Open weights apache-2.0 605M parameters lerobot

Model · Robotics

Alpamayo-1.5-10B-DFlash

Z Lab

Flash Vision-Language-Action Inference for Autonomous Driving DFlash draft model for z-lab/Alpamayo-1.5-10B, used by FlashDrive to accelerate the chain-of-causation reasoning of Alpamayo 1.5. DFlash (ICML 2026) uses a lightweight block-diffusion draft to propose several tokens in parallel; the target verifies each block in a single forward, preserving its output distribution. This draft is a 2-layer Qwen3-style network (block size 8) conditioned on target hidden states from layers 24/30/31/32/34. The repository also ships maskembedding.pt, the trained mask-token embedding FlashDrive appends to the target's embedding table. See the base model card and the FlashDrive repository for the full…

Open weights other 470M parameters 40,960 tokens

Model · Robotics

smolvla_base

LeRobot

SmolVLA is a compact, efficient Vision-Language-Action (VLA) model designed for affordable robotics, trainable on a single GPU and deployable on consumer hardware, while matching the performance of much larger VLAs through community-driven data. Original paper: (SmolVLA: A Vision-Language-Action Model for Affordable and Efficient Robotics)[https://arxiv.org/abs/2506.01844] For full installation details (including optional video dependencies such as ffmpeg for torchcodec), see the official documentation: https://huggingface.co/docs/lerobot/installation If you’re training / fine-tuning, you typically call forward(...) to get a loss and then: - -policy.chunksize=... - -policy.nactionsteps=...…

Open weights apache-2.0 450M parameters lerobot

Model · Robotics

smolvla_libero

LeRobot

SmolVLA is a compact, efficient vision-language-action model that achieves competitive performance at reduced computational costs and can be deployed on consumer-grade hardware. This policy has been trained and pushed to the Hub using LeRobot. See the full documentation at LeRobot Docs. For a complete walkthrough, see the training guide. Below is the short version on how to train and run inference/eval: Writes checkpoints to outputs/train/ /checkpoints/. Prefix the dataset repo with eval\ and supply --policy.path pointing to a local or hub checkpoint.

Open weights apache-2.0 450M parameters lerobot