جدول مقایسه سیاست AY-Robots با تعداد پارامترها، رده‌های GPU و تأخیر استنتاج برای GR00T N1.7, GR00T N1.5, Pi0.5, SmolVLA و ACT
SmolVLATinyVLAVLA کوچکGPU مصرف‌کنندهLeRobot

مدل‌های کوچک VLA: TinyVLA, SmolVLA و مورد زیر ۱ میلیارد پارامتر

AY-Robots ResearchAugust 23, 2026۱۹ دقیقه مطالعه

TinyVLA و SmolVLA یک VLA عملیاتی را زیر ۱ میلیارد پارامتر قرار می‌دهند. اعداد واقعی از هر دو مقاله، پیش‌فرض‌های LeRobot، تأخیر اندازه‌گیری شده، و هزینه یک اجرا روی کارت ۲۴ گیگابایتی.

تقریباً هر مدل بینایی-زبان-عمل که در مورد آن نوشته می‌شود، یک کارت دیتاسنتر را فرض می‌کند. OpenVLA دارای ۷ میلیارد پارامتر است. GR00T N1.7 و Pi0.5 حدود ۳ میلیارد پارامتر دارند و برای تنظیم دقیق به یک A100 80 GB نیاز دارند. اگر کارت روی میز شما یک ۴۰۹۰ است، آن دسته از مدل‌ها خارج از دسترس هستند.

دو مقاله استدلال می‌کنند که به آن نیازی ندارید. TinyVLA (arXiv 2409.12514، پذیرفته شده توسط IEEE Robotics and Automation Letters در فوریه ۲۰۲۵) یک VLA را از یک ستون فقرات ۴۰۰ میلیون تا ۱.۳ میلیارد پارامتری به همراه یک سر عمل انتشار (diffusion action head) می‌سازد. SmolVLA (arXiv 2506.01844، ارسال شده در ۲ ژوئن ۲۰۲۵) ۴۵۰ میلیون پارامتر را با وزن‌های باز، داده‌های باز و یک اسکریپت که روی یک کارت مصرف‌کننده اجرا می‌شود، ارائه می‌دهد. در اینجا آنچه هر دو اندازه‌گیری کردند، و جایی که استدلال زیر ۱ میلیارد پارامتر دیگر معتبر نیست، آورده شده است.

آنچه باید بدانید

  • TinyVLA در سه اندازه عرضه می‌شود: ۴۲۲ میلیون کل با ۱۰۱ میلیون قابل آموزش، ۷۴۰ میلیون با ۱۳۸ میلیون، ۱.۳ میلیارد با ۱۴۳ میلیون. تنها دو مورد اول زیر ۱ میلیارد قرار می‌گیرند.
  • جدول IV آن، ۱۴ میلی‌ثانیه برای هر پیش‌بینی عمل برای TinyVLA-1B روی یک A6000 را اندازه‌گیری می‌کند، در مقابل ۲۹۲ میلی‌ثانیه برای OpenVLA-7B و ۱۴۰ میلی‌ثانیه برای یک OpenVLA-1B کوچک‌شده.
  • این سرعت را سر (head) حفظ می‌کند، نه ستون فقرات (backbone): سر انتشار TinyVLA-H را با یک سر ACT عوض کنید و پنج وظیفه ربات واقعی از میانگین ۹۴.۰ به ارقام تک‌رقمی کاهش می‌یابند. یک سر MLP در همه جا امتیاز ۰ می‌گیرد.
  • SmolVLA ۴۵۰ میلیون پارامتر دارد، که تقریباً ۱۰۰ میلیون آن متخصص عمل است، و روی ۴۸۱ مجموعه داده LeRobot جامعه و ۱۰.۶ میلیون فریم از پیش آموزش دیده است. این مدل امتیاز ۸۷.۳ را در LIBERO در مقابل ۸۶.۰ برای یک Pi0 از پیش آموزش‌دیده رباتیک با ۳.۳ میلیارد پارامتر، و ۷۸.۳ را در سه وظیفه واقعی SO-100 در مقابل ۶۱.۷ برای Pi0 با ۳.۵ میلیارد پارامتر گزارش می‌دهد.
  • SmolVLA که بدون آن پیش‌آموزش به صورت تک‌وظیفه آموزش دیده است، در آن وظایف به ۴۰.۰ کاهش می‌یابد، که کمتر از ۴۸.۳ ACT است. کوچک بودن به طور خودکار آسان نیست.
  • TinyVLA هیچ ادغام LeRobot ندارد و یک پشته چرخ CUDA 11.7 را پین می‌کند. SmolVLA در lerobot موجود است و هر اجرا در رده ۲۴ گیگابایتی در اینجا تقریباً ۱ تا ۳ دلار هزینه دارد.

