- נתוני האימון מועברים בסטרימינג למשימת האימון במקום להורדה לרפליקות, מה שיכול להאיץ את טעינת הנתונים ואת משימות ההגדרה כשהמשימה מתחילה לפעול.
- משימות אימון יכולות לטפל בקלט ופלט בהיקף גדול בלי לבצע קריאות ל-API, לטפל בתשובות או לבצע שילוב עם ספריות בצד הלקוח.
- Cloud Storage FUSE מספק תפוקה גבוהה לקריאות סדרתיות של קבצים גדולים ולתרחישי אימון מבוזרים.
תרחישים לדוגמה
מומלץ להשתמש ב-Cloud Storage לאחסון נתוני אימון במצבים הבאים:
- נתוני האימון הם נתונים לא מובְנים, כמו תמונות, טקסט וסרטונים.
- נתוני האימון הם נתונים מובנים בפורמט כמו TFRecord.
- נתוני האימון מכילים קבצים גדולים, כמו סרטון גולמי.
- אתם משתמשים באימון מבוזר.
איך זה עובד
משימות אימון בלי שרת (serverless) יכולות לגשת לקטגוריות של Cloud Storage כספריות משנה של ספריית הבסיס /gcs. לדוגמה, אם נתוני האימון שלכם נמצאים ב-gs://example-bucket/data.csv, תוכלו לקרוא ולכתוב ל-bucket מאפליקציית האימון שלכם ב-Python באופן הבא:
קריאה מהמאגר
with open('/gcs/example-bucket/data.csv', 'r') as f:
lines = f.readlines()
כתיבה לקטגוריה
with open('/gcs/example-bucket/epoch3.log', 'a') as f:
f.write('success!\n')
הרשאות גישה לקטגוריות
כברירת מחדל, משימת אימון בלי שרת (serverless) יכולה לגשת לכל קטגוריה של Cloud Storage באותו פרויקט באמצעות הסוכן של Vertex AI Custom Code Service. Google Cloud כדי לשלוט בגישה לדליים, אפשר להקצות חשבון שירות בהתאמה אישית לעבודת ה-Job. במקרה הזה, הגישה לקטגוריה של Cloud Storage ניתנת על סמך ההרשאות שמשויכות לתפקידים של Cloud Storage בחשבון השירות המותאם אישית.
לדוגמה, אם רוצים לתת לעבודת ההדרכה בלי שרת (serverless) גישת קריאה וכתיבה לקטגוריה א', אבל רק גישת קריאה לקטגוריה ב', אפשר להקצות לעבודה חשבון שירות בהתאמה אישית עם התפקידים הבאים:
-
roles/storage.objectAdminעבור Bucket-A -
roles/storage.objectViewerBucket-B
אם עבודת האימון מנסה לכתוב ל-Bucket-B, מוחזרת שגיאה מסוג 'אין הרשאה'.
מידע נוסף על תפקידים ב-Cloud Storage זמין במאמר תפקידי IAM ל-Cloud Storage.
שיטות מומלצות
- מומלץ להימנע משינוי שמות של ספריות. פעולת שינוי שם היא לא אטומית ב-Cloud Storage FUSE. אם הפעולה נקטעת, חלק מהקבצים נשארים בספרייה הישנה.
- מומלץ להימנע מסגירה (
close()) או מריקון (flush()) של קבצים שלא לצורך. סגירה או ריקון של קבצים מעבירים את הקובץ ל-Cloud Storage, וזה כרוך בעלות.
הנחיות לאופטימיזציה של הביצועים
כדי להשיג תפוקת קריאה אופטימלית כשמשתמשים ב-Cloud Storage כמערכת קבצים, מומלץ ליישם את ההנחיות הבאות:
- כדי לצמצם את זמן האחזור שנוצר כתוצאה מחיפוש ופתיחה של אובייקטים בדלי, כדאי לאחסן את הנתונים בקבצים גדולים יותר ובפחות קבצים.
- כדי למקסם את ניצול רוחב הפס, מומלץ להשתמש באימון מבוזר.
- כדי לשפר את ביצועי הקריאה, כדאי לשמור במטמון קבצים שמתבצעת אליהם גישה לעיתים קרובות. פרטים נוספים זמינים במאמר סקירה כללית על שמירה במטמון ב-Cloud Storage FUSE.
- שימוש באחסון מקומי לנקודות ביקורת וליומנים במקום ב-Cloud Storage.
מגבלות
מידע על המגבלות של Cloud Storage FUSE, כולל ההבדלים בינו לבין מערכות הקבצים של POSIX, מופיע במאמר המגבלות של Cloud Storage FUSE וההבדלים בינו לבין מערכות הקבצים של POSIX.
שימוש ב-Cloud Storage FUSE
כדי להשתמש ב-Cloud Storage FUSE לאימון בלי שרת (serverless), מבצעים את הפעולות הבאות:
- יצירת קטגוריה של Cloud Storage שימו לב שאי אפשר להשתמש בקטגוריות שנמצאות בשני אזורים או בכמה אזורים לאימון ללא שרת.
מעלים את נתוני האימון לקטגוריה. פרטים נוספים זמינים במאמר בנושא העלאות.
במאמר אפשרויות להעברת נתונים מוסבר על אפשרויות נוספות להעברת נתונים ל-Cloud Storage.
המאמרים הבאים
- למסמכי העזרה של Cloud Storage FUSE
- מידע על התמחור של Cloud Storage FUSE
- הכנת אפליקציית האימון לשימוש ב-Vertex AI.