VnRoboVnRobo
Về chúng tôiBảng giáBlogLiên hệ
🇺🇸ENĐăng nhậpDùng thử miễn phí
🇺🇸EN
VnRobo logoVnRobo 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
VnRoboVnRobo
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. SimpleMemVLA: Bộ Nhớ Video Gốc cho Long-Horizon
wholebody-vlavlawhole-bodymanipulationlong-horizonmemorylerobotqwenflow-matchingrobot-arm

SimpleMemVLA: Bộ Nhớ Video Gốc cho Long-Horizon

SimpleMemVLA loại bỏ module nhớ chuyên dụng, dùng native video context của Qwen3.5-4B làm bộ nhớ — đạt SOTA trên 4 benchmark manipulation dài hơi.

Nguyễn Anh Tuấn20 tháng 9, 202612 phút đọc
SimpleMemVLA: Bộ Nhớ Video Gốc cho Long-Horizon

Long-horizon robot manipulation đặt ra một câu hỏi khó: làm sao robot nhớ được những việc nó đã làm cách đây 2 phút để ra quyết định đúng ngay bây giờ? Đây không phải vấn đề tính toán thuần túy — đây là vấn đề thiết kế bộ nhớ sai từ gốc.

Paper SimpleMemVLA: A Simple but Effective Native-Video Memory for Vision-Language-Action Models (arXiv:2609.05533, tháng 9/2026) của nhóm tác giả Cheng Yin, Wang Xu, Junpeng Yang và cộng sự đưa ra một lời giải bất ngờ: không cần module nhớ chuyên dụng nào cả. Chỉ cần đưa dữ liệu đúng định dạng mà backbone VLM đã được train để xử lý từ đầu.

Banner SimpleMemVLA — tổng quan pipeline và so sánh với các phương pháp memory khác
Banner SimpleMemVLA — tổng quan pipeline và so sánh với các phương pháp memory khác
Tổng quan SimpleMemVLA — nguồn: repo hongzefu/SimpleMemVLA

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 đề: Tại sao Long-Horizon Manipulation khó đến vậy?

Hãy tưởng tượng một robot cần thực hiện chuỗi thao tác: đặt khối A vào hộp đỏ, sau đó đặt khối B vào hộp xanh, rồi dựa vào thứ tự đặt ban đầu để tháo chúng ra theo đúng trình tự ngược lại. Thông tin quan trọng nhất — khối nào được đặt trước — đã biến mất khỏi khung hình hiện tại từ lâu.

Đây là bản chất của bài toán partially observable: policy cần thông tin từ quá khứ, nhưng observation hiện tại không chứa đủ thông tin đó. Các VLA model thông thường chỉ xử lý frame hiện tại hoặc cửa sổ ngắn vài frame — chúng hoàn toàn mù trước lịch sử dài.

Các benchmark đo khả năng này rất đa dạng:

  • RMBench: 9 task trên robot bimanual Aloha-AgileX, yêu cầu nhớ vật thể và thứ tự qua nhiều bước
  • RoboMME: 16 task trên Panda, kiểm tra nhiều loại memory (sequence, spatial, semantic)
  • MIKASA-Robo: Task với wrist camera, phụ thuộc lịch sử ngắn hơn nhưng dày đặc hơn
  • RoboMemArena: Horizon dài nhất — cửa sổ lịch sử tới 126 giây

Các Cơ chế Memory Cũ: Tại sao Đều Thất bại?

Trước SimpleMemVLA, cộng đồng nghiên cứu đã thử ba hướng tiếp cận chính:

1. Retrieval-based memory

Lưu trữ observation "quan trọng" vào memory bank, truy vấn (retrieve) khi cần quyết định. Vấn đề cốt lõi: phải quyết định cái gì quan trọng tại thời điểm ghi — trước khi biết quyết định trong tương lai cần thông tin gì. Đây gọi là "write-time commitment problem".

2. Token compression

Nén lịch sử thành số token cố định (ví dụ 1 token/frame). Vấn đề: thông tin bị mất không thể phục hồi được. Model nén không có khả năng dự đoán thông tin nào sẽ cần trong tương lai.

3. Recurrent state (kiểu RNN)

Duy trì hidden state tóm tắt lịch sử, cập nhật mỗi bước. Vấn đề: state là "lossy" — mỗi bước có thể ghi đè thông tin cũ. Đây chính xác là nơi thông tin về thứ tự và ngữ cảnh bị mất dần.

Kết quả ablation của SimpleMemVLA trên RoboMME (cùng backbone Qwen3.5-4B, chỉ thay memory interface):

Memory Interface Kết quả RoboMME
Native Context (SimpleMemVLA) 88.3%
Retrieval-based 31.5%
Token Compression 22.6%
Recurrent State 20.6%