چه چیزی واقعاً به عنوان یک VLA کوچک محسوب می‌شود

تعداد پارامترها در کارت مدل یک عدد واحد نیست. این می‌تواند به معنای وزن‌های کلی، وزن‌های بارگذاری شده در زمان استنتاج، یا وزن‌هایی باشد که در طول . TinyVLA هر دو را گزارش می‌کند و این شکاف بزرگ است: TinyVLA-H در مجموع 1.3 میلیارد پارامتر دارد اما 143 میلیون آن قابل آموزش است، زیرا برج بینایی و بیشتر مدل زبان ثابت می‌مانند در حالی که آداپتورهای LoRA و سر عمل حرکت می‌کنند. مقاله سهم قابل آموزش را حدود 5 درصد ذکر می‌کند.

مدلپارامترهابک‌بونسر عملمنبع
TinyVLA-S422 M total, 101 M trainableLlava-Pythia ~400 MDiffusion (droid_diffusion U-Net)arXiv 2409.12514
TinyVLA-B740 M total, 138 M trainableLlava-Pythia ~700 MDiffusionarXiv 2409.12514
TinyVLA-H1.3 B total, 143 M trainableLlava-Pythia ~1.3 BDiffusionarXiv 2409.12514
SmolVLA450 M, ~100 M action expertSmolVLM2-500M-Video-InstructFlow matching expertarXiv 2506.01844
Octo-Small27 MViT-S scale, T5-Base text encoderDiffusionocto-small-1.5 card
ACT~80 MResNet, no language modelDirect chunk regressionAY-Robots catalog
OpenVLA7 BLlama 2 7 B, DINOv2 and SigLIP encodersAutoregressive action tokensarXiv 2406.09246

دو ردیف ارزش بحث دارند. با تقریباً 80 میلیون پارامتر از هر چیز دیگری در اینجا کوچکتر است اما مدل زبان ندارد، بنابراین یک VLA نیست: یک وظیفه را یاد می‌گیرد و نمی‌توان به آن گفت که کار دیگری انجام دهد. با 27 میلیون پارامتر از طریق یک رمزگذار متن T5-Base شرطی شده است، نه یک بک‌بون LLM. اینها خطوط مبنای خوبی هستند، اما هیچ‌کدام از آنها دستورالعمل‌هایی را که برچسب نشان می‌دهد، ارائه نمی‌دهند.

خط 1 میلیارد دلخواه است

TinyVLA-H، نسخه‌ای که نتایج اصلی را به همراه دارد، 1.3 میلیارد پارامتر دارد و بالاتر از این خط قرار می‌گیرد. سوال بهتر این است که آیا یک مدل در طول آموزش در 24 گیگابایت جا می‌شود و در زمان استنتاج به نرخ کنترل شما می‌رسد. پنج سیاستی که می‌توانید در اینجا آموزش دهید در صفحه سیاست‌ها قرار دارند؛ TinyVLA یک ورودی در آرنا دارد اگر می‌خواهید اعداد آن را در کنار دیگران ببینید.

TinyVLA: سرعت از سرچشمه می‌گیرد، نه از ستون فقرات

برداشت واضح این است که آن‌ها مدل زبان را کوچک‌تر کرده‌اند، بنابراین سریع‌تر شده است. اما بررسی حذف اجزا در مقاله خلاف این را می‌گوید. جایگزینی ستون فقرات 7 B مدل OpenVLA با یک ستون فقرات تقریباً 1 B، پیش‌بینی هر عمل را از 292 ms به 140 ms کاهش داد که یک افزایش 2 برابری است. TinyVLA-H، با تعداد پارامترهای مشابه، با سرعت 14 ms روی همان کارت اجرا می‌شود. 10 برابر دیگر مربوط به سر عمل (action head) است.

