Skip to content

Add MolmoAct2 (LIBERO) - #81

Merged
khanhnd61-vr merged 7 commits into
mainfrom
feat/molmoact2
Nov 10, 2026
Merged

khanhnd61-vr merged 7 commits into
mainfrom
feat/molmoact2

Conversation

@khanhnd61-vr

Copy link
Copy Markdown
Collaborator

Ports allenai/MolmoAct2-LIBERO as a hand-written arch, following GR00T / π0.5. GGUF: vrfai/molmoact2-libero-gguf.

Changes

  • src/models/molmoact2.cpp: SigLIP tower + 2×2 attention pooling, Qwen3-style LM, flow-matching expert that cross-attends to each LM layer's K/V. Reuses EncStack and Qwen3LM.
  • src/modules/qwen3_lm.*: optional Qwen3KV* out-param on block() to return each layer's K/V. Off by default; GR00T N1.7 and VLA-JEPA outputs are unchanged.
  • scripts/convert_molmoact2_to_gguf.py: fp32 checkpoint → bf16 GGUF.
  • Client: eval/client/molmoact2_prompt.py builds the prompt (task, binned state, image slots). Used by vla_cpp_client.py, tokenize_prompt.py and run_libero.sh -m molmoact2.
  • README: MolmoAct2 replaces ACT in the support matrix and acknowledgements.

Verification

Max |Δ| of the action chunk vs fp32 PyTorch:

bf16 (default) --weight-dtype f16 --flash-attn
CPU 1.7e-3
CUDA (RTX 3060) 1.4e-3 (446 ms) 9.2e-4 (328 ms)
Metal (M4) 5.6e-4
  • f32 weights vs the bf16-rounded reference: 7.7e-6.
  • LIBERO smoke (task 0 of each suite, 3 episodes): 12/12.
  • ctest passes.

@khanhnd61-vr
khanhnd61-vr merged commit 28b6653 into main Nov 10, 2026
7 checks passed
@khanhnd61-vr
khanhnd61-vr deleted the feat/molmoact2 branch November 10, 2026 06:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant