מטב את ביצועי הציוד עם נתונים היסטוריים, Ray ו-Amazon SageMaker | שירותי האינטרנט של אמזון

מטב את ביצועי הציוד עם נתונים היסטוריים, Ray ו-Amazon SageMaker | שירותי האינטרנט של אמזון

מדיניות בקרה יעילה מאפשרת לחברות תעשייתיות להגדיל את הרווחיות שלהן על ידי מיקסום הפרודוקטיביות תוך צמצום זמני השבתה לא מתוכננים וצריכת אנרגיה. מציאת מדיניות בקרה אופטימלית היא משימה מורכבת מכיוון שמערכות פיזיקליות, כגון כורים כימיים וטורבינות רוח, קשות לרוב למודל ומכיוון שהסחף בדינמיקה של התהליך עלולה לגרום להידרדרות הביצועים לאורך זמן. למידת חיזוק לא מקוון היא אסטרטגיית בקרה המאפשרת לחברות תעשייתיות לבנות מדיניות בקרה כולה מנתונים היסטוריים ללא צורך במודל תהליך מפורש. גישה זו אינה מצריכה אינטראקציה עם התהליך ישירות בשלב חקר, מה שמסיר את אחד החסמים לאימוץ למידת חיזוק ביישומים קריטיים לבטיחות. בפוסט זה, נבנה פתרון מקצה לקצה כדי למצוא מדיניות בקרה אופטימלית תוך שימוש בנתונים היסטוריים בלבד אמזון SageMaker באמצעות Ray's RLlib סִפְרִיָה. למידע נוסף על למידת חיזוק, ראה השתמש ב-Reforcement Learning עם Amazon SageMaker.

מקרי שימוש

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

למידת חיזוק הופיעה כפרדיגמה חדשה בבקרת תהליכים ללימוד מדיניות בקרה מיטבית באמצעות אינטראקציה עם הסביבה. תהליך זה דורש פירוק נתונים לשלוש קטגוריות: 1) מדידות זמינות מהמערכת הפיזית, 2) מערך הפעולות שניתן לבצע על המערכת, ו-3) מדד מספרי (תגמול) של ביצועי הציוד. מדיניות מאומנת למצוא את הפעולה, בתצפית נתונה, שצפויה להניב את התגמולים העתידיים הגבוהים ביותר.

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

סקירת פתרונות

הפתרון המוצג בפוסט זה הופך את הפריסה של זרימת עבודה מקצה לקצה ללמידת חיזוק לא מקוון עם נתונים היסטוריים. התרשים הבא מתאר את הארכיטקטורה המשמשת בזרימת עבודה זו. נתוני המדידה מופקים בקצה על ידי ציוד תעשייתי (כאן מדומה על ידי א AWS למבדה פוּנקצִיָה). הנתונים מוכנסים לתוך אמזון קינסי Data Firehose, המאחסנת אותו שירות אחסון פשוט של אמזון (אמזון S3). Amazon S3 הוא פתרון אחסון עמיד, בעל ביצועים ובעלות נמוכה, המאפשר לך להגיש כמויות גדולות של נתונים לתהליך אימון למידת מכונה.

דבק AWS מקטלג את הנתונים והופך אותם לניתנים לשאילתות באמצעות אמזונה אתנה. אתנה הופכת את נתוני המדידה לצורה שאלגוריתם למידת חיזוק יכול לקלוט ואז פורקת אותם בחזרה לאמזון S3. Amazon SageMaker טוענת את הנתונים הללו לעבודת הדרכה ומייצרת מודל מאומן. SageMaker משרתת את הדגם הזה בנקודת קצה של SageMaker. הציוד התעשייתי יכול לאחר מכן לבצע שאילתות בנקודת הקצה הזו כדי לקבל המלצות לפעולה.

איור 1: תרשים ארכיטקטורה המציג את זרימת העבודה של למידה מקצה לקצה.

איור 1: תרשים ארכיטקטורה המציג את זרימת העבודה של למידה מקצה לקצה.

