τ₀-VLA: VLA Phân Cấp với World-Model Test-Time Computation cho Robot Manipulation Tầm Xa
Hãy tưởng tượng bạn nhờ robot dọn phòng — một căn phòng thật, với 25 bước thao tác kéo dài 12 phút. Robot phải nhặt đồ vật rải rác, mở ngăn kéo, sắp xếp giá sách theo thứ tự, rồi tự xác nhận từng bước đã hoàn thành trước khi chuyển sang bước tiếp theo. Đây là bài toán long-horizon manipulation — và đây chính xác là thứ mà hầu hết VLA hiện tại thất bại hoàn toàn.
GR00T N1.7 đạt 0/10. LingBot-VLA đạt 0/10. π0.5 đạt 22.5%. Còn τ₀-VLA đạt 45% — gần gấp đôi so với mô hình tốt nhất trước đó.
Ngày 27/07/2026, nhóm nghiên cứu SII Research công bố τ₀-VLA (arXiv:2608.16885) cùng mã nguồn mở hoàn toàn tại GitHub theo giấy phép Apache 2.0. Bài viết này đi sâu vào kiến trúc, cách cài đặt, training, và inference của mô hình.
Vấn đề cốt lõi: Tại sao long-horizon manipulation khó đến vậy?
VLA thế hệ hiện tại — dù mạnh ở tác vụ đơn bước — thường sụp đổ khi task kéo dài 14–25 bước vì ba lý do chính:
- Không nhớ được ngữ cảnh: Sau bước thứ 5–6, mô hình quên đã làm gì và cần làm gì tiếp theo.
- Không thể phục hồi lỗi: Nếu một bước thất bại, không có cơ chế rollback hay retry — task bị phá vỡ ngay tại đó.
- Không biết khi nào cần "nghĩ thêm": Mọi quyết định đều xử lý với cùng lượng compute, bất kể quyết định đó dễ hay cực kỳ khó.
τ₀-VLA giải quyết cả ba bằng kiến trúc phân cấp hai tầng + world-model test-time computation.

Nguồn: repo sii-research/tau-0-vla
Kiến trúc τ₀-VLA: Hai Tầng, Bốn Thành Phần
τ₀-VLA gồm hai policy hoạt động song song bất đồng bộ — trong khi low-level đang thực thi subtask hiện tại, high-level đã tính toán subtask tiếp theo, giảm latency tổng thể.
Tầng 1: High-Level Policy — "Não chiến lược" (Qwen3.5-9B)
Policy tầm cao chạy trên Qwen3.5-9B VLM và bao gồm bốn thành phần phối hợp chặt chẽ:
1. Proposal Model — Đề xuất subtask
Nhận đầu vào: quan sát hiện tại (camera), hướng dẫn tác vụ tổng thể, execution memory, và subtask ngay trước đó. Đầu ra: đề xuất subtask tiếp theo (ví dụ: "Mở tủ lạnh", "Lấy cà chua") kèm quyết định có cần kích hoạt TTC hay không, thông qua adaptive router dựa trên token confidence statistics.
Khi confidence cao, mô hình đi theo fast path — commit ngay với subtask đề xuất. Khi confidence thấp, nó chuyển sang slow path với full TTC search.
2. World Model — Hình dung tương lai
Khi TTC được kích hoạt, world model dự đoán ảnh head-camera sau khi thực hiện subtask. Hiểu đơn giản: "Nếu tôi ra lệnh 'Mở tủ lạnh', thế giới sẽ trông như thế nào sau đó?" World model được khởi tạo từ Step1X-Edit và fine-tune trên các cặp ảnh bắt đầu–kết thúc subtask từ trajectory thực tế.
3. Value Model — Chấm điểm kế hoạch
Đánh giá chất lượng từng subtask candidate thông qua bài toán VQA ordinal: từ "clearly wrong" đến "clearly correct", ánh xạ sang giá trị số trong khoảng [0.05, 0.95]. Đây là thành phần quyết định branch nào trong beam search được giữ lại.
4. Reflective Model — Tổng hợp quyết định cuối
Nhận tất cả branches beam search đã được giữ lại, tổng hợp và đưa ra subtask cuối cùng. Có thể tái sử dụng một candidate có sẵn hoặc tạo ra alternative hoàn toàn mới dựa trên tất cả bằng chứng tích lũy.
Thuật toán Test-Time Computation (TTC) — Tâm điểm đột phá
Đây là thành phần quan trọng nhất của τ₀-VLA, giải thích tại sao nó hoạt động tốt hơn nhiều trong distribution-shifted settings:
TTC_Search(observation, task, memory, N, B, D):
1. [Proposal] Lấy mẫu N subtask candidates từ proposal model
2. [World Model] Dự đoán ảnh terminal cho từng candidate
3. [Value] Chấm điểm chất lượng từng candidate
4. [Prune] Giữ lại top-B nhánh theo cumulative score
5. [Recurse] Lặp lại đến độ sâu D
6. [Reflect] Reflective model tổng hợp subtask cuối cùng
Trên task Book Organization (out-of-distribution), TTC nâng accuracy subtask prediction từ 50% lên 74% — chỉ bằng cách cấp thêm compute cho những quyết định khó.

