Human-gated DAgger, מקצה לקצה

להשתלט כשה-policy טועה, ולאמן בדיוק על התיקון הזה.

policy שאומן ב-behavior cloning מכיר רק את המצבים שההדגמות שלכם ביקרו בהם. DAgger סוגר את הפער הזה בעזרת נתונים מהמצבים שאליהם ה-policy עצמו מגיע. AY-Robots מריצה את כל הלולאה על זרוע SO-100: מפעילים checkpoint, משתלטים באמצע הריצה, שומרים את הפרקים המתוקנים, מרכיבים את התמהיל, וממשיכים לאמן מאותו checkpoint שהרצתם הרגע.

  • HG-DAgger, בשליטת אדם
  • SO-100 / SO-101
  • ACT, SmolVLA, Pi0, GR00T N1.5 / N1.7
  • שיעור התערבות לכל סבב

למה policy מאומן עושה דבר שמעולם לא הודגם

Behavior cloning מתייחס לבקרה כאל למידה מונחית רגילה: תצפית בכניסה, יעד למפרק ביציאה, מותאם לפריימים שאדם הקליט. זה תקף רק כל עוד הרובוט נשאר במצבים שהאדם ביקר בהם, וזה לא המצב. גריפר שנסגר ארבעים מילישניות מוקדם מדי דוחף את הקובייה שני מילימטרים מהתנוחה שהודגמה. התצפית הבאה היא כזו שסט האימון לא מכיל, כך שהפעולה שם היא אקסטרפולציה, והמצב שאחרי כן רחוק עוד יותר. התפלגות האימון וההתפלגות שה-policy הנלמד בעצם יוצר הן שני דברים שונים, וההתפלגות השנייה מתרחקת מהראשונה ככל שהפרק מתקדם.

Ross, Gordon ו-Bagnell תיארו בדיוק את כשל הרדוקציה הזה ב-2011 וכימתו את הנזק: מסווג שטועה בהסתברות e תחת התפלגות המומחה יכול לצבור בסדר גודל של T בריבוע כפול e טעויות על פני אופק של T צעדים תחת ההתפלגות שהוא עצמו יוצר, כי טעות אחת מייצרת תצפיות שהמומחה מעולם לא הפיק, והטעויות מצטברות. הפתרון שלהם הוא האלגוריתם שהעמוד הזה עוסק בו: מריצים את ה-policy הנוכחי, אוספים תוויות מומחה עבור המצבים שהוא מבקר בהם, מצרפים אותן לכל מה שנאסף עד כה, מאמנים מחדש, וחוזרים חלילה. יותר הדגמות מאותו סוג לא עוזרות, כי הן דוגמות מחדש מאותה התפלגות. תוויות על המצבים שה-policy מגיע אליהם כן עוזרות. הגרסה המיושמת כאן היא בשליטת אדם (HG-DAgger, Kelly et al.): ה-policy שומר על השליטה עד שאדם מחליט שמשהו משתבש ומשתלט, כך שתיקונים נוצרים רק היכן שצריך, והזרוע אף פעם לא נדרשת להגיע למצב שהמפעיל לא היה מאשר.

  • Behavior cloning תקף רק על התפלגות המצבים שעליה הוא אומן.
  • הכשל מגביר את עצמו: סטייה קטנה מייצרת מצב לא מוכר, שמייצר סטייה גדולה יותר.
  • התרופה היא לא עוד הדגמות, אלא תוויות על המצבים שאליהם ה-policy עצמו מגיע.
  • בשליטת אדם פירושו שהמפעיל מחליט מתי להתערב, לא ציון אוטונומיה.

למה הטעות מצטברת

גוררים את האופק. תחת behavior cloning העלות הנוספת הצפויה גדלה בערך כריבוע מספר הצעדים, כי כל טעות מייצרת מצבים שההדגמות מעולם לא כיסו; לולאת אגרגציה שומרת על הגידול קרוב ללינארי (Ross et al., 2011).

