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. InstructVLA: VLA Instruction Tuning Vượt OpenVLA 96%
manipulationvlainstruction-tuningmanipulationopenvlasimpler-envflow-matchingmoeiclr2026eagle2lora

InstructVLA: VLA Instruction Tuning Vượt OpenVLA 96%

ICLR 2026: InstructVLA dùng VLA-IT với MoE LoRA để train manipulation policy hiểu câu lệnh phức tạp, đạt +96% so với OpenVLA trên SimplerEnv-Instruct 80 task.

Nguyễn Anh Tuấn29 tháng 7, 202613 phút đọc
InstructVLA: VLA Instruction Tuning Vượt OpenVLA 96%

Hãy thử tưởng tượng bạn train một người thợ cơ khí giỏi. Ban đầu, anh ta đọc hàng nghìn cuốn sách kỹ thuật và có thể giải thích mọi khái niệm sắc bén. Nhưng sau đó bạn cho anh ta làm việc tay chân suốt 6 tháng — và dần dần, anh ta quên hết lý thuyết, chỉ còn biết làm theo thói quen. Đó chính xác là vấn đề mà hầu hết các VLA model hiện tại đang gặp phải.

InstructVLA (ICLR 2026) từ nhóm nghiên cứu tại USTC, Zhejiang University và Shanghai AI Lab giải quyết vấn đề này một cách khéo léo: thay vì buộc model phải lựa chọn giữa "hiểu ngôn ngữ" hay "làm được việc", họ thiết kế một pipeline để model làm được cả hai — và kết quả vượt qua OpenVLA đến 96% trên benchmark mới SimplerEnv-Instruct.

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 đề: VLA Models Bị "Quên" Tiếng Việt sau khi Học Tay

Trước InstructVLA, hầu hết các VLA model được xây dựng theo một quy trình đơn giản: lấy một Vision-Language Model (VLM) mạnh như LLaMA hay InternVL, rồi fine-tune nó trên dữ liệu robot để sinh ra action. Nghe có vẻ hợp lý.

Nhưng vấn đề nằm ở đây: quá trình fine-tune manipulation thường ghi đè lên kiến thức ngôn ngữ đã học từ pretraining. Model học cách di chuyển tay robot rất tốt, nhưng mất dần khả năng hiểu câu lệnh phức tạp. Thử nói "pick up the red cup but avoid the one near the stove" — model nhìn thấy "red cup", bắt đầu grab mà không xử lý được logic "avoid" hay "near the stove".

Đây không phải vấn đề nhỏ. Trong triển khai thực tế, người dùng nói chuyện với robot bằng ngôn ngữ tự nhiên — câu dài, có ngữ cảnh, đôi khi dùng mệnh lệnh gián tiếp ("bàn trên cùng đang cần thêm đồ" thay vì "lấy đồ vật từ kệ trên cùng"). Nếu robot không xử lý được, toàn bộ tính năng HRI (Human-Robot Interaction) sụp đổ.

Tổng quan vấn đề và giải pháp của InstructVLA — nguồn: InternRobotics/InstructVLA project page
Tổng quan vấn đề và giải pháp của InstructVLA — nguồn: InternRobotics/InstructVLA project page

Giải Pháp: Vision-Language-Action Instruction Tuning (VLA-IT)

InstructVLA đề xuất một khung huấn luyện mới gọi là VLA-IT (Vision-Language-Action Instruction Tuning) với ba trụ cột chính:

Trụ cột 1: Giữ lại kiến thức VLM bằng MoE LoRA

Thay vì fine-tune toàn bộ backbone VLM (sẽ gây "catastrophic forgetting"), InstructVLA dùng Mixture-of-Experts LoRA: mỗi layer trong LLM backbone có nhiều LoRA module hoạt động như các "chuyên gia" độc lập. Một scalar gate coefficient (λᵢ) tự động điều chỉnh trọng số của từng expert theo từng task.

Giống như một nhóm chuyên gia được triệu tập họp: expert nào phù hợp nhất với câu hỏi hiện tại sẽ được "microphone" ưu tiên, trong khi các expert khác vẫn có tiếng nói nhưng nhẹ hơn.

Trụ cột 2: Latent Action Queries — Cầu Nối giữa Ngôn Ngữ và Hành Động

