lakomchik's picture
Update README.md
dc88e82 verified
metadata
library_name: lerobot
license: apache-2.0
language:
  - en
base_model:
  - SberRoboticsCenter/GreenVLA-5b-base-stride-4
pipeline_tag: robotics
tags:
  - robotics
  - vla
  - vision-language-action
  - manipulation
  - flow-matching
  - action-prediction
  - green-vla
  - calvin
  - reinforcement-learning
model-index:
  - name: GreenVLA-5b-stride-4-R2-calvin
    results:
      - task:
          type: robotics
          name: CALVIN
        metrics:
          - type: avg_chain_length
            name: Avg Chain Length
            value: 4.57

GreenVLA-5b-stride-4-R2-calvin

RL-Aligned VLA for CALVIN

Sber Robotics Center · Manipulation Team

arXiv Project Page Code


Overview

GreenVLA-5b-stride-4-R2-calvin is the R2 (RL-aligned) checkpoint of the Green-VLA family, fine-tuned for the CALVIN benchmark environment.

Starting from GreenVLA-5b-base-stride-4, this model went through both R1 (supervised fine-tuning) and R2 (RL policy alignment) stages on CALVIN data.

Evaluation

Evaluated on the CALVIN benchmark:

Metric Value
Avg Chain Length 4.57

Training

Details
Base checkpoint GreenVLA-5b-base-stride-4
Stage R2 — RL policy alignment
Method Trajectory optimization (SFT + RL on collected trajectories)
Environment CALVIN
Parameters ~5B

Quick Start

Installation

git clone https://github.com/greenvla/GreenVLA.git
cd GreenVLA
uv sync  # or: pip install -e .

Inference

import numpy as np
import torch
from lerobot.common.policies.factory import load_pretrained_policy
from lerobot.common.utils.torch_observation import (
    move_dict_to_batch_for_inference,
    torch_preprocess_dict_inference,
)

# 1. Load policy and transforms.
policy, input_transforms, output_transforms = load_pretrained_policy(
    "SberRoboticsCenter/GreenVLA-5b-stride-4-R2-calvin",
    data_config_name="calvin",
)
policy.to("cuda").eval()

# 2. Build an observation (replace with real sensor data).
raw_obs = {
    "observation/state": np.random.rand(8).astype(np.float32),
    "observation/image": np.random.randint(0, 256, size=(224, 224, 3), dtype=np.uint8),
    "prompt": "open the drawer",
}

# 3. Transform, preprocess, and batch.
obs = input_transforms(raw_obs)
obs = torch_preprocess_dict_inference(obs)
batch = move_dict_to_batch_for_inference(obs, device="cuda")

# 4. Predict actions and post-process.
with torch.inference_mode():
    raw_actions = policy.select_action(batch).cpu().numpy()

actions = output_transforms(
    {"actions": raw_actions, "state": batch["state"].cpu().numpy()}
)["actions"]

Citation

@misc{apanasevich2026greenvlastagedvisionlanguageactionmodel,
    title   = {Green-VLA: Staged Vision-Language-Action Model for Generalist Robots},
    author  = {I. Apanasevich and M. Artemyev and R. Babakyan and P. Fedotova and
               D. Grankin and E. Kupryashin and A. Misailidi and D. Nerus and
               A. Nutalapati and G. Sidorov and I. Efremov and M. Gerasyov and
               D. Pikurov and Y. Senchenko and S. Davidenko and D. Kulikov and
               M. Sultankin and K. Askarbek and O. Shamanin and D. Statovoy and
               E. Zalyaev and I. Zorin and A. Letkin and E. Rusakov and
               A. Silchenko and V. Vorobyov and S. Sobolnikov and A. Postnikov},
    year    = {2026},
    eprint  = {2602.00919},
    archivePrefix = {arXiv},
    primaryClass  = {cs.RO},
    url     = {https://arxiv.org/abs/2602.00919},
}

© 2026 Sber Robotics Center · Manipulation Team