אתם יכולים להגדיר את משימות האימון ללא שרת (serverless) כך שיטענו את השיתופים של מערכת קובצי הרשת (NFS) לקונטיינר שבו הקוד פועל. כך המשימות יכולות לגשת לקבצים מרוחקים כאילו הם מקומיים, מה שמאפשר תפוקה גבוהה וזמן אחזור נמוך.
במדריך הזה מוסבר איך לטעון שיתוף של מערכת קובצי רשת (NFS) כשמריצים משימת אימון ללא שרת (serverless).
לפני שמתחילים
יוצרים שיתוף NFS בענן וירטואלי פרטי (VPC). התיקייה המשותפת צריכה להיות נגישה בלי אימות.
אתם יכולים להשתמש בשירות NFS מנוהל של צד ראשון, כמו Filestore או Google Cloud NetApp Volumes, בתור שיתוף ה-NFS. אם אתם משתמשים ב-Filestore ומתכננים להשתמש בקישור בין רשתות VPC בשביל Gemini Enterprise Agent Platform בשלב הבא, בחרו באפשרות גישה לשירות פרטי כמצב החיבור כשאתם יוצרים מכונה. לדוגמה, ראו יצירת מכונות במסמכי התיעוד של Filestore.
כדי לחבר את Gemini Enterprise Agent Platform ל-VPC שמארח את ה-NFS ששיתפתם, פועלים לפי ההוראות במאמר שימוש בממשק Private Service Connect ב-Gemini Enterprise Agent Platform (מומלץ) או הגדרת קישור בין רשתות VPC שכנות (peering).
מידע על מערכת קובצי רשת (NFS) לאימון ללא שרת (serverless)
כשיוצרים משימת אימון ללא שרת שמחברת שיתוף NFS, צריך לציין את הפרטים הבאים:
שם הרשת שפלטפורמת הסוכנים של Gemini Enterprise יכולה לגשת אליה. הדרך שבה מציינים את שם הרשת משתנה בהתאם לסוג של משימת האימון בלי שרת (serverless). פרטים נוספים זמינים במאמר אימון ללא שרת (serverless).
הגדרת ה-NFS בשדה WorkerPoolSpec. כוללים את השדות הבאים:
שדה תיאור nfsMounts.serverכתובת ה-IP של שרת ה-NFS. הכתובת הזו חייבת להיות כתובת פרטית ב-VPC. nfsMounts.pathהנתיב של שיתוף ה-NFS. הנתיב חייב להיות מוחלט ולהתחיל ב- /.nfsMounts.mountPointנקודת הטעינה המקומית. השם צריך להיות שם תקין של ספריית UNIX. לדוגמה, אם נקודת הטעינה המקומית היא sourceData, צריך לציין את הנתיב/mnt/nfs/sourceDataממכונת ה-VM לאימון.מידע נוסף זמין במאמר איפה מציינים משאבי מחשוב.
דוגמה: יצירת משימה ייעודית באמצעות ה-CLI של gcloud
כדי ליצור אפליקציית אימון שתפעל ב-Gemini Enterprise Agent Platform, פועלים לפי השלבים במאמר יצירת אפליקציית אימון ב-Python לקונטיינר מובנה.
יוצרים קובץ בשם
config.yamlשמתאר את הגדרות הטעינה של הגדרות הממשק של PSA או Private Service Connect למשימת האימון. משתמשים באחד מהפורמטים הבאים:
ממשק Private Service Connect
כדי להשתמש בממשק Private Service Connect:
pscInterfaceConfig: network_attachment: NETWORK_ATTACHMENT_NAME workerPoolSpecs: - machineSpec: machineType: MACHINE_TYPE replicaCount: 1 pythonPackageSpec: executorImageUri: PYTHON_PACKAGE_EXECUTOR_IMAGE_URI or PRE_BUILT_CONTAINER_IMAGE_URI packageUris: - PYTHON_PACKAGE_URIS pythonModule: PYTHON_MODULE nfsMounts: - server: NFS_SERVER_IP path: NFS_SHARE_NAME mountPoint: LOCAL_FOLDERמחליפים את מה שכתוב בשדות הבאים:
NETWORK_ATTACHMENT_NAME: השם של חיבור הרשת.
MACHINE_TYPE: המזהה של סוג המכונה הווירטואלית.
PYTHON_PACKAGE_EXECUTOR_IMAGE_URI או PRE_BUILT_CONTAINER_IMAGE_URI: ה-URI של קובץ אימג' של קונטיינר ב-Artifact Registry שיריץ את חבילת Python שסופקה. בפלטפורמת Gemini Enterprise Agent יש מגוון רחב של קובצי אימג' של מפעילים עם חבילות שמותקנות מראש, כדי לתת מענה לתרחישים שונים של משתמשים.
PYTHON_PACKAGE_URIS: רשימה מופרדת בפסיקים של מזהי URI של Cloud Storage, שמציינים את קובצי חבילת Python שמרכיבים את תוכנית האימון ואת החבילות התלויות שלה. המספר המקסימלי של מזהי URI של חבילות הוא 100.
PYTHON_MODULE: השם של מודול Python שצריך להריץ אחרי התקנת החבילות.
NFS_SERVER_IP: כתובת ה-IP של שרת ה-NFS.
NFS_SHARE_NAME: הנתיב של שיתוף ה-NFS, שהוא נתיב מוחלט שמתחיל ב-
/.LOCAL_FOLDER: נקודת הטעינה המקומית (שם הספרייה ב-UNIX).
חשוב לוודא ששם הרשת בפורמט הנכון וששיתוף ה-NFS קיים ברשת שצוינה.
יוצרים את המשימה הייעודית ומעבירים את קובץ ה-
config.yamlלפרמטר--config.gcloud ai custom-jobs create \ --region=LOCATION \ --display-name=JOB_NAME \ --config=config.yamlמחליפים את מה שכתוב בשדות הבאים:
LOCATION: האזור שבו רוצים ליצור את המשימה.
JOB_NAME: שם למשימה ייעודית.
קישור בין רשתות VPC שכנות (peering)
אם רוצים שהמשימה תשתמש ב-VPC Peering או ב-PSA, צריך להשתמש ב-VPC Peering.
network: projects/PROJECT_NUMBER/global/networks/NETWORK_NAME workerPoolSpecs: - machineSpec: machineType: MACHINE_TYPE replicaCount: 1 pythonPackageSpec: executorImageUri: PYTHON_PACKAGE_EXECUTOR_IMAGE_URI or PRE_BUILT_CONTAINER_IMAGE_URI packageUris: - PYTHON_PACKAGE_URIS pythonModule: PYTHON_MODULE nfsMounts: - server: NFS_SERVER_IP path: NFS_SHARE_NAME mountPoint: LOCAL_FOLDERמחליפים את מה שכתוב בשדות הבאים:
PROJECT_NUMBER: מזהה הפרויקט ב- Google Cloud .
NETWORK_NAME: השם של ה-VPC הפרטי או המשותף.
MACHINE_TYPE: המזהה של סוג המכונה הווירטואלית.
PYTHON_PACKAGE_EXECUTOR_IMAGE_URI or PRE_BUILT_CONTAINER_IMAGE_URI: ה-URI של קובץ אימג' של קונטיינר ב-Artifact Registry שיריץ את חבילת Python שסופקה. בפלטפורמת Gemini Enterprise Agent יש מגוון רחב של קובצי אימג' של מפעילים עם חבילות שמותקנות מראש, כדי לתת מענה לתרחישים שונים של משתמשים.
PYTHON_PACKAGE_URIS: רשימה מופרדת בפסיקים של מזהי URI של Cloud Storage, שמציינים את קובצי חבילת Python שמרכיבים את תוכנית האימון ואת החבילות התלויות שלה. המספר המקסימלי של מזהי URI של חבילות הוא 100.
PYTHON_MODULE: השם של מודול Python שצריך להריץ אחרי התקנת החבילות.
NFS_SERVER_IP: כתובת ה-IP של שרת ה-NFS.
NFS_SHARE_NAME: הנתיב של שיתוף ה-NFS, שהוא נתיב מוחלט שמתחיל ב-
/.LOCAL_FOLDER: נקודת הטעינה המקומית (שם הספרייה ב-UNIX).
חשוב לוודא ששם הרשת בפורמט הנכון וששיתוף ה-NFS קיים ברשת שצוינה.
יוצרים את המשימה הייעודית ומעבירים את קובץ ה-
config.yamlלפרמטר--config.gcloud ai custom-jobs create \ --region=LOCATION \ --display-name=JOB_NAME \ --config=config.yaml
מחליפים את מה שכתוב בשדות הבאים:
LOCATION: האזור שבו רוצים ליצור את המשימה.
JOB_NAME: שם למשימה ייעודית.
מגבלות
צריך לטעון את שיתוף ה-NFS באמצעות כתובת IP פנימית ל-VPC. אי אפשר להשתמש בכתובות URL ציבוריות.
משימות אימון טוענות את שיתופי ה-NFS ללא אימות, והן ייכשלו אם נדרשים שם משתמש וסיסמה.
כדי לאבטח את הנתונים, צריך להגדיר הרשאות בשיתוף ה-NFS. אם אתם משתמשים ב-Filestore, קראו את המאמר בקרת גישה במסמכי התיעוד של Filestore.
אי אפשר להריץ בו-זמנית שתי משימות אימון שמחברות שיתופי NFS מרשתות VPC שונות. הסיבה לכך היא המגבלה על התאמת רשתות.