Thay vì trực tiếp decode từ hidden states của VLM sang action vectors, InstructVLA đặt một lớp N learnable action queries ở giữa. Những query này attend vào hidden states của VLM, chiết xuất thông tin task-relevant, rồi pass xuống cho action decoder.

Hãy nghĩ như thế này: hidden states của VLM chứa rất nhiều thông tin ngôn ngữ + thị giác, nhưng không phải tất cả đều cần thiết cho action. Action queries như một bộ lọc thông minh — chỉ lấy phần thông tin "vận động" mà action decoder cần.

Trụ cột 3: Flow Matching Action Decoder

Action decoder của InstructVLA dựa trên flow matching (giống π0) — một kỹ thuật generative modeling tốt hơn diffusion ở tốc độ inference. Decoder gồm:

  • DINOv2 làm vision encoder phụ (224×224 resolution)
  • Feature-wise Linear Modulation (FiLM) để inject thông tin từ VLM vào action decoder
  • 12-layer transformer với hidden size 768

Kết hợp lại, đây là quy trình sinh action 3 bước:

  1. VLM (Eagle2-2B, 448×448) đọc ảnh + câu lệnh, sinh ra hidden states
  2. Action queries lọc hidden states → latent action embedding
  3. Flow matching decoder sinh continuous action trajectory

Kiến trúc chi tiết của InstructVLA với 3-step generation pipeline — nguồn: InternRobotics/InstructVLA project page
Kiến trúc chi tiết của InstructVLA với 3-step generation pipeline — nguồn: InternRobotics/InstructVLA project page

Dataset VLA-IT: 650K Mẫu với 4 Loại Annotation

Một trong những đóng góp quan trọng nhất của paper là bộ dữ liệu VLA-IT gồm 650,000 mẫu, được tạo ra từ hai nguồn gốc (RT-1 Fractal dataset và Bridge Dataset) với sự hỗ trợ của GPT-4o để tạo annotation.

GPT-4o được cho xem 3 frame từ mỗi episode robot cùng với câu lệnh gốc, sau đó tạo ra 4 loại annotation:

Loại Mô tả Ví dụ
Scenario Captioning Mô tả cảnh quan trong ảnh "Một bàn bếp với cốc đỏ ở góc trái, chai nước ở giữa..."
Question Answering Câu hỏi về scene + câu trả lời Q: "Cốc nào đang được robot cầm?" A: "Cốc xanh nhỏ ở góc phải"
Command Rewriting Viết lại câu lệnh theo nhiều cách "Lấy cốc đỏ" → "Could you grab that red mug?" → "đưa cái cốc màu đỏ cho tôi"
Context Creation Tạo ngữ cảnh ẩn dụ "Khách sắp đến, cần dọn bàn" (ngụ ý: dọn đồ vật trên bàn)

Bốn loại annotation này tạo ra sự đa dạng cực kỳ phong phú về ngôn ngữ. Model phải học cách "đọc ý" từ câu lệnh, không chỉ khớp từ khóa.

Trong quá trình training, dữ liệu VLM thông thường và dữ liệu manipulation được mix theo tỷ lệ 1:7 — một manipulation batch, một multimodal batch theo sau. Tỷ lệ này được tối ưu qua ablation study để giữ balance giữa hai khả năng.

SimplerEnv-Instruct: Benchmark Mới cho Instruction Following

Paper đồng thời giới thiệu SimplerEnv-Instruct — một benchmark mới gồm 80 zero-shot manipulation tasks với 1,100 trials, được thiết kế đặc biệt để đánh giá khả năng hiểu câu lệnh phức tạp.

Benchmark chia làm 2 nhóm:

Task Aggregation (50 tasks)

Những task này test khả năng xử lý đa dạng ngôn ngữ:

  • Novel verbs: "retrieve", "transport", "relocate" thay vì "pick and place"
  • Multilingual expressions: câu lệnh bằng nhiều ngôn ngữ khác nhau
  • Diverse object references: "the beverage container" thay vì "the bottle"
  • Out-of-Distribution objects: object không xuất hiện trong training

Situated Reasoning (30 tasks)

Những task này yêu cầu model suy luận từ ngữ cảnh:

  • Contextual reasoning: "It's getting cold, please prepare something warm" → model phải hiểu là "lấy cốc + đổ nước nóng"
  • Command decomposition: câu lệnh dài → chia nhỏ thành sub-goals
  • Spatial reasoning: "put the item to the left of the blue object" → hiểu quan hệ không gian

