Menyiapkan lingkungan Anda

Siapkan lingkungan sebelum meluncurkan eksperimen Neural Architecture Search Vertex AI dengan mengikuti bagian di bawah.

Sebelum memulai

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  4. Enable the Vertex AI API.

    Enable the API

  5. Menginstal Google Cloud CLI.
  6. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init
  7. Update dan instal komponen gcloud:
    gcloud components update
    gcloud components install beta
  8. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  9. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  10. Enable the Vertex AI API.

    Enable the API

  11. Menginstal Google Cloud CLI.
  12. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init
  13. Update dan instal komponen gcloud:
    gcloud components update
    gcloud components install beta
  14. Untuk memberikan peran Vertex AI User (roles/aiplatform.user) kepada semua pengguna Neural Architecture Search, hubungi administrator project Anda.
  15. Menginstal Docker.

    Jika Anda menggunakan sistem operasi berbasis Linux, seperti Ubuntu atau Debian, tambahkan nama pengguna ke grup docker agar Anda dapat menjalankan Docker tanpa menggunakan sudo:

    sudo usermod -a -G docker ${USER}
    

    Anda mungkin perlu memulai ulang sistem setelah menambahkan diri Anda ke grup docker.

  16. Buka Docker. Untuk memastikan Docker berjalan, jalankan perintah Docker berikut, yang menampilkan waktu dan tanggal saat ini:
    docker run busybox date
  17. Gunakan gcloud sebagai helper kredensial untuk Docker:
    gcloud auth configure-docker
  18. (Opsional) Jika Anda ingin menjalankan container menggunakan GPU secara lokal, instal nvidia-docker.

Menyiapkan bucket Cloud Storage

Bagian ini menunjukkan cara membuat bucket baru. Anda dapat menggunakan bucket yang ada, tetapi harus berada di region yang sama dengan tempat Anda menjalankan tugas AI Platform. Selain itu, jika ini bukan bagian dari project yang Anda gunakan untuk menjalankan Neural Architecture Search, Anda harus secara eksplisit memberikan akses ke akun layanan Neural Architecture Search.

  1. Tentukan nama untuk bucket baru Anda. Nama harus unik di semua bucket di Cloud Storage.

    BUCKET_NAME="YOUR_BUCKET_NAME"

    Misalnya, gunakan nama project Anda dengan tambahan -vertexai-nas:

    PROJECT_ID="YOUR_PROJECT_ID"
    BUCKET_NAME=${PROJECT_ID}-vertexai-nas
  2. Periksa nama bucket yang Anda buat.

    echo $BUCKET_NAME
  3. Pilih region untuk bucket Anda dan tetapkan variabel lingkungan REGION.

    Gunakan region yang sama dengan tempat Anda berencana menjalankan tugas Neural Architecture Search.

    Misalnya, kode berikut membuat REGION dan menetapkannya ke us-central1:

    REGION=us-central1
  4. Buat bucket baru:

    gsutil mb -l $REGION gs://$BUCKET_NAME

Meminta kuota perangkat tambahan untuk project

Tutorial menggunakan sekitar lima mesin CPU dan tidak memerlukan kuota tambahan. Setelah menjalankan tutorial, jalankan tugas Neural Architecture Search.

Tugas Neural Architecture Search melatih batch model secara paralel. Setiap model yang dilatih sesuai dengan uji coba. Baca bagian tentang menyetel number-of-parallel-trials untuk memperkirakan jumlah CPU dan GPU yang diperlukan untuk tugas penelusuran. Misalnya, jika setiap uji coba menggunakan 2 GPU T4 dan Anda menetapkan number-of-parallel-trials ke 20, Anda memerlukan total kuota 40 GPU T4 untuk tugas penelusuran. Selain itu, jika setiap uji coba menggunakan CPU highmem-16, Anda memerlukan 16 unit CPU per uji coba, yaitu 320 unit CPU untuk 20 uji coba paralel. Namun, kami meminta minimum 10 kuota uji coba paralel (atau 20 kuota GPU). Kuota awal default untuk GPU bervariasi menurut region dan jenis GPU, serta biasanya 0, 6, atau 12 untuk Tesla_T4 dan 0 atau 6 untuk Tesla_V100. Kuota awal default untuk CPU bervariasi berdasarkan region dan biasanya ditemukan 20, 450, atau 2.200.

