صفحة نموذج SmolVLA على AY-Robots تُظهر عدد المعلمات، فئة وحدة معالجة الرسوميات (GPU)، زمن استجابة الاستدلال لكل خطوة إجراء، والحد الأدنى لعدد الحلقات
SmolVLALeRobotتدريب VLAالضبط الدقيقSO-100

كيفية تدريب SmolVLA على وحدة معالجة رسوميات (GPU) بسعة 24 جيجابايت (lerobot 0.6.1)

AY-Robots ResearchAugust 23, 202617 دقيقة قراءة

SmolVLA هو نموذج VLA بـ 450 مليون معلمة يمكن ضبطه بدقة على بطاقة واحدة بسعة 24 جيجابايت. أوامر lerobot 0.6.1 الحقيقية، الإعدادات الافتراضية الفعلية، المزالق التي قد تكلف يومًا كاملاً، وما هي تكلفة التشغيل.

SmolVLA في شاشة واحدة

  • 450 مليون معلمة، حوالي 100 مليون منها خبير عمل لمطابقة التدفق. يقوم lerobot بتدريب هذا الخبير فقط ويحافظ على VLM مجمدًا، وهذا هو السبب في أنه يناسب بطاقة واحدة.
  • يضع دليل الحوسبة الخاص بـ LeRobot مجموعة smolvla عند حوالي 10 إلى 16 جيجابايت من ذروة VRAM عند دفعة 8 مع AdamW. وبالتالي 24 جيجابايت.
  • نقطة الدخول هي lerobot-train. لا يزال منشور مدونة SmolVLA لشهر يونيو 2025 يطبع python lerobot/scripts/train.py، وهو مسار لم يعد موجودًا. كل ما يلي هو lerobot 0.6.1.
  • تم ضبط جدول جيب التمام مسبقًا للتضاؤل على مدار 30000 خطوة. يقوم lerobot 0.6.1 بإعادة تحجيم ذلك لأسفل لتشغيل أقصر ويسجله، ولكن لا يرفعه أبدًا: ينتهي التشغيل القياسي المكون من 100000 خطوة عند الحد الأدنى 2.5e-6 لـ 70000 خطوة.
  • ثلاثون حلقة هي الحد الأدنى لـ AY-Robots، على مستوى 24 جيجابايت بتكلفة تتراوح من 1 إلى 3 دولارات لكل تشغيل مقابل 4 إلى 12 دولارًا لنماذج 80 جيجابايت.

معظم الأشخاص الذين يريدون نموذج رؤية لغة عمل على ذراع حقيقية يتوقفون عند خط الأجهزة. GR00T N1.7 و Pi0.5 تبلغ حوالي ثلاثة مليارات معلمة لكل منها وتريد A100 80 جيجابايت أو H100. إذا كان ما تملكه هو جهاز كمبيوتر للألعاب مزود بـ RTX 4090، فهذه هي نهاية المطاف. SmolVLA هو الاستثناء: 450 مليون معلمة، داخل LeRobot، مصمم للضبط الدقيق على بطاقة مستهلك واحدة والخدمة من وحدة المعالجة المركزية.

المسار اليدوي أولاً: قم بتثبيت lerobot، اسحب lerobot/smolvla_base نقطة التحقق، قم بتشغيل الأمر الحقيقي، اقرأ التشغيل أثناء حدوثه. ثم مسار المنصة، وحيث لا يساعد.

ما هو SmolVLA، بالأرقام التي يمكنك التحقق منها

SmolVLA هو مطابقة التدفق سياسة مدمجة في نموذج لغوي بصري صغير. العمود الفقري هو SmolVLM2-500M-Video-Instruct؛ تحتفظ الورقة البحثية بأول 16 طبقة فقط من نموذجها اللغوي، وتحد كل إطار كاميرا بـ 64 رمزًا بصريًا باستخدام تبديل البكسل بدلاً من تجزئة الصورة، وتدمج الانتباه المتقاطع مع طبقة انتباه ذاتي كل كتلة ثانية. كانت تكلفة الاستدلال قيدًا تصميميًا، وليست فكرة لاحقة.

الخاصيةالقيمةالمصدر
إجمالي المعلماتحوالي 450 مليونورقة بحثية
خبير الإجراءاتحوالي 100 مليون، مطابقة التدفقورقة بحثية
العمود الفقري لنموذج اللغة البصري (VLM)HuggingFaceTB/SmolVLM2-500M-Video-Instructvlm_model_name
طبقات VLM المستخدمةأول 16 من النموذج اللغويnum_vlm_layers = 16
الرموز البصرية لكل إطار64، تبديل البكسل، بدون تجزئةورقة بحثية
التدريب المسبق481 مجموعة بيانات مجتمعية، 22.9 ألف حلقة، 10.6 مليون إطار؛ 200000 خطوة بحجم دفعة عالمي 256 على 4 وحدات معالجة رسوميةورقة بحثية

