Panduan ini menjelaskan cara mengonfigurasi Vertex AI untuk menggunakan akun layanan kustom dalam skenario berikut:
Saat melakukan pelatihan kustom, Anda dapat mengonfigurasi Vertex AI untuk menggunakan akun layanan kustom di container pelatihan, baik berupa container bawaan atau container kustom.
Saat men-deploy resource
Model
yang dilatih khusus ke resourceEndpoint
untuk menayangkan prediksi online, Anda dapat mengonfigurasi Vertex AI untuk menggunakan akun layanan kustom di container yang menyalurkan prediksi, baik berupa container bawaan atau container kustom.Saat membuat cluster Ray on Vertex AI, Anda dapat menetapkan akun layanan kustom untuk semua node dalam cluster.
Kapan harus menggunakan akun layanan kustom
Saat Vertex AI berjalan, Vertex AI umumnya bertindak dengan izin salah satu dari beberapa akun layanan yang dibuat dan dikelola Google untuk project Google Cloud Anda. Untuk memberi Vertex AI peningkatan akses ke layanan Google Cloud lainnya dalam konteks tertentu, Anda dapat menambahkan peran tertentu ke agen layanan Vertex AI.
Namun, menyesuaikan izin agen layanan mungkin tidak memberikan kontrol akses mendetail yang Anda inginkan. Beberapa kasus penggunaan umum mencakup:
- Mengurangi izin akses untuk tugas dan model Vertex AI. Agen layanan Vertex AI default memiliki akses ke BigQuery dan Cloud Storage.
- Mengizinkan akses tugas yang berbeda ke resource yang berbeda. Sebaiknya izinkan banyak pengguna meluncurkan tugas dalam satu project. Namun, berikan akses tugas setiap pengguna hanya ke tabel BigQuery atau bucket Cloud Storage tertentu.
Misalnya, Anda mungkin ingin menyesuaikan setiap tugas pelatihan kustom yang Anda jalankan secara terpisah agar memiliki akses ke berbagai resource Google Cloud di luar project Anda.
Selain itu, menyesuaikan izin agen layanan tidak mengubah izin yang tersedia ke container yang menyalurkan prediksi dari Model
yang dilatih khusus.
Untuk menyesuaikan akses setiap kali melakukan pelatihan kustom atau menyesuaikan izin container prediksi Model
yang dilatih khusus, Anda harus menggunakan akun layanan kustom.
Akses default
Bagian ini menjelaskan akses default yang tersedia untuk container pelatihan kustom dan container prediksi resource Model
yang dilatih kustom.
Saat menggunakan akun layanan kustom, Anda akan mengganti akses ini untuk resource CustomJob
, HyperparameterTuningJob
, TrainingPipeline
, atau DeployedModel
tertentu.
Container pelatihan
Saat Anda membuat CustomJob
, HyperparameterTuningJob
, atau
TrainingPipeline
kustom, container
pelatihan dijalankan menggunakan
Vertex AI Kustom project Google Cloud Anda Code Service Agent secara default.
Pelajari Agen Layanan Kode Kustom Vertex AI lebih lanjut, termasuk cara memberinya akses ke resource Google Cloud tambahan.
Container prediksi
Saat Anda men-deploy Model
yang dilatih khusus ke Endpoint
, container prediksi
akan berjalan menggunakan akun layanan yang dikelola oleh Vertex AI. Akun
layanan ini berbeda dengan agen layanan
Vertex AI.
Akun layanan yang digunakan container prediksi secara default memiliki izin
untuk membaca artefak model
yang disediakan oleh Vertex AI pada URI yang disimpan di
AIP_STORAGE_URI
variabel
lingkungan. Jangan mengandalkan
akun layanan untuk memiliki izin lain. Anda tidak dapat menyesuaikan
izin akun layanan.
Mengonfigurasi akun layanan kustom
Bagian berikut menjelaskan cara menyiapkan akun layanan kustom untuk digunakan
dengan Vertex AI dan cara mengonfigurasi CustomJob
,
HyperparameterTuningJob
, TrainingPipeline
, atau DeployedModel
untuk menggunakan akun layanan. Perlu diperhatikan bahwa Anda tidak dapat mengonfigurasi akun layanan kustom untuk mengambil image dari Artifact Registry. Vertex AI menggunakan akun layanan default untuk
menarik gambar.
Menyiapkan akun layanan kustom
Untuk menyiapkan akun layanan kustom, lakukan hal berikut:
Buat akun layanan yang dikelola pengguna. Akun layanan yang dikelola pengguna dapat berada dalam project yang sama dengan resource Vertex AI Anda atau dalam project yang berbeda.
Memberikan peran IAM akun layanan baru Anda yang memberikan akses ke layanan dan resource Google Cloud yang Anda inginkan agar dapat digunakan Vertex AI selama pelatihan kustom atau prediksi.
Opsional: Jika akun layanan yang dikelola pengguna berada dalam project yang berbeda dengan tugas pelatihan Anda, konfigurasikan akun layanan yang dikelola pengguna sehingga dapat dilampirkan pada tugas pelatihan.
Opsional: Jika Anda juga berencana menggunakan akun layanan yang dikelola pengguna untuk prediksi, Anda harus memberikan peran Admin Akun Layanan (
roles/iam.serviceAccountAdmin
) kepada Layanan Vertex AI Agen proyek tempat Anda menggunakan Vertex AI:gcloud iam service-accounts add-iam-policy-binding \ --role=roles/iam.serviceAccountAdmin \ --member=serviceAccount:AI_PLATFORM_SERVICE_AGENT \ CUSTOM_SERVICE_ACCOUNT
Ganti kode berikut:
AI_PLATFORM_SERVICE_AGENT: Alamat email Vertex AI Service Agent project Anda, yang memiliki format berikut:
service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com
Untuk menemukan Agen Layanan Vertex AI, buka halaman IAM di Konsol Google Cloud.
CUSTOM_SERVICE_ACCOUNT: Alamat email akun layanan yang dikelola pengguna baru yang Anda buat di langkah pertama bagian ini.
Menentukan akun layanan kustom untuk resource Vertex AI
Proses mengonfigurasi Vertex AI agar menggunakan akun layanan tertentu untuk suatu resource disebut melampirkan akun layanan ke resource. Bagian berikut menjelaskan cara melampirkan akun layanan yang Anda buat di bagian sebelumnya ke beberapa resource Vertex AI.
Melampirkan akun layanan ke resource pelatihan kustom
Untuk mengonfigurasi Vertex AI agar menggunakanakun layanan baru
selama pelatihan khusus, menentukan alamat email akun layanan di bagian
serviceAccount
kolom CustomJobSpec
ketika Anda memulai pelatihan khusus. Bergantung pada jenis resource pelatihan kustom yang Anda buat, penempatan kolom ini di permintaan API akan berbeda:
Jika Anda membuat
CustomJob
, tentukan alamat email akun layanan diCustomJob.jobSpec.serviceAccount
.Pelajari lebih lanjut cara membuat
CustomJob
.Jika Anda membuat
HyperparameterTuningJob
, tentukan alamat email akun layanan diHyperparameterTuningJob.trialJobSpec.serviceAccount
.Pelajari cara membuat
HyperparameterTuningJob
lebih lanjut.Jika Anda membuat
TrainingPipeline
kustom tanpa penyesuaian hyperparameter, tentukan alamat email akun layanan diTrainingPipeline.trainingTaskInputs.serviceAccount
.Jika Anda membuat
TrainingPipeline
kustom dengan penyesuaian hyperparameter, tentukan alamat email akun layanan diTrainingPipeline.trainingTaskInputs.trialJobSpec.serviceAccount
.
Melampirkan akun layanan ke container yang menayangkan prediksi online
Untuk mengonfigurasi container prediksi Model
yang dilatih khusus agar menggunakan akun layanan baru, tentukan alamat email akun layanan saat Anda men-deploy Model
ke Endpoint
:
Konsol
Ikuti Men-deploy model menggunakan Konsol Google Cloud. Saat Anda menentukan setelan model, pilih akun layanan dari menu drop-down Akun layanan.
gcloud
Ikuti Men-deploy model menggunakan
Vertex AI API. Saat menjalankan perintah gcloud
ai endpoints deploy-model
, gunakan flag --service-account
untuk menentukan alamat email akun layanan Anda.
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- ENDPOINT_ID: ID untuk endpoint.
- LOCATION_ID: Region tempat Anda menggunakan Vertex AI.
- MODEL_ID: ID untuk model yang akan di-deploy.
-
DEPLOYED_MODEL_NAME: Nama untuk
DeployedModel
. Anda juga dapat menggunakan nama tampilanModel
untukDeployedModel
. -
MACHINE_TYPE: Opsional. Resource mesin yang digunakan untuk setiap node deployment ini. Setelan defaultnya adalah
n1-standard-2
. Pelajari jenis-jenis mesin lebih lanjut. - MIN_REPLICA_COUNT: Jumlah minimum node untuk deployment ini. Jumlah node dapat ditingkatkan atau diturunkan sesuai kebutuhan beban prediksi, hingga mencapai jumlah maksimum node dan tidak pernah kurang dari jumlah ini.
- MAX_REPLICA_COUNT: Jumlah maksimum node untuk deployment ini. Jumlah node dapat ditingkatkan atau diturunkan sesuai kebutuhan oleh beban prediksi, hingga jumlah node ini, dan tidak pernah kurang dari jumlah minimum node.
- CUSTOM_SERVICE_ACCOUNT: Alamat email akun layanan. Contoh:
SA_NAME@PROJECT_ID.iam.gserviceaccount.com
.
Jalankan perintah gcloud ai endpoints deploy-model:
Linux, macOS, atau Cloud Shell
gcloud ai endpoints deploy-model ENDPOINT_ID \ --region=LOCATION \ --model=MODEL_ID \ --display-name=DEPLOYED_MODEL_NAME \ --machine-type=MACHINE_TYPE \ --min-replica-count=MIN_REPLICA_COUNT \ --max-replica-count=MAX_REPLICA_COUNT \ --traffic-split=0=100 \ --service-account=CUSTOM_SERVICE_ACCOUNT
Windows (PowerShell)
gcloud ai endpoints deploy-model ENDPOINT_ID ` --region=LOCATION ` --model=MODEL_ID ` --display-name=DEPLOYED_MODEL_NAME ` --machine-type=MACHINE_TYPE ` --min-replica-count=MIN_REPLICA_COUNT ` --max-replica-count=MAX_REPLICA_COUNT ` --traffic-split=0=100 ` --service-account=CUSTOM_SERVICE_ACCOUNT
Windows (cmd.exe)
gcloud ai endpoints deploy-model ENDPOINT_ID ^ --region=LOCATION ^ --model=MODEL_ID ^ --display-name=DEPLOYED_MODEL_NAME ^ --machine-type=MACHINE_TYPE ^ --min-replica-count=MIN_REPLICA_COUNT ^ --max-replica-count=MAX_REPLICA_COUNT ^ --traffic-split=0=100 ^ --service-account=CUSTOM_SERVICE_ACCOUNT
API
Ikuti Men-deploy model menggunakan
Vertex AI API. Saat Anda mengirim
permintaan
projects.locations.endpoints.deployModel
, tetapkan
kolom
deployedModel.serviceAccount
ke alamat email akun layanan Anda.
Mengakses layanan Google Cloud dalam kode Anda
Jika Anda mengonfigurasi Vertex AI untuk menggunakan akun layanan kustom dengan mengikuti petunjuk di bagian sebelumnya, container pelatihan atau container prediksi Anda dapat mengakses layanan dan resource Google Cloud apa pun yang dapat diakses akun layanan menjadi sasaran.
Untuk mengakses layanan Google Cloud, tulis kode pelatihan atau kode penyaluran prediksi Anda untuk menggunakan Kredensial Default Aplikasi (ADC) dan secara eksplisit tentukan project ID atau nomor project resource yang ingin Anda akses. Pelajari lebih lanjut cara menulis kode untuk mengakses layanan Google Cloud lainnya.
Langkah berikutnya
- Pelajari Kontrol akses untuk Vertex AI lebih lanjut.
- Pelajari izin IAM tertentu dan operasi yang didukungnya.