Opsional: jika Anda berencana menjalankan beberapa tugas penelusuran secara paralel, skalakan persyaratan kuota. Meminta kuota tidak akan langsung menagih Anda. Anda akan dikenai biaya setelah menjalankan tugas.

Jika Anda tidak memiliki cukup kuota dan mencoba meluncurkan tugas yang membutuhkan lebih banyak resource daripada kuota Anda, tugas tidak akan diluncurkan dan menghasilkan error yang terlihat seperti ini:

Exception: Starting job failed: {'code': 429, 'message': 'The following quota metrics exceed quota limits: aiplatform.googleapis.com/custom_model_training_cpus,aiplatform.googleapis.com/custom_model_training_nvidia_v100_gpus,aiplatform.googleapis.com/custom_model_training_pd_ssd', 'status': 'RESOURCE_EXHAUSTED', 'details': [{'@type': 'type.googleapis.com/google.rpc.DebugInfo', 'detail': '[ORIGINAL ERROR] generic::resource_exhausted: com.google.cloud.ai.platform.common.errors.AiPlatformException: code=RESOURCE_EXHAUSTED, message=The following quota metrics exceed quota limits: aiplatform.googleapis.com/custom_model_training_cpus,aiplatform.googleapis.com/custom_model_training_nvidia_v100_gpus,aiplatform.googleapis.com/custom_model_training_pd_ssd, cause=null [google.rpc.error_details_ext] { code: 8 message: "The following quota metrics exceed quota limits: aiplatform.googleapis.com/custom_model_training_cpus,aiplatform.googleapis.com/custom_model_training_nvidia_v100_gpus,aiplatform.googleapis.com/custom_model_training_pd_ssd" }'}]}

Dalam beberapa kasus, jika beberapa tugas untuk project yang sama dimulai secara bersamaan dan kuota tidak memadai untuk semuanya, salah satu tugas tetap berada dalam status antrean dan tidak akan memulai pelatihan singkat ini. Dalam hal ini, batalkan tugas dalam antrean dan minta lebih banyak kuota atau tunggu hingga tugas sebelumnya selesai.

Anda dapat meminta kuota perangkat tambahan dari halaman Quotas. Anda dapat menerapkan filter guna menemukan kuota yang diinginkan untuk mengedit: Mefilter Kuota

  1. Untuk Service, pilih Vertex AI API.
  2. Untuk region, pilih wilayah yang ingin Anda filter.
  3. Untuk Quota, pilih nama akselerator yang awalannya adalah Custom model training.
    • Untuk GPU V100, nilainya adalah Pelatihan model kustom GPU Nvidia V100 per region.
    • Untuk CPU, nilainya dapat berupa CPU pelatihan model kustom untuk jenis mesin N1/E2 per region. Angka untuk CPU mewakili satuan CPU. Jika Anda menginginkan 8 CPU highmem-16, buat permintaan kuota untuk 8 * 16 = 128 unit CPU. Masukkan juga nilai yang diinginkan untuk region.

Setelah membuat permintaan kuota, Anda akan menerima Case number dan email tindak lanjut tentang status permintaan Anda. Persetujuan kuota GPU mungkin memerlukan waktu sekitar dua hingga lima hari kerja agar disetujui. Secara umum, mendapatkan kuota sekitar 20–30 GPU akan lebih cepat untuk mendapatkan persetujuan dalam waktu sekitar dua hingga tiga hari, dan mendapatkan persetujuan untuk sekitar 100 GPU mungkin memerlukan waktu lima hari kerja. Persetujuan kuota CPU mungkin memerlukan waktu hingga dua hari kerja agar disetujui. Namun, jika suatu region mengalami kekurangan besar jenis GPU, tidak ada jaminan bahkan dengan permintaan kuota yang kecil. Dalam hal ini, Anda mungkin diminta untuk menggunakan region lain atau jenis GPU lain. Secara umum, GPU T4 lebih mudah didapatkan daripada V100. GPU T4 membutuhkan waktu yang lebih lama, tetapi lebih hemat biaya.

