VnRobo
Về chúng tôiBảng giáBlogLiên hệ
🇺🇸ENĐăng nhậpDùng thử miễn phí
🇺🇸EN
VnRobo logo

Hạ tầng AI cho robot công nghiệp thế hệ mới.

Sản phẩm

  • Tính năng
  • Bảng giá
  • Kiến thức
  • Dịch vụ

Công ty

  • Về chúng tôi
  • Blog
  • Liên hệ

Pháp lý

  • Chính sách bảo mật
  • Điều khoản sử dụng

© 2026 VnRobo. Bảo lưu mọi quyền.

Được tạo với♥tại Việt Nam
VnRobo
Về chúng tôiBảng giáBlogLiên hệ
🇺🇸ENĐăng nhậpDùng thử miễn phí
🇺🇸EN
  1. Trang chủ
  2. Blog
  3. WEAVER: world model cải thiện π0.5 VLA
wholebody-vlaweaverworld-modelpi0.5vlamanipulationopenpi

WEAVER: world model cải thiện π0.5 VLA

Hướng dẫn WEAVER: world model đa góc nhìn giúp đánh giá, fine-tune và steer π0.5 VLA manipulation nhanh hơn.

Nguyễn Anh Tuấn15 tháng 6, 202611 phút đọc
WEAVER: world model cải thiện π0.5 VLA

WEAVER giải quyết vấn đề gì?

WEAVER, tên đầy đủ là World Estimation Across Views for Embodied Reasoning, là paper arXiv 2606.13672 với tiêu đề WEAVER, Better, Faster, Longer: An Effective World Model for Robotic Manipulation. Project page nằm tại arnavkj1995.github.io/WEAVER và code chính thức ở arnavkj1995/WEAVER. Điểm đáng chú ý là WEAVER không cố thay thế π0.5. Nó đóng vai trò như một learned simulator cho manipulation: dự đoán tương lai của robot trong latent space, chấm reward/value cho các action chunk, rồi dùng kết quả đó để đánh giá, cải thiện hoặc steer policy.

Nếu bạn đã đọc VLA models trong robotics, Pi0-FAST training, hoặc RISE world model cho VLA-RL, pattern sẽ rất quen: VLA policy đã đủ mạnh để làm nhiều thao tác thật, nhưng vẫn dễ fail khi object lệch khỏi distribution, gripper che mất vật, hoặc task cần nhiều bước liên tục. π0.5 là một robot foundation policy mạnh, nhưng bản thân policy không tự biết trước action nào sẽ dẫn tới thất bại. WEAVER thêm một lớp "imagination" phía trước execution: lấy observation hiện tại, ngôn ngữ task và nhiều action candidates, tưởng tượng outcome, rồi chọn hoặc distill action tốt hơn.

Khuyến nghị công cụ

Stack train/deploy cho VLA

Train trên cloud/workstation, deploy bản tối ưu xuống Jetson hoặc robot computer.

Cloud GPU for VLA / policy training Dùng cho imitation learning, diffusion policy, RL và fine-tuning model robotics. Xem cloud GPU → NVIDIA Jetson Orin NX / Orin Nano Máy deploy edge cho perception, logging và inference đã tối ưu. Xem Jetson → Hugging Face / robotics dataset hosting Lưu dataset, checkpoint và model card để workflow LeRobot/VLA dễ chia sẻ hơn. Xem platform →

Paper đặt ra ba tiêu chí cho world model trong robotics. Thứ nhất là fidelity: rollout mô phỏng phải tương quan với kết quả thật, không chỉ đẹp mắt. Thứ hai là consistency: dự đoán phải giữ coherent qua horizon dài, nhất là khi wrist camera xoay, object bị che, towel/bag biến dạng hoặc hạt đậu rơi khỏi cốc. Thứ ba là efficiency: inference phải đủ nhanh để dùng cho planning tại test time. WEAVER báo cáo correlation ρ = 0.870 với success rate thật trong policy evaluation sau finetune, cải thiện success rate 38% khi fine-tune π0.5 bằng real + synthetic data, và tăng 14% success rate trong test-time planning với tốc độ nhanh hơn prior WMs khoảng 5-10x.

Tổng quan WEAVER cho policy evaluation, improvement và planning — nguồn: project page WEAVER
Tổng quan WEAVER cho policy evaluation, improvement và planning — nguồn: project page WEAVER