Nguồn: tau0-vla.github.io
Tầng 2: Low-Level Policy — "Tay thực thi" (Qwen3.5-2B + MoT)
Policy tầm thấp chạy nhanh hơn nhiều và chịu trách nhiệm thực thi từng subtask cụ thể:
- Vision-language backbone: Qwen3.5-2B VLM (nhỏ hơn nhưng đủ mạnh cho single-subtask execution)
- Action expert: Mixture-of-Transformers (MoT) — các transformer expert chuyên biệt cho từng loại action
- State/action space thống nhất: 40 chiều, hỗ trợ end-effector motion, arm joints, grippers, waist, và mobile base — cho phép triển khai trên nhiều loại robot không cần thay đổi architecture
- Generation method: Masked flow matching cho conditional generation, tôn trọng tính hợp lệ per-embodiment của từng channel
- Đầu vào: Multi-view RGB cameras + proprioceptive state
Execution Memory — Bộ nhớ theo dõi tiến độ
Thành phần thường bị đánh giá thấp nhưng cực kỳ quan trọng: execution memory track tiến độ task theo thời gian thực. Memory có thể:
- Advance: tiến lên khi subtask hoàn thành
- Rollback: quay lại khi phát hiện lỗi
- Retry: thử lại subtask thất bại
Policy được huấn luyện trên dữ liệu perturbed memories — ví dụ có memory lag so với observation hoặc chạy vượt trước — giúp nó học cách đối chiếu bằng chứng thị giác với lịch sử được lưu trữ. Kết quả ablation: execution memory cải thiện success rate thêm 11 percentage points.
Cài đặt
Yêu cầu hệ thống:
- Python 3.11
- CUDA 12.8
- PyTorch 2.7.1
- GPU VRAM: khuyến nghị 40GB+ (A100/H100) cho full pipeline, hoặc offload nếu VRAM thấp hơn
# Clone repo
git clone https://github.com/sii-research/tau-0-vla
cd tau-0-vla
# Cài đặt môi trường tự động
bash scripts/setup.sh
Tải model weights từ Hugging Face:
pip install huggingface_hub
huggingface-cli download sii-research/tau-0-vla --local-dir ./checkpoints
Training — Fine-tune trên Dataset của Bạn
Dataset của τ₀-VLA theo format LeRobot v3.0. Đây là lý do tại sao τ₀-VLA tích hợp tốt với hệ sinh thái LeRobot hiện có: nếu bạn đã collect data theo chuẩn LeRobot, bạn có thể dùng ngay mà không cần convert. Một subset ví dụ có sẵn trong example_data/, tài liệu format đầy đủ tại src/tau0_vla/data/DATASET_FORMAT.md.
Xem thêm về cách collect data LeRobot tại bài LeRobot Hands-on: Từ Dữ liệu đến Deployment.
Bước 1: Chuẩn bị config
Templates có sẵn tại configs/_template/. Copy và chỉnh sửa theo robot/dataset của bạn:
cp -r configs/_template/ configs/my_robot/
Các field quan trọng trong configs/my_robot/train.yaml:
model_name_or_path: /path/to/checkpoints
dataset:
path: /path/to/your/dataset
format: lerobot_v3
robot:
embodiment: fixed_base # hoặc mobile, bimanual
dof: 7 # bậc tự do của arm
training:
epochs: 100
batch_size: 32
learning_rate: 1e-4
Bước 2: Chạy training
bash scripts/train.sh configs/my_robot/train.yaml \
--model_name_or_path /path/to/checkpoints
Ba giai đoạn training của low-level policy:
| Giai đoạn | Mô tả | Mục đích |
|---|---|---|
| 1. Knowledge-isolated co-training | Multimodal + robot data, gradient không flow xuyên component | Tránh forgetting kiến thức VLM |
| 2. End-to-end co-training | Gradient flow đầy đủ qua toàn bộ hệ thống | Tối ưu hóa joint performance |
| 3. Task-specific fine-tuning | Fine-tune trên dataset cụ thể | Maximize performance trên task mục tiêu |
High-level policy gồm bốn mô hình được train độc lập: proposal model (trên aligned + perturbed histories), world model (từ Step1X-Edit, train trên transition frames), value model (trên offline rollouts với ordinal labels), và reflective model (supervised từ simulated rollouts).
Inference và Deployment
Open-loop evaluation (kiểm tra không cần robot thật):
python deploy/openloop.py --ckpt outputs/<run_name> --no-plot
Chạy inference server (production):
python -m deploy.server --model outputs/<run_name>
High-level và low-level policy được serve bất đồng bộ trong production: trong khi low-level đang thực thi subtask, high-level đã tính toán subtask tiếp theo — giảm latency toàn cục đáng kể.
Adaptive routing trong deployment:
Một threshold duy nhất được calibrate per-task trên held-out data để quyết định khi nào kích hoạt TTC. Điều này có nghĩa là với task quen thuộc, model sẽ mostly dùng fast path; với task lạ hoặc in-distribution-shifted settings, nó tự động switch sang slow path với full search.
Kết quả và Benchmark
So sánh trực tiếp trên long-horizon tasks
Bốn task đánh giá chính (robot di động toàn thân):
| Phương pháp | Dọn phòng (25 bước) | Chuẩn bị nguyên liệu (14 bước) | Xào trứng cà chua (22 bước) | Pha trà sữa (13 bước) | Trung bình |
|---|---|---|---|---|---|
| GR00T N1.7 | 0/10 | 1/10 | 0/10 | 0/10 | 2.5% |
| LingBot-VLA | 0/10 | 0/10 | 0/10 | 0/10 | 0.0% |
| π0.5 | 4/10 | 2/10 | 0/10 | 3/10 | 22.5% |
| τ₀-VLA (Direct) | 4/10 | 2/10 | 0/10 | 5/10 | 27.5% |
| τ₀-VLA (Hierarchical) | 5/10 | 4/10 | 4/10 | 5/10 | 45.0% |
Tác động của Test-Time Computation
| Task | Không có TTC (Plan Once) | Có TTC | Cải thiện |
|---|---|---|---|
| Book Organization (OOD) | 50% accuracy | 74% accuracy | +24 pp |
| Clean Room | 5/10 | 7/10 | +20% |
| Make Milk Tea | 5/10 | 7/10 | +20% |
| Book Organization (in-domain) | 6/10 | 9/10 | +30% |