בפוסט זה, נפרק את זרימת העבודה בשלבים הבאים:

  1. נסח את הבעיה. החליטו אילו פעולות ניתן לבצע, על אילו מדידות להציע המלצות, וקבעו באופן מספרי עד כמה כל פעולה בוצעה.
  2. הכן את הנתונים. הפוך את טבלת המדידות לפורמט שאלגוריתם למידת מכונה יכול לצרוך.
  3. אמן את האלגוריתם על הנתונים האלה.
  4. בחר את ריצת האימון הטובה ביותר על סמך מדדי אימון.
  5. פרוס את המודל לנקודת קצה של SageMaker.
  6. הערכת ביצועי הדגם בייצור.

תנאים מוקדמים

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

  1. הורד את מאגר הקודים עם הפקודה
    git clone https://github.com/aws-samples/sagemaker-offline-reinforcement-learning-ray-cql

  2. שנה את הספרייה למאגר:
    cd sagemaker-offline-reinforcement-learning-ray-cql

  3. בנה את המאגר:
    sam build --use-container

  4. פרוס את המאגר
    sam deploy --guided --capabilities CAPABILITY_IAM CAPABILITY_AUTO_EXPAND

  5. השתמש בפקודות הבאות כדי לקרוא לסקריפט bash, שיוצר נתונים מדומים באמצעות פונקציית AWS Lambda.
    1. sudo yum install jq
    2. cd utils
    3. sh generate_mock_data.sh

דרך פיתרון

נסח בעיה

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

הטבלה הבאה מציגה נתונים היסטוריים שנאספו מהמערכת.

מיקום העגלה מהירות העגלה זווית מוט מהירות זוויתית של קוטב עמדת המטרה כח חיצוני לגמול זְמַן
0.53 -0.79 -0.08 0.16 0.50 -0.04 11.5 5:37:54
0.51 -0.82 -0.07 0.17 0.50 -0.04 11.9 5:37:55
0.50 -0.84 -0.07 0.18 0.50 -0.03 12.2 5:37:56
0.48 -0.85 -0.07 0.18 0.50 -0.03 10.5 5:37:57
0.46 -0.87 -0.06 0.19 0.50 -0.03 10.3 5:37:58

אתה יכול לשאול מידע היסטורי על המערכת באמצעות Amazon Athena עם השאילתה הבאה:

SELECT *
FROM "AWS CloudFormation Stack Name_glue_db"."measurements_table"
ORDER BY episode_id, epoch_time ASC
limit 10;

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

הכן נתונים

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

{“obs”:[[0.53,-0.79,-0.08,0.16,0.5]], “action”:[[-0.04]], “reward”:[11.5] ,”next_obs”:[[0.51,-0.82,-0.07,0.17,0.5]]}

{“obs”:[[0.51,-0.82,-0.07,0.17,0.5]], “action”:[[-0.04]], “reward”:[11.9], “next_obs”:[[0.50,-0.84,-0.07,0.18,0.5]]}

{“obs”:[[0.50,-0.84,-0.07,0.18,0.5]], “action”:[[-0.03]], “reward”:[12.2], “next_obs”:[[0.48,-0.85,-0.07,0.18,0.5]]}

מחסנית AWS CloudFormation מכילה פלט שנקרא AthenaQueryToCreateJsonFormatedData. הפעל את השאילתה הזו באמזון אתנה כדי לבצע את השינוי ולאחסן את אובייקטי ה-JSON ב-Amazon S3. אלגוריתם למידת החיזוק משתמש במבנה של אובייקטי JSON אלה כדי להבין על אילו ערכים לבסס המלצות ואת התוצאה של נקיטת פעולות בנתונים ההיסטוריים.

סוכן רכבת

כעת נוכל להתחיל בעבודת הדרכה להפקת מודל המלצה לפעולה מאומן. Amazon SageMaker מאפשר לך להשיק במהירות מספר עבודות הדרכה כדי לראות כיצד תצורות שונות משפיעות על המודל המאומן המתקבל. קרא לפונקציית Lambda בשם TuningJobLauncherFunction להתחיל עבודת כוונון היפרפרמטרים שמתנסה בארבע קבוצות שונות של היפרפרמטרים בעת אימון האלגוריתם.

