ตารางเปรียบเทียบนโยบายของ AY-Robots พร้อมจำนวนพารามิเตอร์, ระดับ GPU และเวลาแฝงในการอนุมานสำหรับ GR00T N1.7, GR00T N1.5, Pi0.5, SmolVLA และ ACT
SmolVLATinyVLAVLA ขนาดเล็กGPU สำหรับผู้บริโภคLeRobot

โมเดล VLA ขนาดเล็ก: TinyVLA, SmolVLA และกรณีที่ต่ำกว่า 1 พันล้านพารามิเตอร์

AY-Robots ResearchAugust 23, 202619 นาทีในการอ่าน

TinyVLA และ SmolVLA ทำให้ VLA ทำงานได้ภายใต้ 1 พันล้านพารามิเตอร์ ตัวเลขจริงจากเอกสารทั้งสองฉบับ, ค่าเริ่มต้นของ lerobot, เวลาแฝงที่วัดได้ และค่าใช้จ่ายในการรันบนการ์ด 24 GB

โมเดล วิสัยทัศน์-ภาษา-การกระทำ เกือบทุกตัวที่เขียนถึงมักจะสันนิษฐานว่าใช้การ์ดสำหรับศูนย์ข้อมูล OpenVLA มีพารามิเตอร์ 7 พันล้านตัว GR00T N1.7 และ Pi0.5 มีขนาดประมาณ 3 พันล้านตัว และต้องการ A100 80 GB สำหรับการปรับแต่ง (fine-tune) หากการ์ดบนโต๊ะของคุณคือ 4090 โมเดลประเภทนั้นก็เกินกำลังที่จะใช้งานได้

มีงานวิจัยสองฉบับที่โต้แย้งว่าคุณไม่จำเป็นต้องใช้การ์ดเหล่านั้น TinyVLA (arXiv 2409.12514, ได้รับการยอมรับโดย IEEE Robotics and Automation Letters ในเดือนกุมภาพันธ์ 2025) สร้าง VLA จากแกนหลักขนาด 400 ล้านถึง 1.3 พันล้านพารามิเตอร์ พร้อมส่วนหัวการกระทำแบบ diffusion SmolVLA (arXiv 2506.01844, ส่งเมื่อ 2 มิถุนายน 2025) มาพร้อมพารามิเตอร์ 450 ล้านตัว พร้อมน้ำหนักโมเดลแบบเปิด ข้อมูลแบบเปิด และสคริปต์ที่สามารถรันบนการ์ดผู้บริโภคเพียงใบเดียว นี่คือสิ่งที่ทั้งสองโมเดลวัดได้ และจุดที่ข้อโต้แย้งเรื่องโมเดลขนาดต่ำกว่า 1 พันล้านพารามิเตอร์เริ่มไม่เป็นจริง

สิ่งที่คุณต้องรู้

  • TinyVLA มีสามขนาด: รวม 422 ล้านพารามิเตอร์ (ฝึกได้ 101 ล้าน), 740 ล้านพารามิเตอร์ (ฝึกได้ 138 ล้าน), 1.3 พันล้านพารามิเตอร์ (ฝึกได้ 143 ล้าน) มีเพียงสองขนาดแรกเท่านั้นที่ต่ำกว่า 1 พันล้านพารามิเตอร์
  • ตาราง IV ของ TinyVLA วัดได้ 14 ms ต่อการทำนายการกระทำสำหรับ TinyVLA-1B บน A6000 หนึ่งตัว เทียบกับ 292 ms สำหรับ OpenVLA-7B และ 140 ms สำหรับ OpenVLA-1B ที่ลดขนาดลง
  • ส่วนหัวเป็นตัวกำหนดความเร็ว ไม่ใช่แกนหลัก: หากเปลี่ยนส่วนหัว diffusion ของ TinyVLA-H เป็นส่วนหัว ACT งานหุ่นยนต์จริงห้างานจะลดลงจากค่าเฉลี่ย 94.0 เหลือเพียงตัวเลขหลักเดียว ส่วนหัว MLP ได้คะแนน 0 ในทุกที่
  • SmolVLA มีขนาด 450 ล้านพารามิเตอร์ โดยประมาณ 100 ล้านพารามิเตอร์เป็นส่วนผู้เชี่ยวชาญด้านการกระทำ ซึ่งได้รับการฝึกฝนล่วงหน้าบนชุดข้อมูล LeRobot ของชุมชน 481 ชุด และ 10.6 ล้านเฟรม รายงานผล 87.3 บน LIBERO เทียบกับ 86.0 สำหรับ Pi0 ที่ได้รับการฝึกฝนด้านหุ่นยนต์ล่วงหน้าขนาด 3.3 พันล้านพารามิเตอร์ และ 78.3 บนงาน SO-100 จริงสามงาน เทียบกับ 61.7 สำหรับ Pi0 ขนาด 3.5 พันล้านพารามิเตอร์
  • หากฝึกฝนแบบงานเดียวโดยไม่มีการฝึกฝนล่วงหน้านั้น SmolVLA จะลดลงเหลือ 40.0 ในงานเหล่านั้น ซึ่งต่ำกว่า 48.3 ของ ACT ขนาดเล็กไม่ได้หมายความว่าง่ายเสมอไป
  • TinyVLA ไม่มีการรวมเข้ากับ LeRobot และใช้ CUDA 11.7 wheel stack SmolVLA อยู่ใน lerobot และมีค่าใช้จ่ายประมาณ 1 ถึง 3 USD ต่อการรันบนแพลตฟอร์ม 24 GB ที่นี่

อะไรคือ VLA ขนาดเล็กที่แท้จริง

จำนวนพารามิเตอร์บนโมเดลการ์ดไม่ใช่ตัวเลขเดียว อาจหมายถึงน้ำหนักรวม, น้ำหนักที่โหลดเมื่ออนุมาน, หรือน้ำหนักที่ได้รับเกรเดียนต์ระหว่าง . TinyVLA รายงานทั้งสองอย่าง และช่องว่างมีขนาดใหญ่: TinyVLA-H มีน้ำหนักรวม 1.3 พันล้าน แต่สามารถฝึกได้ 143 ล้าน เนื่องจากส่วนวิชันและโมเดลภาษาส่วนใหญ่ยังคงถูกตรึงไว้ ในขณะที่อะแดปเตอร์ LoRA และส่วนหัวการกระทำมีการเคลื่อนไหว บทความระบุว่าส่วนที่ฝึกได้อยู่ที่ประมาณ 5 เปอร์เซ็นต์

