Các mô hình VLA hiện đại như π0, GR00T-N1, hay OpenVLA đã chứng minh rằng kết hợp ngôn ngữ và thị giác có thể điều khiển robot thực hiện nhiệm vụ phức tạp. Nhưng chúng đều có một điểm yếu chung: chúng học bắt chước (imitation learning) mà không thực sự "hiểu" vật lý đằng sau hành động. Khi bạn muốn dùng Reinforcement Learning (RL) để cải thiện thêm, RL cũng chỉ tối ưu phần action — bỏ qua hoàn toàn quá trình suy luận bên trong dẫn đến hành động đó.
LaST-R1 sinh ra để giải quyết chính xác bài toán này. Framework này tích hợp Latent Chain-of-Thought (CoT) reasoning — các token ẩn mô phỏng quá trình suy luận vật lý — vào trong vòng lặp RL, và đạt 99.8% average success rate trên LIBERO benchmark chỉ với 1 demo/task cho bước warmup ban đầu.
Paper gốc: LaST-R1: Reinforcing Action via Adaptive Physical Latent Reasoning for VLA Models — Hao Chen, Jiaming Liu, Zhonghao Yan, Nuowei Han, Renrui Zhang và cộng sự (CUHK, Peking University, Simplexity Robotics), arXiv:2604.28192, 2026.
Vấn đề cần giải quyết — Tại sao RL thông thường không đủ?
Hãy hình dung bạn đang dạy một robot chèn chốt lục giác vào lỗ. Với imitation learning, bạn cho robot xem 30 video — robot bắt chước từng động tác. Với RL thuần, robot tự thử-sai và nhận reward khi thành công.
Nhưng cả hai cách đều bỏ qua điều quan trọng nhất: quá trình mô hình hóa vật lý trước khi hành động. Không nhà nghiên cứu nào, không kỹ sư nào chèn chốt mà không nhẩm trong đầu: "góc này, lực này, hướng này". Quá trình đó xảy ra trong chưa đến một giây, nhưng nó là nền tảng của hành động chính xác.
Với VLA + RL thông thường:
- RL chỉ optimize
π(action | observation)— gradient không chạm vào quá trình suy luận trung gian - Latent reasoning (nếu có) bị coi như "black box" không tham gia tối ưu hóa
- Kết quả: policy giỏi trong điều kiện quen thuộc, nhưng thất bại ngay khi object, background, hay ánh sáng thay đổi
LaST-R1 thay đổi điều này bằng cách biến latent reasoning thành một phần tích hợp trong vòng lặp RL.
Kiến trúc LaST-R1 — Ba lớp xây trên nhau

LaST-R1 được xây dựng trên ba thành phần chính, lồng ghép vào nhau một cách có chủ ý:
1. Backbone VLA — Qwen3-VL-4B + SigLIP2-Large
Foundation model là Qwen3-VL-4B (4 tỷ tham số) kết hợp với SigLIP2-Large làm visual encoder. Đây là sự lựa chọn thực dụng: Qwen3-VL-4B có language understanding mạnh, đủ nhỏ để fine-tune trên GPU thông thường, trong khi SigLIP2-Large cung cấp visual features chất lượng cao cho robot tasks.
Input pipeline: ảnh RGB từ camera robot + ngôn ngữ chỉ dẫn → tokenize → đưa vào LLM backbone.
2. Latent Representation từ DINOv3 — "Bộ nhớ vật lý"
Đây là phần đặc biệt nhất của LaST-R1. Thay vì để mô hình tự học latent representation từ đầu, nhóm tác giả dùng DINOv3 — một vision foundation model được pre-train để hiểu cấu trúc không gian và đặc trưng vật lý — để cung cấp latent targets.
Cách hoạt động:
- DINOv3 xử lý ảnh observation và xuất CLS token (chiều 4096)
- Áp dụng top-k selection với k=2560 để match với VLA embedding size
- Các latent tokens này đại diện cho "hiểu biết vật lý" của mô hình về scene hiện tại
Ưu điểm của DINOv3 so với các cách khác (Q-Former, global pooling, convolution):
| Phương pháp | Success rate trên LIBERO |
|---|---|
| DINOv3 (LaST-R1) | 99.8% |
| Convolution | 98.4% |
| Q-Former | 97.2% |
| Global Pooling | 96.8% |
DINOv3 giữ được spatial structure — biết vật thể nằm ở đâu trong không gian — mà không cần thêm inference overhead.
3. Action Tokenizer — Parallel Decoding
LaST-R1 dùng parameter-free action tokenizer với parallel decoding cho phần cuối pipeline. Với single-arm robot (Franka): 7-DoF joint control. Với dual-arm: 14-DoF qua concatenation của hai tay.
Toàn bộ pipeline tạo ra một chuỗi:
[Visual tokens] → [Latent CoT tokens] → [Action tokens]
Nhưng khác biệt cốt lõi so với các VLA khác: latent CoT tokens không bị "đóng băng" — chúng tham gia vào quá trình RL optimization.
LAPO — Thuật toán RL "hiểu" cả suy luận lẫn hành động
LAPO (Latent-to-Action Policy Optimization) là trái tim của LaST-R1. Nếu PPO/GRPO thông thường chỉ optimize action distribution, LAPO jointly optimize cả latent reasoning process và action generation.
Cơ chế hoạt động
Trong mỗi bước rollout, LAPO:
- Sinh latent sequence autogressively:
z₁, z₂, ..., zₙ(n ≤ 8 tokens) - Sinh action tokens có điều kiện trên latent sequence đã tạo ra
- Tính joint likelihood ratio cho cả latent lẫn action
Điểm mấu chốt: latent tokens là continuous (không phải discrete như action tokens), nên LAPO dùng isotropic Gaussian approximation để tính likelihood ratio cho latent, với regularization qua Euclidean distance:
Latent ratio ∝ exp(-∑ₖ ‖z_t,k^old − z_t,k^θ‖²)
Trong đó z_t,k^old là latent token từ policy cũ, z_t,k^θ là latent token từ policy mới đang được optimize. Công thức này đảm bảo rằng khi latent reasoning thay đổi quá nhiều so với baseline, gradient sẽ bị penalty — tránh policy collapse.
Unified loss function kết hợp ba thành phần:
L_LAPO = L_action + α·L_latent + β·L_value
Ba loss này được tối ưu cùng lúc, nên khi mô hình học "làm tốt hơn" (L_value tăng), gradient lan ngược qua cả latent reasoning — buộc latent tokens phải thích nghi để hỗ trợ action tốt hơn.
Adaptive Latent CoT — Suy nghĩ nhiều hay ít tùy nhiệm vụ
Một điểm thú vị: nhiệm vụ phức tạp cần suy nghĩ nhiều hơn nhiệm vụ đơn giản. LaST-R1 giải quyết điều này qua Adaptive Latent CoT — cơ chế tự động điều chỉnh độ dài reasoning.
Hoạt động như sau:
- Mô hình có thể emit token
<latent_end>tại M=4 vị trí candidate trong latent sequence - Khi mô hình tự tin đủ (
p ≥ 0.99) rằng đã suy luận đủ → emit<latent_end>sớm → chuyển sang action generation - Trong training: temperature-controlled exploration cho phép thử nghiệm reasoning length khác nhau
- Trong inference: confidence-based strategy — emit early nếu confident, continue nếu không
Kết quả: nhiệm vụ đơn giản (pick-and-place thông thường) dùng ít latent tokens; nhiệm vụ contact-rich phức tạp (open bottle cap, insert hexagon) dùng nhiều hơn.
Ablation — Adaptive vs Fixed:
├── Adaptive (M=4 candidate positions): 99.8%
├── Fixed length 8 tokens: 98.4%
├── Fixed length 4 tokens: 97.9%
└── Fixed length 1 token: 95.2%
Adaptive không chỉ đạt accuracy cao nhất — nó còn tiết kiệm compute vì không lãng phí tokens cho nhiệm vụ đơn giản.
Pipeline Training — Hai giai đoạn rõ ràng
Giai đoạn 1: SFT Warmup — "Học bản năng cơ bản"
Trước khi RL, LaST-R1 cần một điểm khởi đầu hợp lý. Đây là giai đoạn SFT (Supervised Fine-Tuning) với chỉ 1 demo/task — con số cực kỳ nhỏ so với hầu hết VLA fine-tuning pipeline.
Lý do chỉ cần 1 demo: DINOv3 đã cung cấp strong prior về vật lý; Qwen3-VL-4B đã có language understanding mạnh từ pretraining. Warmup chỉ cần "chỉnh hướng" model, không cần dạy từ đầu.
Models warmup đã upload lên Hugging Face cho 4 LIBERO suites: Spatial, Object, Goal, Long (LIBERO-10).
Giai đoạn 2: LAPO RL Post-Training — "Luyện tập qua thực chiến"
Sau warmup, LAPO online RL bắt đầu:
- Rollout collection: Policy tương tác với LIBERO simulator, thu thập trajectories
- Reward assignment: Binary reward (0/1) dựa trên task completion
- LAPO update: Tính joint loss, update cả latent reasoning lẫn action policy
- Iterate: Lặp lại cho đến khi convergence