בחר את ריצת האימון הטובה ביותר

כדי למצוא איזו מעבודות ההכשרה יצרה את המודל הטוב ביותר, בחן עקומות הפסד שנוצרו במהלך האימון. מודל המבקרים של CQL מעריך את הביצועים של השחקן (הנקרא ערך Q) לאחר ביצוע פעולה מומלצת. חלק מפונקציית ההפסד של המבקר כולל את שגיאת ההפרש הזמני. מדד זה מודד את דיוק ערך ה-Q של המבקר. חפש ריצות אימון עם ערך Q ממוצע גבוה ושגיאת הפרש זמני נמוך. הדף הזה, זרימת עבודה ללימוד חיזוק רובוטי ללא מודלים מקוונים, פירוט כיצד לבחור את ריצת האימון הטובה ביותר. למאגר הקוד יש קובץ, /utils/investigate_training.py, שיוצרת דמות HTML עלילתית המתארת ​​את עבודת ההדרכה האחרונה. הפעל את הקובץ הזה והשתמש בפלט כדי לבחור את ריצת האימון הטובה ביותר.

אנו יכולים להשתמש בערך Q הממוצע כדי לחזות את הביצועים של המודל המאומן. ערכי ה-Q מאומנים לחזות באופן שמרני את הסכום של ערכי תגמול עתידיים מוזלים. עבור תהליכים ארוכי טווח, אנו יכולים להמיר את המספר הזה לממוצע משוקלל אקספוננציאלי על ידי הכפלת ערך ה-Q ב-(1-"שיעור הנחה"). ריצת האימונים הטובה ביותר בקבוצה הזו השיגה ערך Q ממוצע של 539. שיעור ההנחה שלנו הוא 0.99, כך שהמודל חוזה לפחות 5.39 תגמול ממוצע לכל צעד זמן. אתה יכול להשוות ערך זה לביצועי מערכת היסטוריים כדי לקבל אינדיקציה אם המודל החדש ישיג ביצועים טובים יותר ממדיניות הבקרה ההיסטורית. בניסוי זה, התגמול הממוצע של הנתונים ההיסטוריים לצעד זמן היה 4.3, כך שמודל ה-CQL חוזה ביצועים טובים ב-25 אחוזים מהמערכת שהושגה היסטורית.

מודל פריסה

נקודות הקצה של Amazon SageMaker מאפשרות לך לשרת מודלים של למידת מכונה בכמה דרכים שונות כדי לעמוד במגוון מקרי שימוש. בפוסט זה, נשתמש בסוג נקודת הקצה ללא שרת כך שנקודת הקצה שלנו תתאים אוטומטית לפי הביקוש, ואנו משלמים עבור שימוש במחשב רק כאשר נקודת הקצה מייצרת הסקה. כדי לפרוס נקודת קצה ללא שרת, כלול א ProductionVariantServerlessConfig ב וריאנט ייצור של SageMaker תצורת נקודת הקצה. קטע הקוד הבא מציג כיצד נקודת הקצה ללא שרת בדוגמה זו נפרסת באמצעות ערכת פיתוח התוכנה Amazon SageMaker עבור Python. מצא את הקוד לדוגמה המשמש לפריסת המודל ב sagemaker-offline-inforcement-learning-ray-cql.

predictor = model.deploy( serverless_inference_config=ServerlessInferenceConfig( memory_size_in_mb=2048, max_concurrency=200 ), <…>
)

קבצי המודל המאומן ממוקמים בחפצי דגם S3 עבור כל ריצת אימון. כדי לפרוס את מודל למידת המכונה, אתר את קובצי המודל של ריצת האימון הטובה ביותר, וקרא לפונקציית Lambda בשם "ModelDeployerFunction" עם אירוע שמכיל את נתוני המודל הזה. פונקציית Lambda תשיק נקודת קצה ללא שרת של SageMaker שתשרת את הדגם המאומן. אירוע לדוגמה לשימוש בעת התקשרות ל"ModelDeployerFunction"

