تولَّ التحكم عندما تُخطئ السياسة، ثم درّبها على تصحيحك.
السياسة المدربة عبر Behavior Cloning لا تعرف إلا الحالات التي مرّت بها العروض التوضيحية الخاصة بك. تسدّ DAgger هذه الفجوة ببيانات من الحالات التي تصل إليها السياسة نفسها. تُشغّل AY-Robots الحلقة كاملة على ذراع SO-100: تشغيل checkpoint، التولي في منتصف التشغيل، الاحتفاظ بالحلقات المصححة، تجميع المزيج، ثم مواصلة التدريب من الـcheckpoint الذي شغّلته للتو.
- HG-DAgger، بإشراف بشري
- SO-100 / SO-101
- ACT, SmolVLA, Pi0, GR00T N1.5 / N1.7
- معدل التدخل لكل جولة
لماذا تفعل السياسة المدربة شيئًا لم يُعرض عليها قط
يعامل Behavior Cloning التحكم كتعلّم خاضع للإشراف عادي: مشاهدة تدخل، وهدف مفصلي يخرج، مضبوط على الإطارات التي سجّلها إنسان. هذا صحيح فقط ما دام الروبوت على الحالات التي زارها ذلك الإنسان، وهو لا يبقى كذلك. قابض يُغلق قبل الأوان بأربعين ميلي ثانية يزيح المكعب مليمترين عن وضعه المعروض. المشاهدة التالية لا توجد في مجموعة التدريب، فالإجراء عندها استقراء، والحالة بعدها تقع أبعد من ذلك. توزيع التدريب والتوزيع الذي تولّده السياسة المتعلَّمة فعليًا شيئان مختلفان، والثاني يبتعد عن الأول كلما تقدّمت الحلقة.
وصف روس وغوردون وبانيل هذا الفشل بالضبط في الاختزال عام 2011 وقاسا حجم الضرر: مصنّف يخطئ باحتمال e تحت توزيع الخبير يمكن أن يرتكب في حدود T تربيع ضرب e من الأخطاء على مدى أفق من T خطوة تحت التوزيع الذي يولّده هو نفسه، لأن خطأً واحدًا ينتج مشاهدات لم يولّدها الخبير قط، فتتراكم الأخطاء. حلّهم هو الخوارزمية التي تدور حولها هذه الصفحة: تشغيل السياسة الحالية، وجمع تسميات من خبير للحالات التي تزورها، وتجميعها مع كل ما جُمع حتى الآن، وإعادة التدريب، والتكرار. مزيد من العروض التوضيحية من النوع نفسه لا يفيد، لأنها تعيد أخذ عينات من التوزيع نفسه. أما التسميات على الحالات التي تصل إليها السياسة فتفيد. النسخة المطبَّقة هنا بإشراف بشري (HG-DAgger، Kelly وآخرون): تحتفظ السياسة بالتحكم حتى يقرر شخص أن الأمور تسير خطأً فيتولى، بحيث تُنتَج التصحيحات فقط حيث تُحتاج، ولا يُطلب من الذراع أبدًا الدخول في حالة لا يسمح بها المشغّل.
- يصحّ Behavior Cloning فقط على توزيع الحالات الذي تدرّب عليه.
- الفشل يضخّم نفسه: انحراف صغير يُنتج حالة غير مألوفة، وهذه بدورها تُنتج انحرافًا أكبر.
- العلاج ليس مزيدًا من العروض التوضيحية، بل تسميات على الحالات التي تصل إليها السياسة نفسها.
- الإشراف البشري يعني أن المشغّل هو من يقرر لحظة التدخل، لا درجة استقلالية آلية.
لماذا يتراكم الخطأ
اسحب الأفق الزمني. تحت Behavior Cloning تنمو التكلفة الإضافية المتوقعة تقريبًا بمربع عدد الخطوات، لأن كل خطأ يُنتج حالات لم تغطها العروض التوضيحية قط؛ حلقة التجميع تُبقي هذا النمو قريبًا من الخطي (Ross وآخرون، 2011).
منحنيات توضيحية مبنية على الحدود الواردة في Ross وآخرون (2011)، وليست قياسات من الروبوت الخاص بك. المهم هو شكل المنحنى لا الأرقام.
جولة DAgger واحدة، ست خطوات
هذه هي الحلقة كما تُشغَّل فعليًا على المنصة، لا كمخطط نظري. كل خطوة أدناه تقابل عنصر تحكم في لوحة القيادة.
استعراض الحلقة خطوة بخطوة
الخطوات الست نفسها، واحدة تلو الأخرى، مع ما يحدث على الذراع وفي مجموعة البيانات عند كل منها.
تشغيل السياسة وتسجيلها
ابدأ تشغيل استدلال (inference) على checkpoint دربته بنفسك. يُسجَّل التشغيل أثناء حدوثه، مع نص المهمة الخاص بالتشغيل نفسه، بحيث تصلح الإطارات لاحقًا كبيانات تدريب بدلًا من أن تكون مجرد فيديو للمشاهدة فقط.
التولي والتصحيح
بمجرد أن تفعل الذراع الشيء الخطأ، اضغط على "تولي التحكم". يتوقف Runner مؤقتًا وتصبح الذراع بين يديك. مع ذراع leader، تتحرك الذراع أولًا إلى وضعية follower ثم تُسلَّم السيطرة؛ أما مع إدخال لوحة المفاتيح أو أشرطة التمرير، المختار عند بدء التشغيل، فيكون التولي يدويًا فورًا. صحِّح الحركة، ثم أعد التحكم إلى السياسة. تُوسَم الإطارات المسجَّلة أثناء التولي تلقائيًا كتدخلات.
فرز التشغيل
قرر لكل تشغيل ماهيته: تصنيفه كتصحيح، أو الاحتفاظ به كتشغيل تقييم، أو تجاهله. تبقى الإطارات الثابتة حول لحظة التسليم في مجلد raw ولا تدخل مجموعة البيانات أبدًا.
مزامنة مجموعة بيانات التصحيحات
تتجمع التصحيحات في مجموعة بيانات تصحيح خاصة بكل سياسة وتُرسَل إلى الـbucket الخاص بك عبر المزامنة السحابية التلقائية. لا يُدمَج شيء في شيء عند هذه المرحلة؛ التصحيحات ببساطة مجموعة بيانات قائمة بذاتها.
تجميع المزيج بنفسك
استخدم "تجميع مجموعة بيانات" لبناء مجموعة تدريب الجولة التالية: مجموعة البيانات الأصلية زائد التصحيحات، مع اختيار صريح للحلقات حسب كل مصدر. النتيجة مجموعة بيانات عادية تُزامَن وتُدرَّب مثل أي مجموعة أخرى. لا شيء يُمزَج خلف ظهرك، ولا تُضاف بيانات محاكاة تلقائيًا.
مواصلة التدريب من الـcheckpoint
درّب مجموعة البيانات المجمَّعة باستخدام "المتابعة من checkpoint" بدلًا من البدء من النموذج الأساسي، بحيث تبدأ الجولة من السياسة التي شغّلتها للتو. لنكن دقيقين هنا: هذا يُهيّئ الأوزان انطلاقًا من ذلك الـcheckpoint، وليس استئنافًا لحالة المُحسِّن (optimizer).
ما تتكفّل به المنصة نيابةً عنك
كل بند هنا خطوة من الحلقة كان عليك بناؤها وصيانتها بنفسك لولا ذلك.
التولي بدون ذراع leader
اختر إدخال لوحة المفاتيح أو أشرطة التمرير عند بدء التشغيل، ويمكنك عندها التصحيح بحاسوب محمول فقط. تُحدَّد حركات لوحة المفاتيح من جهة الخادم بحد أقصى درجتين لكل مفصل وأربع درجات للقابض؛ أما أهداف أشرطة التمرير فمطلقة، ويتحرك الخادم نحوها بست درجات كحد أقصى في كل استدعاء. هذه الحدود مفروضة من الخادم لا من الواجهة، لذا لا يمكن لمفتاح عالق أن يُطيّر الذراع.
وثائق التحكم عن بعدالتدخلات موسومة لكل إطار
كل إطار يُسجَّل أثناء إمساكك بالذراع يحمل علامة تدخل، وعمود action يحمل الوضعية الكاملة المُرسلة كأمر. لست بحاجة لصيانة عمود علامات يدويًا أو محاذاته لاحقًا مع فهارس الإطارات.
تنسيق مجموعة بيانات LeRobotالفرز: تصحيح أو تقييم أو حذف
يحصل كل تشغيل على قرار واحد في بطاقة الحفظ. تشغيلات التصحيح تغذّي جولة التدريب التالية، وتشغيلات التقييم تبقى خارج التدريب فتظل قياسًا نظيفًا، والتشغيلات السيئة تختفي بدلًا من أن تُفسد المزيج بصمت.
الجلسات والحلقاتتجميع المزيج صراحةً
مجموعة تدريب الجولة رقم n تُجمِّعها أنت: مجموعة البيانات الأصلية زائد التصحيحات، مع اختيار الحلقات حسب كل مصدر. لا مزج تلقائي، ولا بيانات محاكاة مخفية، والنتيجة المجمَّعة تتصرف مثل أي مجموعة بيانات أخرى.
مجموعات البياناتالمتابعة من checkpoint
وجّه تشغيل التدريب إلى الـcheckpoint الذي شغّلته للتو بدلًا من النموذج الأساسي، بحيث تبدأ كل جولة من حيث انتهت السابقة. يُهيّئ هذا الأوزان فقط؛ حالة المُحسِّن لا تُستعاد، ولهذا يستحق أن تُعامَل الجولة الأولى كاختبار جدوى.
التدريبوحدات GPU مستأجرة بالجولة
ACT وSmolVLA على 4090، وPi0 وGR00T N1.5 أو N1.7 على A100 بسعة 80 غيغابايت. تبدأ جولة، يعمل الـpod، تصل نقاط الـcheckpoint إلى الـbucket الخاص بك، وتدفع مقابل الساعات التي استغرقتها الجولة.
أسعار GPUخطّط لجولاتك
معدل التدخل هو مقياس التقدم لهذه الحلقة: الإطارات المصححة مقسومة على إطارات التشغيل. حدد نقطة البداية ومقدار ما تكسبه كل جولة، وشاهد كم جولة تحتاج للوصول إلى هدفك.
| الجولة | معدل التدخل | الإطارات المصححة |
|---|---|---|
| 1 | 30.0 % | 900 |
| 2 | 22.5 % | 675 |
| 3 | 16.9 % | 506 |
| 4 | 12.7 % | 380 |
| 5 | 9.5 % | 285 |
| 6 | 7.1 % | 214 |
| Σ | 2 960 | |
هذا نموذج تقريبي، لا تنبؤ. الجولات الحقيقية متذبذبة، وجولة لا تُحرّك المعدل لم تُحقق شيئًا؛ وهذه بالضبط الإشارة التي تستحق المراقبة.
بناء الحلقة بنفسك مقابل تشغيلها هنا
لا شيء من هذا مستحيل يدويًا. الأمر يتعلق بعدد الأمسيات التي تذهب إلى البنية التحتية بدلًا من الجولات نفسها، وهناك صف واحد يكون فيه العمل اليدوي هو الخيار الأفضل بوضوح.
| خطوة الحلقة | الإعداد يدويًا | على AY-Robots |
|---|---|---|
| التولي في منتصف التشغيل | ذراع leader، أو كود خاص بك على ناقل السيرفو (servo bus). التولي عبر لوحة المفاتيح والأشرطة، بما في ذلك الحدود الآمنة، شيء تكتبه ثم تصحّح أخطاءه على عتاد حقيقي. | ذراع leader، أو لوحة مفاتيح، أو أشرطة تمرير، تُختار عند بدء التشغيل. حدود الزوايا موجودة في الخادم. |
| وسم التدخلات | تضيف عمود العلامة بنفسك، وتحافظ على محاذاته مع فهرس الإطار، وتعيد التحقق منه في كل مرة يتغير فيها تنسيق التسجيل. | كل إطار يُسجَّل أثناء التولي يُوسَم تلقائيًا، مع الوضعية المُرسلة كأمر في عمود action. |
| فرز التشغيلات | اصطلاحات مجلدات وسكربتات shell. الإطارات الثابتة حول لحظة التسليم عليك أن تجدها وتستبعدها بنفسك. | قرار واحد لكل تشغيل على بطاقة الحفظ. إطارات التسليم تبقى في مجلد raw. |
| بناء مجموعة البيانات الممزوجة | سكربتات دمج لكل إصدار تنسيق. الجزء المُتعب هو جعل فهارس الحلقات والبيانات الوصفية ومراجع الفيديو متسقة. | التجميع من الأصل زائد التصحيحات مع اختيار الحلقات حسب كل مصدر؛ والنتيجة مجموعة بيانات عادية. |
| بدء الجولة التالية من آخر سياسة | تُوصِّل الـcheckpoint بنفسك إلى أداة التدريب، ويمكنك أيضًا استعادة حالة المُحسِّن إذا أردت استئنافًا حقيقيًا. | حقل واحد لـcheckpoint الأساس. الأوزان فقط: يُهيَّأ من الـcheckpoint، وليس استئنافًا للمُحسِّن. |
| التحكم في حلقة التدريب | كامل. دالة الخسارة الخاصة بك، جدولك الزمني، تجارب الحذف (ablations) الخاصة بك، أدوات القياس الخاصة بك، بلا منصة تقف في الطريق. إذا كان سؤال البحث هو حلقة التدريب نفسها، فافعلها يدويًا. | مسار ثابت بقائمة محددة من السياسات والمعاملات الفائقة (hyperparameters) التي يعرضها النموذج، وليس كودًا حرًا. |
الأوراق البحثية التي يقوم عليها هذا
اقرأ هذه الأوراق قبل أن تجادل في الحلقة. كل رابط يقود إلى صفحة الملخص، لا إلى حاجز دفع.
- A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning
Stephane Ross, Geoffrey J. Gordon, J. Andrew Bagnell · 2011 · AISTATS 2011 (PMLR 15)
ورقة DAgger الأصلية: تطرح مشكلة تراكم الأخطاء، وتقدّم الحد الأعلى بمربع T للنهج الخاضع للإشراف البسيط، وتقترح تجميع البيانات من الحالات التي يزورها المتعلّم نفسه.
- HG-DAgger: Interactive Imitation Learning with Human Experts
Michael Kelly, Chelsea Sidrane, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1810.02890, ICRA 2019
النسخة بإشراف بشري: يقرر الخبير متى يتولى التحكم بدلًا من أن يُستفسَر عن حالات اختارتها السياسة، وهذا هو النمط الذي تطبّقه هذه المنصة.
- EnsembleDAgger: A Bayesian Approach to Safe Imitation Learning
Kunal Menda, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1807.08364, IROS 2019
الطريقة الأخرى للتحكم في التدخلات: تباين المجموعة (ensemble) كإشارة ثقة تُحدد متى يمكن للمتعلّم أن يتصرف وحده. مقارنة مفيدة مع ترك الحكم لإنسان.
- ThriftyDAgger: Budget-Aware Novelty and Risk Gating for Interactive Imitation Learning
Ryan Hoque, Ashwin Balakrishna, Ellen Novoseller, Albert Wilcox, Daniel S. Brown, Ken Goldberg · 2021 · CoRL 2021
تعامل انتباه الإنسان كمورد نادر ولا تطلب المساعدة إلا في الحالات الجديدة أو الخطرة، وهذا هو الإطار الصحيح عندما يشرف شخص واحد على الذراع طوال فترة بعد الظهر.
- DART: Noise Injection for Robust Imitation Learning
Michael Laskey, Jonathan Lee, Roy Fox, Anca Dragan, Ken Goldberg · 2017 · CoRL 2017
البديل الصريح: بدلًا من تصحيح السياسة أثناء التشغيل، تُشوَّش العروض التوضيحية بحيث يُظهر الخبير كيفية التعافي. يستحق المعرفة قبل الالتزام بالتدخلات.
- Interactive Imitation Learning in Robotics: A Survey
Carlos Celemin, Rodrigo Perez-Dattari, Eugenio Chisari, Giovanni Franzese, Leandro de Souza Rosa, Ravi Prakash, Zlatan Ajanovic, Marta Ferraz, Abhinav Valada, Jens Kober · 2022 · arXiv:2211.00600
خريطة هذا المجال: ما هي أشكال التغذية الراجعة البشرية الموجودة، وما الواجهات التي تحملها، وأين يقع التدخل على طريقة DAgger بينها.
- Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware
Tony Z. Zhao, Vikash Kumar, Sergey Levine, Chelsea Finn · 2023 · arXiv:2304.13705
ورقة ACT. تجزئة الإجراءات (action chunking) هي السبب في إمكانية تشغيل ذراع رخيصة أصلًا بسياسة تقليد، وACT هي أسرع سياسة يمكن التكرار عليها في جولة DAgger.
- π0: A Vision-Language-Action Flow Model for General Robot Control
Kevin Black, Noah Brown, Danny Driess, Adnan Esmail, Michael Equi, Chelsea Finn et al. · 2024 · arXiv:2410.24164
نموذج VLA قائم على مطابقة التدفق (flow matching) ومبني على نموذج رؤية-لغة مدرَّب مسبقًا، وهو أحد نقاط الـcheckpoint التي يمكن ضبطها دقيقًا هنا؛ وتوضح الورقة صراحةً أن المهارات الجديدة تأتي من الضبط الدقيق، لا من النموذج الأساسي وحده.
أسئلة يطرحها الناس فعلًا
هل أحتاج إلى ذراع leader من أجل DAgger؟
لا. اختر إدخال لوحة المفاتيح أو أشرطة التمرير عند بدء التشغيل، ويكون التولي يدويًا من الإطار الأول، ويتم التحكم من المتصفح. ذراع leader أكثر راحة للحركة الدقيقة، وهو النمط الذي تُحاذي فيه الذراع نفسها قبل التسليم، لكن الحلقة تعمل بدونه.
كم عدد جولات DAgger التي أحتاجها؟
لا يوجد رقم ثابت صادق. راقب معدل التدخل: إذا لم ينخفض من جولة إلى التالية، فتلك الجولة لم تحقق شيئًا، والمشكلة غالبًا في إعداد المهمة أو الكاميرات أو مجموعة البيانات الأصلية، لا في عدد الجولات.
هل هذا DAgger حقيقي أم شيء أكثر تساهلًا؟
هذا هو HG-DAgger، النسخة بإشراف بشري. DAgger الكلاسيكي يستفسر الخبير عن حالات اختارتها السياسة، بما فيها حالات لن يسمح أي مشغّل عاقل لذراع حقيقية بالوصول إليها. هنا يقرر إنسان متى يتدخل، وتصبح تلك المقاطع فقط تسميات.
هل أدرّب فقط على التصحيحات؟
لا، ولا ينبغي ذلك. التدريب على التصحيحات وحدها يمنحك سياسة لا تعرف سوى التعافي. مجموعة البيانات المجمَّعة هي البيانات الأصلية زائد التصحيحات، مع اختيار صريح للحلقات من كل مصدر.
هل تؤدي المتابعة من checkpoint إلى استئناف تشغيل التدريب؟
هي تُهيّئ الأوزان من ذلك الـcheckpoint. حالة المُحسِّن لا تُستعاد، فهي ليست استئنافًا بالمعنى الدقيق. عمليًا، الأوزان هي ما ينقل السلوك المتعلَّم عبر الجولة، لكن يستحق معرفة أي الاثنين تحصل عليه فعلًا.
كيف يُحسَب معدل التدخل؟
الإطارات الموسومة كتدخل مقسومة على إجمالي إطارات التشغيل. يظهر في حالة التولي، وهو الرقم الوحيد الذي يستحق تدوينه لكل جولة إلى جانب الـcheckpoint الذي شغّلته والمزيج الذي دربته.
مع أي سياسات يمكنني تشغيل هذه الحلقة؟
ACT وSmolVLA وPi0 وGR00T N1.5 أو N1.7. الحلقة نفسها مستقلة عن السياسة لأنها تُنتج فقط مجموعات بيانات ونقاط checkpoint؛ الفرق العملي هو مدة الجولة ونوع الـGPU المطلوب.
هل يمكنني فعل هذا دون امتلاك روبوت؟
يمكنك التسجيل والتدريب دون روبوت عبر شراء مجموعات بيانات من السوق أو تكليف مشغّلين، ويمكنك تشغيل ذراع SO-100 حقيقية في المتصفح على صفحة live. جولة DAgger مختلفة: فهي تحتاج ذراعًا يمكنك التولي عليها في منتصف التشغيل، لذا فإن الحلقة نفسها تتطلب عتادًا على مكتبك الخاص.
A real SO-100, live in the browser. No signup, no hardware needed.
شغّل جولتك الأولى هذا الأسبوع
ثبّت العميل، شغّل checkpoint لديك بالفعل، وتولَّ التحكم في أول مرة تتجاوز فيها الذراع المكعب. هذا التشغيل الواحد هو جولة DAgger مصغّرة: كل ما بعده هو تجميع المزيج ودفع ثمن ساعات GPU.