manipulationvladual-systemrobot-manipulationdiffusion-policyopen-sourceMLLMCALVINLLaVA

OpenHelix: Dual-System VLA Mã Nguồn Mở Cho Manipulation

Phân tích kỹ thuật OpenHelix — kiến trúc VLA dual-system mã nguồn mở đạt SOTA trên CALVIN, kết hợp LLaVA-7B (System 2) với 3D diffusion policy (System 1) qua learned ACT token.

Nguyễn Anh Tuấn21 tháng 4, 202612 phút đọc
OpenHelix: Dual-System VLA Mã Nguồn Mở Cho Manipulation

Tại Sao Cần Dual-System?

Robot manipulation hiện đại đứng trước một mâu thuẫn cơ bản: suy nghĩ nhanh hay suy nghĩ sâu?

Hãy tưởng tượng bạn đang chơi bóng rổ. Khi nhận bóng, não bạn làm hai việc đồng thời: phần "hệ thống chậm" (System 2) phân tích vị trí đồng đội, đánh giá phòng thủ đối phương, quyết định chiến thuật — trong khi phần "hệ thống nhanh" (System 1) điều khiển cơ thể giữ thăng bằng, điều chỉnh tư thế, thực hiện chuyển động vi tế theo thời gian thực mà không cần suy nghĩ có ý thức.

Robot manipulation gặp đúng vấn đề tương tự. Các mô hình ngôn ngữ lớn (LLM/VLM) rất giỏi hiểu ngữ cảnh, lập kế hoạch, theo dõi mục tiêu dài hạn — nhưng chậm (7–9 Hz). Ngược lại, các policy truyền thống phản ứng nhanh ở 200+ Hz nhưng thiếu khả năng hiểu ngôn ngữ và suy luận cấp cao.

Dual-System VLA ra đời để giải quyết mâu thuẫn này: để System 2 suy nghĩ chậm về mục tiêu tổng thể, còn System 1 thực thi nhanh trong thực tế. Ý tưởng không mới — Helix của Figure AI đã chứng minh hiệu quả trên humanoid robot thực. Nhưng hầu hết kiến trúc dual-system VLA đang là closed-source hoặc trình bày rất sơ sài trong paper.

Đây chính là lý do OpenHelix ra đời.

OpenHelix Là Gì?

OpenHelix (arXiv:2505.03912) là nghiên cứu công bố năm 2025 với tiêu đề đầy đủ: "A Short Survey, Empirical Analysis, and Open-Source Dual-System VLA Model for Robotic Manipulation". Ba đóng góp chính:

  1. Survey tổng hợp — Hệ thống hóa toàn bộ landscape của dual-system VLA, phân loại các design choices quan trọng mà cộng đồng đang tranh luận
  2. Empirical analysis nghiêm túc — Phân tích thực nghiệm tỉ mỉ xem design choice nào thực sự quan trọng, cái gì chỉ là giả thuyết chưa được kiểm chứng
  3. Open-source implementation hoàn chỉnh — Mã nguồn, checkpoint, training script, evaluation script — tất cả đều public

OpenHelix được đánh giá trên CALVIN ABC-D (một trong những benchmark khó nhất cho robot manipulation) và đạt SOTA trong nhóm dual-system VLA models.

Robot arm thực hiện manipulation task trong môi trường lab với camera quan sát

Kiến Trúc Dual-System Chi Tiết

System 2: MLLM "Suy Nghĩ Chậm"

System 2 của OpenHelix dùng LLaVA-7B làm backbone — một multimodal LLM đã được pre-train trên lượng lớn dữ liệu internet, hiểu tốt cả hình ảnh lẫn ngôn ngữ.

Đầu vào của System 2:

  • Ảnh RGB từ camera (static scene observation)
  • Task instruction dạng ngôn ngữ tự nhiên (ví dụ: "pick up the red cube and place it in the drawer")

System 2 xử lý và tạo ra một latent representation — vector 4096 chiều mã hóa "ý định" của task. Vector này được chiếu xuống 512 chiều qua một linear projection layer để tương thích với System 1.

Điểm đặc biệt: OpenHelix không fine-tune toàn bộ LLaVA-7B (rất tốn GPU và dễ mất khả năng tổng quát hóa). Thay vào đó, họ dùng prompt tuning: thêm một learnable <ACT> token vào cuối instruction. Token này được train để System 2 tạo ra latent representation chất lượng cao cho System 1 — trong khi toàn bộ trọng số LLaVA-7B vẫn được giữ nguyên (frozen).