Nguồn: tau0-vla.github.io — accuracy tăng nhanh ở budget thấp, đạt plateau ở mức cao
Điểm đáng chú ý: accuracy tăng nhanh ngay ở budget thấp rồi dần đạt plateau — đây là dấu hiệu của search algorithm được thiết kế tốt, không lãng phí compute vô hạn.
Cross-embodiment Results
τ₀-VLA không bị lock vào một loại robot duy nhất:
- ARX AC One (Collect Laundry, 5 bước): 10/10 — hoàn hảo
- Franka fixed-base (Tidy Makeup Table, 8 bước): 9–10/10 trên các subtask nhóm
- So sánh: GR00T đạt 4/10 và 8–10/10 tương ứng; LingBot-VLA đạt 2–9/10
So sánh với các VLA khác
So với π0/π0.5: τ₀-VLA thêm hierarchy và TTC thay vì chỉ dùng diffusion policy. Kết quả: gần gấp đôi success rate trên long-horizon tasks (45% vs 22.5%).
So với GR00T N1.7: τ₀-VLA thắng áp đảo trên long-horizon (45% vs 2.5%). GR00T tập trung vào generalization across embodiment qua sim2real, còn τ₀-VLA tập trung vào sequential task completion.
So với hierarchical robot system truyền thống (task planner + motion planner cứng): τ₀-VLA không cần viết tay planning logic — mọi thứ được học từ dữ liệu, bao gồm cả khi nào cần "suy nghĩ thêm".
Để hiểu thêm về vai trò của world model trong VLA, xem Dream-Chunk và Reactive VLA với World Model và Weaver: World Model kết hợp π0.5.
Khi nào nên dùng τ₀-VLA?
Phù hợp:
- Task dài hơn 5 bước, cần planning tuần tự rõ ràng
- Môi trường có thể thay đổi (vật thể bị di chuyển, cần adaptation)
- Cần cross-embodiment deployment trên nhiều loại robot
- Có GPU 40GB+ (A100/H100) để chạy Qwen3.5-9B cho high-level policy
Không phù hợp:
- Single-step pick-and-place đơn giản (overkill — dùng ACT hoặc Diffusion Policy nhẹ hơn)
- Edge deployment với VRAM cực thấp (<8GB)
- Cần latency cực thấp (<100ms per action) — TTC search cần thêm thời gian
Kết luận
τ₀-VLA đại diện cho một bước tiến quan trọng trong thiết kế VLA: thay vì nhồi mọi thứ vào một policy duy nhất, nó tách biệt planning và execution một cách thông minh, rồi dùng world model để kiểm tra kế hoạch trước khi thực thi. Kết hợp với LeRobot v3.0 data format, Qwen3.5 backbone, và mã nguồn mở Apache 2.0, đây là một trong những baseline mạnh nhất cho long-horizon robot manipulation research hiện nay.
Nếu bạn đang làm việc với tác vụ manipulation dài hơn 10 bước, τ₀-VLA xứng đáng là điểm khởi đầu.



