# WALL-OSS

WALL-OSS هو نموذج أساسي مفتوح المصدر للذكاء المتجسد، اقترحه فريق [XSquare Robot](https://x2robot.com/en/research/68bc2cde8497d7f238dde690) في عام 2025. تم تكييف تنفيذ LeRobot من مستودعهم المفتوح المصدر [WallX](https://github.com/X-Square-Robot/wall-x).

أصبح WALL-OSS من X Square Robot مدمجًا الآن في نظام LeRobot البيئي لدى Hugging Face. هذا مشروع تعاوني مثير بين فريقَي LeRobot وX Square Robot. يمكنك الآن إجراء التدريب اللاحق، والتقييم، والنشر لنموذج WALL-OSS مباشرةً عبر LeRobot. ومن خلال ذلك، نهدف إلى تسهيل مهمة مجتمع الروبوتات مفتوح المصدر في تخصيص ونشر نماذج WALL-OSS الأساسية. اقرأ واستكشف [ورقة](https://arxiv.org/pdf/2509.11766) و[الكود](https://github.com/X-Square-Robot/wall-x) الخاصين بـ WALL-OSS.

## نظرة عامة على النموذج

يعمل فريق WALL-OSS على بناء نموذج أساسي متجسد لالتقاط وضغط أكثر بيانات العالم قيمةً: تدفق التفاعل الفيزيائي المستمر عالي الدقة. من خلال إنشاء حلقة تغذية راجعة مباشرة بين قرارات النموذج والتجربة الحية للجسم، يتم تمكين ظهور ذكاء قابل للتعميم حقًا — ذكاء لا يفهم فقط كيف يعمل العالم، بل كيف يتصرف بفعالية داخله.

<img
  src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot/walloss-lerobot-paper.png"
  alt="An overview of WALL-OSS"
  width="85%"
/>

من الناحية التقنية، يُقدّم WALL-OSS بنية متعددة الوسائط مترابطة بإحكام (بنية MoE مترابطة بإحكام) تجمع بين استراتيجيات نمذجة الإجراءات المنفصلة والمتصلة. من خلال خط تدريب على مرحلتين (Inspiration → Integration)، يوحّد النموذج تدريجياً بين الاستدلال الدلالي وتوليد الإجراءات عالية التردد. وتشمل ابتكاراته الأساسية:

- **التدريب المسبق متعدد الوسائط المعزز بالإدراك المتجسد**: تدريب واسع النطاق على بيانات موحدة للرؤية واللغة والإجراء لتعزيز الفهم المكاني والسببي والتلاعب.
- **سلسلة التفكير الموحدة عبر المستويات (Uni-CoT)**: إطار قابل للاشتقاق يوحّد الاستدلال التعليمي على المستوى العالي، وتفكيك المهام الفرعية، وتوليد الإجراءات الدقيقة، ليكوّن سلسلة مستمرة من “الفهم” إلى “التنفيذ”.
- **رؤوس الإجراءات من نوع خليط الخبراء (MoE)**: تفعيل الخبراء ديناميكيًا اعتمادًا على مرحلة المهمة، ونمذجة الإجراءات في فضاء منفصل أو متصل للحفاظ على مسبقات نموذج اللغة البصرية (VLM) مستقرة.
- **منهجية التدريب على مرحلتين**:
  - **مرحلة الإلهام**: حقن مسبقات إجراء منفصلة لتعزيز الفهم المكاني ومواءمة الدلالات مع الإجراءات.
  - **مرحلة التكامل**: استخدام مطابقة التدفق لتحقيق تحكم مستمر عالي التردد.

## متطلبات التثبيت

1. قم بتثبيت LeRobot باتباع [دليل التثبيت](./installation) الخاص بنا.
2. قم بتثبيت تبعيات WallX من خلال تشغيل الأمر التالي:

   ```bash
   pip install -e ".[wallx]"
   ```

## الاستخدام

للاستخدام WallX في LeRobot، حدد نوع السياسة على النحو التالي:

```python
policy.type=wall_x
```

### توليد النص والتحكم التفاعلي

تتيح WALL-OSS توليد النص الأصلي من خلال عقد السياسة من [جلب سياستك الخاصة](./bring_your_own_policies#text-capable-policies). يوفّر وقت التشغيل `query_kind` و`query_text` المملو للمستدعي قبل تشغيل خط أنابيب الإدخال العادي الخاص بـ WALL-OSS:

```python
request = {
    **observation,
    "query_kind": "vqa",
    "query_text": "Which object is closest to the right gripper?",
}
processed_batch = preprocessor(request)
answer = policy.generate_text(processed_batch)
```

يحافظ `vqa` على السؤال كحمولة المستخدم. يطبّق `next_subtask` وصفة نقطة التفتيش قبل `${subtask}`. يتجاوز WALL-X مباشرةً واجهة `generate_text(processed_batch)` العامة لخبير الرؤية واللغة الخاص به Qwen ويبلّغ عن تلك القدرة من خلال `supports_text_generation()`.

يمكن لبيئة التشغيل التفاعلية للغة توليد مهمة فرعية ثم اشتراط توقع إجراء WALL-OSS عليها:

```bash
lerobot-rollout \
  --strategy.type=base \
  --policy.path=your-org/your-wall-oss-checkpoint \
  --robot.type=your_robot_type \
  --robot.port=/dev/your_robot_port \
  --task="clear the table" \
  --interactive=true
```

بعد `/start`، استخدم `/vqa <question>` لـ VQA المستند إلى الصورة أو `/autosteer <goal>` لتوليد المهام الفرعية التالية المدعومة بوصفة. يتجاوز `/subtask <text>` التوليد ويرسل تعليمات مباشرةً إلى استنتاج الإجراء.

## التدريب

لتدريب WallX، يمكنك استخدام سكربت تدريب LeRobot القياسي مع الإعداد المناسب:

```bash
lerobot-train \
    --dataset.repo_id=your_dataset \
    --policy.type=wall_x \
    --output_dir=./outputs/wallx_training \
    --job_name=wallx_training \
    --policy.repo_id=your_repo_id \
    --policy.pretrained_name_or_path=x-square-robot/wall-oss-flow \
    --policy.prediction_mode=diffusion \
    --policy.attn_implementation=eager \
    --steps=3000 \
    --policy.device=cuda \
    --batch_size=32
```

### التدريب مع التعليقات اللغوية

يستخدم WALL-X وصفته المدمجة للتدريب من أعمدة اللغة الاختيارية في LeRobot. اضبط `recipe_path` فقط لاستبدال تلك الوصفة:

```bash
lerobot-train \
  --dataset.repo_id=your_org/your_language_annotated_dataset \
  --policy.type=wall_x \
  --policy.pretrained_name_or_path=x-square-robot/wall-oss-flow \
  --policy.text_loss_weight=0.01 \
  --policy.flow_loss_weight=1.0 \
  --policy.device=cuda \
  --batch_size=1 \
  --steps=20000
```

تستقبل دورات المساعد المستهدفة خسارة إنتروبيا متقاطعة للرمز التالي، بينما تستقبل تداليات وصفة `low_level` إشرافًا مستمرًا على تدفق الإجراءات. قد تستقبل الصف أيًا من الهدفين أو كلاهما معًا. يتم استبعاد موجهات المستخدم، والصور، والإحساس الذاتي بالموضع، ورموز استعلام الإجراءات، والتعبئة من خسارة النص. اضبط `policy.recipe=null` لاستخدام مسار التدريب الأصلي الخاص بـ WALL-OSS القائم على الإجراءات فقط.

راجع [أعمدة اللغات والوصفات](./language_and_recipes) لمعرفة مخطط التسمية والوصفات المتاحة.

### حجج التدريب

| الحُجّة                           | الوصف                                                                                                                                                   |
| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--dataset.repo_id`                | معرّف مستودع Hugging Face Hub الخاص بمجموعة بيانات التدريب لديك (على سبيل المثال، `lerobot/aloha_sim_insertion_human`)                                                      |
| `--policy.type`                    | يحدد استخدام بنية سياسة WallX                                                                                                                 |
| `--output_dir`                     | المجلد المحلي الذي سيتم حفظ نقاط التفتيش والتسجيلات الخاصة بالتدريب فيه                                                                                             |
| `--job_name`                       | معرّف اسم لهذا التدريب (يُستخدم في التسجيل/التتبع)                                                                                            |
| `--policy.repo_id`                 | معرّف مستودعك على Hugging Face Hub حيث سيتم دفع النموذج المُدرَّب                                                                                          |
| `--policy.pretrained_name_or_path` | المسار إلى أوزان WallX المُدرَّبة مسبقًا للمُبادَرة منها (نقطة التفتيش الرسمية WALL-OSS)                                                                        |
| `--policy.prediction_mode`         | استراتيجية التنبؤ بالإجراء: `diffusion` أو `fast` - يستخدم `diffusion` إزالة الضوضاء التكرارية لتوليد الإجراءات، بينما يستخدم `fast` التنبؤ بالرمز التالي بدلاً من ذلك |
| `--policy.attn_implementation`     | واجهة تنفيذ الانتباه - `eager` يستخدم انتباه PyTorch القياسي (تشمل البدائل `flash_attention_2` أو `sdpa`)                               |
| `--steps`                          | إجمالي عدد خطوات التدريب التي سيتم تنفيذها                                                                                                                         |
| `--policy.device`                  | الجهاز الذي سيتم التدريب عليه (`cuda` للوحدة الرسومية، `cpu` لوحدة المعالجة المركزية)                                                                                                            |
| `--batch_size`                     | عدد العينات في دفعة التدريب                                                                                                                          |

يستخدم تدريب اللغة `policy.text_loss_weight` (الافتراضي `0.01`)، و`policy.flow_loss_weight` (الافتراضي `1.0`)، و`policy.tokenizer_max_length` (الافتراضي `768`). يمكن لـ`policy.recipe_path` أن يستبدل الوصفة المدمجة اختيارياً.

## رخصة

يتبع هذا النموذج **رخصة Apache 2.0**، بما يتوافق مع مستودع [WallX](https://github.com/X-Square-Robot/wall-x) الأصلي.

