
يقدم TinyVLA و SmolVLA نظام VLA عمليًا بأقل من مليار معلمة. أرقام حقيقية من كلتا الورقتين، الإعدادات الافتراضية لـ lerobot، زمن الاستجابة المقاس، وتكلفة التشغيل على بطاقة 24 جيجابايت.
تقريباً كل نموذج الرؤية واللغة والحركة الذي يُكتب عنه يفترض وجود بطاقة مركز بيانات. OpenVLA هو 7 مليارات معلمة. GR00T N1.7 و Pi0.5 يبلغان حوالي 3 مليارات ويريدان بطاقة A100 بسعة 80 جيجابايت للضبط الدقيق. إذا كانت البطاقة على مكتبك هي 4090، فإن هذه الفئة من النماذج بعيدة المنال.
تجادل ورقتان بحثيتان بأنك لا تحتاج إليها. يبني TinyVLA (arXiv 2409.12514، قُبلت من قبل IEEE Robotics and Automation Letters في فبراير 2025) نموذج VLA من أساس يتراوح من 400 مليون إلى 1.3 مليار معلمة بالإضافة إلى رأس حركة انتشار. SmolVLA (arXiv 2506.01844، قُدمت في 2 يونيو 2025) يشحن 450 مليون معلمة بأوزان مفتوحة وبيانات مفتوحة وسكريبت يعمل على بطاقة مستهلك واحدة. إليك ما قاسه كلاهما، وأين تتوقف حجة ما دون المليار معلمة عن الصمود.
ما تحتاج لمعرفته
- •يشحن TinyVLA بثلاثة أحجام: 422 مليون إجمالي مع 101 مليون قابلة للتدريب، 740 مليون مع 138 مليون، 1.3 مليار مع 143 مليون. فقط الاثنان الأولان يقعان تحت 1 مليار.
- •يقيس جدولها الرابع 14 مللي ثانية لكل تنبؤ حركة لـ TinyVLA-1B على بطاقة A6000 واحدة، مقابل 292 مللي ثانية لـ OpenVLA-7B و 140 مللي ثانية لـ OpenVLA-1B مصغر.
- •الرأس هو الذي يحافظ على هذه السرعة، وليس الأساس: استبدل رأس الانتشار لـ TinyVLA-H برأس ACT وستنخفض مهام الروبوت الحقيقية الخمس من متوسط 94.0 إلى أرقام فردية. يحقق رأس MLP صفرًا في كل مكان.
- •SmolVLA هو 450 مليون، حوالي 100 مليون منها خبير الحركة، تم تدريبه مسبقًا على 481 مجموعة بيانات LeRobot مجتمعية و 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. يتوفر SmolVLA في lerobot ويكلف تقريبًا 1 إلى 3 دولارات أمريكية لكل تشغيل على مستوى 24 جيجابايت هنا.
ما الذي يعتبر فعلاً نموذج VLA صغيرًا
عدد المعلمات في بطاقة النموذج ليس رقمًا واحدًا. يمكن أن يعني إجمالي الأوزان، أو الأوزان المحملة عند الاستدلال، أو الأوزان التي تتلقى التدرجات أثناء . TinyVLA يبلغ عن كليهما، والفجوة كبيرة: TinyVLA-H يبلغ إجماليه 1.3 مليار ولكن 143 مليون قابل للتدريب، لأن برج الرؤية ومعظم نموذج اللغة يظلان مجمدين بينما تتحرك محولات LoRA ورأس الإجراء. تضع الورقة حصة التدريب عند حوالي 5 بالمائة.
| النموذج | المعلمات | العمود الفقري | رأس الإجراء | المصدر |
|---|---|---|---|---|
| TinyVLA-S | 422 مليون إجمالي، 101 مليون قابل للتدريب | Llava-Pythia ~400 M | Diffusion (droid_diffusion U-Net) | arXiv 2409.12514 |
| TinyVLA-B | 740 مليون إجمالي، 138 مليون قابل للتدريب | Llava-Pythia ~700 M | Diffusion | arXiv 2409.12514 |
| TinyVLA-H | 1.3 مليار إجمالي، 143 مليون قابل للتدريب | Llava-Pythia ~1.3 B | Diffusion | arXiv 2409.12514 |
| SmolVLA | 450 مليون، ~100 مليون خبير إجراء | SmolVLM2-500M-Video-Instruct | Flow matching expert | arXiv 2506.01844 |
| Octo-Small | 27 M | ViT-S scale, T5-Base text encoder | Diffusion | octo-small-1.5 card |
| ACT | ~80 M | ResNet, no language model | Direct chunk regression | AY-Robots catalog |
| OpenVLA | 7 B | Llama 2 7 B, DINOv2 and SigLIP encoders | Autoregressive action tokens | arXiv 2406.09246 |
هناك صفان يستحقان النقاش. بحوالي 80 مليون أصغر من أي شيء آخر هنا ولكنه لا يحتوي على نموذج لغوي، لذا فهو ليس VLA: يتعلم مهمة واحدة ولا يمكن إخباره بفعل مهمة أخرى. بحوالي 27 مليون يتم تكييفه من خلال مشفر نص T5-Base، وليس عمودًا فقريًا لنموذج لغوي كبير (LLM). إنها خطوط أساس جيدة، ولكن لا يوفر أي منهما اتباع التعليمات التي يشير إليها الملصق.
TinyVLA-H، المتغير الذي يحمل النتائج الرئيسية، يبلغ 1.3 مليار ويقع فوق الخط. السؤال الأفضل هو ما إذا كان النموذج يتناسب مع 24 جيجابايت أثناء التدريب ويحقق معدل التحكم المطلوب عند الاستدلال. السياسات الخمس التي يمكنك تدريبها هنا موجودة على صفحة السياسات؛ لدى TinyVLA إدخال في الساحة إذا كنت تريد أرقامه بجانب أرقام الآخرين.
TinyVLA: السرعة تأتي من الرأس، وليس من العمود الفقري
القراءة الواضحة هي أنهم جعلوا نموذج اللغة أصغر، فأصبح أسرع. لكن دراسة الإزالة في الورقة البحثية تقول عكس ذلك. استبدال العمود الفقري لـ OpenVLA بحجم 7 مليار بآخر بحجم 1 مليار تقريباً خفض التنبؤ لكل إجراء من 292 مللي ثانية إلى 140 مللي ثانية، أي مكسب بمقدار 2x. يعمل TinyVLA-H، بعدد معلمات مماثل، بسرعة 14 مللي ثانية على نفس البطاقة. الـ 10x الأخرى هي رأس الإجراء.
| النموذج | التنبؤ لكل إجراء | تم القياس على |
|---|---|---|
| OpenVLA-7B | 292 ms | بطاقة A6000 واحدة |
| OpenVLA-1B, العمود الفقري تم استبداله بـ TinyVLA | 140 ms | بطاقة A6000 واحدة |
| TinyVLA-1B (TinyVLA-H) | 14 ms | بطاقة A6000 واحدة |
يُصدر OpenVLA الإجراءات كرموز منفصلة عبر رأس نموذج اللغة، رمز واحد لكل بُعد إجراء، بشكل تلقائي. يرفق TinyVLA مفكك تشفير انتشار ينتج الكتلة بأكملها دفعة واحدة. يوضح الجدول V البنية المعمارية لـ TinyVLA-H ويستبدل الرأس فقط، على نفس المهام الخمس للروبوت الحقيقي. إنه أوضح دليل في أي من الورقتين على الحجة التي تقدمها سياسات مطابقة التدفق، والسبب في أن Pi0 ابتعد عن فك تشفير الرموز.
| الأداء على TinyVLA-H | وضع كرة التنس | قلب الكوب | تكديس المكعبات | إغلاق الدرج | فتح الصندوق |
|---|---|---|---|---|---|
| الانتشار (droid_diffusion) | 90.0 | 98.3 | 98.3 | 96.7 | 86.7 |
| محول تقسيم الإجراءات | 13.3 | 8.3 | 8.3 | 13.3 | 23.3 |
| شبكة بيرسيبترون متعددة الطبقات | 0 | 0 | 0 | 0 | 0 |
الأرقام 292 / 140 / 14 ميلي ثانية هي من الجدول الرابع، وجميعها على A6000 واحد. وهي لكل تنبؤ بإجراء وتستثني التقاط الكاميرا، المعالجة المسبقة، والكتابة التسلسلية للمحركات المؤازرة. تعامل مع زمن الاستجابة المنشور كحد أدنى، وليس كمعدل تحكم أبدًا. أرقامنا الخاصة تحمل نفس القيد: انظر زمن استجابة الاستدلال.
ما حققه TinyVLA
| المعيار | البروتوكول | TinyVLA-H | الخطوط الأساسية |
|---|---|---|---|
| MetaWorld، 50 مهمة، محاكاة | مهام متعددة، 50 عرضًا توضيحيًا، 3 بذور | 77.6 / 21.5 / 11.4 / 15.8 حسب الصعوبة، متوسط 31.6 | Diffusion Policy average 10.5 |
| روبوت Franka Panda حقيقي، 5 مهام | 100 مسار لكل مهمة، 20 تجربة | متوسط 94.0 | OpenVLA 68.3, Diffusion Policy 35.3 |
| UR5 ثنائي الذراع، 3 مهام | مهام متعددة، 10 تجارب لكل مهمة | 76.7 / 36.7 / 30.0 | OpenVLA 0 / 0 / 0, Diffusion Policy 40.3 / 31.3 / 43.0 |
الصف ثنائي اليد له تفسير ممل يقدمه البحث نفسه: OpenVLA تم تدريبه مسبقًا على Open X-Embodiment، والذي يتكون بالكامل من بيانات أحادية الذراع، لذا فإن مساحة العمل ثنائية الذراع خارج التوزيع وتحرز صفرًا. يتفوق خط الأساس لسياسة الانتشار على TinyVLA-H في اثنتين من تلك المهام الثلاث. خلفية في مقالة Open X-Embodiment.
مستودع TinyVLA، اعتبارًا من أغسطس 2026
الورقة البحثية جيدة. الكود هو إصدار بحثي. المستودع هو github.com/liyaxuanliyaxuan/TinyVLA؛ يشير ملف README الخاص به إلى تاريخ إصدار الكود في 17 فبراير 2025 وآخر تحديث في 11 مارس 2025. هذا جيد لإعادة إنتاج ورقة بحثية، ولكنه يمثل مشكلة إذا كنت تريد مكتبة يتم صيانتها.
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 .يحدد ملف 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 متوافق مع جيل وحدة معالجة الرسوميات لديك. إذا توقف التشغيل بسبب نفاد ذاكرة الفيديو (VRAM) بدلاً من ذلك، فإن قائمة التحقق من نفاد الذاكرة أسرع من التخمين.
TinyVLA لا يقرأ أيضًا مجموعات بيانات LeRobot. تنسيقه هو HDF5 بنمط ACT: action، language_raw، ومجموعة ملاحظات (observations group) تحتوي على صور متعددة العرض، joint_positions، qpos و qvel. يتضمن المستودع ملف data_utils/rlds_to_h5py.py لإدخال RLDS، ويتم تسجيل كل مهمة يدويًا في aloha_scripts/constants.py مع dataset_dir و episode_len و camera_names الخاصة بها. إذا كانت الحلقات قادمة من lerobot أو عميل سطح المكتب، فأنت مسؤول عن التحويل.
# 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- --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 مليار الذي يمكنك تشغيله بعد ظهر اليوم
يقدم SmolVLA نفس الحجة داخل مكتبة يتم صيانتها. يحتوي على 450 مليون معلمة على عمود فقري SmolVLM2-500M-Video-Instruct، وتأتي الكفاءة من الإعدادات التي يمكنك قراءتها من configuration_smolvla.py بدلاً من الادعاء بأنه صغير.
| الإعداد في configuration_smolvla.py | الافتراضي | ما يوفره |
|---|---|---|
| num_vlm_layers | 16 | يتم تشغيل أول 16 طبقة فقط من نموذج اللغة |
| expert_width_multiplier | 0.75 | حجم الطبقة المخفية لخبراء الإجراءات هو 75 بالمائة من حجم VLM |
| self_attn_every_n_layers | 2 | الانتباه الذاتي متداخل مع الانتباه المتقاطع |
| chunk_size / n_action_steps | 50 / 50 | تمريرة واحدة تصدر 50 إجراءً ويتم تنفيذ جميع الـ 50 |
| num_steps | 10 | إزالة الضوضاء بمطابقة التدفق ثابتة عند 10 خطوات |
| tokenizer_max_length | 48 | يتم اقتطاع التعليمات إلى 48 رمزًا |
| freeze_vision_encoder / train_expert_only | True / True | الضبط الدقيق يحرك الخبير، وليس برج الرؤية |
| optimizer_lr, warmup, decay | 1e-4, 1000 steps, to 2.5e-6 over 30000 | ليست وصفة الورقة البحثية: تدريبها المسبق استخدم إحماء لمدة 100 خطوة على مدى 200000 خطوة |
استخدم التدريب المسبق 481 مجموعة بيانات مجتمعية من LeRobot، و22.9 ألف حلقة و10.6 مليون إطار على 4 وحدات معالجة رسومية (GPUs)، و200000 خطوة بدفعة عالمية قدرها 256؛ وتشير الورقة إلى أن المشروع بأكمله استغرق حوالي 30 ألف ساعة من وحدات معالجة الرسوميات. رقم واحد يجب الانتباه إليه: مدونة إطلاق Hugging Face تقول 487 مجموعة بيانات منسقة بينما يشير جدول الورقة إلى 481. نستخدم الرقم الوارد في الورقة ونشير إلى هذا الاختلاف.
| المعيار | SmolVLA 0.45 B | SmolVLA 2.25 B | Pi0 | ACT |
|---|---|---|---|---|
| متوسط LIBERO، مهام متعددة | 87.3 | 88.75 | 86.0 (3.3 B، مدرب مسبقًا على الروبوتات) | - |
| متوسط Meta-World، مهام متعددة | 57.3 | 68.24 | 47.9 (3.5 B، مدرب مسبقًا على الروبوتات) | - |
| 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 إجراءً لكل تمريرة أمامية وينفذ جميعها. عند 30 إطارًا في الثانية التي تستخدمها الورقة على الروبوتات الحقيقية، يغطي استنتاج واحد حوالي 1.7 ثانية من الحركة.
- يحسب الاستدلال غير المتزامن الجزء التالي بينما لا يزال الجزء الحالي قيد التنفيذ: 9.7 ثانية متوسط إنجاز المهمة مقابل 13.75 ثانية متزامن، أي أسرع بنحو 30 بالمائة، و 19 دورة التقاط ووضع في نافذة ثابتة مدتها 60 ثانية مقابل 9.
- كانت معدلات النجاح قابلة للمقارنة وليست أفضل، 78.3 متزامن مقابل 73.3 غير متزامن. عدم التزامن يشتري الإنتاجية، وليس الدقة.
- تخفي التجزئة زمن انتقال الحساب، وليس زمن انتقال الشبكة، وتجعل السياسة أقل تفاعلية لأنها ملتزمة بـ 50 إجراءً.
يمكن لـ AY-Robots توفير وحدة GPU سحابية تلقائيًا تخدم سياستك بينما يتحدث عميل الروبوت المحلي إلى نقطة النهاية هذه، وتحمل الوحدة مراقبًا للخمول (idle watchdog) بحيث تدمر نفسها بدلاً من الفوترة بصمت. ما لا تفعله هو إزالة رحلة الذهاب والإياب عبر الإنترنت العام. تتراوح حلقة التحكم عبر السياسات الخمس هنا من 20 إلى 485 مللي ثانية لكل خطوة إجراء قبل أي شبكة على الإطلاق، لذا فإن الاستدلال عن بعد ممكن لعمليات الالتقاط والوضع البطيئة، وليس للحركة التفاعلية السريعة.

الضبط الدقيق لـ SmolVLA على بطاقة استهلاكية واحدة
المسار اليدوي، على lerobot 0.6.1، الإصدار الحالي من PyPI اعتبارًا من 23 أغسطس 2026. كل ما يلي يأتي من وثائق Hugging Face lerobot SmolVLA، التي تم جلبها في نفس اليوم؛ النسخة الموجهة أكثر لطفًا.
- 1تثبيت lerobot مع إضافة smolvla
تبعيات SmolVLA هي إضافة اختيارية، وليست جزءًا من التثبيت الأساسي. التثبيت بدونها ثم التساؤل عن سبب عدم معرفة نوع السياسة هو نصف ساعة ضائعة شائعة.
bashgit clone https://github.com/huggingface/lerobot.git cd lerobot pip install -e ".[smolvla]" - 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ابدأ الضبط الدقيق
الأمر من دليل lerobot، بدون تعديل. تشير الوثائق إلى أن 20000 خطوة تستغرق حوالي 4 ساعات على A100 واحدة. على بطاقة 24 جيجابايت، توقع وقتًا أطول وقم بقياسه.
bashcd 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قلل حجم الدفعة حتى يناسب
batch_size=64 هو مثال موثق، وليس وعدًا بشأن بطاقتك. تنصح الوثائق بالبدء بحجم صغير وزيادته مع بقاء أوقات التحميل قصيرة.
bashlerobot-train --help - 5نشر نقطة التحقق على الذراع
نفس المكتبة، أمر واحد. تم التعليق على علامات التقطيع في الوقت الفعلي في الوثائق وهي التي يجب استخدامها على الأجهزة منخفضة الطاقة.
bashlerobot-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
أي مسار تسلكه، ستنتهي بنقطة تحقق بالإضافة إلى التكوين الذي أنتجها. احتفظ بمراجعة مجموعة البيانات، وعدد الخطوات، والبذرة بجانبها. lerobot يستخدم البذرة الافتراضية 1000؛ نقطة دخول الضبط الدقيق لـ GR00T لا تعرض أي بذرة على الإطلاق، لذا فإن تلك التشغيلات ليست قابلة للتكرار بت-بايت. التفاصيل في وثائق التدريب.
طريقتان لوضع VLA صغير على ذراع
أنت تملك الجهاز وأنماط الفشل. بالنسبة لـ SmolVLA، هذا معقول: إضافة pip واحدة، أمر تدريب واحد، أمر نشر واحد. أما بالنسبة لـ TinyVLA، فهو استنساخ بحثي مع دبابيس مجمدة، ومسار DeepSpeed معطل، وتحويل بيانات تكتبه بنفسك.
- احصل على بطاقة 24 جيجابايت، سجل 30 إلى 50 حلقة، تحقق من تدفقات الكاميرا إطارًا بإطار.
- pip install -e ".[smolvla]"، تدريب lerobot مقابل lerobot/smolvla_base، ثم خدمة نقطة التحقق على الجهاز المتصل به الذراع.
- بالنسبة لـ TinyVLA: بيئة conda منفصلة، تحويل البيانات إلى HDF5، تسجيل المهمة في constants.py، إصلاح مسار zero2.json، تقليص train.sh من ثماني وحدات معالجة رسومية إلى واحدة.
- لا توجد فواتير بالساعة بمجرد دفع ثمن البطاقة.
- الاستدلال يجلس بجانب المحركات المؤازرة، وهي الطريقة الوحيدة للحصول على حلقة تحكم سريعة.
- يمكنك تصحيح رمز السياسة، وTinyVLA متاح بهذه الطريقة فقط.
- بطاقة 4090 تستبعد كل سياسة بحجم ~3 مليار، لذا لا توجد مقارنة محلية مع GR00T N1.7 أو Pi0.5.
- إعداد البيئة هو العمل الحقيقي. دبابيس TinyVLA وحدها يمكن أن تكلف يومًا.
- لا يوجد قائمة انتظار، لا إعادة محاولة، لا تخزين لنقاط التحقق. إعادة التشغيل عند الخطوة 14000 تعني البدء من جديد.
SmolVLA هي إحدى السياسات الخمس هنا. تختار النموذج ومجموعة البيانات في نموذج، يقوم الواجهة الخلفية بتأجير وحدة معالجة رسومية حسب ذاكرة الوصول العشوائي المطلوبة، ويشغل المدرب ويكتب نقاط التحقق إلى تخزين الكائنات. خطوة بخطوة: SmolVLA على SO-100، أو المصفوفة الكاملة على صفحة التدريب.
| ما ترسله المنصة لـ SmolVLA | القيمة |
|---|---|
| حجم الدفعة | 2 |
| معدل التعلم | 1e-4 |
| الحد الأقصى للخطوات | 20000 |
| تراكم التدرج | 8, and it does not reach the trainer |
| مقابض إضافية في النموذج | seed, logFreq |
| فئة وحدة معالجة الرسوميات | RTX 4090 or any 24 GB card |
| تنسيق مجموعة البيانات | LeRobot v3.0 |
| الحد الأدنى للحلقات | 30 |
أولاً، حجم الدفعة الافتراضي هنا هو 2، وليس 64 كما في مثال وثائق lerobot، وإعداد تراكم التدرج يتم إرساله ولكنه لا يؤثر على SmolVLA، لذا فإن الدفعة الفعالة هي 2 بالفعل. ارفعه عمدًا بدلاً من افتراض أن الافتراضي يطابق الأصل. ثانيًا، TinyVLA غير قابل للتدريب هنا على الإطلاق.
يستغرق التشغيل على الفئة 24 جيجابايت من 2 إلى 5 ساعات بتكلفة 0.30 إلى 0.60 دولار أمريكي في الساعة، أي حوالي 1 إلى 3 دولارات أمريكية. على فئة A100، تستغرق سياسة بحجم ~3 مليار من 3 إلى 6 ساعات بتكلفة 1.20 إلى 2.00 دولار أمريكي في الساعة، أي حوالي 4 إلى 12 دولارًا أمريكيًا. انظر التسعير، ونفس العمليات من واجهة سطر الأوامر و خادم MCP.
عندما يكون النموذج الصغير هو الخيار الخاطئ
تتسم كلتا الورقتين البحثيتين بحذر أكبر هنا مما هو عليه الحال في الملخصات. تحليل فشل TinyVLA محدد: فشل المتغير 0.4 مليار ثلاث مرات بسبب سوء قراءة التعليمات، وهو ما يعزوه المؤلفون إلى محدودية فهم اللغة في نموذج VLM الأصغر، واختفى هذا النمط عند 1.3 مليار. يُظهر SmolVLA نفس المنحنى من الطرف الآخر: يسجل الإصدار 2.25 مليار من نفس البنية 88.75 على LIBERO و 68.24 على Meta-World مقابل 87.3 و 57.3 للنموذج 0.45 مليار.
- يناسب بطاقة 24 جيجابايت، مما يخفض تكلفة التجربة من عشرات الدولارات إلى بضعة دولارات.
- سريع بما يكفي للتشغيل بجانب الذراع، فلا توجد قفزة شبكة في حلقة التحكم.
- يتم ضبطه بدقة على البيانات التي يمكن لشخص واحد تسجيلها، عشرات الحلقات بدلاً من الآلاف.
- أوزان SmolVLA وقائمة البيانات والرمز عامة، لذا يمكن تصحيح أي نتيجة سيئة.
- ضعف في اتباع التعليمات: عدد أقل من معلمات اللغة، قدرة أقل على فصل التعبيرات المرجعية المتشابهة.
- تعميم مكاني وبصري أقل على الإعدادات التي لم تسجلها.
- أكثر حساسية لعيوب مجموعة البيانات، مع تدريب مسبق أقل للاعتماد عليه.
- لا يزال العمل متعدد المهام وذو الأفق الطويل يفضل النماذج الأكبر، بما في ذلك متغير SmolVLA الخاص 2.25 مليار.
المقارنة الجديرة بالتشغيل ليست TinyVLA مقابل SmolVLA. بل هي SmolVLA مقابل ACT في مهمتك الخاصة، وورقة SmolVLA هي الحجة لذلك. تم تدريب SmolVLA على مهمة واحدة بدون تدريب مسبق في الروبوتات، وحقق متوسط 40.0 عبر ثلاث مهام SO-100 حيث حقق ACT أحادي المهمة 48.3. ما يرفعه إلى 78.3 هو التدريب المسبق المجتمعي بالإضافة إلى التدريب متعدد المهام، وليس البنية وحدها. في مهمة ليغو SO-101، وكلاهما أحادي المهمة، يفوز SmolVLA: 90 مقابل 70 في التوزيع. ثم SmolVLA مقابل Pi0.5 إذا سمحت الميزانية.
هناك تدريب مسبق أقل لتغطية البيانات السيئة، لذا فإن منحنى خسارة نظيفًا على مجموعة بيانات معيبة يمنحك سياسة تعيد إنتاج العيب بثقة. وثائق lerobot صريحة بشأن الهيكل: 50 حلقة عبر 5 مواضع مكعبات، 10 لكل موضع، نجحت؛ 25 لم تنجح. إذا بدت الخسارة جيدة والذراع لا تفعل شيئًا مفيدًا، ابدأ من انخفاض الخسارة، السياسة لا تفعل شيئًا، السياسة تعمل في إعداد واحد فقط أو جمع بيانات تدريب VLA عالية الجودة قابلة للاستخدام فعليًا.
خمس سياسات، جدول مقارنة واحد
GR00T N1.7، GR00T N1.5، Pi0.5، SmolVLA و ACT مع أعداد المعلمات الحقيقية، زمن استجابة الاستدلال لكل خطوة عمل، فئة وحدة معالجة الرسومات التي يحتاجها كل منها، والحد الأدنى لعدد الحلقات قبل أن يفعل أي شيء مفيد.
قارن السياساتجدول قرارات يمكنك العمل بناءً عليه
| وضعك | ابدأ بـ | لماذا |
|---|---|---|
| مهمة واحدة، عروض توضيحية جيدة، بدون لغة | ACT | ~80 M, 20 ms, 24 GB card, no base model to download |
| عدد قليل من المهام ذات الصلة، تعليمات واحدة لكل منها | SmolVLA | 450 M, in lerobot, 30 episode minimum, 1 to 3 USD per run |
| إعادة إنتاج نتيجة TinyVLA على وجه التحديد | TinyVLA-B or TinyVLA-H | The repo is the only route: isolated env, converted data |
| مهام متعددة، تعليمات متنوعة، ميزانية A100 | GR00T 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 يورو في الأجزاء، مع دليل إعداد كامل.
ماذا يأتي بعد نماذج أقل من 1B
تقليل عدد المعلمات هو إحدى الطرق لجعل VLA رخيصًا وليس بالضرورة الطريقة الفائزة. OpenVLA-OFT (arXiv 2502.19645) يحافظ على البنية الأساسية ذات الـ 7 B معلمة ويغير فقط كيفية فك تشفير الإجراءات، مسجلًا زيادة 26 ضعفًا في إنتاجية توليد الإجراءات وارتفاع LIBERO من 76.5 إلى 97.1 بالمائة. BitVLA (arXiv 2506.07530) يجعل كل وزن في البنية الأساسية BitNet b1.58 2B4T ذات البت الواحد ثلاثيًا، مسجلًا ذاكرة أقل بمقدار 11.0x وزمن استجابة من طرف إلى طرف أقل بمقدار 4.4x مع مطابقة OpenVLA-OFT بدقة كاملة. X-VLA-0.9B (arXiv 2510.10274) يقع على خط الـ 1 B معلمة مع مطابقة التدفق.
الخيط المشترك: فك تشفير الإجراءات، وليس نموذج اللغة، هو مصدر زمن الاستجابة. اسأل كيف تصدر السياسة الإجراءات قبل أن تسأل عن عدد معلماتها. الـ الساحة تحتوي على 85 نموذجًا و 332 نتيجة، كل منها مرتبط بمصدره؛ وهناك نظرة عامة أوسع في مقدمتنا عن نماذج VLA.
هل يمكنني ضبط SmolVLA بدقة على RTX 4090؟▾
نعم. يبلغ حجم SmolVLA 450 مليون معلمة، وتشغله AY-Robots على فئة RTX 4090 / 24 GB. يستخدم مثال lerobot الأمر --batch_size=64، وهو مثال وليس ضمانًا لبطاقتك؛ تنصح الوثائق بالبدء بحجم صغير وزيادته مع بقاء أوقات التحميل قصيرة. توقع وقتًا أطول من الأربع ساعات تقريبًا التي تذكرها الوثائق لـ 20000 خطوة على A100.
هل TinyVLA متاح في lerobot أو على AY-Robots؟▾
لا لكليهما. يتواجد TinyVLA فقط في مستودع أبحاثه، وآخر تحديث كان في 11 مارس 2025، وتنسيقه هو HDF5 بنمط ACT بدلاً من LeRobot. تقوم AY-Robots بتدريب GR00T N1.7 و GR00T N1.5 و Pi0.5 و SmolVLA و ACT. إذا كنت تريد TinyVLA، فعليك بنائه بنفسك، وسيتعين عليك إصلاح مسار DeepSpeed config في scripts/train.sh أولاً.
هل نموذج بحجم 450 مليون معلمة قادر حقًا على المنافسة مع نموذج بحجم 3 مليار؟▾
وفقًا لمعايير المؤلفين الخاصة، نعم: 87.3 مقابل 86.0 على LIBERO مقارنة بـ Pi0 مدرب مسبقًا للروبوتات بحجم 3.3 مليار، و 78.3 مقابل 61.7 في ثلاث مهام SO-100 حقيقية حيث تشير نفس الورقة إلى Pi0 بحجم 3.5 مليار. يكمن القيد في نفس الورقة: في المهام الفردية بدون تدريب مسبق للروبوتات، ينخفض SmolVLA إلى 40.0، وهو أقل من 48.3 لـ ACT.
كم عدد الحلقات التي أحتاجها قبل أن يبدأ نموذج VLA صغير في العمل؟▾
تحدد AY-Robots الحد الأدنى لـ SmolVLA بـ 30 حلقة والحد الأدنى لـ ACT بـ 50. توصي وثائق lerobot بحوالي 50 حلقة وتشير إلى أن 25 حلقة لم تكن كافية لنفس المهمة. الهيكل مهم بقدر العدد: استخدمت مجموعة الورقة 5 مواضع مكعبات مع 10 حلقات لكل منها.
لماذا تختلف أرقام زمن الاستجابة المنشورة كثيرًا؟▾
إنها تقيس أشياء مختلفة. يشير TinyVLA إلى 14 مللي ثانية لكل تنبؤ بالإجراء على A6000؛ وتدرج AY-Robots SmolVLA عند 245 مللي ثانية و ACT عند 20 مللي ثانية لكل خطوة إجراء. تغطي بعض الأرقام تمريرة أمامية واحدة، ويقسم بعضها تمريرة عبر جزء من 50 إجراء، ولا يشمل أي منها تقريبًا التقاط الكاميرا أو الكتابة إلى المحركات المؤازرة.
هل الاستدلال السحابي يحل مشكلة وحدة معالجة الرسوميات؟▾
جزئيًا. تقوم AY-Robots بتوفير وحدة تلقائيًا تخدم السياسة بينما يتحدث العميل المحلي إلى نقطة النهاية هذه، مع مراقب خمول (idle watchdog) بحيث تدمر نفسها بدلاً من الفوترة بصمت. لا يمكنها إزالة رحلة الذهاب والإياب عبر الإنترنت العام، وحلقة التحكم تتراوح بالفعل من 20 إلى 485 مللي ثانية لكل خطوة إجراء. جيد لمهام الالتقاط والوضع البطيئة، وليس للحركة التفاعلية السريعة.
Sources
- TinyVLA: نحو نماذج رؤية-لغة-عمل سريعة وفعالة من حيث البيانات للتلاعب الروبوتي
- مستودع الكود الرسمي لـ TinyVLA (README, requirements.txt, scripts/train.sh)
- صفحة مشروع TinyVLA
- lesjie/Llava-Pythia-1.3B، أوزان العمود الفقري لـ TinyVLA-H
- SmolVLA: نموذج رؤية-لغة-عمل للروبوتات بأسعار معقولة وفعالة
- وثائق lerobot: الضبط الدقيق لـ SmolVLA
- lerobot: configuration_smolvla.py، الإعدادات الافتراضية لـ SmolVLA
- بطاقة نموذج lerobot/smolvla_base
- SmolVLA: نموذج رؤية-لغة-عمل فعال (مدونة Hugging Face)
- lerobot على PyPI (0.6.1، يتطلب Python 3.12 أو أحدث)
- OpenVLA: نموذج رؤية-لغة-عمل مفتوح المصدر
- الضبط الدقيق لنماذج الرؤية-اللغة-العمل: تحسين السرعة والنجاح (OpenVLA-OFT)
- BitVLA: نماذج رؤية-لغة-عمل 1-بت للتلاعب الروبوتي
- X-VLA: محول موجه بلطف كنموذج رؤية-لغة-عمل قابل للتطوير عبر التجسيد
- بطاقة نموذج rail-berkeley/octo-small-1.5 (27 مليون معلمة)
Sources
- TinyVLA: Towards Fast, Data-Efficient Vision-Language-Action Models for Robotic Manipulation
- TinyVLA official code repository (README, requirements.txt, scripts/train.sh)
- TinyVLA project page
- lesjie/Llava-Pythia-1.3B, the TinyVLA-H backbone weights
- SmolVLA: A Vision-Language-Action Model for Affordable and Efficient Robotics
- lerobot documentation: fine-tuning SmolVLA
- lerobot: configuration_smolvla.py, the SmolVLA defaults
- lerobot/smolvla_base model card
- SmolVLA: Efficient Vision-Language-Action Model (Hugging Face blog)
- lerobot on PyPI (0.6.1, requires Python 3.12 or newer)
- OpenVLA: An Open-Source Vision-Language-Action Model
- Fine-Tuning Vision-Language-Action Models: Optimizing Speed and Success (OpenVLA-OFT)
- BitVLA: 1-bit Vision-Language-Action Models for Robotics Manipulation
- X-VLA: Soft-Prompted Transformer as Scalable Cross-Embodiment Vision-Language-Action Model
- rail-berkeley/octo-small-1.5 model card (27 M parameters)
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started