المعايير هي السبب وراء اهتمام الناس بنموذج بحجم 450 مليون. في LIBERO، يبلغ متوسطه 87.3 بالمائة مقابل 76.5 لـ OpenVLA بحجم 7 مليار و 86.0 لـ Pi0 المدرب مسبقًا للروبوتات بحجم 3.3 مليار؛ في Meta-World، 57.3 مقابل 47.9. على أجهزة SO-100 الحقيقية، يوفر التدريب متعدد المهام 75 بالمائة في مهام الالتقاط والوضع، و 90 في التكديس، و 70 في الفرز، بمتوسط 78.3، حيث ACT المدرب لكل مهمة بلغ متوسطه 48.3. توجد نفس الصفوف بجانب كل VLA منشور في مدخل ساحة SmolVLA و مقارنة ACT بـ SmolVLA.

النسخة الصادقة من ادعاء الحجم

SmolVLA ليس أفضل من نموذج بحجم 3 مليار في كل شيء. جدول SO-101 الخاص بالورقة البحثية هو الدليل: 90 بالمائة نجاح في التوزيع، 50 بالمائة خارجه، على منصة لم يتم تدريبه عليها مسبقًا أبدًا. ما يدعيه ويدعمه هو أنه مقابل Pi0، يتدرب أسرع بنحو 40 بالمائة على ذاكرة أقل بست مرات.

لماذا تعد بطاقة 24 جيجابايت هي الخيار الصحيح للتشغيل الأول

LeRobot يقدم دليلًا لتحديد حجم الحوسبة، وهو الصفحة الأكثر فائدة في المستودع لهذا الغرض. يقوم بتجميع السياسات حسب حجم العمود الفقري ويعطي مظروف VRAM واحدًا لكل مجموعة، تم قياسه بحجم دفعة 8 مع AdamW، وهو الإعداد الافتراضي لـ lerobot. تضيف حالة المُحسِّن وحدها من 30 إلى 100 بالمائة فوق تمريرة أمامية وخلفية مجردة، لذا فهذه ليست أرقامًا تعتمد على الأوزان فقط.

المجموعةالسياساتذروة VRAM (دفعة 8، AdamW)وحدات معالجة الرسوميات المبتدئة
BC خفيفact, vqbet, tdmpcحوالي 2 إلى 6 جيجابايتRTX 3060, L4
الانتشارdiffusion, multi_task_ditحوالي 8 إلى 14 جيجابايتRTX 4070+, L4
VLA صغيرsmolvlaحوالي 10 إلى 16 جيجابايتRTX 4080+, L4, A10G
VLA كبيرpi0, pi0_fast, pi05, xvla, wall_xحوالي 24 إلى 40 جيجابايتA100 40 GB+
متعدد الوسائطgroot, eo1حوالي 24 إلى 40 جيجابايتA100 40 GB+

عشرة إلى ستة عشر جيجابايت بحجم دفعة 8 هو الحجة: بطاقة 24 جيجابايت تناسب ذلك بالإضافة إلى محمل البيانات. AY-Robots يضع SmolVLA على RTX 4090 أو أي بطاقة 24 جيجابايت، بحد أدنى 30 حلقات، LeRobot v3.0 بيانات، 245 مللي ثانية لكل خطوة عمل. مستأجرة، أي من 2 إلى 5 ساعات بسعر 0.30 إلى 0.60 دولار أمريكي في الساعة، حوالي 1 إلى 3 دولارات أمريكية لكل ضبط دقيق تشغيل، مقابل 4 إلى 12 دولارًا أمريكيًا على مستوى 80 جيجابايت الذي يحتاجه GR00T و Pi0.5 (التسعير). تشغيل SmolVLA فاشل هو بمثابة قهوة؛ تشغيل GR00T فاشل هو بمثابة غداء.

جدول تكلفة AY-Robots: بطاقة لكل سياسة، وقت التشغيل، سعر كل تشغيل، الحلقات المطلوبة
يجلس SmolVLA و ACT في صف 24 جيجابايت، بينما تجلس النماذج الثلاثة بحجم 3 B في صف 80 جيجابايت.
البدء بـ SmolVLA بدلاً من نموذج 3 B
ما تحصل عليه
  • يناسب الأجهزة التي قد تمتلكها بالفعل: حوالي 10 إلى 16 جيجابايت عند batch 8.
  • التشغيل الضائع يكلف ساعات ودولارات قليلة، لذا يمكنك تحمل الخطأ بشأن مجموعة البيانات.
  • مدرب مسبقًا على مجموعات بيانات مجتمعية مشتركة تحت وسم lerobot، مع نتائج SO-100 و SO-101 حقيقية.
  • يعيش في lerobot نفسه: لا يوجد مستودع بائع، و smolvla_base غير مقيد.
ما تتنازل عنه
  • 450 مليون لا يزال 450 مليون: ينخفض نجاح التوزيع الخارجي من 90 إلى 50 بالمائة في جدول SO-101 للورقة البحثية.
  • يتطلب بيانات LeRobot v3.0؛ يجب تحويل تسجيل v2.1 (dataset rejected v3).
  • 245 مللي ثانية لكل خطوة عمل هو متحكم كفء للالتقاط والوضع، وليس متحكمًا تفاعليًا.
  • مثال الوثائق يشغل batch 64 على A100؛ على 24 جيجابايت، فإنك تستبدل الدُفعة بالوقت الفعلي.

الخطوة 0: مجموعة البيانات هي التي تحدد التشغيل، وليس العلامات

لا شيء مما يلي يهم إذا كان التسجيل سيئًا. صفحة LeRobot SmolVLA صريحة: كانت مجموعة البيانات المرجعية 50 حلقة عبر 5 مواضع مكعبات، 10 لكل موضع، ونفس المهمة في 25 حلقة أدت بشكل سيء. التكرار لكل اختلاف يعمم، عدد الحلقات الخام لا يعمم. لم تسجل واحدة من قبل؟ ابدأ من تسجيل مجموعة بياناتك الأولى، باستخدام عميل سطح المكتب، والذي يكتب تنسيق LeRobot من جلسة التحكم عن بعد، أو استعر واحدة من دليل مجموعات البيانات.

  • ما لا يقل عن 30 حلقة على AY-Robots، وحوالي 50 لوصفة LeRobot المرجعية.
  • كل اختلاف تتوقعه عند النشر، مكررًا عدة مرات.
  • سلسلة مهام واحدة، مكتوبة بشكل متطابق وقت التسجيل والنشر. يتم تهيئة النموذج بناءً على هذا النص.
  • كاميرات ثابتة. الكاميرا التي تتحرك بين التسجيل والنشر هي السبب الأكثر شيوعًا وراء منح منحنى خسارة نظيف ذراعًا بلا حركة.
  • تنوع محجوز لم تتدرب عليه أبدًا، بحيث يكون لديك شيء صادق للاختبار مقابله.
فخ مجموعة البيانات الذي يكلف يومًا

SmolVLA و Pi0.5 و ACT تتطلب LeRobot v3.0. بينما GR00T N1.7 و N1.5 تتطلب v2.0 أو v2.1 ويتعطل محملها على v3.0. سجل مرة واحدة، وخطط لمقارنة النماذج لاحقًا، وستقوم بالتحويل بطريقة أو بأخرى: تم رفض مجموعة البيانات v3.

bash
# v2.1 -> v3.0: aggregates per-episode files into shards and writes the episode offsets
python -m lerobot.scripts.convert_dataset_v21_to_v30 --repo-id=${HF_USER}/so100_pick_place
يتم شحن المحول داخل lerobot، لذلك لا يوجد شيء إضافي لتثبيته. لا يوجد محول في الاتجاه الآخر في الحزمة.

المزيد حول هذا في كيفية جمع بيانات تدريب VLA عالية الجودة لمعالجة الروبوتات. النسخة المختصرة: 30 إلى 50 حلقة نظيفة لمهمة واحدة مع تنوع متعمد تتفوق على 200 حلقة غير دقيقة لثلاث مهام، بهامش لا يمكن لأي معلمة فائقة أن تسده.

تثبيت lerobot 0.6.1

bash
# LeRobot needs Python 3.12 or newer as of 0.6.x
conda create -y -n lerobot python=3.12
conda activate lerobot

# TorchCodec decodes the dataset videos and wants ffmpeg
conda install ffmpeg -c conda-forge

# Base package is deliberately thin; extras pull the rest
pip install 'lerobot[smolvla,training,core_scripts]'

# Sanity check: prints the lerobot version, the GPU torch sees, and the console scripts you got
lerobot-info
مسار PyPI. لتصحيح المدرب (trainer)، استنسخ المستودع (repo) واستخدم pip install -e ".[smolvla,training]" بدلاً من ذلك.

تثبيت lerobot الأساسي نحيف ويحجب التبعيات الثقيلة خلف الإضافات (extras): smolvla يضيف transformers و num2words و accelerate، training مكدس البيانات (dataset stack) و wandb، core_scripts تبعيات الأجهزة والتصور (hardware and visualisation deps). على Linux، يحدد مسار التثبيت أيضًا عجلة CUDA الخاصة بك: الإعداد الافتراضي لـ PyPI هو عجلة cu130 بحد أدنى للمشغل (driver floor) يبلغ 580.65، لذا على مشغل أقدم، قم بتثبيت torch من فهرس cu128 أولاً، ثم lerobot.

policy.path و policy.type ليسا نفس الـ flag

--policy.path=lerobot/smolvla_base يقوم بتحميل نقطة التحقق (checkpoint) المدربة مسبقًا بحجم 450 M ويضبطها بدقة. --policy.type=smolvla يبني SmolVLA جديدًا، والإعداد الافتراضي load_vlm_weights = False يعني أنه لا يسحب أوزان العمود الفقري (backbone weights) لـ SmolVLM2 إلا إذا طلبت ذلك. إذا أخطأت، فإن التشغيل يتدرب بسعادة، ويكلف نفس الشيء، ولا يتعلم شيئًا قابلاً للنقل.

تشغيل التدريب، أمرًا بأمر

  1. 1
    المصادقة ضد Hub

    نقطة التحقق الأساسية تأتي من Hub، ومن المحتمل أن تكون مجموعة بياناتك كذلك.

    bash
    hf auth login
  2. 2
    اقرأ الخيارات مرة واحدة

    كل حقل في إعدادات المسار والسياسة هو علامة (flag). قم بإلقاء نظرة سريعة عليه قبل التعمق في المصدر.

    bash
    lerobot-train --help
  3. 3
    ابدأ الضبط الدقيق

    مثال الوثائق يشغل دفعة بحجم 64 على A100 واحد؛ مرجع دليل الحوسبة الخاص بـ A100 40 جيجابايت هو دفعة بحجم 16، و8 هو المكافئ لـ 24 جيجابايت. لا توجد علامة جدولة هنا عن قصد، انظر أدناه.

    bash
    lerobot-train \
      --policy.path=lerobot/smolvla_base \
      --dataset.repo_id=${HF_USER}/so100_pick_place \
      --batch_size=8 \
      --steps=20000 \
      --save_freq=2000 \
      --log_freq=200 \
      --seed=1000 \
      --output_dir=outputs/train/smolvla_pick_place \
      --job_name=smolvla_pick_place \
      --policy.device=cuda \
      --wandb.enable=true
  4. 4
    اقرأ سطر السجل، وليس فقط الخسارة

    كل --log_freq خطوة، يطبع lerobot قيم loss, grdn, lr, updt_s, data_s, smp/s، وعلى CUDA، mem_gb. تشير mem_gb إلى ما إذا كانت الدفعة مناسبة، وlr إلى ما إذا كان الجدول يتناقص، واقتراب data_s من updt_s يعني أن محمل البيانات هو عنق الزجاجة، وليس وحدة معالجة الرسوميات (GPU).

    bash
    # if data_s creeps toward updt_s
    lerobot-train ... --num_workers=8
  5. 5
    اجمع نقاط التحقق التي يمكنك مقارنتها

    القيمة الافتراضية لـ save_freq هي 20000، لذا فإن تشغيل 20000 خطوة يترك نقطة تحقق واحدة ولا شيء لمقارنتها بها. اضبطها على 2000. يتطلب الدفع إلى Hub استخدام --policy.repo_id.

    bash
    --save_freq=2000 \
    --policy.repo_id=${HF_USER}/smolvla_pick_place \
    --save_checkpoint_to_hub=true
  6. 6
    استأنف إذا تعطل الجهاز

    وجه --config_path إلى train_config.json بجانب نقطة التحقق. يرفض lerobot البدء في output_dir موجود ما لم تكن تستأنف، لذلك لا يمكنك الكتابة فوق تشغيل عن طريق الخطأ.

    bash
    lerobot-train \
      --config_path=<path to the saved train_config.json> \
      --resume=true

العلامات التي تغير النتيجة بالفعل

العلامةماذا تفعلعلى 24 جيجابايت
--batch_sizeعينات لكل خطوة، خطي تقريبًا في VRAM4 to 8
--stepsإجمالي خطوات المحسّن20000 تمريرة أولى
--policy.scheduler_decay_stepsطول اضمحلال جيب التمام، مضبوط مسبقًا على 30000يؤثر فقط فوق 30000
--policy.use_ampدقة مختلطة؛ SmolVLA لا يحتوي على حقل dtypetrue عندما تكون الذاكرة محدودة
--num_workersعمليات محمل البيانات، الافتراضي 4زد حتى يتوقف data_s عن الارتفاع
--dataset.eval_splitجزء من الحلقات المحتجزة لكل مهمة0.1, with --eval_steps
--policy.freeze_vision_encoderيحافظ على برج الرؤية مجمدًاtrue on 24 GB
--policy.train_expert_onlyفقط الخبير الذي يبلغ حجمه حوالي 100 مليون يحصل على التدرجاتtrue أولاً
الجدول الزمني: ما يتعامل معه الإصدار 0.6.1 وما لا يتعامل معه

يضبط SmolVLA جدولًا زمنيًا جيبيًا (cosine schedule): scheduler_warmup_steps = 1000، scheduler_decay_steps = 30000، scheduler_decay_lr = 2.5e-6. تشير النصائح القديمة إلى أن تشغيلًا من 20000 خطوة يتوقف في منتصف التضاؤل. في الإصدار 0.6.1، لا يحدث ذلك: يتم تمرير --steps إلى CosineDecayWithWarmupSchedulerConfig.build()، وأقل من num_decay_steps، يقوم بإعادة تحجيم كليهما، من 1000 إلى 666 للتسخين ومن 30000 إلى 20000 للتضاؤل، مع طباعة Auto-scaling LR scheduler أثناء ذلك. لا يقوم بإعادة التحجيم للأعلى أبدًا: يتم تثبيت التضاؤل باستخدام min(current_step, decay_steps)، لذا فإن --steps=100000 الافتراضي يبقى عند الحد الأدنى من الخطوة 30000 حتى النهاية، أي 70 بالمائة من التشغيل. هذا الجانب الطويل فقط لا يزال بحاجة إلى --policy.scheduler_decay_steps. عمود lr هو المكان الذي تتحقق منه.

الإعدادات الافتراضية التي ترثها إذا لم تقم بأي تغيير

إعداد في lerobot يحمل إعدادات المحسّن (optimizer) والجدول الزمني (scheduler) المسبقة الخاصة به، وما لم تقم بتعيين use_policy_training_preset=false فإن تلك الإعدادات المسبقة هي التي تسود. نصف الأسئلة التي يطرحها الناس حول تدريب SmolVLA يجيب عليها إعداد افتراضي لم يكونوا يعلمون بوجوده.

الإعدادالافتراضي في lerobot 0.6.1مُعرّف في
حجم الكتلة / عدد خطوات الإجراء50 / 50SmolVLAConfig
عدد الخطوات (إزالة الضوضاء بمطابقة التدفق)10SmolVLAConfig
معدل تعلم المحسّن1e-4SmolVLAConfig
خطوات تسخين الجدول الزمني1000SmolVLAConfig
خطوات تضاؤل الجدول الزمني30000SmolVLAConfig
معدل تعلم تضاؤل الجدول الزمني2.5e-6SmolVLAConfig
تجميد مُشفّر الرؤيةtrueSmolVLAConfig
تدريب الخبير فقطtrueSmolVLAConfig
حجم الدفعة / الخطوات8 / 100000TrainPipelineConfig
البذرة / تكرار الحفظ / عدد العمال1000 / 20000 / 4TrainPipelineConfig

السطران اللذان يفاجئان الناس هما freeze_vision_encoder و train_expert_only، وكلاهما صحيح. بشكل افتراضي، تقوم بتدريب ما يقرب من 100 مليون معلمة، وليس 450 مليونًا، وهذا هو السبب في أنها تتناسب مع 24 جيجابايت. تشغيل LeRobot المرجعي الخاص على مجموعة H100 بأربع وحدات معالجة رسومية يقلب كلاهما إلى خطأ؛ على بطاقة واحدة بسعة 24 جيجابايت، يتحول التشغيل الناجح إلى .

مفتاح الذاكرة غير الموجود

نصيحة الدليل عندما تكون مقيدًا بالذاكرة هي تقليل حجم الدفعة واستخدام تراكم التدرج لاستعادة الدفعة الفعالة. لا يوجد تراكم تدرج في lerobot 0.6.1: TrainPipelineConfig لا يحتوي على مثل هذا الحقل ولا تظهر السلسلة في أي مكان في الحزمة الصادرة. يعرض نموذج AY-Robots قيمة تراكم تدرج 8 لـ SmolVLA ولا يطبقها أيضًا. مفاتيح التحكم لديك على 24 جيجابايت هي --batch_size، والإعدادات الافتراضية للتجميد، و--policy.use_amp.

كم يستغرق التشغيل، وكم عدد الخطوات الكافية

ينشر LeRobot نقاط ارتكاز زمنية لخمسة عصور على مجموعة بيانات تتكون من حوالي 50 حلقة، حوالي 45000 إطار بمعدل 30 إطارًا في الثانية. أرقام تقريبية، كما تقول الوثائق، لكنها تمثل الفرق بين توقع ساعة ويوم.

الإعدادالسياسةالدفعةالوقت الفعلي
وحدة L4 / A10G واحدة (24 جيجابايت)smolvla4حوالي 3 إلى 6 ساعات
وحدة A100 واحدة (40 جيجابايت)smolvla16حوالي 1 إلى 2 ساعة
4 وحدات H100 (80 جيجابايت) مع تسريعsmolvla32حوالي 1 إلى 2 ساعة
وحدة RTX 4090 / RTX 3090 واحدة (24 جيجابايت)act8حوالي 30 إلى 60 دقيقة
قم بحساب عدد الدورات قبل اختيار --steps

القاعدة هي 5 إلى 10 دورات تدريبية (epochs) على مجموعة البيانات، وليس عدد خطوات ثابت: steps_per_epoch = ceil(total_frames / (num_gpus x batch_size)). في مجموعة البيانات المرجعية التي تشير إليها الوثائق، lerobot/svla_so100_pickplace، تشير البيانات الوصفية إلى 50 حلقة و19631 إطارًا: دفعة بحجم 8 تعطي حوالي 2454 خطوة لكل دورة، لذا فإن 20000 خطوة تعادل تقريبًا 8 دورات. إذا قمت بتنصيف حجم الدفعة، فإن نفس الميزانية ستوفر نصف عدد الدورات، لذا أعد هذا الحساب كلما غيرت --batch_size.

تشغيل السياسة المضبوطة بدقة على الذراع

bash
lerobot-rollout \
  --strategy.type=base \
  --robot.type=so100_follower \
  --robot.port=/dev/ttyACM0 \
  --robot.id=my_follower_arm \
  --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}}" \
  --task="Grasp the cube and put it in the box." \
  --policy.path=${HF_USER}/smolvla_pick_place
يجب أن تتطابق سلسلة المهمة مع تلك التي سجلت بها. النموذج مشروط بهذا النص، لذا فإن إعادة الصياغة تعتبر تعليمات مختلفة.

من السهل إساءة فهم 245 مللي ثانية لكل خطوة إجراء: تُصدر السياسة chunk_size = 50 إجراءً لكل تمريرة أمامية وتنفذ n_action_steps = 50 منها، لذا فإن عدد مرات دفع هذه التكلفة تحدده هذه المقابض، وليس عدد مرات تلقي المحركات المؤازرة للأوامر. هذا ما توفره تجزئة الإجراءات، ولماذا يمكن لنموذج 245 مللي ثانية أن يدير ذراعًا بتردد 30 هرتز. ما يتبقى هو زمن انتقال الاستدلال في نهاية الكتلة.

القياس (SmolVLA، SO-100 حقيقي)متزامنغير متزامن
وقت الإنجاز، الالتقاط والوضع، 10 محاولات13.75 s9.70 s
دورات الالتقاط والوضع في نافذة زمنية ثابتة919
معدل النجاح المتوسط عبر المهام الثلاث78.3 %73.3 %

هذا الصف الثالث هو ما تتجاهله معظم الكتابات. الاستدلال غير المتزامن أسرع بنحو 30 بالمائة ويضاعف الإنتاجية تقريبًا في نافذة ثابتة، وتصف الورقة معدلات النجاح بأنها قابلة للمقارنة، وهو ما ينطبق عليها في المتوسط. تحت ذلك، انخفض الفرز من 70 إلى 50 بالمائة بينما زاد الالتقاط والوضع بنسبة 5. يحمل lerobot 0.6.1 الرافعة الأخرى في نفس الملف الثنائي: --inference.type=rtc يحول التنفيذ إلى تجزئة في الوقت الفعلي، وهو ما يوصي به قسم الاستخدام الخاص بالبرنامج النصي لشبكات VLA البطيئة، Pi0، Pi0.5 و SmolVLA.

يجب أن يكون الاستدلال بجانب المحركات المؤازرة

