Menjalankan file notebook dengan eksekutor
Halaman ini menjelaskan cara menggunakan eksekutor dalam instance notebook terkelola Vertex AI Workbench untuk menjalankan file notebook sebagai eksekusi satu kali dan sesuai jadwal.
Ringkasan
Eksekutor memungkinkan Anda mengirim file notebook (ipynb) untuk dijalankan pada pelatihan kustom Vertex AI. Anda dapat menetapkan nilai parameter untuk setiap eksekusi file notebook. Anda juga dapat menjalankan file notebook berdasarkan jadwal berulang. Setelah eksekusi selesai, Anda dapat melihat hasil eksekusi dan membagikannya kepada orang lain.
Saat file notebook dikirim ke pelatihan kustom Vertex AI, Vertex AI akan membuat tugas pelatihan kustom baru yang menjalankan file notebook Anda dengan mengikuti siklus proses tugas pelatihan.
Persyaratan untuk kode notebook yang dijalankan oleh eksekutor
Saat menulis kode notebook untuk dijalankan di eksekutor, perlu diingat bahwa kode tersebut akan berjalan di project tenant yang terpisah dari project instance notebook terkelola Anda. Bagian ini menjelaskan bagaimana hal tersebut berpengaruh terhadap kode Anda saat dijalankan di eksekutor.
Memastikan penginstalan paket tersedia bagi eksekutor
Jika notebook Anda bergantung pada penginstalan paket yang belum disertakan dalam kernel notebook terkelola yang Anda gunakan, pastikan paket tersebut tersedia untuk kode notebook Anda di eksekutor dengan salah satu cara berikut:
Gunakan container kustom dengan paket yang sudah terinstal di dalamnya, lalu jalankan notebook Anda di container kustom tersebut. Lihat persyaratan untuk menggunakan container kustom dengan eksekutor.
Instal paket dalam kode file notebook Anda. Paket akan diinstal setiap kali file notebook dijalankan, tetapi ini memastikan bahwa paket tersedia di container yang Anda pilih saat menjalankan notebook Anda.
Menggunakan pemilihan project eksplisit
Saat Anda mengakses resource melalui kode yang dijalankan oleh eksekutor, eksekutor mungkin tidak terhubung ke project Google Cloud yang benar. Jika Anda mengalami kesalahan izin akses, masalah tersebut kemungkinan terjadi karena project salah.
Masalah tersebut terjadi karena eksekutor tidak menjalankan kode Anda secara langsung di project Google Cloud instance notebook terkelola Anda. Sebagai gantinya, eksekutor menjalankan kode Anda dalam pelatihan kustom Vertex AI dalam project tenant yang dikelola oleh Google. Oleh karena itu, jangan mencoba menyimpulkan ID project dari lingkungan dalam kode notebook Anda; tentukan ID project secara eksplisit.
Jika tidak ingin melakukan hardcode pada ID project dalam kode, Anda dapat
mereferensikan variabel lingkungan CLOUD_ML_PROJECT_ID
.
Vertex AI
menetapkan variabel lingkungan ini di setiap container pelatihan kustom untuk memuat
nomor project dari project tempat Anda memulai
pelatihan kustom. Banyak alat Google Cloud yang dapat menerima nomor project
ke mana pun alat tersebut mengambil ID project.
Misalnya, jika Anda ingin menggunakan Klien Python untuk Google BigQuery untuk mengakses tabel BigQuery dalam project yang sama, jangan menyimpulkan project di kode notebook Anda:
Pemilihan project secara implisit
from google.cloud import bigquery
client = bigquery.Client()
Sebagai gantinya, gunakan kode yang secara eksplisit memilih project:
Pemilihan project secara eksplisit
import os
from google.cloud import bigquery
project_number = os.environ["CLOUD_ML_PROJECT_ID"]
client = bigquery.Client(project=project_number)
Mengautentikasi akses menggunakan akun layanan
Secara default, instance notebook terkelola Anda dapat memiliki akses ke resource yang ada dalam project yang sama. Oleh karena itu, saat Anda menjalankan kode file notebook secara manual, resource ini tidak memerlukan autentikasi tambahan. Namun, karena eksekutor berjalan dalam project tenant terpisah, eksekutor tersebut tidak memiliki akses default yang sama.
Selain itu, eksekutor tidak dapat menggunakan kredensial pengguna akhir untuk mengautentikasi akses
ke resource, misalnya,
perintah gcloud auth login
.
Untuk mengatasi masalah ini, dalam kode file notebook Anda, autentikasi akses ke resource melalui akun layanan.
Kemudian, saat Anda membuat eksekusi atau jadwal, tentukan akun layanan.
Misalnya, saat membuat eksekusi, selesaikan langkah-langkah berikut:
Pada dialog Submit notebooks to Executor, luaskan Advanced options.
Di bagian Identity and API access, hapus tanda centang di samping Use Vertex AI Training's default service account, lalu masukkan akun layanan tertentu yang akan digunakan.
Lihat daftar lengkap langkah-langkah untuk membuat eksekusi.
Persyaratan saat menggunakan container kustom
Anda dapat menggunakan eksekutor untuk menjalankan kode notebook pada container kustom.
Container kustom Anda harus menyertakan ekstensi nbexecutor
, yang
memungkinkan eksekutor menjalankan kode notebook sebagai
tugas pelatihan kustom Vertex AI.
Untuk memastikan container kustom Anda memiliki ekstensi nbexecutor
,
Anda dapat mengubah salah satu
image container Deep Learning Containers untuk membuat
image container turunan.
Image Deep Learning Containers
menyertakan ekstensi nbexecutor
.
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.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
-
Aktifkan API Notebooks and Vertex AI.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
-
Aktifkan API Notebooks and Vertex AI.
- Buat instance notebook terkelola, jika Anda belum membuatnya.
Peran yang diperlukan
Untuk memastikan bahwa akun layanan instance Anda memiliki izin yang diperlukan untuk berinteraksi dengan eksekutor Vertex AI Workbench, minta administrator untuk memberi akun layanan instans Anda peran IAM berikut di project:
-
Penampil Notebook (
roles/notebooks.viewer
) -
Pengguna Vertex AI (
roles/aiplatform.user
) -
Admin Penyimpanan (
roles/storage.admin
)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.
Administrator Anda mungkin juga dapat memberikan izin yang diperlukan kepada akun layanan instance Anda melalui peran kustom atau peran yang telah ditetapkan.
Membuka JupyterLab
Untuk membuka JupyterLab dan menyiapkan file notebook untuk dijalankan, selesaikan langkah-langkah berikut.
Upload file notebook (ipynb), buka file yang sudah ada, atau buka file notebook baru, lalu tambahkan kode yang ingin Anda jalankan ke notebook baru.
Pastikan kode file notebook Anda memenuhi persyaratan untuk menggunakan eksekutor.
Membuat eksekusi
Untuk membuat eksekusi yang menjalankan file notebook, selesaikan langkah-langkah berikut. Langkah-langkah ini mencakup penjadwalan eksekusi dan pembuatan eksekusi satu kali.
Di antarmuka pengguna JupyterLab instance notebook terkelola Anda, buka file notebook yang ingin Anda jalankan.
Klik tombol Execute.
Pada dialog Submit notebooks to Executor, di kolom Execution name, masukkan nama untuk eksekusi Anda.
Pilih Machine type dan Accelerator type.
Pilih Environment.
Di kolom Type, pilih One-time execution, atau pilih Schedule-based recurring executions, lalu selesaikan dialog untuk menjadwalkan eksekusi.
Di Advanced options, pilih Region tempat Anda ingin menjalankan notebook.
Di kolom Cloud Storage bucket, pilih bucket Cloud Storage yang tersedia atau masukkan nama untuk bucket baru, lalu klik Create and select. Eksekutor menyimpan output notebook Anda di bucket Cloud Storage ini.
Opsional: di bagian Notebook parameterization, dalam kotak teks Input parameters, tambahkan parameter notebook yang dipisahkan dengan koma, misalnya
optimizer="SGD",learning_rate=0.01
.Pelajari lebih lanjut cara menggunakan parameter notebook.
Opsional: di bagian Identity and API access, pilih Use Vertex AI Training's default service account atau hapus tanda centang dan masukkan akun layanan tertentu untuk gunakan.
Opsional: di bagian Networking, tentukan jaringan Virtual Private Cloud. Penggunaan jaringan VPC untuk eksekusi Anda memerlukan koneksi akses layanan pribadi.
Klik Submit.
Eksekusi satu kali dimulai dengan segera. Eksekusi terjadwal akan otomatis berjalan sesuai jadwal yang Anda tetapkan.
Di konsol Google Cloud, di halaman Vertex AI Workbench, Anda dapat melihat eksekusi yang sudah selesai di tab Executions dan melihat jadwal di tab Schedules.
Melihat, membagikan, dan mengimpor file notebook yang dijalankan
Dengan menggunakan antarmuka pengguna JupyterLab instance notebook terkelola, Anda dapat melihat output notebook yang dieksekusi, membagikan hasilnya dengan orang lain, dan mengimpor file notebook yang dieksekusi ke JupyterLab.
Melihat hasil eksekusi notebook
Anda dapat melihat hasil eksekusi notebook di konsol Google Cloud atau di antarmuka pengguna JupyterLab.
Konsol
Di konsol Google Cloud, buka halaman Vertex AI Workbench, lalu klik tab Executions.
Pilih Region yang berisi hasil Anda.
Di samping eksekusi yang ingin dilihat, klik View result.
Hasilnya akan terbuka di tab browser baru.
JupyterLab
Di menu navigasi JupyterLab, klik tombol Notebook Executor.
Klik tab Executions.
Di bagian eksekusi yang ingin Anda lihat, klik View result.
Hasilnya akan terbuka di tab browser baru.
Membagikan hasil eksekusi notebook
Anda dapat membagikan hasil eksekusi dengan memberikan akses ke bucket Cloud Storage yang berisi eksekusi notebook Anda. Dengan menyediakan akses ini, pengguna juga akan memiliki akses ke resource lain di bucket Cloud Storage yang sama. Untuk membagikan hasil eksekusi, selesaikan langkah-langkah berikut.
Konsol
Di konsol Google Cloud, buka halaman Vertex AI Workbench, lalu klik tab Executions.
Pilih Region yang berisi eksekusi.
Di samping eksekusi yang ingin dibagikan, klik tombol
Share.Ikuti petunjuk dalam dialog untuk memberi pengguna akses ke bucket Cloud Storage yang berisi eksekusi notebook Anda.
JupyterLab
Pada antarmuka pengguna JupyterLab instance notebook terkelola Anda, di menu navigasi, klik tombol Notebook Executor.
Klik tab Executions.
Di samping eksekusi yang ingin Anda bagikan, klik menu opsi
, lalu pilih Share execution result.Ikuti petunjuk dalam dialog untuk memberi pengguna akses ke bucket Cloud Storage yang berisi eksekusi notebook Anda.
Mengimpor notebook yang dieksekusi ke JupyterLab
Untuk mengimpor notebook yang dieksekusi ke JupyterLab, selesaikan langkah-langkah berikut.
Pada antarmuka pengguna JupyterLab instance notebook terkelola Anda, di menu navigasi, klik tombol Notebook Executor.
Klik tab Executions.
Pilih Region yang berisi notebook Anda yang dijalankan.
Di samping eksekusi yang ingin Anda impor, klik menu opsi
, dan pilih Impor notebook yang dieksekusi.Pilih kernel yang ingin Anda buka notebook-nya.
Eksekutor membuka file notebook yang dieksekusi di JupyterLab, dan menyimpan file notebook ini di File Browser JupyterLab dalam folder bernama imported_notebook_jobs.
Melihat atau menghapus jadwal
Anda dapat melihat dan menghapus jadwal menggunakan konsol Google Cloud atau antarmuka pengguna JupyterLab instance notebook terkelola Anda.
Melihat jadwal
Lihat jadwal untuk melihat setelan frekuensi jadwal atau melihat hasil eksekusi notebook Anda.
Konsol
Di konsol Google Cloud, buka halaman Vertex AI Workbench, lalu klik tab Schedules.
Pilih Region yang berisi jadwal Anda.
Klik nama jadwal untuk membuka halaman Schedule details.
Di samping nama eksekusi, klik View result untuk membuka file notebook yang dijalankan. Eksekutor akan membuka hasil Anda di tab browser baru.
JupyterLab
Pada antarmuka pengguna JupyterLab instance notebook terkelola Anda, di menu navigasi, klik tombol Notebook Executor.
Klik tab Schedules.
Untuk melihat eksekusi terakhir, di bagian eksekusi yang ingin Anda lihat, klik View new execution result. Eksekutor akan membuka hasil Anda di tab browser baru.
Untuk melihat semua eksekusi, klik nama jadwal. Eksekutor akan membuka halaman Schedule details di konsol Google Cloud.
Di samping nama eksekusi, klik View result untuk membuka file notebook yang dijalankan. Eksekutor akan membuka hasil Anda di tab browser baru.
Menghapus jadwal
Menghapus jadwal tidak akan menghapus eksekusi yang dihasilkan dari jadwal tersebut.
Konsol
Di konsol Google Cloud, buka halaman Vertex AI Workbench, lalu klik tab Schedules.
Pilih Region yang berisi jadwal Anda.
Pilih jadwal yang ingin dihapus.
Klik
Delete.
JupyterLab
Pada antarmuka pengguna JupyterLab instance notebook terkelola Anda, di menu navigasi, klik tombol Notebook Executor.
Klik tab Schedules.
Klik nama jadwal yang ingin Anda hapus. Eksekutor akan membuka halaman Schedule details di konsol Google Cloud.
Klik
Delete.
Tugas di pelatihan kustom Vertex AI
Karena eksekusi notebook dijalankan pada pelatihan kustom Vertex AI, eksekusi tersebut diekspos sebagai tugas pelatihan kustom di Vertex AI. Anda dapat melihat tugas pelatihan kustom ini di konsol Google Cloud, di tab Custom jobs di halaman Vertex AI Training. Pelajari lebih lanjut cara menggunakan tugas pelatihan kustom Vertex AI.
Langkah selanjutnya
Mempelajari cara menjalankan eksekusi notebook dengan parameter.
Mempelajari lebih lanjut pelatihan kustom Vertex AI.