Ngoài ra có thêm một auxiliary task: buộc System 2 phải tự dự đoán gripper state và action trajectory trực tiếp từ các embedding của nó. Nghe có vẻ thừa — vì System 1 mới là người tạo action cuối cùng — nhưng empirical analysis cho thấy auxiliary task cực kỳ quan trọng. Nó ép MLLM phải thực sự "nhìn" vào visual input và suy luận về hành động, thay vì chỉ xử lý ngôn ngữ một cách hời hợt.

System 1: Diffusion Policy "Phản Ứng Nhanh"

System 1 dùng 3D Diffuser Actor — một diffusion-based policy hoạt động trong không gian 3D (kết hợp RGB + point cloud), được pre-train trên dữ liệu robotic manipulation.

Đầu vào của System 1:

  • Ảnh RGB (visual features)
  • Point cloud 3D của scene
  • Proprioceptive state (joint positions, gripper state)
  • Goal feature vector 512-D từ System 2

System 1 dùng diffusion denoising để tạo action trajectory — chuỗi các joint positions hoặc end-effector poses trong tương lai gần, được thực thi với tần suất cao.

Điểm quan trọng: System 1 không được train từ đầu. OpenHelix dùng pre-trained 3D Diffuser Actor và fine-tune nó. Empirical results cho thấy fine-tuning từ pre-trained outperforms training from scratch rõ rệt (96% vs 89% single-task success trên CALVIN).

Cơ Chế Kết Nối: Learned Token + Linear Projection

Đây là phần thiết kế "clever" nhất của kiến trúc:

MLLM Input: [Visual tokens] [Language tokens] [<ACT> token]
                                                    │
                                        LLaVA-7B Forward Pass
                                                    │
                                         Embedding của <ACT>
                                                    │
                                      Linear Projection (4096 → 512)
                                                    │
                                            Goal Feature (512-D)
                                                    │
                                         3D Diffuser Actor
                                                    │
                                          Action Trajectory

<ACT> token được append vào cuối sequence của MLLM. Sau khi forward pass, embedding tương ứng với <ACT> token được extract, chiếu qua linear projection, và trở thành "goal feature" conditioning cho diffusion policy. Cách thiết kế này có một số ưu điểm:

  • Không cần thay đổi kiến trúc MLLM — chỉ thêm 1 token embedding nhỏ
  • Parameter efficient — chỉ train token embedding + projection layer trong giai đoạn đầu
  • Flexible — có thể swap MLLM backbone mà không cần redesign cơ chế kết nối

Asynchronous Inference: MLLM Không Cần Chạy Mỗi Bước

Một insight thực tiễn quan trọng từ paper: System 2 (MLLM) chậm hơn nhiều so với System 1. Trong thực tế, bạn không thể chạy LLaVA-7B ở mỗi timestep — latency quá cao.

OpenHelix test asynchronous operation: System 2 cập nhật goal feature sau mỗi N bước của System 1. Kết quả thực nghiệm cho thấy N có thể lên đến 60 bước mà performance chỉ giảm khoảng 3%. Điều này rất quan trọng cho deploy thực tế — bạn có thể chạy MLLM trên GPU riêng, cập nhật thưa, trong khi diffusion policy chạy trên edge hardware với tần suất cao.

Cài Đặt (Setup)

Yêu Cầu Hệ Thống

  • Python 3.8
  • CUDA 11.8
  • GPU ít nhất 24GB VRAM (để chạy LLaVA-7B + 3D Diffuser Actor đồng thời)
  • Ít nhất Ampere GPU (RTX 3090, RTX 4090, A100) để dùng Flash Attention 2

Bước 1: Tạo Conda Environment

conda update conda
conda create -n openhelix python=3.8 -y
conda activate openhelix

Bước 2: Cài CALVIN Benchmark

OpenHelix được evaluate trên CALVIN — bạn cần cài CALVIN environment trước:

git clone --recurse-submodules https://github.com/mees/calvin.git
export CALVIN_ROOT=$(pwd)/calvin
cd calvin/calvin_env && git checkout main && cd ..
pip install setuptools==57.5.0
./install.sh
cd ..

Bước 3: Clone và Cài OpenHelix

git clone [email protected]:OpenHelix-robot/OpenHelix.git
cd OpenHelix
pip install -e .

Bước 4: Cài Dependencies

# Diffusion library
pip install diffusers["torch"]

# Deep Graph Library — dùng cho 3D Diffuser Actor
pip install dgl -f https://data.dgl.ai/wheels/torch-2.2/cu118/repo.html