โมเดลพารามิเตอร์แบ็คโบนส่วนหัวการกระทำแหล่งที่มา
TinyVLA-S422 M รวม, 101 M ฝึกได้Llava-Pythia ~400 MDiffusion (droid_diffusion U-Net)arXiv 2409.12514
TinyVLA-B740 M รวม, 138 M ฝึกได้Llava-Pythia ~700 MDiffusionarXiv 2409.12514
TinyVLA-H1.3 B รวม, 143 M ฝึกได้Llava-Pythia ~1.3 BDiffusionarXiv 2409.12514
SmolVLA450 M, ผู้เชี่ยวชาญการกระทำ ~100 MSmolVLM2-500M-Video-InstructFlow matching expertarXiv 2506.01844
Octo-Small27 MViT-S scale, T5-Base text encoderDiffusionocto-small-1.5 card
ACT~80 MResNet, ไม่มีโมเดลภาษาการถดถอยแบบ Direct chunkAY-Robots catalog
OpenVLA7 BLlama 2 7 B, DINOv2 and SigLIP encodersโทเค็นการกระทำแบบ AutoregressivearXiv 2406.09246

มีสองแถวที่ควรพิจารณา ที่ประมาณ 80 M มีขนาดเล็กกว่าโมเดลอื่น ๆ ทั้งหมดในที่นี้ แต่ไม่มีโมเดลภาษา ดังนั้นจึงไม่ใช่ VLA: มันเรียนรู้งานเดียวและไม่สามารถสั่งให้ทำงานอื่นได้ ที่ 27 M ถูกปรับสภาพผ่านตัวเข้ารหัสข้อความ T5-Base ไม่ใช่แบ็คโบน LLM เป็นเกณฑ์มาตรฐานที่ดี แต่ทั้งสองอย่างไม่ได้ให้การปฏิบัติตามคำสั่งตามที่ระบุไว้

เส้น 1 พันล้านนั้นเป็นไปตามอำเภอใจ

TinyVLA-H ซึ่งเป็นรุ่นที่นำเสนอผลลัพธ์หลัก มีขนาด 1.3 พันล้าน และอยู่เหนือเส้น คำถามที่ดีกว่าคือโมเดลสามารถใส่ใน 24 GB ระหว่างการฝึกอบรมและถึงอัตราการควบคุมของคุณเมื่ออนุมานได้หรือไม่ นโยบายห้าอย่างที่คุณสามารถฝึกได้ที่นี่อยู่ใน หน้าของนโยบาย; TinyVLA มีรายการในอารีน่า หากคุณต้องการดูตัวเลขของมันเทียบกับของคนอื่น

TinyVLA: ความเร็วมาจากส่วนหัว ไม่ใช่ส่วนแกนหลัก

การตีความที่ชัดเจนคือ พวกเขาทำให้โมเดลภาษาเล็กลง จึงทำงานได้เร็วขึ้น แต่ผลการทดลอง ablation ในงานวิจัยกลับชี้ไปในทางตรงกันข้าม การเปลี่ยนแกนหลักของ OpenVLA ขนาด 7B เป็นขนาดประมาณ 1B ช่วยลดเวลาการทำนายต่อการกระทำจาก 292 ms เหลือ 140 ms ซึ่งเพิ่มขึ้น 2 เท่า TinyVLA-H ซึ่งมีจำนวนพารามิเตอร์ใกล้เคียงกัน ทำงานที่ 14 ms บนการ์ดเดียวกัน ส่วนอีก 10 เท่าที่เหลือมาจากส่วนหัวของการกระทำ

โมเดลการทำนายต่อการกระทำวัดผลบน
OpenVLA-7B292 mssingle A6000
OpenVLA-1B, backbone swapped for TinyVLA's140 mssingle A6000
TinyVLA-1B (TinyVLA-H)14 mssingle A6000

OpenVLA ปล่อยการกระทำออกมาเป็นโทเค็นแบบไม่ต่อเนื่องผ่านส่วนหัวของโมเดลภาษา โดยมีหนึ่งโทเค็นต่อมิติการกระทำ และทำงานแบบ autoregressively TinyVLA ใช้ diffusion decoder ที่สร้างข้อมูลทั้งหมดออกมาในครั้งเดียว ตาราง V แสดงสถาปัตยกรรมของ TinyVLA-H และเปลี่ยนเฉพาะส่วนหัว โดยทดสอบกับงานหุ่นยนต์จริงห้างานเดียวกัน นี่คือหลักฐานที่ชัดเจนที่สุดในงานวิจัยทั้งสองฉบับสำหรับข้อโต้แย้งที่ว่า flow matching policies สร้างขึ้น และเป็นเหตุผลที่ Pi0 เลิกใช้การถอดรหัสโทเค็น.

Head on TinyVLA-HPlaceTennisFlipMugStackCubesCloseDrawerOpenBox
Diffusion (droid_diffusion)90.098.398.396.786.7
Action Chunking Transformer13.38.38.313.323.3
Multi-layer perceptron00000
ตัวเลข TinyVLA ครอบคลุมอะไรบ้าง

ตัวเลข 292 / 140 / 14 ms มาจากตารางที่ IV ทั้งหมดทำงานบน A6000 หนึ่งเครื่อง ตัวเลขเหล่านี้เป็นการคาดการณ์ต่อการกระทำหนึ่งครั้ง และไม่รวมการจับภาพจากกล้อง การประมวลผลล่วงหน้า และการเขียนข้อมูลแบบอนุกรมไปยังเซอร์โว ให้ถือว่าค่าความหน่วงที่เผยแพร่เป็นค่าขีดจำกัดล่าง ไม่ใช่เป็นอัตราการควบคุม ตัวเลขของเราเองก็มีข้อจำกัดเดียวกัน: ดู ความหน่วงในการอนุมาน

TinyVLA ทำคะแนนได้เท่าไร

BenchmarkProtocolTinyVLA-HBaselines
MetaWorld, 50 tasks, simหลายงาน, 50 ตัวอย่าง, 3 seeds77.6 / 21.5 / 11.4 / 15.8 ตามความยาก, เฉลี่ย 31.6Diffusion Policy เฉลี่ย 10.5
Franka Panda จริง, 5 งาน100 วิถีต่อหนึ่งงาน, 20 การทดลอง94.0 เฉลี่ยOpenVLA 68.3, Diffusion Policy 35.3
UR5 แบบสองแขน, 3 งานหลายงาน, 10 การทดลองต่อหนึ่งงาน76.7 / 36.7 / 30.0OpenVLA 0 / 0 / 0, Diffusion Policy 40.3 / 31.3 / 43.0

