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. VimaBench: 17 Task, 4 Cấp Tổng Quát Hóa
manipulationvimavimabenchbenchmarkevaluationgeneralizationrobot-manipulationtutorial

VimaBench: 17 Task, 4 Cấp Tổng Quát Hóa

Cài đặt VimaBench, chạy demo 200M checkpoint, và phân tích 4 cấp eval từ placement đến novel task generalization — cấp nào quan trọng nhất cho humanoid?

Nguyễn Anh Tuấn16 tháng 6, 202617 phút đọc
VimaBench: 17 Task, 4 Cấp Tổng Quát Hóa

Hãy tưởng tượng bạn vừa train xong một robot manipulation model. Giờ câu hỏi thật sự bắt đầu: model này có thực sự hiểu task, hay chỉ đang nhớ vẹt pattern từ training data? Bạn cần một framework đánh giá đủ khắt khe để phân biệt hai trường hợp đó — không phải chỉ test lại trên training distribution, mà test mức độ tổng quát hóa thực chất.

VimaBench là framework đó. Được xây dựng cùng với VIMA (ICML 2023), VimaBench cung cấp 17 task template — mỗi template có thể instantiate thành hàng nghìn instance khác nhau bằng cách kết hợp nhiều loại vật thể và texture — và định nghĩa một giao thức đánh giá 4 cấp để đo loại tổng quát hóa mà model thực sự đạt được.

Bài này dẫn bạn từ A đến Z: cài đặt VimaBench, chạy demo với checkpoint 200M, hiểu 17 task theo 6 nhóm chức năng, và phân tích 4 cấp eval — từ placement_generalization (dễ nhất) đến novel_task_generalization (khó nhất). Cuối bài, bạn sẽ hiểu tại sao cấp 4 là con số duy nhất đáng quan tâm khi muốn deploy VIMA lên humanoid thực tế.

Roadmap Series

Bài này là bài 2/5 trong series VIMA: Prompt Đa Phương Thức cho Robot Tay Người:

Bài Chủ đề
Bài 1: Kiến Trúc Cross-Attention XAttn GPT + T5 Encoder — tại sao cross-attention thắng
Bài 2 (bạn đang đọc) VimaBench: 17 Task và Giao Thức 4 Cấp
Bài 3: Object Tokenizer Từ pixel thô đến token đối tượng với Mask R-CNN + ViT
Bài 4: Dataset 650K Thu thập dữ liệu đa nhiệm vụ quy mô lớn
Bài 5: Humanoid Adaptation Mở rộng VIMA lên robot hình người DoF cao

Cài Đặt VimaBench

Yêu cầu hệ thống

  • Python ≥ 3.9
  • Git
  • RAM ≥ 4GB (môi trường PyBullet simulation)
  • GPU không bắt buộc để chạy demo

Cài đặt

# Bước 1: Clone repo VimaBench
git clone https://github.com/vimalabs/VimaBench
cd VimaBench

# Bước 2: Cài đặt ở chế độ editable (cần thiết để import vima_bench)
pip install -e .

Sau khi cài xong, verify bằng Python:

from vima_bench import make, PARTITION_TO_SPECS

# Kiểm tra: danh sách tất cả partition có sẵn
partitions = list(PARTITION_TO_SPECS["test"].keys())
print(partitions)
# Output: ['placement_generalization', 'combinatorial_generalization',
#          'novel_object_generalization', 'novel_task_generalization']

Import thành công mà không có lỗi — bạn đã sẵn sàng.

Tải Checkpoint

VimaBench không bundled sẵn checkpoint model. Checkpoint nằm trong repo VIMA chính:

# Clone VIMA algorithm repo
git clone https://github.com/vimalabs/VIMA
cd VIMA

# Tạo thư mục chứa checkpoint
mkdir -p ckpts

# Tải checkpoint 200M (performance tốt nhất)
# Xem README trong repo VIMA để lấy link download mới nhất
# wget <checkpoint_url> -O ckpts/200M.ckpt

VimaBench cung cấp 7 checkpoint từ 2M đến 200M tham số. Bài này dùng 200M.ckpt cho tất cả ví dụ. Nếu RAM hạn chế, thử 9M.ckpt hoặc 4M.ckpt — cú pháp lệnh hoàn toàn giống nhau, chỉ đổi path checkpoint.


Chạy Demo Đầu Tiên

