מה בעצם למידה חיקוי עושה

לפני הפעלת פקודת האימון, הקדישו שתי דקות כדי להבין מה בעצם המודל לומד. למידת חיקוי מכשירה רשת מדיניות למפות תצפיות (תמונות מצלמה + מצב משותף נוכחי) לפעולות (זוויות משותף הבאות). הרשת אף פעם לא מקבלת אות תגמול - היא רואה רק את ההדגמות שלך ולומדת לשחזר את התפלגות הפעולות שביצעת במצבים דומים.

ACT (Action Chunking with Transformers) מנבא א נֶתַח של 100 פעולות עתידיות בבת אחת ולא בצעד בודד. זה מונע הצטברות שגיאות לאורך הפרק: גם אם חיזוי בודד פגום מעט, הנתח מספק מאגר מסלול יציב. לאחר מכן הוא מתכנן מחדש כל 100 שלבי זמן (2 שניות ב-50Hz). זו הסיבה ש-ACT מטפל במשימות ארוכות יותר טוב יותר משיבוט התנהגות רגיל.

לרקע התיאורטי המלא, קרא יסודות למידת חיקוי בספריית הרובוטיקה.

GPU או CPU?

אימון על NVIDIA GPU עם 8GB+ VRAM לוקח בערך 45 דקות עבור 100,000 צעדים. אימון במעבד לוקח 3-4 שעות לאותה ריצה. שניהם מייצרים איכות דגם מקבילה - GPU פשוט מהיר יותר. אם אין לך GPU מקומי, פקודת האימון פועלת באופן זהה על מופע ענן (Lambda Labs או Google Colab עם זמן ריצה A100). ההוראות נמצאות ב-README של ריפו של LeRobot.

אימון ACT על מערך הנתונים שלך

הפעל את סקריפט ההדרכה מהסביבה הוירטואלית שלך. ערכי התצורה שלהלן מכוילים עבור מערכי נתונים של בחירה-ומקום של 50 פרקים ב-OpenArm - אל תשנה אותם בהפעלה הראשונה שלך:

מקור ~/openarm-env/bin/activate python -m lerobot.scripts.train \ --dataset-path ~/openarm-datasets/pick-and-place \ --חוק מדיניות \ --גודל אצווה 8 \ --lr 1e-5 \ --num-רכבת-צעדים 100000 \ --eval-freq 5000 \ --תדירות שמירה 10000 \ --log-freq 500 \ --output-dir ~/openarm-policies/pick-and-place-v1 # Training will print loss every 500 steps and eval results every 5000 steps # Checkpoints saved every 10k steps to ~/openarm-policies/pick-and-place-v1/

התחל אימון, ולאחר מכן עקוב אחר הפלט. אתה לא צריך לצפות בו כל הזמן - אבל בדוק שוב כל 20-30 דקות כדי לוודא שההפסד פוחת והריצה לא קרסה. האימון יכול לרוץ בן לילה בזמן שאתה ישן.

הבנת עקומות אימון

תפוקת ההדרכה של ACT מציגה שני מדדי מפתח. למד לקרוא אותם נכון - הם אומרים לך אם האימונים שלך בריאים ומתי להפסיק.

אובדן אימון

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

Eval שיעור הצלחה

מופיע כל 5k צעדים (דורש זרוע פיזית או סים). זה המספר שחשוב למעשה. אתה רוצה את זה מעל 70% לפני הפריסה. לעתים קרובות זה מפגר אחרי אובדן האימון - ההפסד יכול להיראות טוב בזמן ששיעור ההצלחה עדיין משתפר.

פעולה MSE

שגיאה ממוצעת בריבוע בין פעולות חזויות לפעולות אמת. צריך לרדת מתחת ל-0.01 עבור מדיניות בחירה ומקום מיומנת היטב. MSE עם פעולה גבוהה לאחר 80,000 שלבים פירושה שהמודל נאבק במורכבות המשימה או שהנתונים שלך אינם עקביים.

KL divergence (ספציפי לACT)

ACT משתמשת ב- CVAE עם משקל KL שמתחכך מ-0 ל-10 במהלך האימון. שימו לב לייצוב זה בסביבות שלב 40k. אם הוא אף פעם לא מתכנס, המודל לא מצליח לקודד סגנון - נסה להוסיף נתונים נוספים.

מתי להפסיק את האימון

לא פשוט לרוץ ל-100 אלף צעדים ולעצור. השתמש באותות אלה כדי להחליט מתי המחסום שלך מוכן לפריסה:

  • שיעור ההצלחה של Eval הגיע לרמה של 3 הערכות רצופות - המודל התכנס. הכשרה נוספת לא תעזור ללא נתונים נוספים או שונים.
  • שיעור ההצלחה של Eval הוא מעל 70% - זהו הסף לפריסת יחידה 6. אם תגיע ל-70% ב-60 אלף צעדים, תוכל לעצור מוקדם ולפרוס את המחסום הזה.
  • אובדן האימון עדיין יורד אך ההחלמה שטוחה או יורדת - הדגם מתאים מדי. קחו את המחסום האחרון שבו eval הייתה בשיאה. זה המחסום הטוב ביותר.
  • לאחר 100 אלף צעדים - אם שיעור ההצלחה נמוך מ-40%, חזור ליחידה 4. בעיית הנתונים היא בסבירות גבוהה יותר מאשר בעיית אימון בשלב זה.
צלילות עמוקות אופציונליות

מעבר ל-ACT - מדיניות דיפוזיה ו-π₀

ברגע שיש לך מדיניות ACT עובדת, הניסוי הבא הטבעי הוא Diffusion Policy. הוא מתמודד טוב יותר עם משימות רב-מודאליות (למשל, הזרוע יכולה להתקרב לאובייקט משתי זוויות) במחיר של הסקה איטית יותר. מדור המחקר של SVRC מכסה את שניהם. עיין במאמרי מחקר →

יחידה 5 השלם כאשר...

האימון הסתיים (או שהפסקת אותו במחסום טוב). שיעור ההצלחה שלך הוא מעל 70% במשימת הבחירה והמקום. יש לך מחסום שמור ב ~/openarm-policies/pick-and-place-v1/ ואתה יודע איזה מספר צעד הניב את התוצאה הטובה ביותר שלך. אתה מוכן לשים את המדיניות הזו על הזרוע האמיתית ביחידה 6.