แถวของการทำงานสองมือมีคำอธิบายที่น่าเบื่อที่ระบุไว้ในบทความเอง: OpenVLA ได้รับการฝึกอบรมล่วงหน้าบน Open X-Embodiment ซึ่งประกอบด้วยข้อมูลแขนเดียวทั้งหมด ดังนั้นพื้นที่การกระทำสองแขนจึงอยู่นอกเหนือการกระจายและได้คะแนนเป็นศูนย์ โมเดลพื้นฐาน diffusion policy เอาชนะ TinyVLA-H ในสองในสามงานนั้น ข้อมูลพื้นฐานอยู่ใน บทความเกี่ยวกับ Open X-Embodiment.

ตารางจัดอันดับ AY-Robots arena ซึ่งเป็นตารางที่จัดเรียงได้ของโมเดล VLA 85 โมเดล พร้อมผลการวัดประสิทธิภาพ 332 รายการ โดยแต่ละค่าเชื่อมโยงกลับไปยังบทความหรือโมเดลการ์ดที่เป็นแหล่งที่มา
ตัวเลขการวัดประสิทธิภาพข้ามโมเดลจะเปรียบเทียบกันได้ก็ต่อเมื่อคุณสามารถเห็นแหล่งที่มาของแต่ละตัวเลข

ที่เก็บ TinyVLA ณ เดือนสิงหาคม 2026

บทความนี้ดี โค้ดเป็นเพียงผลงานวิจัยที่เผยแพร่ ที่เก็บโค้ดอยู่ที่ github.com/liyaxuanliyaxuan/TinyVLA; ไฟล์ README ระบุวันที่เผยแพร่โค้ดคือ 17 กุมภาพันธ์ 2025 และการคอมมิตครั้งสุดท้ายคือ 11 มีนาคม 2025 เหมาะสำหรับการทำซ้ำผลงานวิจัย แต่จะเป็นปัญหาหากคุณต้องการไลบรารีที่ได้รับการดูแล

bash
git clone https://github.com/liyaxuanliyaxuan/TinyVLA
conda create -n tinyvla python=3.10 -y
conda activate tinyvla
pip install --upgrade pip
pip install -r requirements.txt
cd policy_heads && pip install -e .
cd ../llava-pythia && pip install -e .
ลำดับการติดตั้งจาก README ของ TinyVLA ตรวจสอบกับ repository เมื่อ 2026-08-23
การกำหนดเวอร์ชันของ dependency เป็นกับดักที่ทำให้เสียเวลาไปทั้งวัน

requirements.txt กำหนดเวอร์ชันของ torch==2.0.1, transformers==4.37.1, deepspeed==0.9.5, peft==0.4.0, diffusers==0.11.1, numpy==1.24.4 และ CUDA stack ไปยัง 11.x wheels: nvidia-cuda-runtime-cu11==11.7.99, nvidia-cudnn-cu11==8.5.0.96, triton==2.0.0. README ระบุให้ใช้ Python 3.10; lerobot 0.6.1 ต้องการเวอร์ชัน 3.12 หรือใหม่กว่า ดังนั้นทั้งสองจึงไม่สามารถใช้ environment ร่วมกันได้ โปรดยืนยันว่ามี build ของ torch 2.0.1 สำหรับ GPU ของคุณก่อน หากการรันหยุดทำงานเนื่องจาก VRAM หมดแทน รายการตรวจสอบหน่วยความจำไม่พอ จะเร็วกว่าการเดาสาเหตุ

TinyVLA ยังไม่อ่าน ชุดข้อมูล LeRobot. รูปแบบของมันคือ HDF5 สไตล์ ACT: action, language_raw และกลุ่ม observations ที่มีภาพหลายมุมมอง, joint_positions, qpos และ qvel. repository มี data_utils/rlds_to_h5py.py สำหรับอินพุต RLDS และแต่ละ task จะถูกลงทะเบียนด้วยตนเองใน aloha_scripts/constants.py พร้อมกับ dataset_dir, episode_len และ camera_names. หาก ตอน มาจาก lerobot หรือ ไคลเอนต์เดสก์ท็อป คุณต้องรับผิดชอบการแปลงข้อมูลเอง

bash
# scripts/train.sh, the real flags from the repository
ACTION_HEAD=droid_diffusion

deepspeed --master_port 29600 --num_gpus=8 --num_nodes=1 ./train_tinyvla.py \
  --deepspeed scripts/zero2.json \
  --lora_enable True \
  --lora_module 'vit llm' \
  --lora_r 64 \
  --lora_alpha 256 \
  --non_lora_lr 2e-5 \
  --task_name "example_task_config" \
  --model_name_or_path /path/to/pretrained_vlm \
  --freeze_vision_tower True \
  --freeze_backbone True \
  --bf16 True \
  --max_steps 10000 \
  --per_device_train_batch_size 32 \
  --gradient_accumulation_steps 1 \
  --learning_rate 2e-4 \
  --lr_scheduler_type "cosine" \
  --warmup_ratio 0.005 \
  --save_steps 1000 \
  --action_head_type $ACTION_HEAD \
  --use_state True \
  --window_size 6
ย่อมาจาก scripts/train.sh. ทุกแฟล็กและค่าข้างต้นอยู่ในไฟล์ที่จัดส่งมา
  • --num_gpus=8 สมมติว่าใช้โหนดแปดการ์ด ตั้งค่าเป็น 1 และลดขนาดแบทช์ให้ต่ำกว่า 32 มาก ไม่มีรุ่น GPU เดี่ยวที่จัดส่งมาตั้งแต่ต้น ดังนั้นคำสั่งจึงไม่สามารถรันได้ตามตัวอักษรบน 4090
  • --deepspeed scripts/zero2.json ชี้ไปยังไฟล์ที่ไม่ได้อยู่ในไดเรกทอรี scripts ระดับบนสุด การกำหนดค่า DeepSpeed อยู่ที่ llava-pythia/scripts/zero2.json แก้ไขพาธก่อนการรันครั้งแรกของคุณ
  • README กำหนดให้ชื่อไดเรกทอรีเอาต์พุตต้องมี llava_pythia และ lora หากเปิดใช้งาน LoRA
  • แบ็คโบนเป็นการดาวน์โหลดแยกต่างหาก: lesjie/Llava-Pythia-400M, -700M หรือ -1.3B ไม่มีจุดตรวจสอบพื้นฐานเดียวที่คุณจะชี้ นโยบาย ไปยังในลักษณะเดียวกับที่คุณชี้ไปที่ lerobot/smolvla_base