# Flash Attention 2 — tăng tốc MLLM inference đáng kể
pip install packaging ninja
pip install flash-attn==2.5.9.post1 --no-build-isolation

Lưu ý: Flash Attention có thể mất 10–20 phút để compile. Đây là bình thường — hãy kiên nhẫn.

Bước 5: Download Dataset CALVIN

cd calvin/dataset
sh download_data.sh ABC     # Download CALVIN ABC split (~100GB)
cd ../..

# Package data sang format OpenHelix sử dụng
python data_preprocessing/package_calvin.py --split training
python data_preprocessing/package_calvin.py --split validation

Training: Hai Giai Đoạn

Quy trình training hai giai đoạn của OpenHelix — pre-alignment rồi fine-tuning policy

Giai Đoạn 1: Pre-Alignment (2,000 iterations)

Giai đoạn này chỉ train <ACT> token embedding và linear projection layer. Cả MLLM lẫn diffusion policy đều bị freeze hoàn toàn. Mục tiêu: căn chỉnh không gian latent giữa hai system — dạy linear projection "dịch" latent MLLM sang format mà policy hiểu được.

Giai Đoạn 2: Fine-tuning Policy (100,000 iterations)

Giai đoạn 2 unfreeze diffusion policy và tiếp tục training. MLLM vẫn frozen — chỉ train prompt token. Loss tổng hợp gồm:

  • Diffusion loss: denoising action trajectory (loss chính của policy)
  • Auxiliary loss từ MLLM: BCE cho gripper state + L1 cho position/rotation — tính trực tiếp từ MLLM embeddings, ép MLLM phải extract visual features hữu ích
# Chạy full training pipeline
bash scripts/train_trajectory_lcb_pt_act_simple.sh

Training mất khoảng 2–3 ngày trên 8× A100. Nếu không có nhiều GPU, bạn có thể dùng checkpoint pre-trained từ Hugging Face:

# Hai variants trên Hugging Face: OpenHelix/openhelix
# - prompt_tuning: không có auxiliary task
# - prompt_tuning_aux: có auxiliary task (recommended)
# Merge sharded safetensors thành pytorch_model.bin trước khi load

Inference và Evaluation

# Evaluate trên CALVIN ABC-D, asynchronous N=10 steps
bash scripts/test_trajectory_lcb_pt_act_simple_asy10.sh

Script này chạy OpenHelix trên full CALVIN ABC-D test set và báo cáo:

  • Single-task success rate
  • Multi-task chain success rate (2, 3, 4, 5 tasks liên tiếp)
  • Average task length (EP_LEN metric)

Kết Quả Thực Nghiệm

CALVIN ABC-D Benchmark

Model 1 Task 2 Tasks 3 Tasks 4 Tasks 5 Tasks Avg Len
OpenHelix 93.3% 81.8% 67.2% 55.1% 46.0% 3.45
LCB 89.5% 74.9% 60.4% 47.5% 37.2% 3.09
SuSIE 87.0% 69.0% 49.0% 38.0% 26.0% 2.69

EP_LEN=360. OpenHelix đạt SOTA trong nhóm dual-system VLA models.

CALVIN-E (Language Generalization)

CALVIN-E dùng enriched instructions phong phú hơn để test khả năng generalize với ngôn ngữ mới:

  • Single-task: 78.9%
  • Dual-task: 57.1%

Empirical Findings Quan Trọng

Finding 1 — Prompt tuning tốt hơn full fine-tuning MLLM:

Full fine-tuning MLLM cải thiện performance trên training distribution nhưng giảm khả năng generalize với instruction mới. Prompt tuning với auxiliary task là sweet spot tốt nhất — performance cao mà vẫn generalize tốt.

Finding 2 — Pre-trained policy > Train from scratch:

  • Fine-tune từ pre-trained 3D Diffuser Actor: 96% single-task success
  • Train from scratch: 89% single-task success

Bài học: luôn khởi đầu từ pre-trained model khi có thể, kể cả khi bạn có nhiều dữ liệu task-specific.

Finding 3 — Asynchronous inference ổn định đáng ngạc nhiên:

Delay N (bước) Performance
N=1 (sync) Baseline
N=10 -1%
N=30 -2%
N=60 -3%

Hệ quả thực tiễn: bạn có thể chạy MLLM rất thưa trên hardware riêng biệt, giảm đáng kể yêu cầu tài nguyên khi deploy.

Finding 4 — Auxiliary task là then chốt:

Không có auxiliary task, MLLM chỉ xử lý ngôn ngữ một cách "máy móc" mà không thực sự extract visual features liên quan đến action. Auxiliary task ép buộc MLLM phải "nhìn" kỹ vào scene — và kết quả là latent representation chất lượng hơn nhiều cho System 1.