VimaBench cung cấp sẵn scripts/example.py để test nhanh bất kỳ policy nào:

python scripts/example.py \
  --ckpt=ckpts/200M.ckpt \
  --partition=placement_generalization \
  --task=follow_order

Ba tham số chính:

Tham số Ý nghĩa Giá trị ví dụ
--ckpt Đường dẫn đến file checkpoint ckpts/200M.ckpt
--partition Cấp đánh giá (1 trong 4) placement_generalization
--task Task cụ thể (1 trong 17) follow_order

Khi chạy, PyBullet mở cửa sổ simulator hiển thị bàn tabletop với các vật thể được đặt ngẫu nhiên. Robot nhận multimodal prompt — gồm cả text mô tả lẫn ảnh vật thể tham chiếu — thực thi action sequence, và bạn quan sát trực tiếp liệu model có hoàn thành task không.

Task follow_order: robot nhìn vào video demo gồm nhiều frame và thực hiện lại chuỗi hành động theo đúng thứ tự
Task follow_order: robot nhìn vào video demo gồm nhiều frame và thực hiện lại chuỗi hành động theo đúng thứ tự
Task follow_order — nguồn: repo vimalabs/VimaBench

Chuyển lên cấp khó hơn

Chỉ cần đổi --partition và --task để thử các cấp cao hơn:

# Cấp 2: tổ hợp adjective-noun chưa thấy trong training
python scripts/example.py \
  --ckpt=ckpts/200M.ckpt \
  --partition=combinatorial_generalization \
  --task=same_texture

# Cấp 4: task template hoàn toàn mới
python scripts/example.py \
  --ckpt=ckpts/200M.ckpt \
  --partition=novel_task_generalization \
  --task=novel_adj_noun

Sự chênh lệch performance giữa hai lệnh này chính là câu trả lời cho câu hỏi "model này có tổng quát hóa được không?" — và thường chênh nhau 20–40 điểm phần trăm success rate.


17 Task — 6 Nhóm Chức Năng

VimaBench không chọn 17 task ngẫu nhiên. Chúng được thiết kế để bao phủ các năng lực nhận thức khác nhau mà một robot manipulation system cần có, từ thao tác vật thể đơn giản đến suy luận đa bước. Mỗi task thuộc một trong 6 nhóm:

Nhóm 1: Simple Object Manipulation

Task Mô tả ngắn
visual_manipulation Nhặt vật A → đặt vào vị trí B theo chỉ dẫn hình ảnh
scene_understanding Phân tích cảnh và chọn đúng đối tượng theo mô tả

Đây là "hello world" của robot manipulation — nhưng với twist quan trọng: thông tin về vật nào và đặt đâu được truyền qua ảnh trong prompt, không phải text thuần túy. Model phải ground multimodal reference vào không gian vật lý 3D.

Task visual_manipulation: robot phân tích ảnh prompt để xác định vật thể cần nhặt và vị trí đích — thực thi trong môi trường PyBullet tabletop
Task visual_manipulation: robot phân tích ảnh prompt để xác định vật thể cần nhặt và vị trí đích — thực thi trong môi trường PyBullet tabletop
Task visual_manipulation — nguồn: repo vimalabs/VimaBench

Nhóm 2: Visual Goal Reaching

Task Mô tả ngắn
rotate Xoay vật thể đến góc được chỉ định trong ảnh goal
rearrange Sắp xếp lại các đối tượng để khớp với cấu hình trong ảnh goal
rearrange_then_restore Sắp xếp theo goal, sau đó phục hồi về trạng thái ban đầu

Khó hơn nhóm 1 vì model phải hiểu quan hệ không gian tương đối giữa các đối tượng, không chỉ vị trí tuyệt đối. Task rearrange_then_restore đặc biệt thú vị: nó đòi hỏi model duy trì bộ nhớ về trạng thái ban đầu trong suốt quá trình thực thi.

Nhóm 3: Novel Concept Grounding

Task Mô tả ngắn
novel_adj Học adjective mới (màu/texture lạ) từ 1–2 ví dụ trong prompt
novel_noun Học noun mới (loại vật thể lạ) từ 1–2 ví dụ
novel_adj_noun Kết hợp cả adjective và noun mới chưa từng thấy
twist Áp dụng khái niệm "xoắn" (twist) theo ngữ cảnh mới

