# LaWAM

`lawam` adalah adapter LeRobot untuk [LaWAM](https://github.com/RLinf/LaWAM), sebuah model aksi dunia laten untuk kebijakan robot yang sadar dinamika. Model ini menggabungkan backbone Qwen3-VL, model aksi/dunia laten, dan kepala aksi flow-matching, sambil mengekspos antarmuka kebijakan, pelatihan, dan evaluasi standar LeRobot.

Sumber daya:

| Sumber daya           | Tautan                                                                                                         | Digunakan untuk                              |
| ------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------- |
| Halaman proyek       | [rlinf.github.io/LaWAM](https://rlinf.github.io/LaWAM/)                                                      | Ikhtisar metode                       |
| Makalah              | [arXiv:2606.15768](https://arxiv.org/abs/2606.15768)                                                         | Detail sitasi dan metode           |
| Kode               | [RLinf/LaWAM](https://github.com/RLinf/LaWAM)                                                                | Kode pelatihan dan evaluasi asli |
| Pretraining native | [lawam-pretrain-lerobot](https://huggingface.co/jialei02/lawam-pretrain-lerobot)                             | Inisialisasi fine-tuning LeRobot    |
| SFT LIBERO Native  | [lawam-libero-sft-lerobot](https://huggingface.co/jialei02/lawam-libero-sft-lerobot)                         | Evaluasi LIBERO                     |
| Checkpoint sumber | [lawam-checkpoints](https://huggingface.co/collections/jialei02/lawam-checkpoints)                           | Artefak rilis asli LaWAM      |
| Dataset LIBERO     | [jialei02/libero_merged_no_noops_20hz](https://huggingface.co/datasets/jialei02/libero_merged_no_noops_20hz) | LIBERO SFT                            |

## Instalasi

Instal LeRobot dengan ekstra LaWAM:

```bash
pip install -e ".[lawam]"
```

Instal dependensi benchmark LIBERO dan kunci MuJoCo ke 3.3.2 saat mereproduksi evaluasi LaWAM LIBERO yang dirilis:

```bash
pip install -e ".[lawam,libero]" "mujoco==3.3.2"
```

Tingkat keberhasilan benchmark LIBERO sangat sensitif terhadap versi simulator MuJoCo. Rilis MuJoCo yang lebih baru dapat secara signifikan menurunkan tingkat keberhasilan LIBERO yang terukur, termasuk untuk kebijakan di luar LaWAM. Ini adalah masalah kompatibilitas lingkungan evaluasi, bukan masalah adapter LaWAM. Gunakan `mujoco==3.3.2` untuk mereproduksi hasil LIBERO LaWAM yang dirilis dan hasil paper secara persis.

Checkpoint LaWAM menggunakan format `model.safetensors` native dari LeRobot. State lengkap LAM, adapter VLM, dan flow-head dipulihkan melalui `policy.path`; file `.pt` asli LaWAM tidak dimuat oleh adapter. Arsitektur LAM dan DINOv3 direpresentasikan secara langsung oleh `LaWAMConfig` dan tidak memerlukan unduhan checkpoint terpisah.

Jaga agar `policy.base_vlm` tetap diatur ke ID model Hub portabel. Pengaturan cache standar Hugging Face, seperti `HF_HOME`, mengontrol di mana file Qwen disimpan secara lokal tanpa menambahkan jalur yang spesifik untuk mesin tertentu ke konfigurasi policy atau processor.

## Fine-Tuning

Lakukan fine-tune dari kebijakan LaWAM pretrained asli:

```bash
lerobot-train \
  --policy.path=jialei02/lawam-pretrain-lerobot \
  --dataset.repo_id=jialei02/libero_merged_no_noops_20hz \
  --dataset.image_transforms.enable=false \
  --rename_map='{"observation.images.wrist_image":"observation.images.image2"}' \
  --policy.action_horizon=8 \
  --policy.n_action_steps=8 \
  --policy.clip_normalized_actions=true \
  --policy.pre_snap_gripper_action=true \
  --policy.binarize_gripper_action=true \
  --policy.repo_id=your_org/lawam_sft
```

Adapter menggunakan statistik dataset LeRobot untuk normalisasi aksi dan keadaan sebelum membangun batch pelatihan LaWAM. Aksi pose menggunakan normalisasi min-max, sementara resep LIBERO secara eksplisit membulatkan kanal gripper ke nilai biner `0/1` untuk sesuai dengan kontrak pelatihan LaWAM native. Hal ini memetakan kedua konvensi dataset `-1/+1` dan `0/1` ke target model yang sama. Checkpoint pretrained mempertahankan nilai pretraining-nya, yaitu `action_horizon=24` dan `n_action_steps=24`; resep SFT LIBERO menimpa keduanya menjadi `8` sambil mempertahankan `chunk_size=50` sebagai panjang urutan Flow yang di-pad. Pelatihan menggunakan FPS dataset saat ini untuk enkoding waktu alami LaWAM, dan processor mempersistensikan frekuensi tersebut sebagai fallback evaluasi. `policy.num_video_frames` mengontrol jendela frame observasi.

Resep pretraining LaWAM dan SFT LIBERO yang dirilis tidak menggunakan augmentasi gambar acak. Prosesor kebijakan hanya menerapkan resize deterministik dan normalisasi ImageNet yang diperlukan oleh backbone Qwen dan LAM. Transformasi gambar pada level dataset dari LeRobot tetap tersedia untuk resep pelatihan yang dirancang secara terpisah.

Checkpoint LaWAM yang dirilis menggunakan ruang aksi/keadaan bantalan 32 dimensi secara internal. Pertahankan `policy.flow_action_dim=32` dan `policy.flow_state_dim=32` kecuali Anda melatih checkpoint dengan dimensi aliran yang berbeda.

## Evaluasi

Evaluasi checkpoint SFT LIBERO asli melalui evaluator standar:

```bash
lerobot-eval \
  --policy.path=jialei02/lawam-libero-sft-lerobot \
  --env.type=libero \
  --env.task=libero_object \
  --eval.n_episodes=10
```

Repositori Hub mencakup konfigurasi kebijakan serta pipeline preprocessor dan postprocessor lengkap, termasuk tensor normalisasi dan pemrosesan gripper LIBERO.

Untuk menjalankan benchmark LIBERO yang dapat direproduksi dengan checkpoint LIBERO SFT yang dirilis, evaluasi semua suite dan ID tugas dalam satu pemanggilan:

```bash
lerobot-eval \
  --policy.path=jialei02/lawam-libero-sft-lerobot \
  --policy.device=cuda \
  --env.type=libero \
  --env.task=libero_spatial,libero_object,libero_goal,libero_10 \
  --env.task_ids='[0,1,2,3,4,5,6,7,8,9]' \
  --eval.n_episodes=50 \
  --output_dir=outputs/lawam_libero
```

Laporkan tingkat keberhasilan untuk semua 10 tugas di setiap suite. Gunakan setidaknya 50 episode per tugas saat melaporkan angka benchmark.

Hasil referensi untuk checkpoint LIBERO SFT yang dirilis dengan 50 episode per tugas. Angka-angka ini dihasilkan dengan MuJoCo 3.3.2. Sebagai pemeriksaan lingkungan, tugas 5 `libero_spatial` meningkat dari 18/50 keberhasilan dengan MuJoCo 3.8.1 menjadi 47/50 keberhasilan dengan MuJoCo 3.3.2.

| Suite            | Keberhasilan | Episode | Tingkat keberhasilan |
| ---------------- | --------: | -------: | -----------: |
| `libero_spatial` |       492 |      500 |        98.4% |
| `libero_object`  |       498 |      500 |        99.6% |
| `libero_goal`    |       490 |      500 |        98.0% |
| `libero_10`      |       490 |      500 |        98.0% |
| `overall`        |      1970 |     2000 |        98.5% |

## Pemilihan Kamera

Checkpoint LaWAM menyimpan peran kamera utama dan pergelangan tangan secara eksplisit, bukan dengan menginferensi semantik dari nama seperti `image2`. Saat membangun kebijakan LaWAM multi-kamera baru, konfigurasikan kedua peran tersebut:

```bash
--policy.primary_image_features='["observation.images.front"]' \
--policy.wrist_image_features='["observation.images.wrist"]'
```

`policy.lam_image_feature` memilih kamera utama yang frame temporalnya dikonsumsi oleh model aksi laten. Nilainya secara default adalah kamera utama pertama yang dikonfigurasi dan ditulis secara eksplisit saat konfigurasi policy disimpan.

## Bidang Runtime

Bidang kebijakan spesifik LaWAM yang umum:

| Bidang             | Deskripsi                                                                |
| ----------------- | -------------------------------------------------------------------------- |
| `base_vlm`        | ID model Hub Qwen/Qwen3-VL portabel yang disimpan dalam konfigurasi kebijakan yang dipublikasikan. |
| `action_horizon`  | Jumlah aksi yang diprediksi per chunk, hingga `chunk_size`.                 |
| `flow_action_dim` | Dimensi aksi bantalan internal yang digunakan oleh kepala aliran LaWAM.              |
| `flow_state_dim`  | Dimensi state bantalan internal yang digunakan oleh kepala aliran LaWAM.               |
| `embodiment_id`   | ID embodiment LaWAM yang digunakan ketika dataset LeRobot tidak menyediakannya.    |

## Sitasi

```bibtex
@misc{chen2026lawam,
  title = {LaWAM: Latent World Action Models for Efficient Dynamics-Aware Robot Policies},
  author = {Chen, Jialei and Wang, Kai and Chen, Kang and Chen, Shuaihang and Gao, Feng and Tang, Wenhao and Li, Zhiyuan and Liu, Weilin and Yao, Zhuyu and Li, Boxun and Xu, Yuanbo and Yu, Chao},
  journal = {arXiv preprint arXiv:2606.15768},
  year = {2026},
  archiveprefix = {arXiv},
  primaryclass = {cs.RO},
}
```