تتراوح حلقة التحكم من 20 إلى 485 مللي ثانية لكل خطوة إجراء حسب النموذج، وتحول رحلات الذهاب والإياب عبر الإنترنت العام السياسة الفعالة إلى سياسة مترددة. الاستدلال عن بعد ممكن لمهام الالتقاط والوضع البطيئة، وليس للحركة التفاعلية السريعة: إذا كانت المهمة تتطلب تصحيحات سريعة، فيجب أن تكون وحدة معالجة الرسوميات (GPU) على نفس الشبكة المحلية (LAN) مثل الذراع.

7.4 فولت، وليس 12 فولت

خارج عن موضوع تشغيل التدريب، ولكنه ينهي مشاريع SO-100 أكثر من أي معلم فائق. تعمل محركات Feetech STS3215 المؤازرة في SO-100 و SO-101 بجهد 7.4 فولت؛ 12 فولت يدمرها. يمزج LeKiwi ذراعًا بجهد 7.4 فولت مع قاعدة بجهد 12 فولت، وهذه هي الطريقة التي يجد بها مقبس الطاقة الخاطئ المنفذ الخاطئ.

مساران لنفس نقطة التفتيش

أنت تملك الجهاز والبيئة وتصحيح الأخطاء. الاعتماد السحابي الوحيد هو تنزيل نقطة التفتيش الأساسية من Hub. هذا هو المسار الصحيح إذا كنت ترغب في تعديل السياسة، أو إذا كانت البيانات لا يمكن أن تغادر شبكتك، أو إذا كانت البطاقة غير مستخدمة.

  • أنت تتحكم في عجلة CUDA، وبرنامج التشغيل، وبناء ffmpeg، ومحمل البيانات.
  • يمكنك تصحيح configuration_smolvla.py وإعادة التدريب في نفس اليوم.
  • أنت تدفع مقابل الكهرباء والوقت، وليس لكل تشغيل، وتقوم بتصحيح أخطاء TorchCodec بنفسك.
bash
pip install 'lerobot[smolvla,training,core_scripts]'
hf auth login

lerobot-train \
  --policy.path=lerobot/smolvla_base \
  --dataset.repo_id=${HF_USER}/so100_pick_place \
  --batch_size=8 --steps=20000 \
  --save_freq=2000 --seed=1000 \
  --output_dir=outputs/train/smolvla_pick_place \
  --job_name=smolvla_pick_place \
  --policy.device=cuda --wandb.enable=true
المسار اليدوي الكامل في كتلة واحدة، lerobot 0.6.1.

متى يكون SmolVLA الخيار الخاطئ

إن الاختبار لما إذا كان SmolVLA هو التشغيل الأول الصحيح ليس ما إذا كان قد نجح، بل ما إذا كان الفشل قد أخبرك بشيء. إذا وصلت إلى 60 أو 70 بالمائة، فإن نموذجًا أكبر يعد استثمارًا معقولًا تاليًا: البيانات تحمل إشارة. إذا وصلت إلى 10 بالمائة، فمن المرجح أن يصل نموذج 3 B أيضًا إلى 10 بالمائة، وهو ما تعلمته للتو بثلاثة دولارات بدلاً من اثني عشر.

مصفوفة تدريب AY-Robots: خمس سياسات كصفوف، وأربعة أذرع روبوت كأعمدة
كل خلية هي دليل بحد ذاتها. يمتلك SmolVLA واحدة لكل ذراع من الأذرع الأربعة.

يستحق القراءة قبل إنفاق المزيد: Pi0.5 مقابل SmolVLA لسعة أكبر بنفس الفكرة، وGR00T N1.7 مقابل SmolVLA لمسار NVIDIA، وكلاهما من فئة 80 GB بتكلفة تتراوح من 4 إلى 12 USD لكل تشغيل. أما الطريقة الأخرى، ACT هي الأساس الأرخص: 80 M معلمة، 20 ms لكل خطوة إجراء، بدون تكييف لغوي. جميع الخمسة موجودة على صفحة السياسات؛ الساحة تحتوي على 85 نموذجًا و 332 نتيجة معيارية.

مقارنة سياسات AY-Robots: المعلمات، فئة وحدة معالجة الرسومات، زمن الاستجابة، الحد الأدنى للحلقات
الأرقام الأربعة التي تحدد التشغيل.