Đây là bộ task few-shot grounding: prompt cung cấp 1–2 ví dụ về khái niệm mới (như "glassy" hay "mug"), model phải hiểu và tổng quát hóa sang instance chưa từng thấy. Nhóm này trực tiếp test khả năng học từ context, không phải từ training data.

Nhóm 4: One-Shot Video Imitation

Task Mô tả ngắn
follow_motion Bắt chước chuỗi chuyển động từ video demo (spatial trajectory)
follow_order Thực hiện các action theo đúng thứ tự xuất hiện trong video

Prompt là video clip — chuỗi frame thể hiện demo — không phải ảnh tĩnh. Model phải extract temporal structure từ video: đối tượng nào xuất hiện theo thứ tự nào, và hành động nào được thực hiện.

Nhóm 5: Visual Constraint Satisfaction

Task Mô tả ngắn
sweep_without_exceeding Quét vật thể vào khu vực mà không vượt quá ngưỡng số lượng
sweep_without_touching Quét vật thể mà không chạm vào đối tượng cụ thể được chỉ định

Model phải thực hiện task trong khi tuân theo ràng buộc phủ định — không làm X trong khi làm Y. Đây là kỹ năng cực kỳ quan trọng cho an toàn trong môi trường thực: robot hàn không được chạm vào wire hàng xóm, robot pick-and-place không được vượt quá trọng tải kệ.

Nhóm 6: Visual Reasoning

Task Mô tả ngắn
same_texture Nhặt vật thể có cùng texture như vật mẫu trong prompt
same_shape Nhặt vật thể có cùng hình dạng như vật mẫu
manipulate_old_neighbor Tương tác với vật thể từng đứng cạnh vật khác (bộ nhớ không gian)
pick_in_order_then_restore Nhặt theo thứ tự xác định, rồi đặt lại theo thứ tự ngược

Nhóm khó nhất: đòi hỏi suy luận đa bước, bộ nhớ về trạng thái trước đó, và so sánh thuộc tính trực quan. Task manipulate_old_neighbor đặc biệt thú vị — model phải nhớ spatial relationship từ đầu episode để biết "neighbor" của một vật thể là ai.

Task pick_in_order_then_restore: robot nhặt từng vật theo đúng thứ tự được chỉ định, sau đó đặt lại theo thứ tự ngược — đòi hỏi bộ nhớ multi-step
Task pick_in_order_then_restore: robot nhặt từng vật theo đúng thứ tự được chỉ định, sau đó đặt lại theo thứ tự ngược — đòi hỏi bộ nhớ multi-step
Task pick_in_order_then_restore — nguồn: repo vimalabs/VimaBench


Giao Thức 4 Cấp — Trái Tim của VimaBench

Đây là phần làm VimaBench khác biệt với benchmark thông thường. Thay vì chỉ test trên distribution giống training, VimaBench định nghĩa 4 partition với mức độ khó tăng dần, mỗi cấp đo một loại tổng quát hóa khác nhau.

Hãy hình dung 4 cấp này như 4 câu hỏi ngày càng khó hơn đặt ra cho model:


Cấp L1: placement_generalization

Câu hỏi: Model có overfit vào vị trí cụ thể trong training data không?

Thiết lập: Training dùng tập hạn chế các vị trí đặt vật; test đặt vật thể ngẫu nhiên trên toàn bộ bàn.

Đây là test baseline tối thiểu. Nếu model fail ở đây, nó đã overfit hoàn toàn vào pattern không gian cố định — vô dụng trong thực tế vì vật thể trong thế giới thật không bao giờ đứng đúng vị trí như training.

from vima_bench import make, PARTITION_TO_SPECS

task = "follow_order"
partition = "placement_generalization"

env = make(
    task,
    task_kwargs=PARTITION_TO_SPECS["test"][partition][task],
    render_prompt=True,      # hiển thị multimodal prompt
    display_debug_window=True,
)

obs, prompt, prompt_assets = env.reset()
# prompt: dict với 'prompt_token_type' và 'prompt_tokens'
# prompt_assets: dict chứa ảnh reference cho các placeholder trong prompt
print(f"Prompt tokens: {prompt['prompt_token_type']}")
# Output dạng: [0, 0, 1, 0, 1, 0]  — 0=text, 1=image

