alt.freeweights.olmo / MolmoAct2-LIBERO-LeRobot
From: allenai <huggingface.co/allenai>Newsgroups: alt.freeweights.olmoSubject:

MolmoAct2-LIBERO-LeRobot

Date: 2026-11-14Commit: f0c5a95Signed: 2DC28CC7B26A283B ✓

Robotics model with 5.4B parameters. Safetensors weights, 10.9 GB in all. Published by allenai under Apache-2.0.

5.4B params10.9GBMolmoAct2-LIBERO-LeRobotsafetensorspermissive
FactsParams5.4BSize10.9 GBFormatssafetensorsTaskroboticsLicenseApache-2.0From sourcepermissive
$ fw get allenai/MolmoAct2-LIBERO-LeRobot
# manifest sha256 3b7a3f6ef4ea… · 10.9 GB · 9 files
$ fw verify ./MolmoAct2-LIBERO-LeRobot allenai/MolmoAct2-LIBERO-LeRobot
From sourceHosted (signed)allenai/MolmoAct2-LIBERO-LeRobotLast check: 2026-11-14 21:13 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Works with

Runs with

Ranked by fit to this model (safetensors), then by GitHub stars.

Overview

Size
10.9 GB
Weights
10.9 GB (safetensors)
Parameters
5.4B
Formats
safetensors
Task
robotics
License
Apache-2.0 (permissive)
Files
9, each with a sha256
Publisher
allenai
Added
2026-11-14
Section
alt.freeweights.olmo
Lineage

Original release from the publisher.

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-14 21:13 UTCpassed

Model card

From the publisher at commit f0c5a95. Shown as plain text with links; images open at the publisher.

MolmoAct2-LIBERO (LeRobot)#

This MolmoAct2 checkpoint is the LeRobot version of MolmoAct2-LIBERO, fine-tuned and evaluated on LIBERO tasks.

This checkpoint was fine-tuned from allenai/MolmoAct2-LIBERO for an additional 10k steps on allenai/MolmoAct2-LIBERO-Dataset with per-GPU batch size 32 on 8 H100 GPUs.

Original paper: MolmoAct2: Action Reasoning Models for Real-world Deployment Reference implementation: https://github.com/allenai/molmoact2 LeRobot policy: lerobot.policies.molmoact2

Model Description#

  • Inputs: multi-view RGB images, robot state, and language instruction
  • Outputs: continuous robot actions for LIBERO
  • Training objective: flow matching and discrete action-token losses
  • Action representation: continuous inference from the flow-matching action expert
  • Base checkpoint: allenai/MolmoAct2-LIBERO
  • Fine-tuning dataset: allenai/MolmoAct2-LIBERO-Dataset
  • Intended use: LeRobot checkpoint for LIBERO evaluation and as a starting point for fine-tuning MolmoAct2 on related robot datasets

This LeRobot checkpoint restores the policy config, model weights, preprocessor, postprocessor, and normalization statistics through policy.path.

Results#

BenchmarkLeRobot ImplementationMolmoAct2 Original
LIBERO Spatial98.4%97.8%
LIBERO Object100.0%100.0%
LIBERO Goal98.0%97.8%
LIBERO 1096.6%93.2%
Average98.25%97.20%

These results use continuous action inference with per-episode seeding.

Quick Start#

Installation#

Install a LeRobot version that includes the MolmoAct2 policy:

pip install "lerobot[molmoact2,libero] @ git+https://github.com/huggingface/lerobot.git"

For full LeRobot installation details, see the official documentation: https://huggingface.co/docs/lerobot/installation

Load Model and Run select_action#
import torch
from lerobot.datasets.lerobot_dataset import LeRobotDataset
from lerobot.policies.factory import make_pre_post_processors
from lerobot.policies.molmoact2 import MolmoAct2Policy

model_id = "allenai/MolmoAct2-LIBERO-LeRobot"
dataset_id = "allenai/MolmoAct2-LIBERO-Dataset"
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

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

preprocess, postprocess = make_pre_post_processors(
    policy.config,
    model_id,
    preprocessor_overrides={"device_processor": {"device": str(device)}},
)

dataset = LeRobotDataset(dataset_id)
frame = dict(dataset[0])

batch = preprocess(frame)
with torch.inference_mode():
    action = policy.select_action(batch, inference_action_mode="continuous")
    action = postprocess(action)

Training Step#

For fine-tuning, MolmoAct2 follows the standard LeRobot policy API. A training batch should include the observation keys, state, task text, and action chunk prepared by the LeRobot dataloader and MolmoAct2 preprocessor.

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

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

Use lerobot-train for full training loops, checkpointing, logging, and distributed execution.

Fine-Tuning#

To continue fine-tuning this LeRobot checkpoint on LIBERO:

accelerate launch \
  --num_processes=8 \
  --mixed_precision=bf16 \
  -m lerobot.scripts.lerobot_train \
  --dataset.repo_id=allenai/MolmoAct2-LIBERO-Dataset \
  --dataset.root=/path/to/lerobot/data/allenai/MolmoAct2-LIBERO-Dataset \
  --dataset.video_backend=pyav \
  --dataset.image_transforms.enable=true \
  --policy.path=allenai/MolmoAct2-LIBERO-LeRobot \
  --policy.device=cuda \
  --policy.action_mode=both \
  --policy.chunk_size=10 \
  --policy.n_action_steps=10 \
  --policy.model_dtype=bfloat16 \
  --policy.num_flow_timesteps=8 \
  --policy.gradient_checkpointing=true \
  --wandb.enable=false \
  --job_name=<job_name> \
  --output_dir=outputs/<job_name> \
  --steps=10000 \
  --batch_size=32 \
  --num_workers=4 \
  --log_freq=20 \
  --eval_freq=-1 \
  --save_checkpoint=true \
  --save_freq=2000

Common MolmoAct2 options:

  • policy.action_mode=both trains continuous flow matching and discrete action tokens.
  • policy.inference_action_mode=continuous selects the continuous action head for rollout.
  • policy.chunk_size=10 is the LIBERO action horizon used by this checkpoint.
  • policy.n_action_steps=10 consumes the full predicted LIBERO action chunk.
  • policy.model_dtype=bfloat16 is recommended for GPU training.
  • policy.num_flow_timesteps=8 matches the MolmoAct2 fine-tuning setup.
  • policy.gradient_checkpointing=true reduces activation memory.

When using policy.path, the saved LeRobot processor is restored from this checkpoint. That means LIBERO-specific prompt and input settings such as setup_type, control_mode, image_keys, and normalization statistics are loaded from the checkpoint rather than supplied in the command above. This is the recommended path for continuing LIBERO fine-tuning.

Set --wandb.enable=true and provide --wandb.entity and --wandb.project if you want to log the run to Weights & Biases.

For a different robot setup, control space, or camera layout, initialize from an original MolmoAct2 checkpoint with policy.checkpoint_path and explicitly set the corresponding policy fields while creating a new LeRobot checkpoint.

Evaluate in Simulation#

You can evaluate this checkpoint in LIBERO with lerobot-eval:

export MUJOCO_GL=egl
export PYOPENGL_PLATFORM=egl
export OMP_NUM_THREADS=1
export MKL_NUM_THREADS=1

lerobot-eval \
  --policy.path=allenai/MolmoAct2-LIBERO-LeRobot \
  --policy.inference_action_mode=continuous \
  --policy.model_dtype=bfloat16 \
  --policy.use_amp=true \
  --policy.enable_inference_cuda_graph=true \
  --policy.device=cuda \
  --policy.per_episode_seed=true \
  --policy.eval_seed=1000 \
  --env.type=libero \
  --env.task=libero_10,libero_goal,libero_object,libero_spatial \
  --env.camera_name_mapping='{"agentview_image":"image","robot0_eye_in_hand_image":"wrist_image"}' \
  --eval.batch_size=1 \
  --eval.n_episodes=50 \
  --seed=1000

Notes#

  • This checkpoint is saved in LeRobot format. Use policy.path, not policy.checkpoint_path, when you want to evaluate it or continue LIBERO fine-tuning with the saved processor.
  • The reported LIBERO numbers use continuous inference.
  • The checkpoint was trained with policy.action_mode=both, so discrete action inference is also supported by the model, but the reported LIBERO results use policy.inference_action_mode=continuous.
  • Released MolmoAct2 checkpoints have a fixed maximum action dimension of 32. Padded dimensions are masked in the flow loss.

Citation#

