אימון של ResNet-50 ב-Cloud TPU באמצעות PyTorch

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

המודל במדריך הזה מבוסס על Deep Residual Learning for Image Recognition, שבו הוצגה לראשונה ארכיטקטורת הרשת השיורית (ResNet). במדריך הזה משתמשים בגרסה עם 50 שכבות, ResNet-50, ומדגימים איך לאמן את המודל באמצעות PyTorch/XLA.

מטרות

  • מכינים את מערך הנתונים.
  • מריצים את משימת האימון.
  • בודקים את תוצאות הפלט.

עלויות

במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:

  • Compute Engine
  • Cloud TPU

כדי להעריך את ההוצאות בהתאם לתחזית השימוש שלכם, אתם יכולים להיעזר במחשבון העלויות.

משתמשים חדשים של Google Cloud ? יכול להיות שאתם זכאים לתקופת ניסיון בחינם.

לפני שמתחילים

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

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

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

יצירת TPU VM

  1. פותחים את Cloud Shell או חלון טרמינל.

    פתיחת Cloud Shell

  2. הגדרת משתני סביבה לפרמטרים של פקודות Google Cloud CLI:

    export PROJECT_ID=your-project-id
    export TPU_NAME=your-tpu-name
    export ZONE=us-central1-b
    export ACCELERATOR_TYPE=v6e-8
    export RUNTIME_VERSION=v2-alpha-tpuv6e

    תיאורים של משתני סביבה

    • PROJECT_ID: מזהה הפרויקט ב- Google Cloud . משתמשים בפרויקט קיים או יוצרים פרויקט חדש.
    • TPU_NAME: השם של ה-TPU.
    • ZONE: האזור שבו יוצרים את ה-TPU VM. מידע נוסף על אזורים נתמכים זמין במאמר אזורים ותחומים של TPU.
    • ACCELERATOR_TYPE: סוג המאיץ מציין את הגרסה והגודל של Cloud TPU שרוצים ליצור. מידע נוסף על סוגי המאיצים הנתמכים בכל גרסת TPU זמין במאמר בנושא גרסאות TPU.
    • RUNTIME_VERSION: גרסת התוכנה של Cloud TPU.

  3. יצירת TPU VM

     gcloud compute tpus tpu-vm create $TPU_NAME \
     --accelerator-type=$ACCELERATOR_TYPE \
     --version=$RUNTIME_VERSION \
     --zone=$ZONE \
     --project=$PROJECT_ID
    
    Google Cloud
  4. מתחברים למכונת ה-TPU באמצעות SSH:

     gcloud compute tpus tpu-vm ssh  $TPU_NAME --zone=$ZONE
    

התקנת PyTorch/XLA ב-TPU VM

  1. יוצרים קובץ בשם requirements.txt ומוסיפים את התוכן הבא:

    --find-links https://storage.googleapis.com/libtpu-releases/index.html
    --find-links https://storage.googleapis.com/libtpu-wheels/index.html
    torch~=2.6.0
    torch_xla[tpu]~=2.6.0
    torchvision
    ray[default]==2.40.0
    
  2. מתקינים את יחסי התלות:

    pip install -r requirements.txt
    
  3. משכפלים את מאגר GitHub של PyTorch/XLA

    git clone --depth=1 https://github.com/pytorch/xla.git
    
  4. הפעלת סקריפט האימון עם נתונים פיקטיביים

    PJRT_DEVICE=TPU python3 xla/test/test_train_mp_imagenet.py \
    --fake_data \
    --batch_size=256 \
    --num_epochs=1
    

הסרת המשאבים

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

  1. מתנתקים מ-TPU VM:

    exit
    
  2. מוחקים את מכונת ה-TPU הווירטואלית.

    gcloud compute tpus tpu-vm delete $TPU_NAME \
        --zone=$ZONE
    

המאמרים הבאים