Ý tưởng paper theo cách dễ hiểu

Hãy tưởng tượng bạn có một π0.5 policy đang điều khiển Franka Panda. Mỗi lần policy nhận camera images và instruction như "put the towel into the basket", nó xuất ra một action chunk. Cách baseline thông thường là execute chunk đó ngay trên robot thật. Nếu chunk sai, robot làm hỏng bước hiện tại và bạn chỉ biết sau khi đã tốn một rollout.

WEAVER thay quy trình đó bằng vòng lặp:

multi-view observation + proprioception + instruction
        |
        v
π0.5 samples several candidate action chunks
        |
        v
WEAVER imagines future latents for each chunk
        |
        v
reward head + critic estimate advantage
        |
        v
choose best chunk, label policy data, or evaluate rollout

World model không cần decode mọi latent thành image ở mọi bước. Đây là điểm rất quan trọng. Nếu cứ generate video rồi đưa từng frame vào VLM judge, latency sẽ quá cao. WEAVER giữ phần scoring trong latent space: reward head đo progress của task, critic ước lượng return còn lại sau imagined horizon. Khi cần debug hoặc visualize, decoder mới biến latent thành multi-view images.

Với beginner, bạn có thể hiểu WEAVER là "simulator học từ data" nhưng thực tế hơn simulator cổ điển ở ba điểm. Nó không cần mesh/object physics chính xác cho từng vật. Nó học trực tiếp từ DROID và rollout thật. Nó chấm được action theo task language, không chỉ dự đoán pixel. Đổi lại, nó không phải simulator vật lý hoàn hảo: nếu camera không thấy contact, force hoặc object ở sau occlusion, model vẫn có thể đoán sai.

Kiến trúc WEAVER

WEAVER là một 928M parameter multi-view latent world model. Input chính gồm camera views, proprioceptive state, language instruction và action plan. Trong setup paper, robot dùng Franka Emika Panda, hai external Zed 2i cameras, một wrist-mounted Zed Mini, nhưng WEAVER và π0.5 chủ yếu dùng right external view và wrist view. Dữ liệu được downsample về 5 Hz cho imagination.

Các thành phần chính:

Thành phần Vai trò Ghi chú triển khai
SD3 VAE encoder/decoder Nén camera frames thành latent và decode khi cần visualization Mỗi view được encode thành patch tokens
Proprioception token Đưa joint/gripper state vào cùng token dimension Giúp contact-rich manipulation tốt hơn chỉ nhìn pixel
Sparse memory Lưu mỗi vài frame trong quá khứ xa Giữ context khi object ra khỏi FOV
Short-term history Lưu hai frame gần nhất Bắt motion và consequence của action gần đây
32-layer dynamics Transformer Dự đoán future latents conditioned on action tokens Dùng spatial attention + causal temporal attention
Reward head Chấm progress trong latent space Distill từ RoboMeter progress rewards
Critic head Ước lượng return sau imagined horizon Giúp chọn action chunk bằng advantage

Về training objective, WEAVER dùng flow matching để học vector field đưa noise về future latent thật. Thay vì tạo từng frame bằng diffusion schedule nặng, model học dự đoán velocity trong latent space. Paper còn dùng Diffusion Forcing, tức các future timesteps có noise level độc lập, giúp rollout dài coherent hơn. Để tăng tốc, WEAVER dùng SPRINT blocks để drop patch tokens, KV caching cho memory/history tokens trong denoising, cosine/power noise schedules, và ReFlow post-training để distill teacher nhiều bước thành student ít bước hơn.

FID/FVD theo thời gian inference H100: WEAVER so với Ctrl-World — nguồn: project page WEAVER
FID/FVD theo thời gian inference H100: WEAVER so với Ctrl-World — nguồn: project page WEAVER

Cài đặt repo

WEAVER là project research nặng GPU. Bạn có thể đọc code và chạy inference/evaluation với checkpoint release, nhưng training đầy đủ không phải workload cho laptop. Repo ghi rõ các launcher training dùng 4 H100 GPUs với distributed data parallelism. Nếu mục tiêu của bạn là học pipeline, hãy bắt đầu bằng checkpoint và dataset nhỏ trước.

Môi trường cơ bản:

git clone --recurse-submodules https://github.com/arnavkj1995/WEAVER.git
cd WEAVER
uv venv --python 3.11
source .venv/bin/activate
uv sync

Nếu cần logging hoặc dev tools:

uv sync --extra logging --extra dev

Tải model weights:

hf download arnavkj1995/WEAVER --local-dir checkpoints

Lệnh này tải các folder WEAVER, WEAVER-FT và WEAVER-ReFlow, mỗi folder có checkpoint.pt, config.yaml và norm_stats_relabel.json. Nếu muốn thử OOD evaluation data của paper:

git lfs install
git clone https://huggingface.co/datasets/yilin-wu/droid_ood_data

Nếu chỉ cần annotations và metadata để đọc cấu trúc:

from huggingface_hub import snapshot_download

local_dir = snapshot_download(
    repo_id="yilin-wu/droid_ood_data",
    repo_type="dataset",
    allow_patterns=["annotations/**", "annotation_rewards/**", "norm_stats*.json"],
)

Chuẩn bị dataset

WEAVER kỳ vọng dữ liệu kiểu DROID đã preprocess, gồm actions, robot states, language features, rewards, norm stats, videos hoặc SD3 latents. Với DROID raw:

python datasets/preprocess_droid.py \
  --data_root /path/to/raw_droid \
  --output_root /path/to/preprocessed_droid

Output quan trọng có dạng:

weaver_droid/
├── annotations/<split>/<trajectory_id>.json
├── videos/<split>/<trajectory_id>.mp4
├── latents/<split>/<trajectory_id>.npz
└── done/<split>/<trajectory_id>

Sau preprocess, tính normalization statistics:

python datasets/compute_norm_stats.py \
  --data_root /path/to/weaver_droid

Với rollout tự collect, repo cung cấp third_party/openpi/examples/droid/panda_log.py để chạy OpenPI policy server, log video + annotation JSON, rồi convert sang WEAVER format:

python -m datasets.preprocess_droid_ood \
  --input_roots /path/to/your/task_folder \
  --output_root /path/to/weaver_format_data \
  --data_type train \
  --tasks none

Một chi tiết beginner hay bỏ qua: reward labels không tự xuất hiện. WEAVER dùng RoboMeter để tạo reward_progress và reward_success, sau đó dataloader đọc annotation_rewards/<split>/. Nếu bạn train trên data riêng mà chưa label reward, reward head và critic sẽ không có supervision đúng.

Training WEAVER

Có ba mode chính. Pretrain học world model từ dataset lớn:

DATASET_PATH=/path/to/preprocessed_droid \
SCRATCH_DIR=/path/to/output/model_dir \
sbatch scripts/pretrain.sh

Finetune dùng checkpoint đã có rồi cập nhật trên task/robot setup riêng:

PRETRAINED_DIR=/path/to/pretrained/logs/chkpts \
DATASET_PATH=/path/to/finetune_data \
EXP_NAME=weaver_finetune \
FINETUNE_SUFFIX=finetune \
sbatch scripts/finetune.sh

ReFlow post-training giảm số denoising steps để planning nhanh hơn:

PRETRAINED_DIR=/path/to/teacher/logs/chkpts \
PRETRAINED_CKPT_NAME=checkpoint.pt \
DATASET_PATH=/path/to/preprocessed_droid \
EXP_NAME=weaver_reflow \
FINETUNE_SUFFIX=reflow \
sbatch scripts/reflow.sh

Trong paper, model được pretrain trên DROID 1M steps, batch size 32, batch length 8, memory frames 6, memory stride 5, AdamW, EMA 0.9999. Transformer có 32 layers, 16 heads, embedding dimension 1536, head dimension 96, SPRINT probability 0.5. Finetuning trên task data chạy 16k steps với learning rate thấp hơn. Đây là lý do bạn nên xem WEAVER như infrastructure cho lab/GPU cluster, không phải notebook demo nhẹ.

Reward prediction và advantage filtering trong WEAVER — nguồn: project page WEAVER
Reward prediction và advantage filtering trong WEAVER — nguồn: project page WEAVER

Inference và evaluation

Để generate rollout views:

