Views
No views yet
1AHA-WAM-Pretrained/
2├── README.md
3├── config.json
4├── AHA-WAM-pretrained.pt
5└── Fast-WAM-pretrained.ptconfig.json: checkpoint manifest and Hugging Face download-count query file.AHA-WAM-pretrained.pt: AHA-WAM checkpoint pretrained on a RoboCOIN subset.Fast-WAM-pretrained.pt: Fast-WAM checkpoint pretrained on the same
RoboCOIN subset using our reproduction implementation.| File | Size |
|---|---|
AHA-WAM-pretrained.pt | 13.7 GiB |
Fast-WAM-pretrained.pt | 11.2 GiB |
action_video_freq_ratio=8transformers.from_pretrained() checkpoints.Fast-WAM-pretrained.pt is provided for reference and convenience.
It is our reproduction version of Fast-WAM within this codebase. For a fair
method comparison against the original Fast-WAM, please control all variables
carefully and reproduce the original method under matched data, preprocessing,
architecture, training schedule, inference settings, and evaluation protocol.1git clone https://github.com/serene-sivy/AHA-WAM.git
2cd AHA-WAM
3
4conda create -n ahawam python=3.10 -y
5conda activate ahawam
6pip install -U pip setuptools wheel
7pip install torch==2.7.1+cu128 torchvision==0.22.1+cu128 \
8 --extra-index-url https://download.pytorch.org/whl/cu128
9pip install -e .export DIFFSYNTH_MODEL_BASE_PATH=/path/to/wan_modelshuggingface_hub. Download config.json together with the checkpoints so
the Hub can count downloads server-side using the repository's query file:1from huggingface_hub import hf_hub_download
2
3repo_id = "SereneC/AHA-WAM-Pretrained"
4
5manifest = hf_hub_download(
6 repo_id=repo_id,
7 filename="config.json",
8 local_dir="checkpoints/AHA-WAM-Pretrained",
9)
10aha_ckpt = hf_hub_download(
11 repo_id=repo_id,
12 filename="AHA-WAM-pretrained.pt",
13 local_dir="checkpoints/AHA-WAM-Pretrained",
14)
15fastwam_ckpt = hf_hub_download(
16 repo_id=repo_id,
17 filename="Fast-WAM-pretrained.pt",
18 local_dir="checkpoints/AHA-WAM-Pretrained",
19)
20
21print("Manifest:", manifest)
22print("AHA-WAM:", aha_ckpt)
23print("Fast-WAM:", fastwam_ckpt)1hf download SereneC/AHA-WAM-Pretrained \
2 config.json AHA-WAM-pretrained.pt Fast-WAM-pretrained.pt \
3 --local-dir checkpoints/AHA-WAM-Pretrainedinit_checkpoint field. For example, to fine-tune AHA-WAM:1bash scripts/train_zero1.sh 8 \
2 task=robotwin_ahawam \
3 model=ahawam \
4 init_checkpoint=checkpoints/AHA-WAM-Pretrained/AHA-WAM-pretrained.pt1bash scripts/train_zero1.sh 8 \
2 task=robotwin_ahawam \
3 model=fastwam \
4 init_checkpoint=checkpoints/AHA-WAM-Pretrained/Fast-WAM-pretrained.pttask=robotwin_ahawam with your downstream real-robot task config and
make sure the processor, action/state dimensions, camera layout, normalization
statistics, and language instruction format match your data.load_checkpoint().1import sys
2from pathlib import Path
3
4import torch
5from hydra import compose, initialize_config_dir
6from hydra.core.global_hydra import GlobalHydra
7from hydra.utils import instantiate
8
9PROJECT_ROOT = Path("/path/to/AHA-WAM").resolve()
10sys.path.insert(0, str(PROJECT_ROOT))
11sys.path.insert(0, str(PROJECT_ROOT / "src"))
12
13ckpt_path = PROJECT_ROOT / "checkpoints/AHA-WAM-Pretrained/AHA-WAM-pretrained.pt"
14
15if GlobalHydra.instance().is_initialized():
16 GlobalHydra.instance().clear()
17
18with initialize_config_dir(version_base="1.3", config_dir=str(PROJECT_ROOT / "configs")):
19 cfg = compose(
20 config_name="deploy",
21 overrides=[
22 "model=ahawam",
23 "model.load_text_encoder=true",
24 "model.skip_dit_load_from_pretrain=true",
25 "model.action_dit_pretrained_path=null",
26 ],
27 )
28
29model = instantiate(cfg.model, model_dtype=torch.bfloat16, device="cuda")
30model.load_checkpoint(str(ckpt_path))
31model = model.cuda().eval()1import sys
2from pathlib import Path
3
4import torch
5from hydra import compose, initialize_config_dir
6from hydra.core.global_hydra import GlobalHydra
7from hydra.utils import instantiate
8
9PROJECT_ROOT = Path("/path/to/AHA-WAM").resolve()
10sys.path.insert(0, str(PROJECT_ROOT))
11sys.path.insert(0, str(PROJECT_ROOT / "src"))
12
13ckpt_path = PROJECT_ROOT / "checkpoints/AHA-WAM-Pretrained/Fast-WAM-pretrained.pt"
14
15if GlobalHydra.instance().is_initialized():
16 GlobalHydra.instance().clear()
17
18with initialize_config_dir(version_base="1.3", config_dir=str(PROJECT_ROOT / "configs")):
19 cfg = compose(
20 config_name="deploy",
21 overrides=[
22 "model=fastwam",
23 "model.load_text_encoder=true",
24 "model.skip_dit_load_from_pretrain=true",
25 "model.action_dit_pretrained_path=null",
26 ],
27 )
28
29model = instantiate(cfg.model, model_dtype=torch.bfloat16, device="cuda")
30model.load_checkpoint(str(ckpt_path))
31model = model.cuda().eval()1deploy/
2├── deploy_example.yml
3├── server/wam_policy_server.py
4└── client/wam_remote_client_node.pycp deploy/deploy_example.yml deploy/deploy.yml1checkpoint_path: checkpoints/AHA-WAM-Pretrained/AHA-WAM-pretrained.pt
2dataset_stats_path: /path/to/your/downstream_dataset_stats.json
3project_root: .
4hydra_config_name: deploy
5task: your_downstream_taskdataset_stats_path should match the downstream real-robot data used for
fine-tuning or deployment. This repository only provides pretrained weights; it
does not define a universal normalization file for every robot setup.1@article{cai2026ahawam,
2 title={AHA-WAM: Asynchronous Horizon-Adaptive World-Action Modeling with Observation-Guided Context Routing},
3 author={Cai, Jisong and Ling, Long and Chu, Shiwei and Liu, Zhongshan and Kang, Jiayue and Liang, Zhixuan and Xu, Wenjie and Mao, Yinan and Zhang, Weinan and Yang, Xiaokang and Ying, Ru and Zheng, Ran and Mu, Yao},
4 journal={arXiv preprint arXiv:2606.09811},
5 year={2026}
6}