Kết Quả: Con Số Nói Lên Tất Cả

Kết quả benchmark simulation của InstructVLA — nguồn: InternRobotics/InstructVLA project page
Kết quả benchmark simulation của InstructVLA — nguồn: InternRobotics/InstructVLA project page

SimplerEnv (in-domain tasks)

Model Google Robot WidowX Average
OpenVLA-7B 27.2% 28.8% 27.2%
SpatialVLA-3B 45.9% 41.8% 45.9%
InstructVLA-Expert 50.9% 61.7% 50.9%
InstructVLA-Generalist 49.7% 61.7% 49.7%

InstructVLA-Expert vượt SpatialVLA +11% và vượt OpenVLA +87% trên SimplerEnv thông thường.

SimplerEnv-Instruct (instruction-following tasks)

Model Task Aggregation Situated Reasoning Average
OpenVLA (fine-tuned) 28.3% 19.5% 23.9%
OpenVLA (FT + GPT-4o assist) 38.8% 32.4% 35.6%
InstructVLA-Generalist 43.6% ±1.4% 48.8% ±0.8% 46.2%

+96% so với OpenVLA fine-tuned, +29% so với OpenVLA được GPT-4o hỗ trợ.

Đặc biệt ấn tượng: InstructVLA thực sự tốt hơn ở Situated Reasoning (48.8%) so với Task Aggregation (43.6%) — đúng với thiết kế của VLA-IT chuyên giải quyết reasoning phức tạp.

LIBERO Benchmark (in-domain fine-tuning)

InstructVLA đạt 95.8% average success rate trên 4 LIBERO task suites khi được fine-tune in-domain — thuộc top performance trên benchmark này.

Multimodal Understanding

InstructVLA-Generalist duy trì được khả năng VLM gần như nguyên vẹn:

Benchmark Eagle2-2B (gốc) InstructVLA-Generalist
MMMU-Val 43.1 44.2
MM-Vet 53.8 51.7
MMStar 56.4 56.2
TextVQA 79.1 77.7

Model hầu như không giảm hiệu năng trên multimodal benchmarks — xác nhận rằng MoE LoRA + VLA-IT thành công bảo tồn kiến thức VLM.

Cài Đặt và Chạy InstructVLA

Yêu Cầu Môi Trường

  • Python 3.10+
  • PyTorch 2.2.0 + CUDA 12.1
  • GPU: ít nhất 1× A100 40GB (cho inference), 8× A100 (cho training)
  • RAM: 64GB+ khuyến nghị

Bước 1: Cài Đặt môi trường

# Clone repo
git clone https://github.com/InternRobotics/InstructVLA.git
cd InstructVLA

# Tạo conda environment
conda create -n instructvla python=3.10 -y
conda activate instructvla

# Cài PyTorch với CUDA 12.1
pip install torch==2.2.0 torchvision==0.17.0 torchaudio==2.2.0 \
  --index-url https://download.pytorch.org/whl/cu121

# Cài các dependencies chính
pip install transformers==4.51.0 accelerate==1.3.0 peft==0.13.0
pip install numpy==1.26.4

# Flash Attention (tăng tốc inference đáng kể)
pip install flash-attn==2.5.5 --no-build-isolation

# Cài các dependencies còn lại
pip install -r pip_requirements.txt

Bước 2: Cài SimplerEnv để đánh giá

# ManiSkill2 real2sim (fork được tùy chỉnh)
git clone https://github.com/YangS03/my_maniskill.git ManiSkill2_real2sim
cd ManiSkill2_real2sim && pip install -e .
cd ..

Bước 3: Tải model weights

# Tải VLM backbone và LoRA adapter từ Hugging Face
# (xem hướng dẫn đầy đủ trên GitHub repo)
mkdir -p ckpt
# Tải Eagle2-2B base model
# Tải InstructVLA_Assets (chứa pre-trained LoRA adapters)

Bước 4: Inference với câu lệnh tùy chỉnh

import torch
from instructvla import InstructVLAModel

# Load model
model = InstructVLAModel.from_pretrained("ckpt/instructvla-generalist")
model.eval()