Tất cả 17 task đều có partition L1 — đây là điểm khởi đầu bắt buộc khi đánh giá bất kỳ model nào.


Cấp L2: combinatorial_generalization

Câu hỏi: Model có học thuộc tính như các khái niệm độc lập, hay chỉ học pattern kết hợp cụ thể?

Thiết lập: Training thấy "red cube" và "blue sphere"; test thấy "red sphere" và "blue cube" — tổ hợp chưa từng xuất hiện nhưng cả hai từ đều quen.

Đây là test systematic compositionality kinh điển trong AI. Nhiều model deep learning fail ở đây vì chúng học "red → cube" như một unit thay vì hiểu "red" và "cube" là hai attribute độc lập có thể kết hợp tự do.

partition = "combinatorial_generalization"
env = make(
    task,
    task_kwargs=PARTITION_TO_SPECS["test"][partition][task],
)

# Kiểm tra config: xem những tổ hợp nào được test
config = PARTITION_TO_SPECS["test"][partition][task]
print(f"Config keys: {list(config.keys())}")
# Gồm các key như: possible_dragged_obj, possible_dragged_obj_texture,
#                  possible_base_obj, possible_base_obj_texture, ...

Tại sao quan trọng cho robotics thực tế: Trong nhà máy, công nhân hướng dẫn robot bằng cách kết hợp thuộc tính — "cái này (màu mới) đặt vào vị trí đó". Nếu model không compositional, mỗi tổ hợp mới đều cần fine-tune lại.


Cấp L3: novel_object_generalization

Câu hỏi: Model có xử lý được vật thể hoàn toàn mới (chưa thấy trong training) không?

Thiết lập: Training dùng tập cố định đối tượng và màu sắc; test đưa vào adjective MỚI (màu/texture chưa bao giờ thấy) hoặc noun MỚI (loại vật thể chưa bao giờ thấy).

Đây là zero-shot generalization thực sự về đối tượng. Model không thể dựa vào visual memory về vật thể cụ thể — nó phải hiểu task instruction đủ tốt để thực thi với bất kỳ vật thể mới nào được chỉ ra trong prompt.

partition = "novel_object_generalization"
env = make(
    task,
    task_kwargs=PARTITION_TO_SPECS["test"][partition][task],
)

obs, prompt, prompt_assets = env.reset()
# prompt_assets sẽ chứa ảnh của vật thể MỚI chưa thấy trong training
# Model phải dùng cross-attention để "đọc" ảnh trong prompt
# thay vì recall từ training memory

Tại sao đây là ranh giới thực tế: Môi trường thực tế luôn có vật thể mới — hộp mới, sản phẩm mới ra mắt, màu theo mùa. Model chỉ pass L1/L2 sẽ fail ngay khi gặp bất kỳ vật thể nào ngoài training vocabulary.


Cấp L4: novel_task_generalization

Câu hỏi: Model có thực hiện được task template hoàn toàn mới chưa từng thấy trong training không?

Thiết lập: Training dùng 16/17 task template; task bị giấu hoàn toàn khỏi training set. Prompt dùng từ quen thuộc và vật thể quen thuộc, nhưng cấu trúc task là hoàn toàn mới.

partition = "novel_task_generalization"

# Ví dụ: test trên task novel_adj_noun — học cả adjective lẫn noun mới
task = "novel_adj_noun"
env = make(
    task,
    task_kwargs=PARTITION_TO_SPECS["test"][partition][task],
)

obs, prompt, prompt_assets = env.reset()
# Prompt chứa ví dụ "few-shot" về khái niệm mới ngay trong prompt header
# Model phải suy luận task structure từ ví dụ đó
# Không thể pattern-match với training memory

Đây là cấp khó nhất và thú vị nhất từ góc độ nghiên cứu. Model không thể pattern-match với gì đã thấy — nó phải đọc multimodal prompt và suy luận về intent, giống như con người hiểu hướng dẫn mới từ context.


PARTITION_TO_SPECS: Bên Trong Cấu Hình

PARTITION_TO_SPECS là dictionary chứa config cho từng cấp eval, từng task — kiểm soát chính xác những gì được phép xuất hiện khi instantiate task:

from vima_bench import PARTITION_TO_SPECS