python -m weaver.generate_views \
  --checkpoint /path/to/logs/chkpts \
  --output-dir /path/to/eval_output \
  --split val \
  --use-real-history \
  --overrides \
    dataset.path=/path/to/eval_dataset \
    model.val_steps=27 \
    eval_horizon=5 \
    eval_bootstrap=5 \
    inference.pyramid_stagger_width=1 \
    inference.pyramid_schedule=cosine

Các knobs quan trọng:

Tham số Ý nghĩa
model.val_steps Số flow denoising steps
eval_horizon Số future frames sinh trong mỗi chunk
eval_bootstrap Số generated frames feed back cho chunk kế tiếp
inference.pyramid_schedule linear, cosine, power, hoặc sigmoid
inference.pyramid_stagger_width Độ lệch schedule giữa các future frames

NFE hiệu dụng được tính là:

NFE = val_steps + eval_horizon * pyramid_stagger_width

Để compute FID/FVD/LPIPS:

EVAL_DIR=/path/to/eval_output \
sbatch scripts/compute_eval_metrics.sh

Trong Table 1 của paper, trên DROID validation, WEAVER NFE=16 đạt exterior FID 10.20 và FVD 27.83 trong 4.78 giây, trong khi Ctrl-World NFE=16 là FID 26.09, FVD 78.73 trong 14.65 giây. Trên OOD task data, WEAVER NFE=16 cũng tốt hơn Ctrl-World ở exterior FID/FVD và nhanh hơn. Điểm cần nhớ: wrist-camera vẫn khó hơn exterior view vì viewpoint thay đổi liên tục và bị occlusion nhiều.

Cải thiện π0.5 bằng synthetic data

Policy improvement là phần khiến WEAVER thú vị với người làm VLA. Pipeline trong README:

  1. Chạy OpenPI server với π0.5 trên GPU machine.
  2. Cho π0.5 sample nhiều candidate action chunks.
  3. WEAVER rollout từng candidate trong latent space.
  4. Reward head + critic tính advantage.
  5. Giữ segment tốt nhất nếu advantage vượt threshold.
  6. Convert synthetic data sang DROID layout, rồi sang LeRobot.
  7. Fine-tune π0.5 bằng real + synthetic data.

Command skeleton:

uv run scripts/serve_policy.py --env DROID --num-samples 5
synth_options=(
  CHECKPOINT=/path/to/chkpts
  DATASET_PATH=/path/to/dataset
  OUTPUT_DIR=/path/to/output
  NUM_TRAJECTORIES=1000
  NUM_SAMPLES=5
  NUM_CHUNKS=4
  OPEN_LOOP_HORIZON=9
  SELECTION_CRITERION=advantage
  PI_HOST=<server-ip>
  PI_PORT=8000
)

env "${synth_options[@]}" bash scripts/synth_data_gen.sh

Sau đó convert:

python third_party/openpi/examples/droid/convert_synthetic_data_to_droid.py \
  --input-dirs /path/to/synthetic_data_folder /path/to/real_data_folder \
  --output-dir ../data/data_mixed_droid_all \
  --tasks cup_task marker_task

python third_party/openpi/examples/droid/convert_synthetic_droid_data_to_lerobot.py \
  --data_dir ../data/data_mixed_droid_all \
  --repo_name your-hf-username/your-dataset-name

Cuối cùng fine-tune trong third_party/openpi:

uv run scripts/train.py pi05_droid_finetune_real_syn_adv \
  --exp-name=droid-20k-real-syn-finetune \
  --overwrite

Kết quả paper: fine-tune π0.5 bằng real + synthetic data sinh bởi WEAVER cho success rate mạnh nhất trong các task như Stack Bowls, PnP Bag, PnP Marker, PnP Towel và Pour Beans. Trung bình, WEAVER báo cáo cải thiện real-world success rate 38% trên nền π0.5. Qualitative appendix cũng ghi nhận policy sau fine-tune có motion mượt hơn, ít step quá lớn và grasp/place chính xác hơn.

Success rate policy finetuning với WEAVER synthetic data — nguồn: project page WEAVER
Success rate policy finetuning với WEAVER synthetic data — nguồn: project page WEAVER

Test-time steering

Nếu bạn không muốn train lại π0.5, WEAVER còn có mode test-time planning. Với mỗi observation hiện tại, policy sample N action chunks, WEAVER rollout từng chunk, reward/critic tính advantage, rồi robot execute chunk tốt nhất. README gọi script:

planning_options=(
  CHECKPOINT=/path/to/chkpts
  OUTPUT_DIR=/path/to/output
  TASK="stack the red block"
  NUM_SAMPLES=8
  OPEN_LOOP_HORIZON=9
  SELECTION_CRITERION=advantage
  MAX_STEPS=700
  PI_HOST=<server-ip>
  PI_PORT=8000
)

env "${planning_options[@]}" bash scripts/steer_pi_policy.sh

Đây là best-of-N search một chunk, không phải long-horizon tree search. Vì latency vẫn là bottleneck, WEAVER chỉ nhìn ngắn hạn nhưng nhìn đủ nhanh để cải thiện action selection. Paper báo cáo tăng average success rate 14% so với base policy, với gain cao hơn ở task mà base policy yếu. Hạn chế là nếu task cần kế hoạch nhiều stage hoặc recovery muộn, một chunk imagination có thể chưa đủ.

Khi nào nên dùng WEAVER?

Dùng WEAVER khi bạn đã có VLA policy nền, có nhiều rollout hoặc DROID-style data, và muốn giảm số trial thật cho evaluation/fine-tuning/planning. Nó đặc biệt hợp với lab đang dùng OpenPI/π0.5, Franka/DROID-style setup, và có GPU server đủ mạnh. Nếu bạn mới học VLA, hãy đọc LeRobot ecosystem và train một policy nhỏ trước; WEAVER sẽ dễ hiểu hơn khi bạn đã nắm data layout, action chunk và inference server.

Không nên kỳ vọng WEAVER thay thế physics simulator trong mọi trường hợp. Nó vẫn bị partial observability, chưa thấy force/tactile, khó với granular/deformable dynamics, và phụ thuộc mạnh vào data coverage. Nhưng bài học lớn của WEAVER rất rõ: VLA manipulation không chỉ cần policy mạnh; nó cần một world model đủ nhanh để policy có thể "nghĩ thử" trước khi hành động.

Nguồn tham khảo

  • Paper: WEAVER, Better, Faster, Longer
  • Project page: arnavkj1995.github.io/WEAVER
  • Code: github.com/arnavkj1995/WEAVER
  • Model weights: huggingface.co/arnavkj1995/WEAVER

Bài viết liên quan

  • VLA models trong robotics
  • Pi0-FAST: VLA Autoregressive 5x nhanh hơn
  • RISE: VLA tự cải thiện bằng imagination
NT

Nguyễn Anh Tuấn

Robotics & AI Engineer. Building VnRobo — sharing knowledge about robot learning, VLA models, and automation.

Khám phá VnRobo

Fleet MonitoringROS 2 IntegrationAMR Solutions

Bài viết liên quan

NEWTutorial
RISE: Hands-on training pipeline tự cải thiện
riseworld-modelvla
wholebody-vla

RISE: Hands-on training pipeline tự cải thiện

Từng bước chạy RISE training pipeline: cài đặt, chuẩn bị data LeRobot, offline policy training, dynamics model, và online self-improvement loop trên 4–8 GPU.

13/6/202612 phút đọc
NT
Tutorial
StressDream: stress-test policy robot
stressdreamworld-modelvla
wholebody-vla

StressDream: stress-test policy robot

Hướng dẫn StressDream: dùng video world model và VLM để tìm failure plausible trước khi deploy policy robot manipulation.

7/6/202614 phút đọc
NT
Deep Dive
VLA-RFT: RL Fine-Tune VLA trong World Simulator
vlavla-rftreinforcement-learning
wholebody-vla

VLA-RFT: RL Fine-Tune VLA trong World Simulator

VLA-RFT dùng world model làm simulator để fine-tune VLA bằng GRPO, reward kiểm chứng và code GitHub trên LIBERO.

3/6/202614 phút đọc
NT
VnRobo logo

Hạ tầng AI cho robot công nghiệp thế hệ mới.

Sản phẩm

  • Tính năng
  • Bảng giá
  • Kiến thức
  • Dịch vụ

Công ty

  • Về chúng tôi
  • Blog
  • Liên hệ

Pháp lý

  • Chính sách bảo mật
  • Điều khoản sử dụng

© 2026 VnRobo. Bảo lưu mọi quyền.

Được tạo với♥tại Việt Nam