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. VLA-Precision: ACoB RL Online 45 Phút
wholebody-vlavlaonline-rlacobopenpirobot-manipulation

VLA-Precision: ACoB RL Online 45 Phút

Hướng dẫn VLA-Precision: dùng ACoB online RL để biến VLA thành policy thao tác lab chính xác trong khoảng 45 phút/task.

Nguyễn Anh Tuấn9 tháng 9, 202615 phút đọc
VLA-Precision: ACoB RL Online 45 Phút

VLA-Precision giải quyết vấn đề gì?

VLA-Precision là framework real-world online reinforcement learning cho Vision-Language-Action model, được giới thiệu trong paper VLA-Precision: Asymmetric Co-Bootstrapping for Efficient Real-World Online RL of Vision-Language-Action Models của Chenyu Su và cộng sự. Project page ở vla-precision.github.io và code ở repo scy-v/VLA-Precision. Điểm đáng chú ý nhất: trên 9 task thao tác hóa học chính xác, hệ thống đạt 98.3% success rate trung bình sau 45.8 phút online training mỗi task, với episode thành công chạy trung bình 27.6 giây.

Nếu bạn đã theo dõi các bài về EXPO-FT, TORL cho tactile VLA, hoặc reward models trong LeRobot v0.6, bạn sẽ thấy một xu hướng rõ: imitation learning giúp robot "biết làm", nhưng online RL mới giúp robot "làm chắc". VLA-Precision đi đúng vào khoảng trống đó. Nó không cố train robot từ đầu. Nó bắt đầu từ $\pi_{0.5}$ đã được fine-tune bằng demonstrations, rồi dùng ACoB để cải thiện phần action expert bằng trải nghiệm thật, human corrections và critic đã được hiệu chỉnh dầ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 →

Vấn đề thực tế trong lab rất khắc nghiệt. Cắm pipette tip, chuyển cuvette thủy tinh trong suốt, đưa vial 2 mL vào rack, lắp rubber stopper, hoặc chải ống nghiệm bằng hai tay đều không giống pick-and-place đơn giản. Lỗi vài milimet có thể làm vật kẹt, rơi, vỡ, lệch lực ép, hoặc khiến robot cần reset thủ công. Behavior cloning học từ demonstration có thể đạt 60-80%, nhưng nếu deployment cần thao tác lặp lại hàng trăm lần, tỷ lệ đó vẫn quá thấp. Online RL có thể tối ưu reward thật, nhưng critic ban đầu thường chưa đáng tin, còn VLA lớn thì chậm, tốn GPU và khó cập nhật liên tục.

VLA-Precision đưa ra hai đóng góp chính. Thứ nhất là ACoB, viết tắt của Asymmetric Co-Bootstrapping, một thuật toán kết hợp behavior learning nhanh từ intervention với value calibration chậm nhưng ngày càng chính xác. Thứ hai là ACoB-Stream, kiến trúc actor-learner giúp online RL trên large VLA đủ nhanh bằng cách cache context, stream đúng dữ liệu cần dùng và chỉ đồng bộ phần trainable policy state.

Ý tưởng cốt lõi của ACoB

Hãy hình dung robot đang cố lắp pipette tip. VLA đưa ra một action chunk: đi xuống, căn trục, ép nhẹ. Nếu action lệch, operator can thiệp bằng keyboard hoặc master arm. Sau intervention, episode vẫn có thể thành công. Nhưng dữ liệu đó chứa hai sự thật khác nhau:

Đề xuất ban đầu của policy: có thể sai ở state đó
Hành động đã được human correction: nên được đánh giá cao hơn
Kết quả cuối episode: cho biết chuỗi hành động có thành công hay không

Một critic TD thông thường chỉ thấy hành động đã được execute. Nó không thấy hậu quả của action proposal bị ghi đè, vì action đó không được thực thi. Nếu episode thành công sau khi human sửa, critic có thể vô tình vẫn đánh giá proposal ban đầu quá cao. Khi actor tối ưu trực tiếp Q tuyệt đối, lỗi này đẩy policy drift: model chạy theo score ảo thay vì cải thiện thao tác thật.

ACoB xử lý điểm này bằng ba lớp tín hiệu.

Thứ nhất, global return propagation dùng TD learning để truyền reward dài hạn qua trajectory thật. Transition có state, executed action chunk, reward trong chunk, next state và terminal flag. Critic ensemble học giá trị của action đã thật sự đi qua robot.