Học curves cho thấy LaST-R1 với LAPO hội tụ nhanh hơn đáng kể so với Action-Only PPO baseline — vì latent reasoning giúp gradient có "hướng" rõ ràng hơn thay vì random exploration.
Cài đặt môi trường
Yêu cầu hệ thống
- Python 3.10+
- PyTorch ≥ 2.2.0
- CUDA ≥ 12.0
- GPU: Khuyến nghị A100/H100 (RL training cần nhiều VRAM); RTX 4090 có thể chạy với batch size nhỏ hơn
Bước 1 — Clone repo và tạo môi trường
git clone https://github.com/CHEN-H01/LaST-R1.git
cd LaST-R1
conda create -n last-r1 python=3.10 -y
conda activate last-r1
Bước 2 — Cài PyTorch với CUDA 12.4
pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 \
--index-url https://download.pytorch.org/whl/cu124
Bước 3 — Cài dependencies
pip install -r requirements.txt
Bước 4 — Cài veRL (RL training framework)
LaST-R1 dùng veRL — một framework RL mạnh từ ByteDance, hỗ trợ distributed training và FSDP/DeepSpeed.
git clone -b v0.2.x https://github.com/volcengine/verl.git
cd verl
pip install -e .
cd ..
Bước 5 — Cài LIBERO simulator
LIBERO là benchmark manipulation tiêu chuẩn với 4 task suites.
git clone https://github.com/Lifelong-Robot-Learning/LIBERO.git
cd LIBERO
pip install -e .
cd ..
Training
Tải warmup checkpoint
Các warmup models đã fine-tune sẵn trên Hugging Face. Ví dụ với LIBERO-Spatial:
# Dùng huggingface-cli hoặc git-lfs
huggingface-cli download CHEN-H01/LaST-R1-warmup-spatial \
--local-dir ./checkpoints/warmup_spatial
Tương tự cho: LaST-R1-warmup-object, LaST-R1-warmup-goal, LaST-R1-warmup-libero10.
Chạy RL post-training
Script chính nằm tại scripts/run_libero_rl_training.sh. Các tham số quan trọng cần chú ý:
#!/bin/bash
# Đường dẫn đến warmup checkpoint
SFT_MODEL_PATH="./checkpoints/warmup_spatial"
# Chạy training (không phải evaluation)
VAL_ONLY=False
# Chọn task suite
DATASET_NAME="libero_spatial"
# Options: libero_spatial | libero_object | libero_goal | libero_10
# Số GPU (điều chỉnh batch size tương ứng)
NUM_GPUS=8
bash scripts/run_libero_rl_training.sh \
--sft-model-path $SFT_MODEL_PATH \
--val-only $VAL_ONLY \
--dataset-name $DATASET_NAME \
--num-gpus $NUM_GPUS
Lưu ý về batch size: Khi giảm NUM_GPUS, giảm batch_size tương ứng để tránh OOM. Bảng tham khảo:
| GPUs | Batch size | VRAM required |
|---|---|---|
| 8× A100 80GB | 64 | ~640GB total |
| 4× A100 80GB | 32 | ~320GB total |
| 2× H100 80GB | 16 | ~160GB total |
| 1× A100 80GB | 8 | ~80GB total |
Với RTX 4090 (24GB): cần giảm batch size xuống 4-8 và có thể cần gradient checkpointing.
Evaluation
Để chỉ đánh giá (không train thêm), đặt VAL_ONLY=True:
SFT_MODEL_PATH="./checkpoints/post-rl_spatial" # hoặc warmup để so sánh
VAL_ONLY=True
DATASET_NAME="libero_spatial"
bash scripts/run_libero_rl_training.sh \
--sft-model-path $SFT_MODEL_PATH \
--val-only $VAL_ONLY \
--dataset-name $DATASET_NAME
Script sẽ chạy evaluation trên tất cả 10 tasks của suite được chọn và báo cáo success rate per task + average.
Kết quả — Con số nói lên tất cả
Simulation (LIBERO Benchmark)

