LeRobot documentation

Long-WAM

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.6.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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_spatial99.4%98.6%500
libero_object99.8%99.6%500
libero_goal97.8%98.2%500
libero_1099.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},
}
Update on GitHub