200
1.0 %
Behavior cloning
400
DAgger
2.00
200×
Behavior cloning ÷ DAgger
0.000100200300400050100150200עלות נוספת צפויה (חסם)
אופק המשימה (צעדים)

עקומות להמחשה מתוך החסמים ב-Ross et al. (2011), לא מדידות מהרובוט שלכם. העניין הוא הצורה, לא המספרים.

סבב DAgger אחד, שישה שלבים

זו הלולאה כפי שהפלטפורמה מריצה אותה בפועל, לא סכמה. כל שלב למטה מתאים לפקד בעמדת הבקרה.

מעבר על הלולאה שלב אחר שלב

אותם שישה שלבים, אחד בכל פעם, עם מה שקורה בזרוע ובמערך הנתונים בכל אחד מהם.

01

הרצת ה-policy והקלטתה

מפעילים ריצת inference מול checkpoint שאימנתם. הריצה מוקלטת תוך כדי, עם טקסט המשימה של הריצה עצמה, כך שהפריימים שמישים כנתוני אימון אחר כך במקום להיות רק סרטון לצפייה.

1 מתוך 6

מה הפלטפורמה מורידה מכם

כל פריט כאן הוא שלב בלולאה שאחרת הייתם צריכים לבנות ולתחזק בעצמכם.

השתלטות בלי leader arm

בוחרים קלט מקלדת או סליידרים בתחילת הריצה, ואז מספיק מחשב נייד כדי לתקן. דחיפות מקלדת מוגבלות בצד השרת לשתי מעלות לכל מפרק וארבע מעלות בגריפר; יעדי סליידר הם מוחלטים, והשרת זז לכל היותר שש מעלות לכיוונם בכל קריאה. ההגבלות אכופות בשרת, לא בממשק, כך שמקש תקוע לא יכול להטיל את הזרוע.

תיעוד טלה-אופרציה

התערבויות מסומנות לכל פריים

כל פריים שמוקלט בזמן שאתם מחזיקים בזרוע נושא דגל התערבות, ועמודת ה-action נושאת את התנוחה המלאה שנשלחה כפקודה. אתם לא מתחזקים עמודת דגל ביד ולא מיישרים אותה לאינדקסים של פריימים בדיעבד.

פורמט מערך הנתונים של LeRobot

מיון: תיקון, הערכה, או פח

כל ריצה מקבלת החלטה אחת בכרטיס השמירה. ריצות תיקון מזינות את סבב האימון הבא, ריצות הערכה נשארות מחוץ לאימון כדי שיישארו מדידה נקייה, וריצות גרועות נעלמות במקום להרעיל בשקט את התמהיל.

Sessions ופרקים

הרכבת התמהיל במפורש

את סט האימון לסבב n מרכיבים אתם: מערך הנתונים המקורי בתוספת תיקונים, פרקים נבחרים לכל מקור. בלי ערבוב אוטומטי, בלי נתוני סימולציה נסתרים, והתוצאה המורכבת מתנהגת כמו כל מערך נתונים אחר.

מערכי נתונים

המשך מ-checkpoint

מפנים ריצת אימון אל ה-checkpoint שהרצתם הרגע במקום למודל הבסיסי, כך שכל סבב מתחיל היכן שהקודם הסתיים. זה מאתחל רק משקלים; מצב האופטימייזר לא משוחזר, ולכן כדאי להתייחס לסבב הראשון כאל מבחן היתכנות.

אימון

GPU בשכירות לפי סבב

ACT ו-SmolVLA על 4090, Pi0 ו-GR00T N1.5 או N1.7 על A100 עם 80 GB. מתחילים סבב, ה-pod עולה, ה-checkpoints מגיעים ל-bucket שלכם, ומשלמים רק על השעות שהסבב לקח.

תמחור GPU

תכנון הסבבים

שיעור ההתערבות הוא מדד ההתקדמות של הלולאה: פריימים מתוקנים חלקי פריימים של הריצה. קובעים מאיפה מתחילים וכמה כל סבב משפר, ורואים כמה סבבים נדרשים כדי להגיע ליעד.