Khoảng cách 88.3% vs 20–31% không thể giải thích bằng backbone hay training data. Bằng chứng hiển nhiên: vấn đề nằm ở thiết kế memory interface, không phải ở năng lực backbone.

Insight Cốt lõi: VLM Đã Biết Cách Đọc Video

Backbone Qwen3.5-4B đã được pre-train trên lượng khổng lồ video kèm timestamp. Nó biết cách xử lý video theo thời gian — đó chính xác là định dạng nó được huấn luyện từ đầu.

Insight của SimpleMemVLA rất đơn giản nhưng sâu sắc: đừng "dạy lại" model cách nhớ bằng module mới — hãy cho nó dữ liệu theo đúng định dạng nó đã biết xử lý.

Thay vì nén, truy vấn hay duy trì recurrent state, SimpleMemVLA:

  1. Lưu lại các frame quan sát có timestamp dạng video gốc
  2. Đưa toàn bộ vào backbone dưới dạng video clip thuần túy
  3. Để self-attention của backbone tự quyết định frame nào quan trọng tại thời điểm ra quyết định

Không cần "commit" cái gì quan trọng từ sớm — bằng chứng chỉ được đánh giá khi cần thiết. Đây là nguyên tắc deferred evidence selection.

Để hiểu tại sao điều này quan trọng: một human expert đọc video lịch sử để tìm clue — họ không ép bản thân "tóm tắt" video trước khi biết câu hỏi cần trả lời. SimpleMemVLA cho backbone làm đúng điều đó.

Kiến Trúc của SimpleMemVLA

SimpleMemVLA gồm 3 thành phần kết nối tuần tự:

Kiến trúc SimpleMemVLA và cơ chế streaming inference
Kiến trúc SimpleMemVLA và cơ chế streaming inference
Kiến trúc 3 thành phần và streaming inference — nguồn: paper SimpleMemVLA arXiv:2609.05533

Thành phần 1 — Video History Input

Model duy trì cửa sổ lịch sử V_t = (frame_{t−Ks}, …, frame_{t−s}, frame_t):

  • 60 giây lịch sử tại 2 fps = 120 frame
  • Mỗi frame được prefix bằng plaintext timestamp theo đúng định dạng video pretraining của Qwen3.5-4B (ví dụ: [t=42.3s])
  • Một cửa sổ 60 giây chỉ tốn khoảng 5.600 token trong context window 262.000 token — đủ chỗ lưu tới 45 phút lịch sử

Camera chính đưa video history vào video channel của backbone. Camera cổ tay (wrist camera) chỉ đưa frame hiện tại qua image channel — phân biệt quá khứ và hiện tại bằng modality, không cần encoding đặc biệt.

Thành phần 2 — Sub-task Generation (Cầu nối Memory → Action)

Backbone sinh ra mô tả ngắn về task hiện tại dựa trên toàn bộ video history:

  • Tối đa 64 token — không chain-of-thought, không suy luận dài dòng
  • Được supervise bằng token-level cross-entropy với nhãn sub-task chính xác
  • Hidden states và token embeddings của span này là kênh duy nhất truyền thông tin từ video history xuống action head

Đây là "thắt cổ chai có chủ đích": model phải nén những gì nó hiểu từ lịch sử video vào ≤64 token — nhưng sự nén này xảy ra sau khi đã đọc toàn bộ lịch sử, không phải trước. Quan trọng hơn, không có drift giữa train và inference vì span masking hoàn toàn xác định.

Thành phần 3 — Flow-Matching Action Head

Action head là một DiT (Diffusion Transformer) khoảng 0.9 tỷ tham số:

  • Conditioning set C_t = [token embeddings + hidden states từ sub-task span] + [normalized proprioceptive token]
  • Inference: 10 bước Euler integration deterministic
  • Loss: flow-matching loss chuẩn — E[‖v_φ(A^τ, τ | C_t) − (ε − Ā_t)‖²]

Không có kiến trúc đặc biệt ở đây — đây là flow-matching head tiêu chuẩn, chỉ khác ở conditioning đến từ hidden states của sub-task span thay vì từ frame đơn lẻ. Xem thêm cơ chế flow-matching trong bài phân tích A1-VLA Truncated Flow Matching.

Streaming Inference: Giữ Latency Gần Single-Frame

Robot thực hiện action trong ~0.96 giây. Trong thời gian đó, SimpleMemVLA prefill shared prefix thay vì đứng không chờ.

Vì các quyết định liên tiếp chia sẻ hầu hết video prefix (chỉ vài frame mới nhất thay đổi), hệ thống:

  1. Lưu KV cache của prefix đã compute trong lần quyết định trước
  2. Khi cần quyết định mới, chỉ compute phần mới thêm vào prefix
  3. Output bit-identical với full recomputation — không mất accuracy