# Chuẩn bị input
observation = {
    "image": image_tensor,           # (1, 3, 448, 448) từ camera
    "wrist_image": wrist_tensor,     # (1, 3, 224, 224) từ wrist camera
    "state": robot_state_tensor,     # (1, state_dim) joint angles + EE pose
    "instruction": "Place the red mug to the right of the blue bottle"
}

# Sinh action
with torch.no_grad():
    actions = model.predict_action(observation)
    # actions: (1, action_horizon, action_dim)
    # action_dim = 7 (6 DoF EE pose + gripper)
    # action_horizon = 16 steps

Training từ Đầu: 2-Stage Pipeline

Stage 1: Action Pre-training (Base Foundation)

Stage 1 train action expert và latent action queries trên dữ liệu manipulation thuần túy, không có VLM multimodal data. Mục tiêu: model học cách "làm" trước khi học cách "hiểu".

# Training Stage 1 — đơn giản hơn, chỉ cần 1 node 8× GPU
python -m torch.distributed.run --nproc_per_node 8 \
  scripts/train_eagle_dual_v2_action_only_meta_query_v2.py \
  --vla.base_vlm "ckpt/Eagle2-2B" \
  --vla.global_batch_size 128 \
  --vla.per_device_batch_size 16 \
  --stage stage1 \
  --future_action_window_size 15

Checkpoint Stage 1 train khoảng 650M parameters (action expert + action queries).

Stage 2: VLA Instruction Tuning (Ngôn Ngữ + Hành Động)

Stage 2 thêm language LoRA và scalar gate head, đồng thời co-train trên 3 loại dữ liệu:

  • Multimodal VLM data (Bunny dataset, 2M samples)
  • Manipulation data (RT-1, Bridge)
  • VLA-IT dataset (650K samples)
# Training Stage 2 — cần multi-node (ít nhất 2 node × 8 GPU)
python -m torch.distributed.run --nproc_per_node 8 \
  scripts/train_eagle_dual_v2_action_only_meta_query_v2.py \
  --vla.base_vlm "ckpt/Eagle2-2B" \
  --stage stage2 \
  --use_mm True \
  --fix_system1 True \
  --vla.global_batch_size 768 \
  --vla.learning_rate 5e-5 \
  --future_action_window_size 15

Lưu ý quan trọng: Batch mix ratio là 1:7 (1 multimodal batch : 7 manipulation batches). Con số này không phải tùy ý — ablation study trong paper cho thấy nếu tỷ lệ này quá nghiêng về multimodal (1:3), model giảm performance manipulation. Nếu quá nghiêng về manipulation (1:14), model quên ngôn ngữ.

Stage 2 tune khoảng 220M parameters (language LoRA + scalar gate).

Kết Quả Real-World: WidowX và Franka Research 3

Thí nghiệm thực tế trên robot WidowX và Franka — nguồn: InternRobotics/InstructVLA project page
Thí nghiệm thực tế trên robot WidowX và Franka — nguồn: InternRobotics/InstructVLA project page

Paper test trên 2 platform thực tế:

WidowX-250 (zero-shot, môi trường bếp):

  • Atomic instructions: +23.3% so với OpenVLA
  • Reasoning tasks: +46.7% (zero-shot)

Franka Research 3 (few-shot, các task spatial và math):

  • Reasoning tasks: +41.7% so với OpenVLA
  • Math-centric tasks: 2.5× so với π0

Một ví dụ ấn tượng: khi được hỏi "The guest is arriving in 10 minutes, please help prepare", InstructVLA hiểu đây là lệnh ngầm để dọn bàn và đặt đồ uống — trong khi OpenVLA đứng im hoặc thực hiện sai action.

InstructVLA vs Các Approach Khác

InstructVLA không phải là nghiên cứu đầu tiên về instruction following cho robot, nhưng cách tiếp cận của nó khác biệt:

Approach Cách làm Nhược điểm
OpenVLA Fine-tune toàn bộ LLM trên action data Mất ngôn ngữ capability, action coarse
SpatialVLA Thêm spatial token, không tập trung ngôn ngữ Tốt về spatial nhưng yếu instruction
π0 Diffusion decoder, VLM frozen Tốt nhưng không train VLM + action jointly
GPT-4o + Action Expert LLM plan + separate robot controller Latency cao, không end-to-end
InstructVLA MoE LoRA + VLA-IT co-training Training phức tạp hơn, cần nhiều GPU