30 %
25 %
3 000
סבבשיעור התערבותפריימים מתוקנים
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 arm, או קוד משלכם על ה-servo bus. השתלטות במקלדת וסליידרים, כולל הגבלות בטיחות, זה משהו שכותבים ואז מנפים באגים על חומרה אמיתית.leader arm, מקלדת, או סליידרים, נבחר כשהריצה מתחילה. הגבלות הזווית יושבות בשרת.
סימון התערבויותמוסיפים עמודת דגל, שומרים אותה מיושרת לאינדקס הפריים, ובודקים מחדש בכל שינוי בפורמט ההקלטה.כל פריים שמוקלט במהלך השתלטות מסומן אוטומטית, עם התנוחה שנשלחה כפקודה בעמודת ה-action.
מיון הריצותמוסכמות תיקיות וסקריפטי shell. פריימי הקיפאון סביב מסירת השליטה עליכם למצוא ולסנן בעצמכם.החלטה אחת לכל ריצה בכרטיס השמירה. פריימי המסירה נשארים בתיקיית ה-raw.
בניית מערך הנתונים המעורבבסקריפטי merge לכל גרסת פורמט. לשמור על עקביות באינדקסי פרקים, מטא-דאטה והפניות וידאו זה החלק המייגע.הרכבה מהמקור בתוספת תיקונים עם בחירת פרקים לכל מקור; התוצאה היא מערך נתונים רגיל.
התחלת הסבב הבא מה-policy האחרוןמחווטים את ה-checkpoint לתוך המאמן בעצמכם, ואפשר גם לשחזר את מצב האופטימייזר אם רוצים resume אמיתי.שדה אחד ל-checkpoint הבסיסי. רק משקלים: מאתחל מה-checkpoint, זה לא resume של אופטימייזר.
שליטה בלולאת האימוןמלאה. ה-loss שלכם, לוח הזמנים שלכם, ה-ablations שלכם, האינסטרומנטציה שלכם, בלי פלטפורמה בדרך. אם שאלת המחקר היא לולאת האימון עצמה, עושים את זה ביד.מסלול קבוע עם רשימת policies מוגדרת וההיפרפרמטרים שהטופס חושף, לא קוד חופשי.

המאמרים שעליהם זה מבוסס

כדאי לקרוא אותם לפני שמתווכחים עם הלולאה. כל קישור מוביל לעמוד התקציר, לא לחומה בתשלום.

  1. 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-בריבוע לגישה המונחית הפשוטה, ומציע לצבור נתונים מהמצבים שהלומד עצמו מבקר בהם.

  2. HG-DAgger: Interactive Imitation Learning with Human Experts

    Michael Kelly, Chelsea Sidrane, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1810.02890, ICRA 2019

    הגרסה בשליטת אדם: המומחה מחליט מתי לקחת שליטה במקום להיות מתושאל על מצבים שה-policy בחרה; זה המצב שהפלטפורמה הזו מיישמת.

  3. EnsembleDAgger: A Bayesian Approach to Safe Imitation Learning

    Kunal Menda, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1807.08364, IROS 2019

    הדרך האחרת לשער התערבויות: חוסר הסכמה בתוך ensemble כאות ביטחון למתי הלומד רשאי לפעול לבד. ניגוד מועיל לכך שאדם ישפוט זאת.

  4. 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

    מתייחס לתשומת הלב האנושית כמשאב המוגבל ומבקש עזרה רק במצבים חדשים או מסוכנים; המסגרת הנכונה כשאדם אחד משגיח על הזרוע במשך אחר צהריים שלם.

  5. DART: Noise Injection for Robust Imitation Learning

    Michael Laskey, Jonathan Lee, Roy Fox, Anca Dragan, Ken Goldberg · 2017 · CoRL 2017

    החלופה הכנה: במקום לתקן את ה-policy באופן מקוון, מפריעים להדגמות כך שהמומחה יראה התאוששות. שווה להכיר לפני שמתחייבים להתערבויות.

  6. 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 יושבת ביניהן.

  7. 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 הוא הסיבה שזרוע זולה יכולה בכלל להיות מופעלת על ידי policy של imitation, ו-ACT היא ה-policy המהירה ביותר לאיטרציה של סבב DAgger.

  8. π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 שבנוי על מודל vision-language מאומן מראש, ואחד ה-checkpoints שאפשר לעשות להם fine-tuning כאן; המאמר מפורש בכך שיכולות חדשות מגיעות מ-fine-tuning, לא מהמודל הבסיסי לבדו.