# Cấu trúc: test → partition → task → config dict
config = PARTITION_TO_SPECS["test"]["novel_object_generalization"]["same_texture"]
print(config)
# Ví dụ output:
# {
#   'num_dragged_obj': 1,
#   'num_distractor_obj': 3,
#   'possible_dragged_obj_texture': ['new_texture_1', 'new_texture_2', ...],
#   'possible_base_obj_texture': ['familiar_texture_1', ...],
#   'possible_dragged_obj': ['cube', 'sphere', ...],
#   ...
# }

Config này đảm bảo:

  • L1: object pool và texture là quen thuộc, chỉ vị trí đặt là ngẫu nhiên
  • L2: object/texture quen thuộc nhưng tổ hợp adj-noun chưa từng thấy
  • L3: có ít nhất một adjective hoặc noun trong possible_... là hoàn toàn mới
  • L4: không chỉ object mới mà cả cấu trúc task template là mới

Đây là cơ chế đảm bảo tính công bằng của benchmark — mỗi partition thực sự đo đúng loại tổng quát hóa đã cam kết, không có data leakage.


Cấp Nào Quan Trọng Nhất Cho Humanoid?

Câu trả lời ngắn: L4 là con số duy nhất đáng quan tâm khi mục tiêu là deploy lên humanoid thực tế.

Lý do từng cấp:

L1 là ngưỡng tối thiểu, không phải thành tựu. Nếu model không pass L1 (placement generalization), nó không đáng dùng. Pass L1 chỉ nói "model này không bị broken cơ bản" — như việc xe hơi phải chạy được mới được gọi là xe.

L2 là prerequisite cho production. Humanoid trong nhà máy gặp hàng trăm tổ hợp mới mỗi ngày — sản phẩm mới, màu mới, kích thước mới trong cùng dây chuyền. Model không pass L2 cần re-train thường xuyên, biến deployment thành ác mộng vận hành.

L3 phân biệt "lab demo" với "robot thực sự". Với humanoid làm việc trong môi trường mở có vật thể mới xuất hiện liên tục, L3 là ranh giới giữa "dùng được" và "phải có người giám sát 24/7 để handle exception".

L4 là bài test của kiến trúc, không phải data. Model pass L4 đã chứng minh rằng cơ chế prompt conditioning thực sự hoạt động — model đọc và hiểu task intent từ prompt, không chỉ recall từ training memory. Đây là capability cốt lõi cho humanoid assistant trong gia đình hay văn phòng, nơi người dùng liên tục đưa ra hướng dẫn mới chưa từng có trong training set.

Pattern trong Kết Quả VIMA

Paper VIMA (ICML 2023) cho thấy một pattern nhất quán: VIMA với dense cross-attention giữ performance tốt hơn hẳn các baseline khi leo từ L1 lên L4 — đặc biệt ở L3 và L4, nơi GPT-style prefix conditioning suy giảm mạnh nhất.

Lý do đã phân tích trong Bài 1: GPT-style prefix đọc prompt một lần rồi dựa vào self-attention để lan truyền — signal bị loãng dần qua các layer. Khi task là hoàn toàn mới (L4), model cần "đọc lại prompt" ở mỗi layer để không bị drift khỏi task intent. Dense cross-attention ở mỗi trong 12 layer làm đúng điều này.

Scaling law cũng thú vị: model nhỏ (9M) suy giảm nhiều hơn khi leo lên L3/L4 so với model lớn (200M) — nhưng ngay cả VIMA-9M vẫn suy giảm ít hơn so với GPT-style prefix 200M ở các cấp cao. Đây là bằng chứng rằng kiến trúc quan trọng hơn kích thước model khi đo khả năng tổng quát hóa.


Đánh Giá Đầy Đủ Theo Code

Để chạy đánh giá hệ thống trên tất cả task trong một partition (thay vì từng task thủ công), dùng pattern sau:

from vima_bench import make, PARTITION_TO_SPECS
import numpy as np

def evaluate_partition(policy, partition: str, n_episodes: int = 50):
    """Đánh giá policy trên toàn bộ task trong một partition."""
    results = {}
    task_names = list(PARTITION_TO_SPECS["test"][partition].keys())

    for task in task_names:
        env = make(
            task,
            task_kwargs=PARTITION_TO_SPECS["test"][partition][task],
        )

        success_count = 0
        for _ in range(n_episodes):
            obs, prompt, prompt_assets = env.reset()
            done = False

            while not done:
                # Thay bằng actual policy inference
                action = policy.predict(obs, prompt, prompt_assets)
                obs, reward, done, info = env.step(action)

            if info["success"]:
                success_count += 1

        results[task] = success_count / n_episodes
        print(f"  {task}: {results[task]:.1%}")

    mean_success = np.mean(list(results.values()))
    print(f"\n→ Mean {partition}: {mean_success:.1%}")
    return results