مدلپیش‌بینی هر عملاندازه‌گیری شده روی
OpenVLA-7B292 msیک A6000
OpenVLA-1B، ستون فقرات با TinyVLA جایگزین شد140 msیک A6000
TinyVLA-1B (TinyVLA-H)14 msیک A6000

OpenVLA اعمال را به صورت توکن‌های گسسته از طریق سر مدل زبان، یکی برای هر بعد عمل، به صورت خودرگرسیو منتشر می‌کند. TinyVLA یک رمزگشای انتشار (diffusion decoder) متصل می‌کند که کل قطعه را در یک مرحله تولید می‌کند. جدول V معماری TinyVLA-H را نشان می‌دهد و تنها سر را در همان پنج وظیفه ربات واقعی تعویض می‌کند. این واضح‌ترین مدرک در هر دو مقاله برای استدلال تطبیق جریان سیاست‌ها ایجاد می‌کنند، و دلیل اینکه Pi0 از رمزگشایی توکن فاصله گرفت.

عملکرد روی TinyVLA-Hقرار دادن توپ تنیسبرگرداندن ماگروی هم چیدن مکعب‌هابستن کشوباز کردن جعبه
انتشار (droid_diffusion)90.098.398.396.786.7
ترانسفورمر قطعه‌بندی عمل13.38.38.313.323.3
پرسپترون چندلایه00000
اعداد TinyVLA چه چیزی را پوشش می‌دهند

ارقام 292 / 140 / 14 میلی‌ثانیه مربوط به جدول IV هستند که همگی روی یک A6000 اجرا شده‌اند. این ارقام مربوط به پیش‌بینی هر عمل هستند و شامل ضبط دوربین، پیش‌پردازش و نوشتن سریال به سرووها نمی‌شوند. تأخیر منتشر شده را به عنوان یک حد پایین در نظر بگیرید، نه هرگز به عنوان نرخ کنترل. اعداد ما نیز همین محدودیت را دارند: به تأخیر استنتاج مراجعه کنید.

عملکرد TinyVLA

معیارپروتکلTinyVLA-Hخطوط پایه
MetaWorld، 50 وظیفه، شبیه‌سازیچند وظیفه‌ای، 50 دمو، 3 سید77.6 / 21.5 / 11.4 / 15.8 بر اساس دشواری، میانگین 31.6میانگین خط‌مشی انتشار 10.5
ربات واقعی Franka Panda، 5 وظیفه100 مسیر حرکت در هر وظیفه، 20 آزمایشمیانگین 94.0OpenVLA 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، یک جدول قابل مرتب‌سازی از 85 مدل VLA با 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، بررسی شده در برابر مخزن در تاریخ 2026-08-23.
وابستگی‌های ثابت‌شده، تله‌ای هستند که یک روز را می‌بلعند

فایل 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 را به چرخه‌های 11.x محدود می‌کند: nvidia-cuda-runtime-cu11==11.7.99، nvidia-cudnn-cu11==8.5.0.96، triton==2.0.0. فایل README پایتون 3.10 را درخواست می‌کند؛ lerobot 0.6.1 به 3.12 یا جدیدتر نیاز دارد، بنابراین این دو نمی‌توانند یک محیط را به اشتراک بگذارند. ابتدا تأیید کنید که یک بیلد torch 2.0.1 برای نسل GPU شما وجود دارد. اگر به جای آن، اجرا به دلیل VRAM متوقف شد، چک‌لیست کمبود حافظه سریع‌تر از حدس زدن است.

TinyVLA همچنین مجموعه‌داده‌های LeRobot را نمی‌خواند. فرمت آن ACT-style HDF5 است: action، language_raw، و یک گروه مشاهدات با تصاویر چندنمایی، joint_positions، qpos و qvel. مخزن فایل data_utils/rlds_to_h5py.py را برای ورودی RLDS ارائه می‌دهد، و هر وظیفه به صورت دستی در 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 or -1.3B. هیچ نقطه بازرسی پایه واحدی وجود ندارد که شما یک policy را به آن اشاره کنید، به همان روشی که به lerobot/smolvla_base اشاره می‌کنید.

SmolVLA: مدل زیر 1 میلیارد پارامتر که می‌توانید امروز بعدازظهر اجرا کنید

SmolVLA همین استدلال را در یک کتابخانه نگهداری شده مطرح می‌کند. این مدل 450 میلیون پارامتر روی بک‌بون SmolVLM2-500M-Video-Instruct دارد، و کارایی آن از تنظیماتی ناشی می‌شود که می‌توانید از configuration_smolvla.py بخوانید، نه از ادعایی مبنی بر کوچک بودن.

Setting in configuration_smolvla.pyپیش‌فرضچه چیزی به دست می‌آید
num_vlm_layers16فقط 16 لایه اول مدل زبان اجرا می‌شوند
expert_width_multiplier0.75اندازه پنهان متخصص عمل 75 درصد VLM است
self_attn_every_n_layers2خود-توجهی با توجه متقاطع در هم آمیخته است
chunk_size / n_action_steps50 / 50یک گذر 50 عمل را منتشر می‌کند و هر 50 عمل اجرا می‌شوند
num_steps10حذف نویز تطبیق جریان در 10 گام ثابت شده است
tokenizer_max_length48دستورالعمل به 48 توکن کوتاه می‌شود
freeze_vision_encoder / train_expert_onlyTrue / Trueتنظیم دقیق، متخصص را حرکت می‌دهد، نه برج بینایی را
optimizer_lr, warmup, decay1e-4, 1000 steps, to 2.5e-6 over 30000نه دستورالعمل مقاله: پیش‌آموزش آن از یک گرم‌کردن 100 گامی در طول 200000 گام استفاده کرد

پیش‌آموزش از 481 مجموعه داده جامعه LeRobot، 22.9 هزار اپیزود و 10.6 میلیون فریم روی 4 GPU، 200000 گام با یک بچ جهانی 256 استفاده کرد؛ مقاله کل پروژه را حدود 30 هزار ساعت GPU تخمین می‌زند. یک عدد قابل توجه: وبلاگ راه‌اندازی Hugging Face می‌گوید 487 مجموعه داده انتخاب شده، در حالی که جدول مقاله 481 را نشان می‌دهد. ما از رقم مقاله استفاده می‌کنیم و این اختلاف را علامت‌گذاری می‌کنیم.

معیار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 میلیونی یک مدل 3.5 میلیاردی را با 16.6 امتیاز شکست می‌دهد، جالب توجه است؛ ردیف زیر آن وزنه تعادل است. اگر پیش‌آموزش جامعه و آموزش چندوظیفه‌ای را حذف کنیم، همان مدل به 40.0 کاهش می‌یابد، پایین‌تر از ACT. ادعای قابل دفاع این است که یک مدل کوچک به طور خودکار بدتر نیست، نه اینکه بهتر است.

یک اتفاق کمک‌کننده: جدول Meta-World مقاله SmolVLA اعداد منتشر شده TinyVLA را به عنوان یک خط مبنا در خود دارد، بنابراین برای یک بار هر دو مدل در یک جدول قرار می‌گیرند، SmolVLA-0.45B با 57.3 در مقابل TinyVLA-H با 31.6. همچنین گزارش می‌دهد که آموزش SmolVLA حدود 40 درصد سریع‌تر از Pi0 با 6 برابر حافظه کمتر است. همه اینها از نویسندگان SmolVLA می‌آید؛ مدخل آرنا هر مقدار را به منبع آن پیوند می‌دهد.

SmolVLA زمان خود را کجا صرف می‌کند