Latency thực đo (60 giây lịch sử):

Mode Latency
Full recomputation 1.02 giây
Streaming inference 0.68 giây
Execution budget robot 0.96 giây

Với lịch sử 45 phút, streaming giảm latency từ 32.1 giây xuống 1.18 giây — speedup 27 lần, và output vẫn bit-identical.

Kết quả Benchmark

Kết quả SimpleMemVLA trên các benchmark — so sánh với prior SOTA
Kết quả SimpleMemVLA trên các benchmark — so sánh với prior SOTA
Kết quả so sánh 5 benchmark suite — nguồn: paper SimpleMemVLA

Benchmark SimpleMemVLA Prior SOTA Cải thiện
RMBench 94.0% 83.0% +11.0 pts
RoboMME 88.3% 44.6% +43.7 pts
MIKASA-Robo 74.0% 44.4% +29.6 pts
RoboMemArena 63.6% TSR 46.2% +17.4 pts
LIBERO 97.5% 97.5% Ngang nhau
LIBERO-Plus (zero-shot) 78.4% 73.1% +5.3 pts

Điểm đáng chú ý nhất: trên RoboMME, SimpleMemVLA đạt 88.3% — vượt qua cả GT-oracle baseline ở 84.1% (oracle có ground-truth state của môi trường). Điều này gợi ý model đã học khai thác video history tốt hơn cả việc nhìn thấy đáp án trực tiếp.

Cải thiện +43.7 pts trên RoboMME là lớn nhất trong lịch sử benchmark này — và nó đến từ việc thay memory interface, không thay backbone hay tăng data.

Cài đặt và Chạy

Yêu cầu hệ thống

code
Python 3.10
CUDA GPU với flash-attention support
PyTorch 2.4.1 (do tương thích SAPIEN simulator)

Tạo môi trường và cài đặt dependencies

Mỗi benchmark có conda environment riêng vì xung đột SAPIEN version:

bash
conda create -n simplememvla-rmbench python=3.10 -y
conda activate simplememvla-rmbench
pip install -r requirements.txt

# Cài fast-path kernels (bắt buộc cho training và eval)
bash scripts/install/install_fast_path.sh

# Cài simulator cho benchmark cụ thể
bash scripts/install/install_rmbench_sim.sh
# Thay "rmbench" bằng: robomme | mikasa | robomemarena | libero

Download checkpoint đã train sẵn

bash
# RMBench checkpoint
huggingface-cli download yinchenghust/simplememvla_rmbench \
  --local-dir checkpoints/simplememvla_rmbench

# ModelScope (nếu ở Trung Quốc / truy cập HuggingFace chậm)
modelscope download yinchenghust/simplememvla_rmbench \
  --local_dir checkpoints/simplememvla_rmbench

Checkpoint tự-contained: bao gồm model weights, config, tokenizer và dataset statistics. Rebuild được toàn bộ training pipeline chính xác từ config.json.

Training từ đầu

bash
# Chạy training — chọn benchmark
bash scripts/train.sh rmbench
# Hoặc: robomme | mikasa | robomemarena | libero

Override defaults bằng environment variables:

bash
HISTORY_VIDEO_SEC=60 \
GPUS_PER_NODE=8 \
PER_DEVICE_BATCH=2 \
  bash scripts/train.sh robomme

Cấu hình training mặc định:

  • Optimizer: AdamW với split learning rate (backbone vs action head)
  • Schedule: 1000-step warmup + cosine decay
  • DeepSpeed: ZeRO-2 mặc định
  • History window: 60 giây (đổi qua HISTORY_VIDEO_SEC)

Evaluation (closed-loop với simulator)

bash
CHECKPOINT=checkpoints/simplememvla_rmbench \
NUM_GPUS=8 \
  bash scripts/eval_rmbench.sh

Evaluation (open-loop, không cần simulator)

Chạy nhanh hơn để kiểm tra action L1 loss và sub-task accuracy:

bash
bash scripts/eval_openloop.sh rmbench

Demo Robot Thực tế

Nhóm tác giả deploy SimpleMemVLA trên robot dual-arm thực với task Cover Blocks:

  • Robot phải đặt cover lên 3 khối theo thứ tự, sau đó gỡ ra theo đúng thứ tự ngược lại (đỏ → xanh lá → xanh dương)
  • Thứ tự gỡ không thể suy ra từ layout hiện tại — chỉ có thể suy ra từ lịch sử video từ 52–98 giây trước
  • 3 rollout tự động trên 3 layout khác nhau

Kết quả thực tế:

  • Cover Blocks: 58.3% success rate
  • Put Back Block: 70.0% success rate

Phân tích causal intervention xác nhận: các frame quyết định hành vi nằm ở 52–98 giây trước thời điểm quyết định. Model thực sự đọc và sử dụng lịch sử dài — không phải shortcut từ vị trí vật thể hiện tại.