قائمة التحقق قبل توسيع أي شيء

  1. هل وصل lr إلى حده الأدنى 2.5e-6؟ أقل من 30000 خطوة، يقوم lerobot بإعادة ضبط التضاؤل ويذكر ذلك عند بدء التشغيل؛ فوق ذلك، اضبط --policy.scheduler_decay_steps بنفسك.
  2. أكثر من نقطة حفظ واحدة، وحلقات محجوزة باستخدام --dataset.eval_split لكي يكون لخسارة التقييم معنى.
  3. هل تتحرك السياسة على الإطلاق؟ انخفاض الخسارة مع ذراع ثابت له أسباب محددة: الخسارة تنخفض، والسياسة لا تفعل شيئًا.
  4. هل تصمد أمام تغيير المشهد؟ إذا لم يكن كذلك: السياسة تعمل فقط في إعداد واحد.
  5. هل قمت بتدوين البذرة (seed)؟ lerobot يستخدم القيمة الافتراضية 1000، لذا تبقى عمليتان لم يتم المساس بهما قابلتين للمقارنة.
  6. بعد ذلك فقط: المزيد من الحلقات، المزيد من التنوع، أو نموذج أكبر. بهذا الترتيب.

لفهم سبب وجود هذه النماذج وما تفعله بمدخلات اللغة، هو الخلفية؛ يشرح التجميع من خلال إلى أول تشغيل. لنقطة الحفظ النهائية، ؛ إذا لم تظهر الذراع أبدًا، .

درب SmolVLA على ذراعك الخاصة

اختر النموذج والذراع وسيقدم لك الدليل الإعدادات الافتراضية الدقيقة، وتنسيق مجموعة البيانات، وتكلفة التشغيل. يعمل SmolVLA على الطبقة 24 جيجابايت بتكلفة تتراوح من 1 إلى 3 دولارات أمريكية لكل تشغيل.

افتح أدلة التدريب
هل يمكنني حقًا ضبط SmolVLA بدقة على RTX 4090؟

نعم. يضع دليل الحوسبة الخاص بـ LeRobot نموذج SmolVLA عند حوالي 10 إلى 16 جيجابايت من ذروة VRAM عند دفعة 8 مع AdamW ويسرد بطاقات المستهلك بسعة 24 جيجابايت على أنها مريحة لذلك. يتم إقران الدفعة 64 في مثال المستندات ببطاقة A100 واحدة. تتناسب الذاكرة خطيًا تقريبًا مع الدفعة، لذا استخدم 4 أو 8 وراقب mem_gb.

كم عدد الحلقات التي أحتاجها فعليًا؟

تحدد AY-Robots الحد الأدنى بـ 30. توصي مستندات LeRobot بحوالي 50 حلقة وتفيد بأن 25 حلقة من نفس المهمة أدت أداءً سيئًا. الهيكل يتفوق على العدد: كانت المجموعة المرجعية عبارة عن 5 مواضع مكعبات مع 10 حلقات لكل منها، وهذا التكرار هو ما يعمم.

تقول المستندات أن حجم الدفعة 64، وترسل المنصة دفعة 2. أيهما صحيح؟

كلاهما، لأجهزة مختلفة. يستخدم مثال المستندات دفعة 64 ويذكر حوالي 4 ساعات لـ 20000 خطوة على A100 واحدة؛ مرجع دليل الحوسبة لـ A100 40 جيجابايت هو دفعة 16. الدفعة 2 هي ما ترسله AY-Robots على مستوى 24 جيجابايت. محليًا، 4 إلى 8 هو المتوسط، وتتغير حسابات الحقبة معه.

SmolVLA أم ACT لتشغيل أول مرة على SO-100؟

ACT إذا كانت المهمة حركة متكررة واحدة وتريد أسرع حلقة: 20 مللي ثانية لكل خطوة عمل، 80 مليون معلمة، بدون تكييف لغوي. SmolVLA إذا كنت تريد تكييفًا لغويًا، وسلاسل مهام متعددة في نقطة تحقق واحدة، وقاعدة مدربة مسبقًا. كلاهما يعمل على مستوى 24 جيجابايت، لذا فإن الاختيار هو المهمة، وليس الميزانية.

هل يجب علي تعيين --policy.scheduler_decay_steps؟

فقط عندما يكون --steps أعلى من 30000. يضبط SmolVLA التضاؤل الجيبي مسبقًا عند 30000 خطوة، ويقوم lerobot 0.6.1 بإعادة تحجيمه تلقائيًا لتشغيل أقصر، ويسجل "Auto-scaling LR scheduler" عند القيام بذلك. لا يقوم أبدًا بالتحجيم لأعلى، لذا فإن --steps=100000 الافتراضي يترك آخر 70000 خطوة عند الحد الأدنى 2.5e-6.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started