| Suite | LaST-R1 | πRL (prev SOTA) | SimpleVLA-RL | OpenVLA-OFT |
|---|---|---|---|---|
| LIBERO-Spatial | 99.8% | 98.7% | 97.1% | 94.2% |
| LIBERO-Object | 100% | 99.2% | 97.8% | 95.6% |
| LIBERO-Goal | 100% | 98.9% | 97.3% | 94.8% |
| LIBERO-Long | 99.4% | 96.4% | 94.5% | 89.3% |
| Average | 99.8% | 98.3% | 96.7% | 93.5% |
Điểm đáng chú ý: LaST-R1 vượt πRL (99.8% vs 98.3%) trong khi πRL dùng full trajectory cho warmup, còn LaST-R1 chỉ cần 1 trajectory/task.
Real-world (Franka Research 3)
Bốn nhiệm vụ thực tế, mỗi nhiệm vụ đánh giá 20 lần:
| Nhiệm vụ | Sau SFT warmup | Sau LAPO RL | Cải thiện |
|---|---|---|---|
| Insert hexagon | 45% | 90% | +45% |
| Open bag zipper | 55% | 95% | +40% |
| Wipe vase | 65% | 95% | +30% |
| Open bottle cap | 45% | 95% | +50% |
| Average | 52.5% | 93.75% | +41.25% |
Kết quả này cho thấy LAPO RL thực sự học được kỹ năng mới từ exploration — không chỉ "tinh chỉnh" warmup policy.
Generalization (Out-of-Distribution)
Khi thay đổi vật thể (unseen objects), background, và ánh sáng, LaST-R1 chỉ giảm trung bình 8% — trong khi Action-Only PPO baseline giảm hơn 20%. Latent reasoning giúp model hiểu vật lý thay vì chỉ nhớ visual pattern.
Xem thêm về kỹ thuật RL tương tự tại: SimpleVLA-RL — RL scaling cho VLA models.
So sánh với các phương pháp khác
| Phương pháp | Cách tiếp cận | LIBERO avg | Dữ liệu cần |
|---|---|---|---|
| OpenVLA | SFT only | ~93.5% | Full demos |
| GRAPE | Action RL | ~95% | Full demos |
| SimpleVLA-RL | Action RL + scaling | ~96.7% | Full demos |
| πRL | Imitation + Action RL | 98.3% | Full trajectories |
| LaST-R1 | Latent CoT + LAPO | 99.8% | 1 demo/task |
Câu hỏi đặt ra là: tại sao Latent CoT lại quan trọng đến vậy? Câu trả lời nằm ở sample efficiency. Khi mô hình có internal reasoning structure, gradient từ RL có "hướng" rõ ràng hơn thay vì phải khám phá không gian action ngẫu nhiên. Kết quả là hội tụ nhanh hơn với ít rollout hơn.
Để hiểu thêm về Action-level CoT (chain-of-thought trong action generation), xem: Action CoT cho VLA với LeRobot.
Để biết cách FORCE paper tiếp cận bài toán tương tự bằng value-calibrated warmup: FORCE: Fine-tune VLA bằng RL với Value-Calibrated Warm-Up.
Pitfalls và lưu ý thực tế
1. Reward design là bottleneck thực sự
LaST-R1 dùng binary reward (0/1) cho LIBERO — dễ implement vì simulator có ground truth. Nhưng khi deploy trên real robot, bạn cần sparse reward detector (vision-based task completion check) hoặc dense reward engineering. Đây là khâu tốn thời gian nhất.
Để tham khảo cách design reward cho manipulation: ProcVLM: Dense reward cho VLA RL.
2. RL training cần nhiều GPU
Online RL với LAPO cần rollout collection song song với policy update — đây là lý do veRL được chọn (hỗ trợ distributed rollout). Với 1 GPU thì sẽ chậm hơn nhiều lần so với setup 8-GPU. Ước tính: training đến convergence trên 1 suite (~10 tasks) mất 12-24 giờ với 8× A100.
3. DINOv3 top-k selection là hyperparameter quan trọng
k=2560 được chọn để match VLA embedding size. Nếu bạn thay backbone (ví dụ dùng Qwen3-VL-7B thay 4B), cần recalibrate k theo embedding dimension mới. Sai k → latent representation bị truncate hoặc padding không phù hợp.
4. Adaptive CoT cần calibration
Confidence threshold p≥0.99 hoạt động tốt với LIBERO, nhưng với domain mới có thể cần điều chỉnh. Threshold quá cao → model luôn dùng max reasoning length (lãng phí compute). Threshold quá thấp → model cut off reasoning quá sớm trước khi đủ thông tin.
5. LoRA cho real-world deployment
Paper đề cập dùng LoRA fine-tuning cho real-world deployment để giảm VRAM. Nếu bạn deploy trên Jetson Orin hoặc workstation thông thường, xem xét LoRA rank 16-32 thay vì full fine-tuning.
Khi nào nên dùng LaST-R1?
Dùng LaST-R1 khi:
- Có ít demo (< 5 demos/task) nhưng cần accuracy cao
- Task yêu cầu contact-rich manipulation (chèn, xoáy, kéo zipper)
- Muốn policy generalize tốt với unseen objects/backgrounds
- Có compute cho online RL (≥ 2× A100/H100)
Không nhất thiết cần LaST-R1 khi:
- Có nhiều demo và task đơn giản → SFT thông thường đủ
- Budget compute hạn chế → SimpleVLA-RL hoặc GRAPE nhẹ hơn
- Task hoàn toàn deterministic và lặp lại → classical controller hiệu quả hơn
Tóm tắt
LaST-R1 giải quyết một điểm yếu cơ bản của VLA + RL: thay vì chỉ tối ưu action, LAPO tối ưu đồng thời cả quá trình suy luận vật lý bên trong mô hình. Ba innovation chính:
- DINOv3 latent targets — cung cấp physically-grounded representation mạnh hơn Q-Former hay global pooling
- LAPO — joint optimization của latent reasoning và action, với Gaussian approximation cho continuous latent likelihood
- Adaptive CoT — tự điều chỉnh reasoning length tùy nhiệm vụ, không lãng phí compute
Kết quả 99.8% trên LIBERO với 1 demo/task là một trong những kết quả ấn tượng nhất trong manipulation VLA tính đến giữa năm 2026. Đặc biệt quan trọng là sự cải thiện generalization — model học "hiểu vật lý" thay vì chỉ "nhớ visual pattern" — điều này là tiền đề cho deployment thực tế với điều kiện luôn thay đổi.