SmolVLA: โมเดลขนาดต่ำกว่า 1 B ที่คุณสามารถรันได้บ่ายนี้

SmolVLA ใช้ข้อโต้แย้งเดียวกันภายในไลบรารีที่ได้รับการดูแลรักษา มีพารามิเตอร์ 450 M บนแบ็คโบน SmolVLM2-500M-Video-Instruct และประสิทธิภาพมาจากค่าการตั้งค่าที่คุณสามารถอ่านได้จาก configuration_smolvla.py แทนที่จะมาจากการอ้างว่ามีขนาดเล็ก

การตั้งค่าใน configuration_smolvla.pyค่าเริ่มต้นประโยชน์ที่ได้รับ
num_vlm_layers16เฉพาะ 16 เลเยอร์แรกของโมเดลภาษาเท่านั้นที่ทำงาน
expert_width_multiplier0.75ขนาดซ่อนของ Action expert คือ 75 เปอร์เซ็นต์ของ VLM
self_attn_every_n_layers2Self-attention สลับกับ cross-attention
chunk_size / n_action_steps50 / 50หนึ่งรอบจะปล่อย 50 การกระทำ และทั้ง 50 การกระทำจะถูกดำเนินการ
num_steps10การลดสัญญาณรบกวนแบบ Flow matching ถูกกำหนดไว้ที่ 10 ขั้นตอน
tokenizer_max_length48คำสั่งจะถูกตัดให้เหลือ 48 โทเค็น
freeze_vision_encoder / train_expert_onlyTrue / Trueการปรับแต่งจะย้าย expert ไม่ใช่ vision tower
optimizer_lr, warmup, decay1e-4, 1000 steps, to 2.5e-6 over 30000ไม่ใช่สูตรในบทความ: การฝึกอบรมล่วงหน้าใช้การวอร์มอัพ 100 ขั้นตอนตลอด 200000 ขั้นตอน

การฝึกอบรมล่วงหน้าใช้ชุดข้อมูล LeRobot ของชุมชน 481 ชุด, 22.9 K ตอน และ 10.6 M เฟรมบน 4 GPUs, 200000 ขั้นตอนที่ global batch ขนาด 256; เอกสารระบุว่าโครงการทั้งหมดใช้เวลาประมาณ 30 K GPU ชั่วโมง ตัวเลขหนึ่งที่น่าจับตา: บล็อกเปิดตัวของ Hugging Face ระบุว่ามีชุดข้อมูลที่คัดสรรแล้ว 487 ชุด ในขณะที่ตารางในเอกสารระบุ 481 ชุด เราใช้ตัวเลขจากเอกสารและแจ้งข้อขัดแย้งนี้

หน้าโมเดล SmolVLA บน AY-Robots แสดงจำนวนพารามิเตอร์, ระดับ GPU 24 GB, เวลาแฝงในการอนุมานต่อขั้นตอนการดำเนินการ และจำนวนตอนขั้นต่ำ
หน้า SmolVLA ของแพลตฟอร์ม: 450 M พารามิเตอร์, 245 ms ต่อขั้นตอนการดำเนินการ, ระดับ RTX 4090, ขั้นต่ำ 30 ตอน
เกณฑ์มาตรฐานSmolVLA 0.45 BSmolVLA 2.25 BPi0ACT
LIBERO เฉลี่ย, หลายภารกิจ87.388.7586.0 (3.3 B, robotics-pretrained)-
Meta-World เฉลี่ย, หลายภารกิจ57.368.2447.9 (3.5 B, robotics-pretrained)-
SO-100 จริง, 3 ภารกิจ, การฝึกอบรมหลายภารกิจ78.3-61.7 (3.5 B)-
SO-100 จริง, 3 ภารกิจ, ภารกิจเดียว, ไม่มีการฝึกอบรมล่วงหน้าด้านหุ่นยนต์40.0--48.3
SO-101 หยิบ-วางเลโก้, ภารกิจเดียว, ในการกระจาย90--70
SO-101 หยิบ-วางเลโก้, ภารกิจเดียว, นอกการกระจาย50--40
อ่านตารางทั้งหมด ไม่ใช่แค่แถวหัวข้อ

LIBERO เป็นการจำลอง และทุกอย่างที่ทำได้ดีจะทำคะแนนได้ในช่วงแปดสิบแล้วในตอนนี้ แถวของ SO-100 จริง ที่โมเดลขนาด 450 M เอาชนะโมเดลขนาด 3.5 B ได้ถึง 16.6 คะแนน เป็นแถวที่น่าสนใจ; แถวที่อยู่ใต้ลงมาคือส่วนถ่วงดุล หากตัดการฝึกอบรมล่วงหน้าของชุมชนและการฝึกอบรมหลายภารกิจออกไป โมเดลเดียวกันนี้จะลดลงเหลือ 40.0 ซึ่งต่ำกว่า ACT ข้ออ้างที่สามารถป้องกันได้คือ โมเดลขนาดเล็กไม่ได้แย่ลงโดยอัตโนมัติ ไม่ใช่ว่ามันดีกว่า

มีเรื่องบังเอิญหนึ่งที่ช่วยได้: ตาราง Meta-World ในเอกสาร SmolVLA มีตัวเลขที่เผยแพร่ของ TinyVLA เองเป็นค่าพื้นฐาน ดังนั้นเป็นครั้งแรกที่ทั้งสองโมเดลอยู่ในตารางเดียวกัน โดย SmolVLA-0.45B อยู่ที่ 57.3 เทียบกับ TinyVLA-H ที่ 31.6 นอกจากนี้ยังรายงานว่าการฝึก SmolVLA เร็วกว่า Pi0 ประมาณ 40 เปอร์เซ็นต์ โดยใช้หน่วยความจำน้อยลง 6 เท่า ทั้งหมดนี้มาจากผู้เขียน SmolVLA; รายการในอารีน่า เชื่อมโยงแต่ละค่าไปยังแหล่งที่มา