AY-Robots مدل SmolVLA را 245 میلی‌ثانیه در هر گام عملیاتی و ACT را 20 میلی‌ثانیه در کاتالوگ سیاست‌ها. TinyVLA 14 میلی‌ثانیه برای هر پیش‌بینی عمل گزارش می‌دهد. این اعداد قابل مقایسه نیستند و فرض بر قابل مقایسه بودن آنها رایج‌ترین اشتباه در این موضوع است: برخی زمان یک گذر رو به جلو را می‌سنجند، برخی آن گذر را بر روی یک تکه تقسیم می‌کنند زمانی که تکه‌بندی عمل آن را مستهلک می‌کند.

  • SmolVLA در هر گذر رو به جلو 50 عمل را منتشر کرده و هر 50 عمل را اجرا می‌کند. با نرخ 30 فریم بر ثانیه که مقاله برای ربات‌های واقعی استفاده می‌کند، یک استنتاج حدود 1.7 ثانیه حرکت را پوشش می‌دهد.
  • استنتاج ناهمزمان (Asynchronous inference) تکه بعدی را در حالی که تکه فعلی هنوز در حال اجراست محاسبه می‌کند: میانگین زمان تکمیل وظیفه 9.7 ثانیه در مقابل 13.75 ثانیه همزمان، تقریباً 30 درصد سریع‌تر، و 19 چرخه برداشت و قرار دادن (pick-and-place) در یک پنجره 60 ثانیه‌ای ثابت در مقابل 9 چرخه.
  • نرخ‌های موفقیت قابل مقایسه بودند تا بهتر، 78.3 همزمان در مقابل 73.3 ناهمزمان. ناهمزمانی توان عملیاتی را افزایش می‌دهد، نه دقت را.
  • تکه‌بندی تأخیر محاسباتی را پنهان می‌کند، نه تأخیر شبکه را، و سیاست را کمتر واکنش‌پذیر می‌کند زیرا به 50 عمل متعهد است.
استنتاج از راه دور رایگان نیست و هیچ پلتفرمی فیزیک را اصلاح نمی‌کند

AY-Robots می‌تواند یک پاد GPU ابری را به صورت خودکار فراهم کند که خط‌مشی شما را ارائه می‌دهد، در حالی که کلاینت ربات محلی با آن نقطه پایانی صحبت می‌کند، و پاد دارای یک نگهبان بیکار است تا به جای صورت‌حساب‌دهی بی‌صدا، خود را از بین ببرد. آنچه انجام نمی‌دهد، حذف رفت و برگشت اینترنت عمومی است. حلقه کنترل در پنج خط‌مشی اینجا، 20 تا 485 میلی‌ثانیه در هر گام عملیاتی قبل از هرگونه شبکه است، بنابراین استنتاج از راه دور برای عملیات کند برداشت و قرار دادن (pick-and-place) قابل اجرا است، نه برای حرکت واکنشی سریع.

جدول مقایسه خط‌مشی‌های AY-Robots که GR00T N1.7، GR00T N1.5، Pi0.5، SmolVLA و ACT را با تعداد پارامترها، رده GPU مورد نیاز، تأخیر استنتاج در هر گام عملیاتی و حداقل تعداد اپیزودهای مورد نیاز هر یک نشان می‌دهد.
SmolVLA در حدود 450 میلیون و ACT در حدود 80 میلیون، دو مدلی هستند که روی کارت 24 گیگابایتی جا می‌شوند. سه مدل دیگر به A100 یا H100 80 گیگابایتی نیاز دارند.

تنظیم دقیق 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 گیگابایتی، زمان بیشتری انتظار داشته باشید و آن را اندازه‌گیری کنید.

    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، یک دستور آموزش، یک دستور اجرا. برای TinyVLA این یک بازتولید تحقیقاتی با پین‌های ثابت، یک مسیر DeepSpeed خراب و یک تبدیل داده است که خودتان می‌نویسید.

  1. یک کارت 24 گیگابایتی تهیه کنید، 30 تا 50 اپیزود ضبط کنید، جریان‌های دوربین را فریم به فریم تأیید کنید.
  2. pip install -e ".[smolvla]" را اجرا کنید، lerobot-train را در برابر lerobot/smolvla_base اجرا کنید، سپس نقطه بازرسی را روی دستگاهی که بازو به آن متصل است، سرویس‌دهی کنید.
  3. برای TinyVLA: محیط conda جداگانه، تبدیل داده به HDF5، ثبت وظیفه در constants.py، رفع مسیر zero2.json، کاهش train.sh از هشت GPU به یک GPU.
