# ACT (تجزئة الإجراءات باستخدام Transformers)

ACT هو **سياسة خفيفة وفعالة لتعلم التقليد**، وهو مناسب بشكل خاص لمهام التلاعب الدقيقة. وهو **النموذج الأول الذي نوصي به عند البدء** مع LeRobot نظرًا لزمن تدريبه السريع، ومتطلباته الحسابية المنخفضة، وأداؤه القوي.

  <iframe width="100%" height="415" src="https://www.youtube.com/embed/ft73x0LfGpM" title="LeRobot ACT Tutorial" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen
  >

_شاهد هذا الشرح التعليمي من فريق LeRobot لمعرفة كيفية عمل ACT: [الشرح التعليمي الخاص بـ LeRobot ACT](https://www.youtube.com/watch?v=ft73x0LfGpM)_

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

طُرِح تقطيع الإجراءات باستخدام نماذج التحويل (ACT) في ورقة [Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware](https://arxiv.org/abs/2304.13705) التي كتبها تشاو وآخرون. صُمِّم هذا النموذج لتمكين مهام التلاعب الدقيقة والغنية بالاتصال باستخدام أجهزة ميسورة التكلفة وبيانات عرض قليلة.

### لماذا يُعد ACT رائعًا للمبتدئين

تتميز ACT كمنطلق ممتاز لعدة أسباب:

- **التدريب السريع**: يتم التدريب في بضع ساعات على وحدة معالجة رسومية واحدة
- **خفيف الوزن**: يحتوي على حوالي 80 مليون معامل فقط، مما يجعله فعالاً وسهل الاستخدام
- **كفاءة في استخدام البيانات**: غالبًا ما يحقق معدلات نجاح عالية باستخدام 50 مثالًا فقط

### البنية

يستخدم ACT معمارية مبنية على التحويلات (transformer) وتتضمن ثلاثة مكونات رئيسية:

1. **الهيكل البصري**: يعالج ResNet-18 الصور من نقاط رؤية متعددة للكاميرات
2. **مُشفِّر التحوّلات**: يدمج المعلومات من ميزات الكاميرا ومواقع المفاصل ومتغير كامن مُتعلَّم
3. **مفكك التحويل**: يولّد تسلسلات إجراءات متماسكة باستخدام الانتباه المتقاطع

تستقبل السياسة المدخلات التالية:

- صور RGB متعددة (مثلًا، من كاميرات المعصم، كاميرات الأمام/الأعلى)
- مواضع مفاصل الروبوت الحالية
- متغير نمط كامن `z` (يتم تعلمه أثناء التدريب، ويُضبط إلى الصفر أثناء الاستدلال)

ويُخرج جزءًا من `k` تسلسلات الإجراءات المستقبلية.

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

1. قم بتثبيت LeRobot باتباع [دليل التثبيت](./installation) الخاص بنا.
2. تُشمل ACT في تثبيت LeRobot الأساسي، لذا لا حاجة إلى أي تبعيات إضافية!

## تدريب ACT

يعمل ACT بسلاسة مع خط أنابيب تدريب LeRobot القياسي. فيما يلي مثال كامل لتدريب ACT على مجموعة بياناتك:

```bash
lerobot-train \
  --dataset.repo_id=${HF_USER}/your_dataset \
  --policy.type=act \
  --output_dir=outputs/train/act_your_dataset \
  --job_name=act_your_dataset \
  --policy.device=cuda \
  --trackio.enable=true \
  --policy.repo_id=${HF_USER}/act_policy
```

### نصائح التدريب

1. **ابدأ بالقيم الافتراضية**: تعمل قيم المعلمات الفائقة الافتراضية في ACT بشكل جيد لمعظم المهام
2. **مدة التدريب**: يُتوقع أن تستغرق 100 ألف خطوة تدريب بضع ساعات على وحدة معالجة رسومية واحدة
3. **حجم الدفعة**: ابدأ بحجم دفعة 8 وعدّل بناءً على ذاكرة وحدة معالجة الرسوميات لديك

### التدريب باستخدام Google Colab

إذا لم يكن جهازك المحلي مجهزة بوحدة معالجة رسومية قوية، يمكنك استخدام Google Colab لتدريب نموذجك من خلال اتباع [دفتر تدريب ACT](./notebooks#training-act).

## تقييم ACT

بمجرد اكتمال التدريب، يمكنك تقييم سياسة ACT الخاصة بك على روبوتك باستخدام `lerobot-rollout`. الأمر أدناه يشغّل السياسة لمدة 60 ثانية دون تسجيل أي شيء (يمكن تخطي `--task` في حالة ACT). راجع [نشر السياسة](./inference) لاستراتيجيات تسجّل حلقات التقييم.

```bash
lerobot-rollout \
  --strategy.type=base \
  --policy.path=${HF_USER}/act_policy \
  --robot.type=so101_follower \
  --robot.port=/dev/ttyACM0 \
  --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}}" \
  --display_data=true \
  --task="Your task description" \
  --duration=60
```