SmolVLA ใช้เวลาไปกับอะไร

AY-Robots ระบุ SmolVLA ที่ 245 มิลลิวินาทีต่อขั้นตอนการกระทำ และ ACT ที่ 20 มิลลิวินาทีใน แค็ตตาล็อกนโยบาย. TinyVLA รายงาน 14 มิลลิวินาทีต่อการคาดการณ์การกระทำ ตัวเลขเหล่านี้ไม่สามารถเปรียบเทียบกันได้ และการถือว่าเปรียบเทียบได้เป็นข้อผิดพลาดที่พบบ่อยที่สุดในหัวข้อนี้: บางครั้งใช้เวลาหนึ่ง forward pass บางครั้งแบ่ง pass นั้นออกเป็นส่วนๆ เมื่อ การแบ่งกลุ่มการกระทำ ช่วยลดภาระ

  • SmolVLA ปล่อย 50 การกระทำต่อหนึ่ง forward pass และดำเนินการทั้งหมด 50 การกระทำ ที่ 30 fps ที่เอกสารใช้กับหุ่นยนต์จริง การอนุมานหนึ่งครั้งครอบคลุมการเคลื่อนไหวประมาณ 1.7 วินาที
  • การอนุมานแบบอะซิงโครนัสจะคำนวณกลุ่มถัดไปในขณะที่กลุ่มปัจจุบันยังคงทำงานอยู่: เวลาเฉลี่ยในการทำงานเสร็จสิ้น 9.7 วินาที เทียบกับ 13.75 วินาทีแบบซิงโครนัส ซึ่งเร็วกว่าประมาณ 30 เปอร์เซ็นต์ และ 19 รอบการหยิบและวางในกรอบเวลา 60 วินาทีที่กำหนด เทียบกับ 9 รอบ
  • อัตราความสำเร็จสามารถเปรียบเทียบกันได้มากกว่าที่จะดีกว่า โดย 78.3 แบบซิงโครนัส เทียบกับ 73.3 แบบอะซิงโครนัส Async ช่วยเพิ่มปริมาณงาน ไม่ใช่ความแม่นยำ
  • การแบ่งกลุ่มช่วยซ่อนความหน่วงในการประมวลผล ไม่ใช่ความหน่วงของเครือข่าย และทำให้ policy ตอบสนองได้น้อยลงเนื่องจากถูกกำหนดให้ดำเนินการ 50 การกระทำ
การอนุมานระยะไกลไม่ได้ฟรี และไม่มีแพลตฟอร์มใดแก้ไขฟิสิกส์ได้

AY-Robots สามารถจัดเตรียมพ็อด GPU บนคลาวด์โดยอัตโนมัติเพื่อให้บริการนโยบายของคุณ ในขณะที่ไคลเอนต์หุ่นยนต์ในเครื่องสื่อสารกับปลายทางนั้น และพ็อดมีตัวเฝ้าระวังเมื่อไม่มีการใช้งาน (idle watchdog) เพื่อให้มันทำลายตัวเองแทนที่จะเรียกเก็บเงินโดยไม่แจ้งให้ทราบ สิ่งที่มันไม่ได้ทำคือการกำจัดรอบการเดินทางของอินเทอร์เน็ตสาธารณะ ลูปควบคุมสำหรับนโยบายทั้งห้าที่นี่ใช้เวลา 20 ถึง 485 มิลลิวินาทีต่อขั้นตอนการกระทำ ก่อนที่จะมีการเชื่อมต่อเครือข่ายใดๆ เลย ดังนั้นการอนุมานระยะไกลจึงใช้ได้กับการหยิบและวางที่ช้า ไม่ใช่สำหรับการเคลื่อนไหวที่ตอบสนองอย่างรวดเร็ว

ตารางเปรียบเทียบนโยบายของ AY-Robots ที่แสดง GR00T N1.7, GR00T N1.5, Pi0.5, SmolVLA และ ACT พร้อมจำนวนพารามิเตอร์, ระดับ GPU ที่ต้องการ, เวลาแฝงในการอนุมานต่อขั้นตอนการกระทำ และจำนวนตอนขั้นต่ำที่แต่ละรุ่นต้องการ
SmolVLA ที่ประมาณ 450 M และ ACT ที่ประมาณ 80 M เป็นสองรุ่นที่สามารถใช้กับการ์ด 24 GB ได้ ส่วนอีกสามรุ่นที่เหลือต้องใช้ A100 หรือ H100 80 GB

การปรับแต่ง SmolVLA บนการ์ดผู้บริโภคหนึ่งใบ

