LeRobot documentation
Long-WAM
Long-WAM
الورقة البحثية · المشروع والعروض التوضيحية · الكود
Long-WAM هو نموذج عالم-إجراء طويل السياق: فهو يستخدم تعليمات لغوية، وحالة الروبوت، والتاريخ البصري للتنبؤ بالديناميكيات المستقبلية وتوليد الإجراءات.
نظرة عامة على النموذج
- تعلّم استخدام السجل. يتعلّم تدريب الفيديو المسبق التوليد التلقائي LongLive2.0-Robot الاعتمادات من السجل إلى المستقبل قبل التكيف مع أفعال الروبوت.
- تنبّأ ثمّ اعمل. يشترط IDM توليد الإجراء على التاريخ المرصود واللاتنتات المستقبلية المتنبّأ بها، دون فكّ ترميز صور RGB مستقبلية.
- توسيع السياق الزمني. تلتقط نوافذ الملاحظة الأطول الحركة وتقدّم المهام؛ حيث أن طول السجل منفصل عن أفق اتخاذ الإجراء.
يدعم LeRobot كلًا من IDM والتخفيف المشترك للضوضاء في الفيديو والإجراء (COD)، مع تحميل نقاط التفتيش الأصلية، والتدريب الدقيق، والاستدلال المتزامن على مجموعات الإجراءات. تأتي هياكل Wan من Diffusers ومشفّر النص UMT5 من Transformers.
النتائج
نتائج lerobot-eval المُبلَّغ عنها لنقاط التفتيش IDM وCOD الأصلية من LeRobot المنشورة:
| Suite | معدل نجاح IDM | معدل نجاح COD | الحلقات لكل نموذج |
|---|---|---|---|
| libero_spatial | 99.4% | 98.6% | 500 |
| libero_object | 99.8% | 99.6% | 500 |
| libero_goal | 97.8% | 98.2% | 500 |
| libero_10 | 99.0% | 97.4% | 500 |
| المتوسط | 99.00% | 98.45% | 2000 |
راجع التقييم لأوامر أمثلة وحدود الحلقات. تم اختبار الأوامر على NVIDIA GB200 باستخدام BF16 والاستدلال المتزامن.
التثبيت
من نسخة مصدر LeRobot:
pip install -e ".[longwam]"نقاط التفتيش
تشمل نقاط التفتيش الأصلية لـ LeRobot أوزان النموذج الكاملة ومعالجات ما قبل/ما بعد المعالجة المحفوظة.
يتم تحميل مُجزّئ الرموز من google/umt5-xxl.
| الوضع | الاستدلال | نقطة التفتيش |
|---|---|---|
| IDM | تخيّل فيديو مستقبليًا، ثمّ أزل الضوضاء من الإجراءات | LIBERO IDM |
| COD | إزالة الضوضاء من الفيديو والإجراءات بشكل مشترك | LIBERO COD |
يستخدم كلاهما سجل P48 (2.4 ثانية عند 20 هرتز)، وعرضين كاميريين بحجم 224×224، وإجراءات بأبعاد 7، وحالة روبوت بأبعاد 8. استخدم نقطة التفتيش المطابقة لوضع إزالة الضوضاء المطلوب؛ فلا يمكن تحميل حزم model.pt الأصلية الخاصة بـ Long-WAM مباشرة.
متطلبات البيانات
استخدم مجموعة بيانات LeRobot مع كاميرات RGB، وobservation.state، وaction، وتعليمات المهمة. مفاتيح كاميرات LIBERO المنشورة هي observation.images.image وobservation.images.image2، بهذا الترتيب. قدّم تينسورات RGB في [0, 1]؛
فيعيد المعالج تغيير حجم كل عرض ويقصّه من المنتصف، بينما يدمج السياسة العروض أفقيًا. حافظ على تطابق ترتيب الكاميرات واتفاقيات الإجراء/الحالة مع نقطة التفتيش.
الاستدلال
from lerobot.policies import make_pre_post_processors
from lerobot.policies.longwam.modeling_longwam import LongWAMPolicy
checkpoint = "Efficient-Large-Model/Long-WAM-LIBERO-IDM-LeRobot"
policy = LongWAMPolicy.from_pretrained(checkpoint).to("cuda").eval()
preprocess, postprocess = make_pre_post_processors(
policy.config,
pretrained_path=checkpoint,
preprocessor_overrides={"device_processor": {"device": "cuda"}},
)
policy.reset()
# observation contains both current camera images, observation.state, and task.
# Repeat on every control tick, including ticks that consume queued actions.
action = postprocess(policy.select_action(preprocess(observation)))استدعِ select_action في كل نبضة تحكم، بما في ذلك أثناء تنفيذ مجموعة إجراءات، حتى تبقى السجل محدثًا. تُرجع predict_action_chunk قيمة [batch, prediction_steps, action_dim]؛ ويسجّل كل استدعاء الإطار الحالي المُقدَّم. تمسح reset() وdrop_queued_actions() كلًا من السجل والإجراءات المُرتَّبة. لم يتم التحقق بعد من التزامن العام/RTC في هذا التكامل.
بشكل افتراضي، يعيد inference_seed=1 تشغيل مولّدات الضوضاء المنفصلة للفيديو/الإجراء بنفس البذرة لكل شريحة، مما يحافظ على سلوك الاستدلال المُصدر.
اضبط inference_seed=None في بايثون (--policy.inference_seed=null في سطر الأوامر)
لاستخدام مولّد الأرقام العشوائية العالمي المتقدّم بدلاً من ذلك؛ لا يعيد reset() تعيين بذرة ذلك التدفق.
يأخذ التدريب دائماً ضوضاء جديدة.
التقييم
قم بتثبيت حزمة الاختبارات الإضافية وتقييم نقطة تحقق أصلية:
pip install -e ".[longwam,libero]"
lerobot-eval --policy.path=Efficient-Large-Model/Long-WAM-LIBERO-IDM-LeRobot \
--policy.device=cuda --policy.dtype=bfloat16 \
--env.type=libero --env.task=libero_spatial \
--env.observation_height=256 --env.observation_width=256 \
--env.episode_length=300 \
--eval.batch_size=1 --eval.n_episodes=50 --seed=1استخدم libero_object أو libero_goal للجماعات القصيرة الأخرى. أما بالنسبة إلى LIBERO-Long،
فقم بتعيين --env.task=libero_10 --env.episode_length=600.
استبدل IDM بـ COD في مسار نقطة التفتيش لتقييم إزالة الضوضاء المشتركة.
التاريخ وتقسيم الإجراءات
| معامل | المعنى | قيمة LIBERO المُطلَقة |
|---|---|---|
past_obs_steps | دقات التحكم السابقة المحفوظة | 48 |
video_stride | التحكم في علامات الوقت بين إطارات الفيديو المُستخرجة | 4 |
future_video_steps | أفق الإشراف على الفيديو المستقبلي | 32 |
action_horizon | طول شريحة الإجراء للتدريب | 32 |
inference_action_horizon | طول شريحة الإجراء المتوقعة | 80 |
n_action_steps | الإجراءات التي تُنفَّذ قبل التنبؤ الجديد | 10 |
مدة التاريخ هي past_obs_steps / control_frequency. يتم ملء التاريخ المبكر بالملاحظة الأولى. استخدم نقطة تفتيش مدرّبة للتاريخ المقصود؛ فالتغيير في النافذة أثناء الاستدلال ليس تدريبًا لتوسيع السياق.
الضبط الدقيق
lerobot-train --policy.path=Efficient-Large-Model/Long-WAM-LIBERO-IDM-LeRobot \
--policy.device=cuda --policy.dtype=bfloat16 \
--accelerator.mixed_precision=bf16 \
--dataset.repo_id=YOUR_ORG/YOUR_DATASET \
--output_dir=outputs/longwam --batch_size=1 --steps=30000 \
--policy.push_to_hub=false--policy.dtype يحدد نوع تخزين المعاملات قبل التحميل؛ وتستخدم تدرجات وعزوم AdamW الأصلية ذلك النوع. يتحكم --accelerator.mixed_precision في autocast، وليس في الأوزان الرئيسية من نوع FP32. يستخدم المثال BF16 لكليهما، بما يتوافق مع نوع المعاملات الأصلي.
بالنسبة للمعاملات/التدرجات/العزوم من نوع FP32 مع autocast من نوع BF16، استخدم --policy.dtype=float32 --accelerator.mixed_precision=bf16؛ كما يستخدم VAE ومشفّر النص المجمّدان FP32، مما يزيد من استهلاك الذاكرة. اختر هذا الخيار قبل التحميل:
فإن تحويل الأوزات المحمّلة من BF16 إلى FP32 لا يمكنه استعادة الدقة المفقودة.
يحوّل المعالج ما بعد التشغيل المُطلَق الخاص بالملقط بُعد الإجراء الأخير من [0, 1] إلى أوامر موقّعة. استخدم --policy.toggle_action_dimensions=[] إذا كانت بيانات الضبط الدقيق الخاصة بك تستخدم بالفعل اتفاقية فتح/إغلاق الموقّعة للبيئة.
تُطبَّق الإعدادات النشطة أيضًا على المعالجات المحفوظة؛ حيث تتفوّق postprocessor_overrides الصريحة. تُحتفظ بإحصاءات التطبيع المحفوظة ما لم يتم تجاوزها، لذا فاجعلها متوافقة مع بيانات الضبط الدقيق الخاصة بك.
يُشرف التدريب على مقاطع الفيديو والأفعال المستقبلية؛ بينما يستقبل الاستدلال الملاحظات السابقة/الحالية فقط. اضبط --batch_size حسب ذاكرة وحدة معالجة الرسوميات، وحافظ على ترتيب الكاميرات في نقطة الحفظ، وتعريفات الأفعال/الحالة، ووضع إزالة الضوضاء.
الاستشهاد
@misc{huang2026longwamscalingcontextworldaction,
title={Long-WAM: Scaling the Context of World-Action Models},
author={Wei Huang and Bohan Zhang and Chenzhi Liu and Isabella Liu and
Shuai Yang and Weian Mao and Luozhou Wang and Yicheng Xiao and
Weifeng Lin and Qixin Hu and Bryan Chu and Sifei Liu and
Linxi Fan and Xiaojuan Qi and Song Han and Yukang Chen},
year={2026},
eprint={2610.10528},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2610.10528},
}