Thứ hai, local preference ranking dùng intervention như một cặp so sánh tại cùng state. Nếu human sửa action đủ khác proposal ban đầu, ACoB ép advantage của corrected action cao hơn advantage của proposal. Đây là chi tiết rất quan trọng: nó biến intervention thành nhãn preference cục bộ, không chỉ thành một action để behavior cloning.

Thứ ba, relative-advantage policy improvement không tối đa hóa Q tuyệt đối. Current action expert và frozen reference action expert decode action chunk từ cùng context và cùng noise sample. Critic so current action với baseline trong từng critic, rồi lấy pessimistic minimum qua ensemble. Chỉ khi nhiều critic đồng ý rằng current action tốt hơn reference hoặc proposal, actor mới nhận tín hiệu cải thiện mạnh. Cách này giảm tác hại của critic overestimation.

Sơ đồ ACoB: behavior cloning, relative advantage và reference regularization - nguồn: project VLA-Precision
Sơ đồ ACoB: behavior cloning, relative advantage và reference regularization - nguồn: project VLA-Precision

ACoB vẫn giữ behavior cloning, nhưng dùng nó đúng vai trò. Thay vì chỉ ràng buộc actor để khỏi đi xa demonstrations, ACoB dùng flow-matching behavior cloning trên demonstrations, trajectory thành công, và effective corrections. Early training vì vậy học rất nhanh từ hành động tốt. Khi online data tốt dần lên, critic có cơ hội học value chính xác hơn. Khi critic tốt hơn, relative-advantage update đẩy policy vượt qua trần của demonstration. Đó là "asymmetric co-bootstrapping": behavior learning nhanh cải thiện data; value learning chậm hiệu chỉnh actor; hai quá trình hỗ trợ nhau nhưng không cùng tốc độ.

Kiến trúc tổng thể

VLA-Precision dùng quy trình hai stage.

Stage I: demonstrations -> full-parameter fine-tuning của pi0.5
Stage II: freeze base VLA -> train LoRA trong action expert bằng ACoB online RL

Trong formulation của paper, state gồm observation hình ảnh, robot state và instruction ngôn ngữ. Policy sinh action chunk $H$ bước, không phải single action. Với OpenPI/pi0.5, phần frozen multimodal prefix encode ảnh, language và proprioception thành context $z_t$. Action expert flow-based sinh action từ context và Gaussian noise. Stage II không cập nhật toàn bộ VLA: nó freeze prefix và action expert gốc, rồi thêm LoRA trainable cho action expert. Frozen LoRA reference từ Stage I được giữ lại để regularize.

ACoB-Stream là phần biến thuật toán thành hệ thống chạy được trên robot thật. Repo chia code thành các layer rõ: integrations/openpi bọc OpenPI, acob chứa loss và critic, acob_stream chứa actor/learner loop, buffers, communication và checkpoint, còn robotics chứa robot, camera, gripper, teleoperation. Tư duy quan trọng là tách hardware khỏi thuật toán. Nếu bạn thêm robot mới, bạn không sửa ACoB; bạn implement interface robot/camera/gripper và đăng ký factory.

ACoB-Stream quản lý context buffer, replay/correction buffer và đồng bộ LoRA policy state - nguồn: project VLA-Precision
ACoB-Stream quản lý context buffer, replay/correction buffer và đồng bộ LoRA policy state - nguồn: project VLA-Precision

ACoB-Stream có bốn cơ chế chính:

Cơ chế Ý nghĩa cho beginner
Experience-context formation Khi actor đã chạy inference, giữ lại prefix KV/context của VLA thay vì tính lại cho mỗi sample
Experience-context persistence Lưu context một lần trong disk-backed context buffer, replay/correction chỉ giữ ID tham chiếu
Experience-context access Critic update chỉ lấy next context khi cần bootstrap; actor update mới lấy current context
Policy-state synchronization Learner chỉ publish trainable action-expert state, không gửi lại toàn bộ large VLA

Điểm này giải thích vì sao bài báo nhấn mạnh efficiency. Với compact policy, replay buffer nằm trong RAM và model nhỏ nên actor-learner khá đơn giản. Với large VLA, prefix context lớn, full-model synchronization chậm, random disk access có thể nghẽn khi replay tăng. ACoB-Stream dùng invariant-state decoupling: thứ gì không đổi thì cache và không truyền lại; thứ gì chỉ cần theo objective thì stream theo nhu cầu.

Cài đặt repo

Repo chính dùng uv và có ba nhóm dependency: Stage I trên GPU server, Stage II trên GPU server, và real-robot trên máy robot. Nếu bạn chỉ đọc code hoặc chuẩn bị môi trường dev, có thể bắt đầu bằng clone repo ở máy lab và máy GPU. Nếu bạn chạy thật, hãy tách rõ server training và robot machine.

curl -LsSf https://astral.sh/uv/install.sh | sh
git clone https://github.com/scy-v/vla-precision.git
cd vla-precision

# GPU server cho Stage I
uv sync --frozen --group stage1

# GPU server cho Stage II
uv sync --frozen --group stage2

# Máy robot thật cho control/camera/bridge
uv sync --frozen --group real-robot

Repo khuyến nghị dùng symlink cho checkpoint và train data nếu ổ chính không đủ nhanh hoặc đủ dung lượng:

ln -s /path/to/storage/checkpoints ./checkpoints
ln -s /path/to/storage/train_data ./train_data

Bạn sẽ làm việc với ba loại YAML:

YAML Vị trí Dùng để làm gì
Stage I task configs/stage1/<task>.yaml OpenPI normalization và full fine-tuning
Stage II task configs/stage2/tasks/<task>.yaml task instruction, reward, ACoB, buffers, training, evaluation
Stage II deployment configs/stage2/deployments/<deployment>.yaml IP, GPU, camera, robot, gripper, path local

Nguyên tắc beginner nên nhớ: task YAML mô tả "học cái gì", deployment YAML mô tả "chạy ở đâu và trên hardware nào". Cùng một task có thể chạy trên deployment khác nếu robot, camera và path thay đổi.

Chuẩn bị dữ liệu demonstration

VLA-Precision hỗ trợ thu demonstration theo LeRobot format. README liệt kê nhiều lựa chọn: UR5e/UR7e keyboard teleop, UR5e/UR7e isomorphic master-slave, dual UR VR teleop, và Franka teleop. Paper cũng mô tả hai kiểu intervention. Với task cần final alignment cực mịn, keyboard incremental Cartesian control cho phép bấm từng bước translation/rotation coarse hoặc fine. Với chuỗi dài hoặc thao tác cần compliance, isomorphic master arm giữ mapping trực tiếp với UR5e và giúp operator takeover mượt hơn.

Data representation trong paper dùng delta task-space action. Robot state một bước gồm TCP pose tương đối từ đầu episode, TCP twist, force, torque và gripper state. Action một bước gồm delta end-effector command 6 DoF và gripper command. Các cặp state-action được đồng bộ nominal 15 Hz. Với single-arm, hệ thống dùng một wrist camera và một external camera; với dual-arm, hai wrist cameras và một external camera cung cấp cả view cục bộ lẫn scene chung.

Nếu tự triển khai task mới, bạn nên bắt đầu nhỏ:

  1. Xác định instruction ngôn ngữ cố định, ví dụ attach the pipette tip.
  2. Định nghĩa reset procedure có pose an toàn và randomization vừa phải.
  3. Định nghĩa completion detector, có thể từ sensor, camera rule hoặc operator signal.
  4. Định nghĩa reward function đơn giản: success reward lớn, time reward nhỏ hoặc penalty nhẹ.
  5. Kiểm tra camera keys khớp giữa task.image_keys, cameras.devices và data.image_key_map.

Stage I: fine-tune OpenPI/pi0.5 bằng imitation learning

Stage I tạo policy khởi động đủ tốt trước khi online RL. Đây là điểm khác với RL-from-scratch. Bạn cần tính normalization statistics trên LeRobot dataset, rồi chạy full-parameter fine-tuning bằng config Stage I.

# GPU server
uv run --no-sync main.py \
  --stage stage1 \
  --mode norm-stats \
  --config configs/stage1/insert_two_bottles_diagonal_rack.yaml

uv run --no-sync main.py \
  --stage stage1 \
  --mode train \
  --config configs/stage1/insert_two_bottles_diagonal_rack.yaml

Trong paper, Stage I dùng ít demonstration hơn baseline VLA fine-tuning ở nhiều task. Ví dụ pipette tip attachment dùng 60 demos và 5,000 steps cho VLA-Precision, trong khi baseline $\pi_0/\pi_{0.5}$ dùng 120 demos và 25,000 SFT steps. Tube brushing và pipette transfer/ejection dùng 120 demos và 15,000 steps. Mục tiêu không phải làm Stage I hoàn hảo, mà tạo prior đủ ổn để Stage II có thể học từ real feedback mà không phá behavior.

Stage II: chạy ACoB online RL

Trước online RL, repo preprocess một phần offline data để populate Replay Buffer và Context Buffer. Bước này materialize action chunks, transitions và OpenPI context để learner không phải tính lại mọi thứ từ đầu.