เส้นทางแบบแมนนวล บน lerobot 0.6.1 ซึ่งเป็นรุ่น PyPI ปัจจุบัน ณ วันที่ 23 สิงหาคม 2026 ทุกสิ่งที่อยู่ด้านล่างมาจากเอกสาร Hugging Face lerobot SmolVLA ที่ดึงมาในวันเดียวกัน; เวอร์ชันแนะนำ นั้นง่ายกว่า

  1. 1
    ติดตั้ง lerobot พร้อมส่วนเสริม smolvla

    การพึ่งพา SmolVLA เป็นส่วนเสริมที่ไม่บังคับ ไม่ใช่ส่วนหนึ่งของการติดตั้งพื้นฐาน การติดตั้งโดยไม่มีส่วนเสริมนี้แล้วสงสัยว่าทำไมประเภทนโยบายจึงไม่รู้จัก เป็นเรื่องปกติที่ทำให้เสียเวลาไปครึ่งชั่วโมง

    bash
    git clone https://github.com/huggingface/lerobot.git
    cd lerobot
    pip install -e ".[smolvla]"
  2. 2
    รับชุดข้อมูลที่มีจำนวนตอนเพียงพอ

    เอกสารแนะนำประมาณ 50 ตอน และระบุว่างานเดียวกันที่มี 25 ตอนไม่เพียงพอ AY-Robots กำหนดขั้นต่ำไว้ที่ 30 ตอน บันทึกข้อมูลของคุณเอง หรือเริ่มต้นจาก ไดเรกทอรีชุดข้อมูล

    bash
    # any LeRobotDataset on the Hub works as --dataset.repo_id
    # lerobot/svla_so100_pickplace is the paper's own 50-episode set:
    # 5 cube positions, 10 episodes each
  3. 3
    เริ่มการปรับแต่ง

    คำสั่งจากคู่มือ lerobot โดยไม่มีการแก้ไข เอกสารระบุว่า 20000 ขั้นตอนใช้เวลาประมาณ 4 ชั่วโมงบน A100 หนึ่งตัว บนการ์ด 24 GB คาดว่าจะใช้เวลานานขึ้นและควรวัดเวลา

    bash
    cd lerobot && lerobot-train \
      --policy.path=lerobot/smolvla_base \
      --dataset.repo_id=${HF_USER}/mydataset \
      --batch_size=64 \
      --steps=20000 \
      --output_dir=outputs/train/my_smolvla \
      --job_name=my_smolvla_training \
      --policy.device=cuda \
      --wandb.enable=true
  4. 4
    ลดขนาดแบทช์จนกว่าจะพอดี

    batch_size=64 เป็นตัวอย่างที่ระบุไว้ในเอกสาร ไม่ใช่การรับประกันเกี่ยวกับการ์ดของคุณ เอกสารแนะนำให้เริ่มต้นด้วยขนาดเล็กและเพิ่มขึ้นเรื่อยๆ ตราบใดที่เวลาโหลดสั้น

    bash
    lerobot-train --help
  5. 5
    นำเช็คพอยต์ไปใช้งานบนแขนกล

    ไลบรารีเดียวกัน คำสั่งเดียว แฟล็กการแบ่งส่วนข้อมูลแบบเรียลไทม์ถูกคอมเมนต์ไว้ในเอกสาร และเป็นสิ่งที่ควรใช้สำหรับฮาร์ดแวร์ที่มีพลังงานต่ำ

    bash
    lerobot-rollout \
      --strategy.type=base \
      --robot.type=so101_follower \
      --robot.port=/dev/ttyACM0 \
      --robot.id=my_blue_follower_arm \
      --robot.cameras="{ front: {type: opencv, index_or_path: 8, width: 640, height: 480, fps: 30}}" \
      --task="Grasp a lego block and put it in the bin." \
      --policy.path=HF_USER/FINETUNE_MODEL_NAME
เช็คพอยต์คือผลลัพธ์ที่ส่งมอบได้

ไม่ว่าคุณจะเลือกเส้นทางใด คุณจะได้รับ เช็คพอยต์ พร้อมกับการกำหนดค่าที่สร้างขึ้นมา เก็บการแก้ไขชุดข้อมูล จำนวนขั้นตอน และ seed ไว้ข้างๆ lerobot กำหนดค่าเริ่มต้น seed เป็น 1000; จุดเริ่มต้นการปรับแต่งของ GR00T ไม่เปิดเผย seed เลย ดังนั้นการรันเหล่านั้นจึงไม่สามารถทำซ้ำได้แบบบิตต่อบิต กลไกต่างๆ อยู่ใน เอกสารการฝึกอบรม

สองวิธีในการนำ VLA ขนาดเล็กไปใช้กับแขนกล

คุณเป็นเจ้าของเครื่องจักรและโหมดความล้มเหลว สำหรับ SmolVLA นั้นสมเหตุสมผล: ส่วนเสริม pip หนึ่งตัว, คำสั่ง train หนึ่งคำสั่ง, คำสั่ง rollout หนึ่งคำสั่ง สำหรับ TinyVLA เป็นการจำลองงานวิจัยที่มี pins ที่ถูกตรึง, DeepSpeed path ที่เสีย และการแปลงข้อมูลที่คุณเขียนเอง

  1. หาการ์ด 24 GB, บันทึก 30 ถึง 50 ตอน, ตรวจสอบสตรีมกล้องทีละเฟรม
  2. pip install -e ".[smolvla]", lerobot-train กับ lerobot/smolvla_base, จากนั้นให้บริการเช็คพอยต์บนเครื่องที่แขนกลเชื่อมต่ออยู่
  3. สำหรับ TinyVLA: แยก conda env, แปลงข้อมูลเป็น HDF5, ลงทะเบียนงานใน constants.py, แก้ไข zero2.json path, ลด train.sh จากแปด GPU เหลือหนึ่ง
ข้อดี
  • ไม่มีการเรียกเก็บเงินรายชั่วโมงเมื่อชำระค่าการ์ดแล้ว
  • การอนุมานอยู่ถัดจากเซอร์โว ซึ่งเป็นวิธีเดียวที่จะได้ลูปควบคุมที่รวดเร็ว
  • คุณสามารถแก้ไขโค้ดนโยบายได้ และ TinyVLA มีให้ใช้งานด้วยวิธีนี้เท่านั้น
ข้อแลกเปลี่ยน
  • การ์ด 4090 ไม่รองรับนโยบายขนาด ~3 พันล้านพารามิเตอร์ทุกตัว ดังนั้นจึงไม่มีการเปรียบเทียบในเครื่องกับ GR00T N1.7 หรือ Pi0.5
  • การตั้งค่าสภาพแวดล้อมคืองานจริง Pins ของ TinyVLA เพียงอย่างเดียวอาจใช้เวลาทั้งวัน
  • ไม่มีคิว, ไม่มีลองใหม่, ไม่มีที่เก็บเช็คพอยต์ การรีบูตที่ขั้นตอน 14000 หมายถึงการเริ่มต้นใหม่

เมื่อโมเดลขนาดเล็กไม่ใช่ทางเลือกที่ถูกต้อง

ทั้งสองบทความมีความระมัดระวังมากกว่าบทสรุปที่นำเสนอ การวิเคราะห์ความล้มเหลวของ TinyVLA นั้นเฉพาะเจาะจง: โมเดลรุ่น 0.4 B ล้มเหลวสามครั้งจากการอ่านคำสั่งผิด ซึ่งผู้เขียนระบุว่าเป็นผลมาจากความเข้าใจภาษาที่จำกัดใน VLM ขนาดเล็ก และโหมดดังกล่าวหายไปเมื่อใช้โมเดลขนาด 1.3 B. SmolVLA แสดงเส้นโค้งเดียวกันจากอีกด้านหนึ่ง: โมเดลเวอร์ชัน 2.25 B ของสถาปัตยกรรมที่เหมือนกันได้คะแนน 88.75 บน LIBERO และ 68.24 บน Meta-World เทียบกับ 87.3 และ 57.3 สำหรับโมเดล 0.45 B.