Phân Tích: Điều Gì Làm OpenHelix Khác Biệt?

Nếu bạn đã đọc các paper về VLA models cho robot manipulation hay diffusion policy trong manipulation, bạn sẽ nhận ra pattern quen thuộc. Điều làm OpenHelix nổi bật không phải là kiến trúc hoàn toàn mới — mà là tính minh bạch và tính mở:

  1. Reproducibility: Toàn bộ code + checkpoint + script đều public. Bạn có thể reproduce kết quả SOTA mà không cần xin permission hay chờ paper appendix
  2. Empirical honesty: Paper không chỉ báo cáo kết quả tốt nhất — mà báo cáo cả ablation study, bao gồm các design choice không hoạt động tốt
  3. Practical guidance: Các findings về asynchronous inference, pre-training, auxiliary task đều có giá trị thực tiễn ngay lập tức cho engineer building real systems

So sánh với nhiều "SOTA" papers khác trong robotics — nơi bạn chỉ có paper PDF và một video đẹp — OpenHelix thực sự là một contribution có thể build upon.

Để hiểu sâu hơn về các kỹ thuật nền tảng được OpenHelix dùng, đọc thêm Diffusion Policy: từ lý thuyết đến thực hành và phân tích VLA cho manipulation: tổng quan 2025.

Hướng Phát Triển Tiếp Theo

OpenHelix đang hướng đến:

  • Real robot deployment — Deploy trên robot arm thực, đánh giá sim-to-real gap
  • Humanoid robots — Mở rộng kiến trúc sang whole-body control
  • Larger MLLM backbone — Thử nghiệm với LLaVA-13B hoặc các MLLM mạnh hơn
  • Richer action spaces — Mở rộng từ pick-and-place sang manipulation phức tạp hơn

Một thách thức chưa được giải quyết: CALVIN là simulator-based benchmark — sim-to-real gap vẫn là vấn đề lớn khi chuyển sang robot thực. Đây là điểm nghiên cứu mở mà cộng đồng cần giải quyết tiếp.

Kết Luận

OpenHelix là một đóng góp quan trọng cho cộng đồng robotics open-source. Thay vì chỉ propose kiến trúc mới và claim SOTA rồi thôi, nhóm tác giả đã làm điều khó hơn nhiều: phân tích nghiêm túc tại sao kiến trúc hoạt động, chia sẻ tất cả code và checkpoint, và trả lời những câu hỏi thực tiễn mà engineer cần biết khi triển khai dual-system VLA.

Nếu bạn đang nghiên cứu robot manipulation và muốn có một baseline mạnh, open-source, và có thể reproduce — OpenHelix là điểm khởi đầu lý tưởng để xây dựng tiếp.

GitHub: OpenHelix-Team/OpenHelix
Paper: arXiv:2505.03912
Weights: OpenHelix/openhelix trên Hugging Face


Bài Viết Liên Quan

NT

Nguyễn Anh Tuấn

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

Khám phá VnRobo

Bài viết liên quan

NEWTutorial
VLA-Adapter: Train VLA 0.5B với 9.6GB VRAM, 99.2% LIBERO
vlavla-adapteropenhelixliberoqwen2.5lorafrankaur5manipulation

VLA-Adapter: Train VLA 0.5B với 9.6GB VRAM, 99.2% LIBERO

Hướng dẫn VLA-Adapter từ OpenHelix — train VLA 0.5B trên GPU consumer 8 giờ, đạt SOTA LIBERO, deploy thật trên Franka/UR-5.

13/5/202610 phút đọc
NEWTutorial
WholeBodyVLA Tutorial: Teleop → Train → Deploy Humanoid
wholebodyvlavlahumanoidloco-manipulationiclr-2026agibot-x2teleoprl

WholeBodyVLA Tutorial: Teleop → Train → Deploy Humanoid

ICLR 2026 — pipeline thực chiến từ thu thập teleop, train unified latent VLA đến deploy whole-body loco-manipulation trên AgiBot X2.

11/5/202611 phút đọc
NEWTutorial
Ark v1.5: Python Framework cho Robot Learning sim-to-real
ark-frameworkpythonimitation-learningactdiffusion-policysim2realros

Ark v1.5: Python Framework cho Robot Learning sim-to-real

Hướng dẫn chi tiết Ark v1.5 — Python framework open-source train ACT + Diffusion Policy seamless giữa sim và robot thật, native ROS, Gym-style API.

8/5/202610 phút đọc