مزایا
  • پس از پرداخت هزینه کارت، صورت‌حساب ساعتی وجود ندارد.
  • استنتاج در کنار سرووها قرار می‌گیرد، تنها راه برای دستیابی به یک حلقه کنترل سریع.
  • می‌توانید کد خط‌مشی را پچ کنید، و TinyVLA فقط از این طریق در دسترس است.
معاوضه‌ها
  • یک 4090 هر خط‌مشی ~3 B را حذف می‌کند، بنابراین مقایسه محلی با GR00T N1.7 یا Pi0.5 امکان‌پذیر نیست.
  • تنظیم محیط کار اصلی است. پین‌های TinyVLA به تنهایی می‌توانند یک روز زمان ببرند.
  • بدون صف، بدون تلاش مجدد، بدون ذخیره‌سازی نقطه بازرسی. راه‌اندازی مجدد در گام 14000 به معنای شروع دوباره است.

زمانی که یک مدل کوچک انتخاب اشتباهی است

هر دو مقاله در اینجا دقیق‌تر از خلاصه‌ها هستند. تحلیل شکست TinyVLA خاص است: نسخه 0.4 B سه بار با خواندن اشتباه دستورالعمل شکست خورد، که نویسندگان آن را به درک زبان محدود در VLM کوچک‌تر نسبت می‌دهند، و این حالت در 1.3 B ناپدید شد. SmolVLA همان منحنی را از انتهای دیگر نشان می‌دهد: نسخه 2.25 B از معماری یکسان در LIBERO امتیاز 88.75 و در Meta-World امتیاز 68.24 را کسب می‌کند در مقابل 87.3 و 57.3 برای مدل 0.45 B.

انتخاب یک VLA زیر 1 B
جایی که برنده می‌شود
  • روی کارت 24 گیگابایتی جا می‌شود، که هزینه یک آزمایش را از ده‌ها دلار به چند دلار کاهش می‌دهد.
  • به اندازه کافی سریع است که در کنار بازو اجرا شود، بنابراین هیچ پرش شبکه در حلقه کنترل وجود ندارد.
  • روی داده‌هایی که یک نفر می‌تواند ضبط کند، تنظیم دقیق می‌شود، ده‌ها اپیزود به جای هزاران.
  • وزن‌ها، لیست داده‌ها و کد SmolVLA عمومی هستند، بنابراین یک نتیجه بد قابل اشکال‌زدایی است.
جایی که شکست می‌خورد
  • پیروی ضعیف‌تر از دستورالعمل‌ها: پارامترهای زبانی کمتر، توانایی کمتر برای تفکیک عبارات ارجاعی مشابه.
  • تعمیم فضایی و بصری کمتر به تنظیماتی که ضبط نکرده‌اید.
  • حساسیت بیشتر به نقص‌های مجموعه داده، با پیش‌آموزش کمتر برای اتکا به آن.
  • کارهای چندوظیفه‌ای و با افق بلند همچنان مدل‌های بزرگ‌تر را ترجیح می‌دهند، از جمله نسخه 2.25 B خود SmolVLA.

مقایسه‌ای که ارزش اجرا دارد، TinyVLA در برابر SmolVLA نیست. بلکه SmolVLA در برابر ACT در وظیفه خودتان است، و مقاله SmolVLA دلیل آن را توضیح می‌دهد. SmolVLA که به صورت تک‌وظیفه‌ای و بدون پیش‌آموزش رباتیک آموزش دیده بود، در سه وظیفه SO-100 به طور متوسط 40.0 امتیاز کسب کرد، در حالی که ACT تک‌وظیفه‌ای 48.3 امتیاز داشت. آنچه آن را به 78.3 می‌رساند، پیش‌آموزش جامعه به علاوه آموزش چندوظیفه‌ای است، نه فقط معماری. در وظیفه لگو SO-101، هر دو تک‌وظیفه‌ای، SmolVLA برنده می‌شود: 90 در برابر 70 در توزیع. سپس SmolVLA در برابر Pi0.5 اگر بودجه اجازه دهد.