การเลือก VLA ที่มีขนาดต่ำกว่า 1 พันล้านพารามิเตอร์
ข้อดี
  • สามารถทำงานบนการ์ด 24 GB ได้ ซึ่งช่วยลดค่าใช้จ่ายในการทดลองจากหลายสิบดอลลาร์เหลือเพียงไม่กี่ดอลลาร์
  • เร็วพอที่จะทำงานข้างแขนกลได้ จึงไม่มีการกระโดดของเครือข่ายในวงจรควบคุม
  • สามารถปรับแต่ง (fine-tune) ด้วยข้อมูลที่คนคนเดียวสามารถบันทึกได้ เพียงไม่กี่สิบตอน แทนที่จะเป็นหลายพันตอน
  • น้ำหนักโมเดล, รายการข้อมูล และโค้ดของ SmolVLA เป็นสาธารณะ ดังนั้นผลลัพธ์ที่ไม่ดีจึงสามารถแก้ไขข้อผิดพลาดได้
ข้อเสีย
  • การทำตามคำสั่งที่อ่อนแอลง: พารามิเตอร์ภาษาที่น้อยลง, ความสามารถในการแยกแยะการอ้างอิงที่คล้ายกันลดลง
  • ความสามารถในการสรุปผลเชิงพื้นที่และภาพไปยังการตั้งค่าที่คุณไม่ได้บันทึกไว้ลดลง
  • มีความอ่อนไหวต่อข้อบกพร่องของชุดข้อมูลมากขึ้น โดยมีการฝึกอบรมล่วงหน้า (pretraining) น้อยลงที่จะใช้เป็นฐาน
  • งานแบบหลายภารกิจและระยะยาว (long-horizon) ยังคงให้ผลดีกับโมเดลขนาดใหญ่กว่า รวมถึง SmolVLA รุ่น 2.25 B ของตัวเอง

การเปรียบเทียบที่ควรทำไม่ใช่ TinyVLA กับ SmolVLA แต่เป็นการเปรียบเทียบ SmolVLA กับ ACT ในงานของคุณเอง และบทความของ SmolVLA คือเหตุผลที่สนับสนุนเรื่องนี้ SmolVLA ที่ได้รับการฝึกแบบภารกิจเดียวโดยไม่มีการฝึกอบรมล่วงหน้าด้านหุ่นยนต์ ได้คะแนนเฉลี่ย 40.0 ในสามภารกิจ SO-100 ในขณะที่ ACT แบบภารกิจเดียวทำได้ 48.3 สิ่งที่ทำให้คะแนนเพิ่มขึ้นเป็น 78.3 คือการฝึกอบรมล่วงหน้าจากชุมชน (community pretraining) บวกกับการฝึกแบบหลายภารกิจ ไม่ใช่แค่สถาปัตยกรรมเพียงอย่างเดียว ในภารกิจ SO-101 lego ซึ่งเป็นแบบภารกิจเดียวทั้งคู่ SmolVLA ชนะ: 90 ต่อ 70 ในการกระจายข้อมูล จากนั้นเป็นการเปรียบเทียบ SmolVLA กับ Pi0.5 หากงบประมาณเอื้ออำนวย

ที่ขนาดนี้ ชุดข้อมูลเป็นตัวกำหนดผลลัพธ์

มีการฝึกอบรมน้อยลงก่อนที่จะครอบคลุมข้อมูลที่ไม่ดี ดังนั้นเส้นโค้งการสูญเสียที่สะอาดบนชุดข้อมูลที่มีข้อบกพร่องจะทำให้คุณได้นโยบายที่จำลองข้อบกพร่องได้อย่างมั่นใจ เอกสาร lerobot ระบุโครงสร้างอย่างตรงไปตรงมา: 50 ตอนใน 5 ตำแหน่งลูกบาศก์, 10 ตอนต่อตำแหน่ง, ได้ผล; 25 ตอนไม่ได้ผล หากค่า loss ดูดีและแขนกลไม่ทำงานที่เป็นประโยชน์ ให้เริ่มต้นที่ loss ลดลง แต่นโยบายไม่ทำงาน, นโยบายทำงานได้เพียงในการตั้งค่าเดียว หรือ การรวบรวมข้อมูลการฝึกอบรม VLA ที่ใช้งานได้จริง

ห้านโยบาย ตารางเปรียบเทียบเดียว

GR00T N1.7, GR00T N1.5, Pi0.5, SmolVLA และ ACT พร้อมจำนวนพารามิเตอร์จริง, ความหน่วงในการอนุมานต่อขั้นตอนการกระทำ, ระดับ GPU ที่แต่ละรุ่นต้องการ และจำนวนตอนขั้นต่ำก่อนที่จะทำงานที่เป็นประโยชน์

เปรียบเทียบนโยบาย

ตารางการตัดสินใจที่คุณสามารถนำไปปฏิบัติได้

สถานการณ์ของคุณเริ่มต้นด้วยเหตุผล
หนึ่งงาน, การสาธิตที่ดี, ไม่มีภาษาACT~80 M, 20 ms, 24 GB card, no base model to download
งานที่เกี่ยวข้องไม่กี่งาน, แต่ละงานมีคำสั่งเดียวSmolVLA450 M, in lerobot, 30 episode minimum, 1 to 3 USD per run
การจำลองผลลัพธ์ของ TinyVLA โดยเฉพาะTinyVLA-B or TinyVLA-HThe repo is the only route: isolated env, converted data
หลายงาน, คำสั่งที่หลากหลาย, งบประมาณ A100GR00T N1.7 or Pi0.5~3 B, 152 ms and 485 ms per step, 4 to 12 USD per run
ยังไม่มีหุ่นยนต์ควบคุมแขนกลจริงแขนกลแบบเรียลไทม์ที่ใช้ระบบคิวไม่จำเป็นต้องลงทะเบียนและไม่มีฮาร์ดแวร์

สำหรับแถวสุดท้าย แขนหุ่นยนต์แบบสด สตรีม SO-100 จริงที่คุณสามารถควบคุมได้จากเบราว์เซอร์โดยไม่ต้องมีบัญชี และ สามวิธีในการเริ่มต้น ครอบคลุมส่วนที่เหลือ SO-100 เป็นแขนหุ่นยนต์อ้างอิงในที่นี้ มีราคาชิ้นส่วนประมาณ 110 ถึง 150 ยูโร พร้อมด้วย คู่มือการตั้งค่าฉบับสมบูรณ์.

อะไรจะตามมาหลังจากโมเดลขนาดต่ำกว่า 1 พันล้านพารามิเตอร์