@misc{fang2026molmoact2actionreasoningmodels,
      title={MolmoAct2: Action Reasoning Models for Real-world Deployment},
      author={Haoquan Fang and Jiafei Duan and Donovan Clay and Sam Wang and Shuo Liu and Weikai Huang and Xiang Fan and Wei-Chuan Tsai and Shirui Chen and Yi Ru Wang and Shanli Xing and Jaemin Cho and Jae Sung Park and Ainaz Eftekhar and Peter Sushko and Karen Farley and Angad Wadhwa and Cole Harrison and Winson Han and Ying-Chun Lee and Eli VanderBilt and Rose Hendrix and Suveen Ellawela and Lucas Ngoo and Joyce Chai and Zhongzheng Ren and Ali Farhadi and Dieter Fox and Ranjay Krishna},
      year={2026},
      eprint={2605.02881},
      archivePrefix={arXiv},
      primaryClass={cs.RO},
      url={https://arxiv.org/abs/2605.02881},
}

License#

This model is licensed under Apache 2.0. It is intended for research and educational use in accordance with Ai2's Responsible Use Guidelines: https://allenai.org/responsible-use

Files

9 files · 10.9 GBWeights 10.9 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 9 files with their sha256
FileSizesha256
.gitattributes1.52 KB11ad7efa24975ee4b0c3c3a38ed18737f0658a5f75a0a96787b576a78a023361
README.md8.19 KBc8857fc50e12d1902f19eecfd01bf77cce20ea3c2c8d397665fd44818bc3a55e
config.json3.66 KB2d65a19d7cc3859fbb49709a34a2fbc1ea68893775195771bedea82aa267b5fe
model.safetensors10.9 GB4bc4cae246588dddfb558c3e082db4a1e0e21ac25b3aefc5e4d91068b845e8cf
policy_postprocessor.json757 Bc74038e87302ec0f9eea2998f873c29e1eefdf66f52f191451a34dbb60444fb1
policy_postprocessor_step_1_molmoact2_masked_unnormalizer.safetensors5.06 KBa20b5ab0598507d3a736bc78925dde64c14748440a56df1112b049d55c54c4f6
policy_preprocessor.json2.99 KB3f5331c768c85f78b95fb0b22fa39a4aef11f75cca88c57c019ecf88f0a13456
policy_preprocessor_step_2_molmoact2_masked_normalizer.safetensors5.06 KBa20b5ab0598507d3a736bc78925dde64c14748440a56df1112b049d55c54c4f6
train_config.json8.27 KB978a12f01c44c83d81741cc884f7a82109273ad692c1a0c0f68aae61424bd12d
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
f0c5a9567c pinned now manifest updated, same commit2026-11-14 21:13 UTC9 files · 10.9 GB
f0c5a9567c2026-11-14 21:13 UTC9 files · 10.9 GB

Use it

$ fw get allenai/MolmoAct2-LIBERO-LeRobot
# manifest sha256 3b7a3f6ef4ea… · 10.9 GB · 9 files
$ fw verify ./MolmoAct2-LIBERO-LeRobot allenai/MolmoAct2-LIBERO-LeRobot
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/allenai/MolmoAct2-LIBERO-LeRobot.json --dir ./MolmoAct2-LIBERO-LeRobot $ python3 fw.py verify ./MolmoAct2-LIBERO-LeRobot ./allenai__MolmoAct2-LIBERO-LeRobot.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download allenai/MolmoAct2-LIBERO-LeRobot --revision f0c5a9567c2b72faadec901e16e055c8b098c2f5 --local-dir ./MolmoAct2-LIBERO-LeRobot

License

Name
Apache License 2.0
Id
Apache-2.0
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-14
Text in
README.md
Text sha256
c8857fc50e12d1902f19eecfd01bf77cce20ea3c2c8d397665fd44818bc3a55e
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: allenai <huggingface.co/allenai>Newsgroups: alt.freeweights.olmoSubject: MolmoAct2-LIBERO-LeRobotDate: 2026-11-14Commit: f0c5a95Signed: 2DC28CC7B26A283B ✓
Upstream
allenai/MolmoAct2-LIBERO-LeRobot
Pinned commit
f0c5a9567c2b72faadec901e16e055c8b098c2f5
Manifest
MolmoAct2-LIBERO-LeRobot.json · .minisig
Manifest sha256
3b7a3f6ef4eaefe835948e11cb2baf66931c3106e5de1a9ac3a04446e5323787
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-14 21:13 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/allenai/MolmoAct2-LIBERO-LeRobot.json $ curl -O https://freeweights.allternit.com/manifests/allenai/MolmoAct2-LIBERO-LeRobot.json.minisig $ minisign -Vm MolmoAct2-LIBERO-LeRobot.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

No related models in this catalog.Nothing here lists this model as its parent, and it names no parent.
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download allenai/MolmoAct2-LIBERO-LeRobot
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. MolmoAct2-LIBERO-LeRobot.json. Provenance. Takedown history: none.
From: bartowski <huggingface.co/bartowski>Subject: allenai_Olmo-3-7B-Instruct-GGUF
From: bartowski <huggingface.co/bartowski>Subject: allenai_Olmo-3-7B-Think-GGUF
From: bartowski <huggingface.co/bartowski>Subject: allenai_Olmo-3.1-32B-Instruct-GGUF
From: bartowski <huggingface.co/bartowski>Subject: allenai_Olmo-3.1-32B-Think-GGUF
From: bartowski <huggingface.co/bartowski>Subject: allenai_olmOCR-2-7B-1025-GGUF
From: bartowski <huggingface.co/bartowski>Subject: allenai_olmOCR-7B-0225-preview-GGUF