Untuk mengetahui informasi selengkapnya, lihat Meminta batas kuota yang lebih tinggi.

Menyiapkan registry artefak untuk project

Anda harus menyiapkan registry artefak untuk project dan region tempat Anda mengirim image Docker.

Buka halaman Artifact Registry untuk project Anda. Jika belum diaktifkan, aktifkan API registry artefak untuk project Anda terlebih dahulu:

Mengaktifkan registry artefak

Setelah diaktifkan, mulai buat repositori baru dengan mengklik CREATE REPOSITORY:

Membuat artifact registry

Pilih Name sebagai nas, Format sebagai Docker, dan Location type sebagai Region. Untuk Region, pilih lokasi tempat Anda menjalankan tugas, lalu klik CREATE.

Setelan registry artefak

Tindakan ini akan membuat repositori Docker yang Anda inginkan seperti ditunjukkan di bawah ini:

Registry artefak dibuat

Anda juga perlu menyiapkan autentikasi untuk mengirim Docker ke repositori ini. Bagian penyiapan lingkungan lokal di bawah berisi langkah ini.

Menyiapkan lingkungan lokal Anda

Anda dapat menjalankan langkah-langkah ini menggunakan shell Bash di lingkungan lokal, atau menjalankannya dalam instance notebook yang dikelola pengguna Vertex AI Workbench.

  1. Siapkan variabel lingkungan dasar:

    gcloud config set project PROJECT_ID
    gcloud auth login
    gcloud auth application-default login
    
  2. Siapkan autentikasi Docker untuk registry artefak Anda:

    # example: REGION=europe-west4
    gcloud auth configure-docker REGION-docker.pkg.dev
    
  3. (Opsional) Konfigurasikan lingkungan virtual Python 3. Penggunaan Python 3 direkomendasikan tetapi tidak diwajibkan:

    sudo apt install python3-pip && \
    pip3 install virtualenv && \
    python3 -m venv --system-site-packages ~/./nas_venv && \
    source ~/./nas_venv/bin/activate
    
  4. Instal library tambahan:

    pip install google-cloud-storage==2.6.0
    pip install pyglove==0.1.0
    

Menyiapkan akun layanan

Akun layanan harus disiapkan sebelum menjalankan tugas NAS. Anda dapat menjalankan langkah-langkah ini menggunakan shell Bash di lingkungan lokal, atau menjalankannya di instance notebook yang dikelola pengguna Vertex AI Workbench.

  1. Buat akun layanan:

    gcloud iam service-accounts create NAME \
        --description=DESCRIPTION \
        --display-name=DISPLAY_NAME
    
  2. Berikan peran aiplatform.user dan storage.objectAdmin ke akun layanan:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:NAME@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/aiplatform.user
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:NAME@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/storage.objectAdmin
    

Misalnya, perintah berikut membuat akun layanan bernama my-nas-sa pada project my-nas-project dengan peran aiplatform.user dan storage.objectAdmin:

  gcloud iam service-accounts create my-nas-sa \
      --description="Service account for NAS" \
      --display-name="NAS service account"
  gcloud projects add-iam-policy-binding my-nas-project \
      --member=serviceAccount:my-nas-sa@my-nas-project.iam.gserviceaccount.com \
      --role=roles/aiplatform.user
  gcloud projects add-iam-policy-binding my-nas-project \
      --member=serviceAccount:my-nas-sa@my-nas-project.iam.gserviceaccount.com \
      --role=roles/storage.objectAdmin

Mendownload kode

Untuk memulai eksperimen Penelusuran Arsitektur Neural, Anda harus mendownload contoh kode Python, yang mencakup pelatih bawaan, definisi ruang penelusuran, dan library klien terkait.

Jalankan langkah-langkah berikut untuk mendownload kode sumber.

  1. Buka Terminal Shell baru.

  2. Jalankan perintah clone Git:

    git clone https://github.com/google/vertex-ai-nas.git