در این مقیاس، مجموعه داده نتیجه را تعیین می‌کند

پیش‌آموزش کمتری برای پوشش داده‌های بد وجود دارد، بنابراین یک منحنی افت (loss curve) تمیز روی یک مجموعه داده معیوب، سیاستی را به شما می‌دهد که نقص را با اطمینان بازتولید می‌کند. مستندات lerobot در مورد ساختار صریح هستند: ۵۰ اپیزود در ۵ موقعیت مکعب، ۱۰ اپیزود برای هر موقعیت، کار کرد؛ ۲۵ اپیزود کار نکرد. اگر افت (loss) خوب به نظر می‌رسد و بازو کار مفیدی انجام نمی‌دهد، از افت کاهش می‌یابد، سیاست کاری انجام نمی‌دهد، سیاست فقط در یک تنظیمات کار می‌کند یا جمع‌آوری داده‌های آموزشی VLA که واقعاً قابل استفاده هستند شروع کنید.

پنج سیاست، یک جدول مقایسه

GR00T N1.7، GR00T N1.5، Pi0.5، SmolVLA و ACT با تعداد پارامترهای واقعی، تأخیر استنتاج در هر گام عملیاتی، رده GPU مورد نیاز هر یک و حداقل تعداد اپیزود قبل از انجام هر کار مفیدی.

سیاست‌ها را مقایسه کنید

یک جدول تصمیم‌گیری که می‌توانید بر اساس آن عمل کنید

وضعیت شمابا این شروع کنیدچرا
یک وظیفه، نمایش‌های خوب، بدون زبانACT~۸۰ میلیون، ۲۰ میلی‌ثانیه، کارت ۲۴ گیگابایتی، بدون مدل پایه برای دانلود
چند وظیفه مرتبط، هر کدام یک دستورالعملSmolVLA450 M, in lerobot, حداقل ۳۰ اپیزود، ۱ تا ۳ دلار برای هر اجرا
باز تولید نتیجه TinyVLA به طور خاصTinyVLA-B or TinyVLA-Hمخزن تنها راه است: محیط ایزوله، داده‌های تبدیل شده
چند وظیفه‌ای، دستورالعمل‌های متنوع، بودجه A100GR00T N1.7 or Pi0.5~۳ میلیارد، ۱۵۲ میلی‌ثانیه و ۴۸۵ میلی‌ثانیه در هر گام، ۴ تا ۱۲ دلار برای هر اجرا
هنوز رباتی نداریدیک بازوی واقعی را هدایت کنیدبازوی زنده مبتنی بر صف نیازی به ثبت‌نام و سخت‌افزار ندارد

برای ردیف آخر، بازوی زنده یک 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 بیتی BitNet b1.58 2B4T را سه‌تایی می‌کند، که 11.0 برابر حافظه کمتر و 4.4 برابر تأخیر کمتر از ابتدا تا انتها را گزارش می‌کند، در حالی که با OpenVLA-OFT با دقت کامل مطابقت دارد. X-VLA-0.9B (arXiv 2510.10274) با تطبیق جریان در خط 1 میلیارد پارامتر قرار می‌گیرد.

نکته مشترک: رمزگشای اقدام، نه مدل زبان، جایی است که تأخیر وجود دارد. قبل از اینکه بپرسید یک سیاست چند پارامتر دارد، بپرسید چگونه اقدامات را منتشر می‌کند. این آرنا دارای 85 مدل و 332 نتیجه است که هر کدام به منبع خود پیوند داده شده‌اند؛ یک نمای کلی گسترده‌تر در معرفی VLA ما.

آیا می‌توانم SmolVLA را روی یک RTX 4090 تنظیم دقیق (fine-tune) کنم؟