So sánh với Các Phương pháp Memory Khác

So sánh kỹ thuật với các VLA memory approach liên quan:

Phương pháp Cơ chế Mạnh Yếu
SimpleMemVLA Native video context Không mất thông tin, tận dụng VLM pretraining Giới hạn context window
μVLA Recurrent memory token Latency thấp, memory nhỏ Lossy, gradient khó học
NativeMEM 1 token/frame compression Memory footprint nhỏ gọn Mất chi tiết spatial
MemoryVLA++ World model + imagination Generalization tốt Kiến trúc phức tạp hơn

SimpleMemVLA cũng hỗ trợ Sliding Window Attention (SWA) cho lịch sử dài hơn mà không để context window tăng không giới hạn — hữu ích khi deploy với constraint memory GPU.

Để so sánh chi tiết với μVLA về recurrent memory, xem μVLA: Recurrent Memory Token cho Manipulation Partially Observable. Với hướng world model, xem MemoryVLA++: World Model và Imagination cho VLA.

Bài học Kỹ thuật Từ Paper Này

Paper SimpleMemVLA dạy một nguyên tắc thiết kế AI quan trọng: đừng tạo ra abstraction mới khi component đã có đủ năng lực — hãy dùng đúng cách.

Retrieval, compression, recurrent state đều là câu trả lời cho câu hỏi: "làm thế nào để backbone cũ xử lý được lịch sử dài?". Khi backbone mới (modern VLM như Qwen3.5-4B) đã được train trên video với timestamp, câu hỏi đó không còn đúng nữa. Backbone đã có khả năng đó rồi. Việc cần làm là đưa dữ liệu đúng định dạng — không phải tạo adapter cho định dạng sai.

Đây là lý do SimpleMemVLA có thể đánh bại các hệ thống phức tạp hơn nhiều chỉ với một thay đổi nhỏ về input pipeline.

Xem thêm cách BridgeVLA+ tiếp cận memory bài toán manipulation 3D tại BridgeVLA+: Spatio-Temporal Memory cho 3D Manipulation.

Kết luận

SimpleMemVLA chứng minh rằng simplicity đúng chỗ là nghiên cứu tốt: bằng cách loại bỏ module memory phức tạp và tận dụng năng lực video processing sẵn có của Qwen3.5-4B, paper đạt state-of-the-art trên 4 trong số 4 memory-centric benchmark với margin rất lớn — đặc biệt +43.7 pts trên RoboMME so với prior best. Latency vẫn gần single-frame nhờ streaming inference với KV cache prefix.

Đây là hướng nghiên cứu quan trọng: khi VLM backbone ngày càng mạnh hơn, nhiều "vấn đề" trong robot learning sẽ được giải bằng cách đưa đúng input cho backbone thay vì tạo thêm module chuyên dụng.

Paper, code và checkpoint đã public tại github.com/hongzefu/SimpleMemVLA — MIT license.

Bài viết liên quan

  • μVLA: Recurrent Memory Token cho Manipulation Partially Observable
  • MemoryVLA++: World Model và Imagination cho VLA
  • BridgeVLA+: Spatio-Temporal Memory cho 3D Manipulation
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 trước
FluxVLA Engine: Nền tảng one-stop triển khai VLA mới nhất

Bài viết liên quan

Deep Dive
τ₀-VLA: VLA Phân Cấp với World-Model Test-Time Computation
vlalerobotmanipulation
wholebody-vla

τ₀-VLA: VLA Phân Cấp với World-Model Test-Time Computation

τ₀-VLA là VLA phân cấp open-source dùng Qwen3.5 + LeRobot, kết hợp world model và test-time computation cho long-horizon manipulation, đạt 45% success.

27/8/202611 phút đọc
NT
Tutorial
Fine-tune InternVLA-A1.5 với LeRobot
internvla-a1.5lerobotvla
wholebody-vla

Fine-tune InternVLA-A1.5 với LeRobot

Hướng dẫn cài đặt, fine-tune và inference InternVLA-A1.5 trên LeRobot, với latent foresight cho manipulation VLA.

22/7/202614 phút đọc
NT
Tutorial
LabVLA: VLA Mã Nguồn Mở cho Robot Phòng Lab
lerobotvlaqwen3-vl
wholebody-vla

LabVLA: VLA Mã Nguồn Mở cho Robot Phòng Lab

Hướng dẫn chạy LabVLA — mô hình VLA đầu tiên cho lab khoa học, kết hợp Qwen3-VL-4B với DiT flow-matching và LeRobot v2 format. 71.1% trên LabUtopia benchmark.

12/6/202614 phút đọc
NT
VnRobo logoVnRobo 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