Siapkan lingkungan sebelum meluncurkan eksperimen Neural Architecture Search Vertex AI dengan mengikuti bagian di bawah.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Update and install
gcloud
components:gcloud components update
gcloud components install beta -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Update and install
gcloud
components:gcloud components update
gcloud components install beta - Untuk memberikan peran
Vertex AI User (
roles/aiplatform.user
) kepada semua pengguna Neural Architecture Search, hubungi administrator project Anda. - 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 menggunakansudo
:sudo usermod -a -G docker ${USER}
Anda mungkin perlu memulai ulang sistem setelah menambahkan diri Anda ke grup
docker
. - Buka Docker. Untuk memastikan Docker berjalan, jalankan perintah Docker berikut, yang menampilkan waktu dan tanggal saat ini:
docker run busybox date
- Gunakan
gcloud
sebagai helper kredensial untuk Docker:gcloud auth configure-docker
-
(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.
-
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
-
Periksa nama bucket yang Anda buat.
echo $BUCKET_NAME
-
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 keus-central1
:REGION=us-central1
-
Buat bucket baru:
gcloud storage buckets create gs://$BUCKET_NAME --location=$REGION
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:
- Untuk Service, pilih Vertex AI API.
- Untuk region, pilih wilayah yang ingin Anda filter.
- 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:
Setelah diaktifkan, mulai buat repositori baru dengan mengklik CREATE REPOSITORY:
Pilih Name sebagai nas, Format sebagai Docker, dan Location type sebagai Region. Untuk Region, pilih lokasi tempat Anda menjalankan tugas, lalu klik CREATE.
Tindakan ini akan membuat repositori Docker yang Anda inginkan seperti ditunjukkan di bawah ini:
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 di instance notebook yang dikelola pengguna Vertex AI Workbench.
Siapkan variabel lingkungan dasar:
gcloud config set project PROJECT_ID gcloud auth login gcloud auth application-default login
Siapkan autentikasi Docker untuk registry artefak Anda:
# example: REGION=europe-west4 gcloud auth configure-docker REGION-docker.pkg.dev
(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
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.
Buat akun layanan:
gcloud iam service-accounts create NAME \ --description=DESCRIPTION \ --display-name=DISPLAY_NAME
Berikan peran
aiplatform.user
danstorage.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.
Buka Terminal Shell baru.
Jalankan perintah clone Git:
git clone https://github.com/google/vertex-ai-nas.git