การลดจำนวนพารามิเตอร์เป็นวิธีหนึ่งที่จะทำให้ VLA มีราคาถูกและอาจไม่ใช่ทางเลือกที่ดีที่สุดเสมอไป OpenVLA-OFT (arXiv 2502.19645) ยังคงใช้โครงสร้างหลักขนาด 7 พันล้านพารามิเตอร์ และเปลี่ยนเฉพาะวิธีการถอดรหัสการกระทำ โดยรายงานว่าอัตราการสร้างการกระทำเพิ่มขึ้น 26 เท่า และ LIBERO เพิ่มขึ้นจาก 76.5 เป็น 97.1 เปอร์เซ็นต์ BitVLA (arXiv 2506.07530) ทำให้ทุกน้ำหนักของโครงสร้างหลัก 1-bit BitNet b1.58 2B4T เป็นแบบ ternary โดยรายงานว่าใช้หน่วยความจำน้อยลง 11.0 เท่า และมีความหน่วงจากต้นทางถึงปลายทางลดลง 4.4 เท่า ในขณะที่ยังคงประสิทธิภาพเทียบเท่า OpenVLA-OFT แบบความแม่นยำเต็ม X-VLA-0.9B (arXiv 2510.10274) อยู่ในกลุ่มโมเดลขนาด 1 พันล้านพารามิเตอร์ด้วยเทคนิค flow matching.

ประเด็นร่วมกันคือ: ตัวถอดรหัสการกระทำ ไม่ใช่โมเดลภาษา คือส่วนที่ทำให้เกิดความหน่วง ถามว่านโยบายปล่อยการกระทำอย่างไรก่อนที่จะถามว่ามีพารามิเตอร์กี่ตัว อารีน่า มีโมเดล 85 ตัวและผลลัพธ์ 332 รายการ ซึ่งแต่ละรายการเชื่อมโยงไปยังแหล่งที่มาของมัน; มีภาพรวมที่กว้างขึ้นใน บทนำ VLA ของเรา.

ฉันสามารถ fine-tune SmolVLA บน RTX 4090 ได้หรือไม่?

ได้ SmolVLA มีพารามิเตอร์ 450 M และ AY-Robots รันบน RTX 4090 / 24 GB tier ตัวอย่าง lerobot ใช้ --batch_size=64 ซึ่งเป็นเพียงตัวอย่าง ไม่ใช่การรับประกันสำหรับกราฟิกการ์ดของคุณ เอกสารแนะนำให้เริ่มต้นด้วยขนาดเล็กและค่อยๆ เพิ่มขึ้นในขณะที่เวลาโหลดสั้นอยู่เสมอ คาดว่าจะใช้เวลานานกว่าประมาณ 4 ชั่วโมงที่เอกสารอ้างถึงสำหรับ 20000 steps บน A100

TinyVLA มีให้ใช้งานใน lerobot หรือบน AY-Robots หรือไม่?

ไม่ทั้งคู่ TinyVLA มีอยู่ใน repository งานวิจัยเท่านั้น commit ล่าสุดคือ 11 March 2025 และรูปแบบของมันคือ ACT-style HDF5 ไม่ใช่ LeRobot AY-Robots ฝึก GR00T N1.7, GR00T N1.5, Pi0.5, SmolVLA และ ACT หากคุณต้องการ TinyVLA คุณต้องสร้างเอง และคุณจะต้องแก้ไข DeepSpeed config path ใน scripts/train.sh ก่อน

โมเดล 450 M สามารถแข่งขันกับโมเดล 3 B ได้จริงหรือ?

ตามเกณฑ์มาตรฐานของผู้เขียนเอง ใช่: 87.3 เทียบกับ 86.0 บน LIBERO เทียบกับ Pi0 ที่ได้รับการ pretrain ด้าน robotics ที่ 3.3 B และ 78.3 เทียบกับ 61.7 ในสามงาน SO-100 จริงที่เอกสารเดียวกันระบุ Pi0 ที่ 3.5 B ข้อจำกัดอยู่ในเอกสารเดียวกัน: งานเดียวโดยไม่มีการ pretrain ด้าน robotics, SmolVLA ลดลงเหลือ 40.0 ซึ่งต่ำกว่า ACT ที่ 48.3

ฉันต้องใช้กี่ episodes ก่อนที่ VLA ขนาดเล็กจะทำงานได้?

AY-Robots กำหนดขั้นต่ำของ SmolVLA ไว้ที่ 30 episodes และ ACT ขั้นต่ำที่ 50 เอกสาร lerobot แนะนำประมาณ 50 และรายงานว่า 25 ไม่เพียงพอสำหรับงานเดียวกัน โครงสร้างมีความสำคัญพอๆ กับจำนวน: ชุดข้อมูลของเอกสารใช้ 5 ตำแหน่งลูกบาศก์ โดยแต่ละตำแหน่งมี 10 episodes

ทำไมตัวเลข latency ที่เผยแพร่จึงไม่ตรงกันมากนัก?

พวกเขาวัดสิ่งที่แตกต่างกัน TinyVLA รายงาน 14 ms ต่อการคาดการณ์การกระทำบน A6000; AY-Robots ระบุ SmolVLA ที่ 245 ms และ ACT ที่ 20 ms ต่อ action step ตัวเลขบางส่วนครอบคลุมหนึ่ง forward pass บางส่วนแบ่ง pass ออกเป็น 50-action chunk และแทบไม่มีส่วนใดรวมถึงการจับภาพจากกล้องหรือการเขียนไปยังเซอร์โว

การอนุมานบนคลาวด์ช่วยแก้ปัญหา GPU ได้หรือไม่?

บางส่วน AY-Robots จัดเตรียม pod โดยอัตโนมัติเพื่อให้บริการ policy ในขณะที่ไคลเอนต์ในเครื่องสื่อสารกับ endpoint นั้น โดยมี idle watchdog เพื่อให้มันทำลายตัวเองแทนที่จะเรียกเก็บเงินโดยไม่แจ้งให้ทราบล่วงหน้า ไม่สามารถขจัด round trip ของอินเทอร์เน็ตสาธารณะได้ และ control loop ก็ใช้เวลา 20 ถึง 485 ms ต่อ action step อยู่แล้ว เหมาะสำหรับงาน pick-and-place ที่ช้า ไม่เหมาะสำหรับการเคลื่อนไหวแบบ reactive ที่รวดเร็ว

Sources

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started