שאלות שבאמת שואלים

האם צריך leader arm בשביל DAgger?

לא. בוחרים קלט מקלדת או סליידרים בתחילת הריצה, וההשתלטות ידנית מהפריים הראשון, מופעלת מהדפדפן. leader arm נעים יותר לתנועה עדינה, וזה המצב שבו הזרוע מיישרת את עצמה לפני המסירה, אבל הלולאה רצה גם בלעדיו.

כמה סבבי DAgger צריך?

אין מספר קבוע והוגן. עוקבים אחרי שיעור ההתערבות: אם הוא לא יורד מסבב לסבב, הסבב הזה לא הביא כלום, והבעיה בדרך כלל היא הגדרת המשימה, המצלמות, או מערך הנתונים המקורי, ולא מספר הסבבים.

זה DAgger אמיתי או משהו רופף יותר?

זה HG-DAgger, הגרסה בשליטת אדם. DAgger קלאסי שואל את המומחה על מצבים שה-policy בחרה, כולל מצבים שאף מפעיל שפוי לא היה נותן לזרוע אמיתית להגיע אליהם. כאן אדם מחליט מתי להתערב, ורק הקטעים האלה הופכים לתוויות.

מאמנים רק על התיקונים?

לא, וגם לא כדאי. אימון על תיקונים בלבד נותן policy שיודעת רק להתאושש. מערך הנתונים המורכב הוא הנתונים המקוריים בתוספת התיקונים, עם פרקים מכל מקור נבחרים במפורש.

האם המשך מ-checkpoint מחדש את ריצת האימון?

זה מאתחל את המשקלים מאותו checkpoint. מצב האופטימייזר לא משוחזר, כך שבמובן המחמיר זה לא resume. בפועל המשקלים הם מה שנושא את ההתנהגות הנלמדת בין סבבים, אבל שווה לדעת איזה משני הדברים מקבלים.

איך מחשבים את שיעור ההתערבות?

פריימים שסומנו כהתערבות חלקי סך הפריימים של הריצה. הוא מוצג בסטטוס ההשתלטות, וזה המספר היחיד ששווה לרשום לכל סבב לצד ה-checkpoint שהרצתם והתמהיל שאימנתם.

עם אילו policies אפשר להריץ את הלולאה הזו?

ACT, SmolVLA, Pi0, וגם GR00T N1.5 או N1.7. הלולאה עצמה אדישה ל-policy כי היא רק מייצרת מערכי נתונים ו-checkpoints; ההבדל בפועל הוא כמה זמן סבב לוקח ואיזה GPU הוא צריך.

אפשר לעשות את זה בלי להחזיק רובוט משלי?

להקליט ולאמן אפשר בלי רובוט, על ידי קניית מערכי נתונים בשוק או הזמנת מפעילים, ואפשר להפעיל SO-100 אמיתי בדפדפן בעמוד ה-live. סבב DAgger זה משהו אחר: הוא צריך זרוע שאפשר להשתלט עליה באמצע ריצה, אז ללולאה עצמה כדאי שתהיה חומרה על השולחן שלכם.

Drive a real arm

A real SO-100, live in the browser. No signup, no hardware needed.

להריץ את הסבב הראשון השבוע

מתקינים את הלקוח, מפעילים checkpoint שכבר יש לכם, ומשתלטים בפעם הראשונה שהזרוע מפספסת את הקובייה. הריצה הבודדת הזו היא סבב DAgger בזעיר אנפין: כל מה שאחריה זה הרכבת התמהיל ותשלום על שעות ה-GPU.