קונטיינר בהתאמה אישית הוא קובץ אימג' של Docker שאתם יוצרים כדי להריץ את אפליקציית האימון. כשמריצים את משימת האימון של למידת מכונה (ML) בקונטיינר בהתאמה אישית, אפשר להשתמש במסגרות ML, בתלות שאינה ML, בספריות ובקבצים בינאריים שלא נתמכים ב-Agent Platform.
איך האימון עם קונטיינרים עובד
אפליקציית האימון, שמיושמת במסגרת למידת המכונה שבחרתם, היא הליבה של תהליך האימון.
יוצרים אפליקציה שמאמנת את המודל באמצעות מסגרת למידת המכונה שבחרתם.
מחליטים אם להשתמש בקונטיינר בהתאמה אישית. יכול להיות שיש קונטיינר מוכן מראש שכבר תומך בתלות שלכם. אחרת, תצטרכו ליצור קונטיינר בהתאמה אישית למשימת האימון. במאגר התגים המותאם אישית, מתקינים מראש את אפליקציית האימון ואת כל התלות שלה בתמונה שמשמשת להפעלת משימת האימון.
מאחסנים את נתוני האימון והאימות במקור שאפשר לגשת אליו מ-Agent Platform. כדי לפשט את האימות ולצמצם את זמן האחזור, כדאי לאחסן את הנתונים ב-Cloud Storage, ב-Bigtable או בGoogle Cloud שירות אחסון אחר באותו Google Cloud פרויקט ובאותו אזור שבהם אתם משתמשים ב-Agent Platform. מידע נוסף על הדרכים שבהן Agent Platform יכולה לטעון את הנתונים שלכם
כשהאפליקציה מוכנה להרצה, צריך ליצור את קובץ האימג' של Docker ולהעביר אותו בדחיפה ל-Artifact Registry או ל-Docker Hub, ולוודא של-Agent Platform יש גישה למאגר שלכם.
שולחים את משימת האימון ללא שרת על ידי יצירת משימה בהתאמה אישית או יצירת צינור אימון ללא שרת.
פלטפורמת הסוכנים מגדירה משאבים לעבודה. היא מקצה מכונה וירטואלית אחת או יותר (שנקראות training instances) על סמך הגדרת העבודה. מגדירים training instance באמצעות קונטיינר בהתאמה אישית שמציינים כחלק מאובייקט
WorkerPoolSpecכששולחים את עבודת האימון ללא שרת.Agent Platform מריצה את קובץ האימג' של Docker, ומעבירה את כל הארגומנטים של שורת הפקודה שציינתם כשאתם יוצרים את משימת האימון.
אם משימת האימון מצליחה או נתקלת בשגיאה שלא ניתן לתקן, Agent Platform מפסיק את כל תהליכי המשימה ומנקה את המשאבים.
היתרונות של מאגרי תגים בהתאמה אישית
מאגרי תגים בהתאמה אישית מאפשרים לכם לציין ולהתקין מראש את כל התלויות שנדרשות לאפליקציה שלכם.
- זמן הפעלה מהיר יותר. אם אתם משתמשים בקונטיינר מותאם אישית עם יחסי התלות שהותקנו מראש, אתם יכולים לחסוך את הזמן שנדרש לאפליקציית האימון להתקין יחסי תלות כשהיא מופעלת.
- משתמשים במסגרת למידת מכונה לפי בחירה. אם לא מצאתם קונטיינר מוכן מראש של Agent Platform עם מסגרת ה-ML שבה אתם רוצים להשתמש, אתם יכולים ליצור קונטיינר בהתאמה אישית עם המסגרת שבחרתם ולהשתמש בו כדי להריץ משימות ב-Agent Platform. לדוגמה, אפשר להשתמש בקונטיינר של לקוח כדי להתאמן עם PyTorch.
- תמיכה מורחבת באימון מבוזר. באמצעות קונטיינרים מותאמים אישית, אתם יכולים לבצע אימון מבוזר באמצעות כל framework של ML.
- משתמשים בגרסה הכי חדשה. אפשר גם להשתמש בגרסה העדכנית ביותר של framework ל-ML. לדוגמה, אפשר ליצור קונטיינר בהתאמה אישית כדי להתאמן עם
tf-nightly.
כוונון היפר-פרמטרים באמצעות קונטיינרים בהתאמה אישית
כדי לבצע כוונון היפר-פרמטרים ב-Agent Platform, צריך לציין מדדי יעדים, וגם אם רוצים למזער או למקסם כל מדד. לדוגמה, יכול להיות שתרצו למקסם את הדיוק של המודל או למזער את אובדן המודל. מציינים גם את ההיפר-פרמטרים שרוצים לבצע להם כוונון, יחד עם טווח הערכים הקבילים לכל היפר-פרמטר. Agent Platform מבצעת כמה ניסיונות של אפליקציית האימון, ועוקבת אחרי ההיפרפרמטרים ומשנה אותם אחרי כל ניסיון. כשמשימת האופטימיזציה של ההיפרפרמטרים מסתיימת, Agent Platform מדווח על הערכים של ההגדרה הכי יעילה של ההיפרפרמטרים, ועל סיכום של כל ניסיון.
כדי לבצע כוונון היפר-פרמטרים באמצעות קונטיינרים מותאמים אישית, צריך לבצע את השינויים הבאים:
- בקובץ Dockerfile: מתקינים את
cloudml-hypertune. - בקוד האימון:
- כדי לדווח על התוצאות של כל ניסיון, משתמשים ב-
cloudml-hypertuneכדי לקרוא לפונקציית העזר שלו,report_hyperparameter_tuning_metric. - מוסיפים ארגומנטים של שורת פקודה לכל היפרפרמטר, ומטפלים בניתוח הארגומנט באמצעות כלי לניתוח ארגומנטים כמו
argparse.
- כדי לדווח על התוצאות של כל ניסיון, משתמשים ב-
איך מגדירים משימת כוונון של היפר-פרמטרים שמשתמשת בקונטיינרים בהתאמה אישית או איך פועל כוונון של היפר-פרמטרים ב-Agent Platform
יחידות GPU במאגרי תגים מותאמים אישית
כדי לבצע אימון באמצעות GPU, הקונטיינר המותאם אישית צריך לעמוד בכמה דרישות מיוחדות. צריך ליצור קובץ אימג' של Docker שונה מזו שמשמשת לאימון באמצעות CPU.
- צריך להתקין מראש את CUDA toolkit ו-cuDNN בקובץ אימג' של Docker. הדרך המומלצת ליצור קונטיינר בהתאמה אישית עם תמיכה ב-GPU היא להשתמש בתמונת
nvidia/cudaכקובץ אימג' הבסיס של הקונטיינר המותאם אישית. בקובץ אימג' של קונטיינרnvidia/cudaמותקנות מראש גרסאות תואמות של CUDA toolkit ו-cuDNN, והיא עוזרת להגדיר נכון את משתני הסביבה הקשורים. - מתקינים את אפליקציית ההדרכה, יחד עם מסגרת למידת המכונה הנדרשת ותלות אחרת בקובץ האימג' של Docker.
דוגמה לקובץ Dockerfile לאימון עם מעבדי GPU