Griffin Alpha-S, LIBERO fine-tune (flow-matching head)

The default head of Griffin Alpha-S: a 910M-parameter flow-matching action expert attached layer-by-layer (mixture-of-transformers) to a Qwen3-VL-4B backbone that was pre-trained on a multi-embodiment robot-data mixture. Inference integrates 10 Euler steps from noise to a 50-step action chunk.

Fine-tuned from griffinlabs/Griffin-Alpha-S on all four LIBERO suites (spatial, object, goal, 10) with the LIBERO demonstrations, 3 epochs. The other head lives on the fast branch of this repository.

What is baked in

  • Policy type griffin_alpha; cameras observation.images.image (agent view) and observation.images.image2 (wrist) at 256x256; 8-D state; 7-D OSC_POSE per-step deltas; n_action_steps=10 (replan every 10 of the 50 predicted steps).
  • use_relative_actions=false: LIBERO's actions are already relative commands.
  • Prompt header [embodiment: LIBERO simulated Franka Emika Panda, 1 gripper; arm control mode: eef_pose]; include_proprio=true, condition_on_subtask=true, num_inference_steps=1 (the prompt ends with assistant\naction: at inference; see the flow-head doc).
  • Normalization statistics from the LIBERO training split (quantile normalization of state and actions).

LIBERO results

Closed loop, 4 suites x 10 tasks x 10 episodes = 400 episodes per configuration, single seed, 256x256 agent-view + wrist images, n_action_steps=10, native per-step OSC deltas (use_relative_actions=false). Produced with examples/libero/run_eval.sh in the code repository.

suite flow head, 1 Euler step (checkpoint default) flow head, 10 Euler steps FAST head
libero_spatial 98.0 92.0 96.0
libero_object 100.0 100.0 96.0
libero_goal 95.0 97.0 97.0
libero_10 94.0 95.0 87.0
four-suite 96.8 96.0 94.0

Caveats: ten episodes per task is a standard error of about 1.2 points on the four-suite number; the flow and FAST checkpoints differ in more than the head (the flow one has proprio tokens in its prompt, the FAST one does not).

Use

Install the plugin, then any lerobot CLI understands the policy type (griffin_alpha):

pip install git+https://github.com/griffinlabs-ai/alpha-s.git
import lerobot_policy_griffin_alpha  # registers the policy types
from lerobot.policies.factory import make_pre_post_processors
from lerobot_policy_griffin_alpha import GriffinAlphaPolicy

policy = GriffinAlphaPolicy.from_pretrained("griffinlabs/Griffin-Alpha-S-LIBERO")
preprocessor, postprocessor = make_pre_post_processors(
    policy.config, pretrained_path="griffinlabs/Griffin-Alpha-S-LIBERO",
    preprocessor_overrides={"device_processor": {"device": "cuda"}},
)

Fine-tune with lerobot-train --policy.path=griffinlabs/Griffin-Alpha-S-LIBERO --dataset.repo_id=...; see docs/finetuning.md in the code repository, including how to rebuild the processors for a different robot or camera set.

License

Weights: CC BY-NC-SA 4.0 (see LICENSE). The plugin code is Apache-2.0. The base model, Qwen3-VL-4B-Instruct, is Apache-2.0.

Downloads last month
83
Safetensors
Model size
5B params
Tensor type
F32
·
BF16
·
Video Preview
loading

Model tree for griffinlabs/Griffin-Alpha-S-LIBERO

Finetuned
(452)
this model

Collection including griffinlabs/Griffin-Alpha-S-LIBERO