بله. SmolVLA دارای ۴۵۰ میلیون پارامتر است و AY-Robots آن را روی سطح RTX 4090 / 24 GB اجرا می‌کند. مثال lerobot از --batch_size=64 استفاده می‌کند که یک نمونه است نه تضمینی برای کارت شما؛ مستندات توصیه می‌کنند که با مقدار کم شروع کرده و در حالی که زمان بارگذاری کوتاه می‌ماند، آن را افزایش دهید. انتظار زمانی طولانی‌تر از تقریباً ۴ ساعتی که مستندات برای ۲۰۰۰۰ گام روی A100 ذکر می‌کنند، داشته باشید.

آیا TinyVLA در lerobot یا روی AY-Robots موجود است؟

خیر، برای هر دو. TinyVLA فقط در مخزن تحقیقاتی خود موجود است، آخرین کامیت ۱۱ مارس ۲۰۲۵، و فرمت آن HDF5 به سبک ACT است نه LeRobot. AY-Robots مدل‌های GR00T N1.7, GR00T N1.5, Pi0.5, SmolVLA و ACT را آموزش می‌دهد. اگر TinyVLA را می‌خواهید، باید خودتان آن را بسازید و ابتدا باید مسیر پیکربندی DeepSpeed را در scripts/train.sh اصلاح کنید.

آیا یک مدل ۴۵۰ میلیون پارامتری واقعاً با یک مدل ۳ میلیارد پارامتری رقابتی است؟

بر اساس معیارهای خود نویسندگان، بله: ۸۷.۳ در برابر ۸۶.۰ در LIBERO در مقایسه با یک Pi0 از پیش آموزش‌دیده رباتیک با ۳.۳ میلیارد پارامتر، و ۷۸.۳ در برابر ۶۱.۷ در سه وظیفه واقعی SO-100 که همان مقاله Pi0 را با ۳.۵ میلیارد پارامتر برچسب‌گذاری می‌کند. محدودیت در همان مقاله ذکر شده است: در وظایف تک‌گانه بدون پیش‌آموزش رباتیک، SmolVLA به ۴۰.۰ کاهش می‌یابد که پایین‌تر از ۴۸.۳ ACT است.

چند اپیزود نیاز دارم تا یک VLA کوچک کاری انجام دهد؟

AY-Robots حداقل اپیزودهای SmolVLA را ۳۰ و حداقل ACT را ۵۰ تعیین می‌کند. مستندات lerobot حدود ۵۰ اپیزود را توصیه می‌کنند و گزارش می‌دهند که ۲۵ اپیزود برای همان وظیفه کافی نبوده است. ساختار به اندازه تعداد اهمیت دارد: مجموعه داده مقاله از ۵ موقعیت مکعب با ۱۰ اپیزود برای هر کدام استفاده کرده است.

چرا اعداد تأخیر منتشر شده اینقدر با هم اختلاف دارند؟

آنها چیزهای متفاوتی را اندازه‌گیری می‌کنند. TinyVLA ۱۴ میلی‌ثانیه برای هر پیش‌بینی عمل روی A6000 گزارش می‌دهد؛ AY-Robots SmolVLA را ۲۴۵ میلی‌ثانیه و ACT را ۲۰ میلی‌ثانیه برای هر گام عمل فهرست می‌کند. برخی ارقام یک گذر رو به جلو را پوشش می‌دهند، برخی یک گذر را بین یک بسته ۵۰ عملی تقسیم می‌کنند، و تقریباً هیچ‌کدام شامل ضبط دوربین یا نوشتن به سرووها نمی‌شوند.

آیا استنتاج ابری مشکل GPU را حل می‌کند؟

تا حدی. AY-Robots به طور خودکار یک پاد را فراهم می‌کند که سیاست را ارائه می‌دهد در حالی که کلاینت محلی با آن نقطه پایانی ارتباط برقرار می‌کند، با یک نگهبان بیکار (idle watchdog) که باعث می‌شود خودش را از بین ببرد به جای اینکه بی‌صدا صورت‌حساب صادر کند. این نمی‌تواند سفر رفت و برگشت اینترنت عمومی را حذف کند، و حلقه کنترل از قبل ۲۰ تا ۴۸۵ میلی‌ثانیه برای هر گام عمل است. برای عملیات آرام برداشتن و قرار دادن خوب است، اما برای حرکت واکنشی سریع مناسب نیست.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started