# GPU server
uv run --no-sync main.py \
  --stage stage2 \
  --mode preprocess \
  --config configs/stage2/tasks/insert_two_bottles_diagonal_rack.yaml \
  --deployment configs/stage2/deployments/single_ur.yaml

Sau đó cần bốn process chạy cùng task/deployment YAML:

Robot machine: serve-robot
Robot machine: robot-agent-bridge
GPU server: learner
GPU server: actor

Trên máy robot:

uv run --no-sync main.py --stage stage2 --mode serve-robot \
  --config configs/stage2/tasks/insert_two_bottles_diagonal_rack.yaml \
  --deployment configs/stage2/deployments/single_ur.yaml

uv run --no-sync main.py --stage stage2 --mode robot-agent-bridge \
  --config configs/stage2/tasks/insert_two_bottles_diagonal_rack.yaml \
  --deployment configs/stage2/deployments/single_ur.yaml

Trên GPU server:

uv run --no-sync main.py --stage stage2 --mode train --role learner \
  --config configs/stage2/tasks/insert_two_bottles_diagonal_rack.yaml \
  --deployment configs/stage2/deployments/single_ur.yaml

uv run --no-sync main.py --stage stage2 --mode train --role actor \
  --config configs/stage2/tasks/insert_two_bottles_diagonal_rack.yaml \
  --deployment configs/stage2/deployments/single_ur.yaml

Learner đợi replay và correction buffer đủ batch, warm up critic, rồi lặp: sample một nửa từ replay, một nửa từ correction, retrieve contexts, update critic nhiều lần, update LoRA action expert một lần, và publish state mới theo interval. Actor tiếp tục rollout với policy version hợp lệ gần nhất trong khi learner cập nhật.

Inference và evaluation

Sau khi có checkpoint Stage II, bạn đánh giá bằng mode evaluate. Có thể chạy evaluation policy trên GPU server hoặc local robot machine. Nếu chạy local, cần cài dependency tương ứng cho model.

# Robot machine: robot service và bridge vẫn cần chạy
uv run --no-sync main.py --stage stage2 --mode serve-robot \
  --config configs/stage2/tasks/insert_two_bottles_diagonal_rack.yaml \
  --deployment configs/stage2/deployments/single_ur.yaml

uv run --no-sync main.py --stage stage2 --mode robot-agent-bridge \
  --config configs/stage2/tasks/insert_two_bottles_diagonal_rack.yaml \
  --deployment configs/stage2/deployments/single_ur.yaml

# Stage II ACoB model
uv run --no-sync main.py --stage stage2 --mode evaluate \
  --config configs/stage2/tasks/insert_two_bottles_diagonal_rack.yaml \
  --deployment configs/stage2/deployments/single_ur.yaml

Kết quả được cập nhật sau từng episode trong results/<experiment>/acob/<time>.json. Khi debug, đừng chỉ nhìn success cuối cùng. Hãy log thêm intervention rate, average episode time, timeout, camera dropped frames, force spikes và số lần reset lỗi. Với lab manipulation, policy 100% success nhưng đâm force quá cao ở final insertion vẫn chưa phải deployment-ready.

Demo pipette tip attachment trong suite VLA-Precision - nguồn: project VLA-Precision

Kết quả quan trọng

Paper đánh giá trên bốn nhóm task: contact-rich, contact-light, contact-free và bimanual coordination. Hardware gồm UR5e với PGI gripper, UR5e với LinkerHand dexterous hand, dual UR5e với gripper, và Franka Research 3 với PGI gripper. Các task có pose randomization thật, không phải chỉ replay một setup cố định.

Bảng performance trên 9 task thao tác hóa học chính xác - nguồn: project VLA-Precision
Bảng performance trên 9 task thao tác hóa học chính xác - nguồn: project VLA-Precision

Các con số nổi bật:

Metric VLA-Precision
Online training trung bình 45.8 phút/task
Average success rate 98.3%
Held-out trials 177/180 success
Số task đạt 100% 7/9
Worst-task success 90%
Average successful episode time 27.6 giây
So với $\pi_{0.5}$ +30.5 điểm success
So với $\pi_0$ +38.9 điểm success

So với Robo-Dopamine, baseline real-world RL mạnh nhất trong bảng, VLA-Precision tăng average success thêm 88.3 điểm và cải thiện execution speed 61.2%. Với ablation, full ACoB đạt 96.25% final autonomous success trung bình trên bốn task đại diện. Bỏ critic preference còn 26.25%, bỏ actor BC còn 20.00%, bỏ relative advantage còn 8.75%. Điều này cho thấy ba thành phần không phải trang trí: preference ranking sửa local credit ambiguity, actor BC hấp thụ correction nhanh, relative advantage tránh policy drift do Q tuyệt đối.