InstructVLA chọn con đường khó hơn (end-to-end, joint training) nhưng kết quả tốt hơn đáng kể ở instruction following tasks.

Bài Học Kỹ Thuật cho Practitioner

Nếu bạn muốn áp dụng ý tưởng của InstructVLA vào project của mình, đây là những điểm then chốt:

1. Đừng bao giờ fine-tune full model trên action data nếu muốn giữ ngôn ngữ capability. Dùng PEFT (LoRA, MoE LoRA) và chỉ mở freeze một số layer.

2. Dataset quality > dataset quantity. 650K mẫu được annotate bởi GPT-4o với 4 loại annotation phong phú tốt hơn nhiều so với 6.5M mẫu annotation đơn giản.

3. Multimodal co-training ratio rất quan trọng. Ratio 1:7 được tối ưu qua nhiều ablation — nếu implement lại, nên chạy ablation trên dataset của mình thay vì giả định ratio này luôn đúng.

4. Action queries là key innovation. Thay vì decode trực tiếp từ LLM output, đặt một lớp learnable query ở giữa giúp chiết xuất thông tin phù hợp và giảm interference giữa language head và action head.

5. SimplerEnv-Instruct là benchmark rất có giá trị. Nếu bạn đang phát triển VLA, hãy dùng benchmark này thay vì chỉ test SimplerEnv thông thường — nó phản ánh thực tế hơn nhiều về instruction generalization.

Kết Luận

InstructVLA giải quyết một vấn đề thực sự quan trọng: làm sao để robot vừa "làm giỏi" vừa "hiểu giỏi" mà không phải hi sinh cái này cho cái kia. Thông qua VLA-IT, MoE LoRA, và 650K mẫu dữ liệu chất lượng cao, paper chứng minh rằng điều này hoàn toàn khả thi.

+96% so với OpenVLA trên instruction following, 95.8% trên LIBERO, và performance thực tế ấn tượng trên WidowX và Franka là những con số đủ để InstructVLA trở thành một trong những VLA framework đáng tham khảo nhất cho bất kỳ ai đang xây dựng manipulation system cần hiểu ngôn ngữ tự nhiên.

Resources:

  • Paper: arXiv 2507.17520
  • GitHub: InternRobotics/InstructVLA
  • Dataset: ShuaiYang03/VLA_Instruction_Tuning
  • Project page: yangs03.github.io/InstructVLA_Home

Bài Viết Liên Quan

  • OpenVLA Deep Dive: Kiến trúc và Fine-tuning cho Robot Manipulation
  • SpatialVLA: VLA với Spatial Reasoning cho Robot Manipulation
  • A1 VLA với Truncated Flow Matching: Tăng Tốc Inference cho Robot
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

Tutorial
Agentic Robot: SAP Protocol + Temporal Verifier
manipulationvlaliberoPhần 4
manipulation

Agentic Robot: SAP Protocol + Temporal Verifier

Chạy ds.py (DeepSeek-V3 decompose subgoals) và main.py (OpenVLA trên LIBERO). Implement Temporal Verifier sliding window — SAP protocol đạt 79.6% LIBERO avg.

15/6/202614 phút đọc
NT
Tutorial
LaST-R1: Fine-tune VLA với Latent CoT và RL đạt 99.8%
vlareinforcement-learningchain-of-thought
manipulation

LaST-R1: Fine-tune VLA với Latent CoT và RL đạt 99.8%

Hướng dẫn chi tiết LaST-R1 — framework kết hợp Latent Chain-of-Thought reasoning với LAPO (RL) để fine-tune VLA đạt 99.8% success rate trên LIBERO chỉ với 1 demo/task.

8/7/202615 phút đọc
NT
Nghiên cứu
UniTacVLA: Xúc Giác Chain-of-Thought cho Robot Manipulation
vlatactilechain-of-thought
manipulation

UniTacVLA: Xúc Giác Chain-of-Thought cho Robot Manipulation

UniTacVLA tích hợp tactile chain-of-thought và coarse-to-fine prediction vào VLA để xử lý thao tác tiếp xúc phức tạp — ECCV 2026 với code open-source.

6/7/202611 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