# Chạy lần lượt từ L1 đến L4
for partition in PARTITION_TO_SPECS["test"]:
    print(f"\n=== {partition} ===")
    evaluate_partition(your_policy, partition)

So sánh Checkpoint Sizes

Khi so sánh kích thước model, chỉ cần đổi --ckpt — script không thay đổi:

# So sánh 9M vs 200M trên cấp khó nhất
for size in 9M 200M; do
  python scripts/example.py \
    --ckpt=ckpts/${size}.ckpt \
    --partition=novel_task_generalization \
    --task=follow_order
done

Kết quả sẽ thấy rõ: model nhỏ suy giảm nhiều hơn ở L3/L4, nhưng cross-attention architecture vẫn giúp model nhỏ competitive hơn so với baseline lớn hơn — đặc biệt quan trọng khi chọn kích thước model phù hợp với hardware edge của humanoid.


Kết Luận

VimaBench không chỉ là tập hợp 17 task — nó là một ngôn ngữ để nói chính xác về generalization. Khi ai đó nói "model của tôi đạt 70% trên VimaBench", câu hỏi đúng phải là: 70% trên partition nào? L1 hay L4? Chênh lệch đó là ranh giới giữa "lab demo tốt" và "production-ready".

Với humanoid robot, tiêu chuẩn phải là L4. Robot trong gia đình, nhà máy, hay bệnh viện nhận hàng trăm hướng dẫn mới mỗi ngày từ người dùng — và không có cách nào train trước cho tất cả. Model cần chứng minh pass L4 để xác nhận rằng nó thực sự đọc hiểu prompt, không chỉ nhớ pattern.

Ở Bài 3: Object Tokenizer, chúng ta sẽ đi vào chi tiết cách VIMA biến raw pixel thành object token — phần pipeline quan trọng nhất để model có thể xử lý vật thể mới trong L3 mà không cần thấy chúng trong training.


Bài viết liên quan

  • Bài 1: Kiến Trúc Cross-Attention — Tại Sao VIMA Dùng XAttn GPT
  • Bài 3: Object Tokenizer — Từ Pixel Thô đến Token Đối Tượng
  • Dexora VLA: Robot Thao Tác Hai Tay Khéo Léo Mã Nguồn Mở
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
vima-humanoid-manip — Phần 2/2
← VIMA: Kiến Trúc Cross-Attention cho Tay Robot

Bài viết liên quan

NEWDeep Dive
VIMA: Kiến Trúc Cross-Attention cho Tay Robot
vimacross-attentiontransformerPhần 1
manipulation

VIMA: Kiến Trúc Cross-Attention cho Tay Robot

Giải mã kiến trúc cross-attention của VIMA: cách T5 encoder xử lý prompt đa phương thức và XAttn GPT decoder sinh lệnh cho 17 task robot.

16/6/202611 phút đọc
NT
NEWNghiên cứu
Tại sao Multi-Agent đánh bại VLA đơn thuần? | AI Manipulation Agents #1
manipulationvlamulti-agentPhần 1
manipulation

Tại sao Multi-Agent đánh bại VLA đơn thuần? | AI Manipulation Agents #1

ManiAgent đạt 86.8% trên SimplerEnv — vượt xa pi0 55.7% và CogACT 51.3%. Phân tích kiến trúc 3-agent và lý do phân rã pipeline thắng end-to-end VLA.

15/6/202613 phút đọc
NT
NEWNghiên cứu
ALRM: Code-as-Policy vs Tool-as-Policy trong ReAct | AI Manipulation Agents #3
manipulationalrmcode-as-policyPhần 3
manipulation

ALRM: Code-as-Policy vs Tool-as-Policy trong ReAct | AI Manipulation Agents #3

So sánh hai execution mode của ALRM: CaP sinh Python gọi robot API trong một lần chạy, TaP dùng ReAct lặp từng tool call. Benchmark 56 tasks, 10 LLMs — giúp bạn chọn đúng mode cho dự án.

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