Kết quả efficiency cũng đáng chú ý. Disk ACoB-Stream đạt 15,666 CTA cycles trong 150 phút, throughput 1.7407 CTA/s và latency trung bình 0.574 giây mỗi cycle. So với biến thể No KV Cache, throughput tăng 10.95 lần và latency giảm 90.9%. Khi full-history random sampling bắt đầu nghẽn sau khoảng 43 phút do working set vượt Linux page cache, sliding-window disk-backed design vẫn giữ throughput ổn định.

Beginner nên triển khai thế nào?

Đừng bắt đầu bằng task khó nhất như tube brushing dual-arm. Một lộ trình thực tế hơn:

  1. Chọn task single-arm có completion detector rõ, ví dụ đưa object vào slot hoặc gắn tip.
  2. Thu demonstration sạch, ít nhưng đa dạng pose, ưu tiên camera calibration và lighting ổn định.
  3. Chạy Stage I đến khi policy có success khởi động đủ để robot tự rollout một phần đáng kể.
  4. Bật intervention an toàn, giới hạn force/velocity, và để operator sửa ở critical stage.
  5. Chạy Stage II ngắn trước, quan sát intervention rate giảm hay tăng.
  6. Evaluate bằng held-out object poses, không dùng lại đúng reset distribution đã train.

Nếu bạn đang xây pipeline riêng trong LeRobot, hãy coi VLA-Precision như bản thiết kế hệ thống hơn là một script duy nhất. Những ý tưởng có thể tái sử dụng gồm correction buffer riêng, preference ranking cho proposal bị overwrite, frozen reference regularization, context caching và trainable-subspace synchronization. Phần khó nhất không nằm ở công thức loss, mà ở việc robot thật phải cung cấp data đều, reward đáng tin và reset không tốn quá nhiều thời gian.

Giới hạn cần nhớ

VLA-Precision vẫn là task-specific online RL. Paper đề xuất multi-task real-world RL như hướng nghiên cứu tiếp theo, nhưng kết quả chính hiện tại vẫn tối ưu từng task. Hệ thống cũng dùng compute mạnh: shared hyperparameters trong paper ghi 4 NVIDIA A800 GPUs cho training. Ngoài ra, action horizon là vấn đề lớn. Với step-wise delta, tăng executed horizon từ 3 lên 6 làm average autonomous success trên ba insertion task giảm từ 58.3% xuống 6.7% và tăng relative action-prediction RMSE 29.3%. Nói cách khác, chunk dài hơn không tự động tốt hơn trong precision contact.

Điểm đáng học nhất là cách paper tôn trọng thực tế của robot lab. Nó không giả định critic đúng ngay từ đầu, không giả định demonstration hoàn hảo, không gửi full VLA qua network mỗi vài giây, và không xem intervention chỉ là failure recovery. Với beginner, đó là bài học thiết kế quan trọng: online RL cho robot chính xác phải đồng thời giải quyết learning signal, system latency, human takeover và hardware safety.

Bài viết liên quan

  • EXPO-FT: RL Online Cho VLA π0.5
  • TORL: Tactile Online RL cho VLA Contact Manipulation
  • LeRobot v0.6: Reward Models và Closed-Loop RL
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
NS-VLA v2: Fine-tune VLA trên LIBERO
ns-vlavlalibero
wholebody-vla

NS-VLA v2: Fine-tune VLA trên LIBERO

Hướng dẫn NS-VLA v2: neuro-symbolic primitives, BC warmup, GRPO/AWR fine-tuning và inference trên LIBERO.

7/9/202613 phút đọc
NT
NEWTutorial
Guided Action Flow với SmolVLA
guided-action-flowsmolvlaq-guided-flow
wholebody-vla

Guided Action Flow với SmolVLA

Hướng dẫn GAF: dùng Q-guided critic để cải thiện SmolVLA trên LIBERO mà không fine-tune lại policy gốc.

2/9/202615 phút đọc
NT
Tutorial
ManiGuard-Bench cho VLA an toàn
maniguardvlaopenpi
wholebody-vla

ManiGuard-Bench cho VLA an toàn

Hướng dẫn dùng ManiGuard-Bench để đánh giá an toàn manipulation VLA với openpi, GR00T và SmolVLA.

26/8/202612 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