{ "DescribeTrainingJob": { "ModelArtifacts": { "S3ModelArtifacts": "s3://your-bucket/training/my-training-job/output/model.tar.gz"} } }

הערכת ביצועי מודל מאומן

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

{"random_action_fraction": 0.0, "inference_endpoint_name": "sagemaker-endpoint-name"}

השתמש בשאילתת Athena הבאה כדי להשוות את הביצועים של המודל המאומן עם ביצועי המערכת ההיסטוריים.

WITH sum_reward_by_episode AS ( SELECT SUM(reward) as sum_reward, m_temp.action_source FROM "<AWS CloudFormation Stack Name>_glue_db"."measurements_table" m_temp GROUP BY m_temp.episode_id, m_temp.action_source ) SELECT sre.action_source, AVG(sre.sum_reward) as avg_total_reward_per_episode
FROM sum_reward_by_episode sre
GROUP BY sre.action_source
ORDER BY avg_total_reward_per_episode DESC

להלן טבלת תוצאות לדוגמה. אנו רואים שהמודל המאומן השיג פרס פי 2.5 יותר מהנתונים ההיסטוריים! בנוסף, הביצועים האמיתיים של המודל היו טובים פי 2 מתחזית הביצועים השמרנית.

מקור פעולה תגמול ממוצע לכל שלב בזמן
trained_model 10.8
historic_data 4.3

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

מטב את ביצועי הציוד עם נתונים היסטוריים, Ray ו-Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. חיפוש אנכי. איי. מטב את ביצועי הציוד עם נתונים היסטוריים, Ray ו-Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

 לנקות את

כדי למחוק משאבים המשמשים בזרימת עבודה זו, נווט אל קטע המשאבים של מחסנית Amazon CloudFormation ומחק את דלי S3 ואת תפקידי IAM. לאחר מכן מחק את ערימת CloudFormation עצמה.

סיכום

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

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


על הכותבים

מטב את ביצועי הציוד עם נתונים היסטוריים, Ray ו-Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.וולט מייפילד הוא אדריכל פתרונות ב-AWS ומסייע לחברות אנרגיה לפעול בצורה בטוחה ויעילה יותר. לפני שהצטרף ל-AWS, וולט עבד כמהנדס תפעול בחברת Hilcorp Energy. הוא אוהב לגן ולעוף דגים בזמנו הפנוי.

מטב את ביצועי הציוד עם נתונים היסטוריים, Ray ו-Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.פליפה לופז הוא אדריכל פתרונות בכיר ב-AWS עם ריכוז בפעילות הפקת נפט וגז. לפני שהצטרף ל-AWS, פליפה עבד עם GE Digital ושלומברגר, שם התמקד ביצירת מודלים ואופטימיזציה של מוצרי יישומים תעשייתיים.

מטב את ביצועי הציוד עם נתונים היסטוריים, Ray ו-Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.ינגוויי יו הוא מדען יישומי בחממת AI Generative, AWS. יש לו ניסיון בעבודה עם מספר ארגונים בתעשיות על הוכחות שונות למושג למידת מכונה, כולל עיבוד שפה טבעית, ניתוח סדרות זמן ותחזוקה חזויה. בזמנו הפנוי הוא נהנה לשחות, לצייר, לטייל ולבלות עם המשפחה והחברים.

מטב את ביצועי הציוד עם נתונים היסטוריים, Ray ו-Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.האוז'ו וואנג הוא מדען מחקר ב- Amazon Bedrock המתמקד בבניית מודלים של בסיס טיטאן של אמזון. בעבר הוא עבד ב-Amazon ML Solutions Lab כמוביל משותף של Reinforcement Learning Vertical ועזר ללקוחות לבנות פתרונות ML מתקדמים עם המחקר העדכני ביותר על למידת חיזוק, עיבוד שפה טבעית ולמידת גרפים. האוז'ו קיבל את הדוקטורט שלו בהנדסת חשמל ומחשבים מאוניברסיטת מישיגן.

בול זמן:

עוד מ למידת מכונות AWS