Layanan pelatihan AI Platform Training mengelola resource komputasi di cloud untuk melatih model Anda. Halaman ini menjelaskan proses untuk melatih model scikit-learn menggunakan AI Platform Training.
Tutorial ini melatih model sederhana untuk memprediksi tingkat pendapatan seseorang berdasarkan Set Data Pendapatan Sensus. Anda membuat aplikasi pelatihan secara lokal, menguploadnya ke Cloud Storage, dan mengirimkan tugas pelatihan. Layanan pelatihan AI Platform Training menulis output-nya ke bucket Cloud Storage Anda, dan membuat log di Logging.
Konten ini juga tersedia di GitHub sebagai Jupyter notebook.
Cara melatih model di AI Platform Training
Anda dapat melatih model di AI Platform Training dalam tiga langkah:
- Membuat file model Python
- Menambahkan kode untuk mendownload data dari Cloud Storage agar Pelatihan AI Platform dapat menggunakannya
- Menambahkan kode untuk mengekspor dan menyimpan model ke Cloud Storage setelah Pelatihan AI Platform selesai melatih model
- Menyiapkan paket aplikasi pelatihan
- Mengirim tugas pelatihan
Sebelum memulai
Selesaikan langkah-langkah berikut untuk menyiapkan akun GCP, mengaktifkan AI Platform Training API, serta menginstal dan mengaktifkan Cloud SDK.
Menyiapkan project GCP
- 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 AI Platform Training & Prediction and Compute Engine.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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 AI Platform Training & Prediction and Compute Engine.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Menyiapkan lingkungan Anda
Pilih salah satu opsi di bawah untuk menyiapkan lingkungan secara lokal di macOS atau di lingkungan jarak jauh di Cloud Shell.
Untuk pengguna macOS, sebaiknya siapkan lingkungan Anda menggunakan tab MACOS di bawah. Cloud Shell, yang ditampilkan di tab CLOUD SHELL, tersedia di macOS, Linux, dan Windows. Cloud Shell menyediakan cara cepat untuk mencoba Pelatihan AI Platform, tetapi tidak cocok untuk pekerjaan pengembangan yang sedang berlangsung.
macOS
-
Periksa penginstalan Python
Pastikan Anda telah menginstal Python dan, jika perlu, instal.python -V
-
Periksa penginstalan
pip
pip
adalah pengelola paket Python, yang disertakan dengan versi Python saat ini. Periksa apakah Anda telah menginstalpip
dengan menjalankanpip --version
. Jika belum, lihat cara menginstalpip
.Anda dapat mengupgrade
pip
menggunakan perintah berikut:pip install -U pip
Lihat dokumentasi pip untuk mengetahui detail selengkapnya.
-
Instal
virtualenv
virtualenv
adalah alat untuk membuat lingkungan Python yang terisolasi. Periksa apakah Anda telah menginstalvirtualenv
dengan menjalankanvirtualenv --version
. Jika tidak, instalvirtualenv
:pip install --user --upgrade virtualenv
Untuk membuat lingkungan pengembangan terisolasi bagi panduan ini, buat lingkungan virtual baru di
virtualenv
. Misalnya, perintah berikut mengaktifkan lingkungan bernamaaip-env
:virtualenv aip-env source aip-env/bin/activate
-
Untuk tujuan tutorial ini, jalankan perintah lainnya dalam lingkungan virtual Anda.
Lihat informasi selengkapnya tentang penggunaanvirtualenv
. Untuk keluar darivirtualenv
, jalankandeactivate
.
Cloud Shell
-
Buka konsol Google Cloud.
-
Klik tombol Aktifkan Google Cloud Shell di bagian atas jendela konsol.
Sesi Cloud Shell akan terbuka di dalam frame baru di bagian bawah konsol dan menampilkan perintah command line. Perlu waktu beberapa detik hingga sesi shell diinisialisasi.
Sesi Cloud Shell Anda siap digunakan.
-
Konfigurasikan alat command line
gcloud
untuk menggunakan project yang Anda pilih.gcloud config set project [selected-project-id]
dengan
[selected-project-id]
sebagai project ID Anda. (Hapus tanda kurung yang mengapit.)
Menginstal framework
macOS
Dalam lingkungan virtual Anda, jalankan perintah berikut untuk menginstal versi scikit-learn dan pandas yang digunakan di Pelatihan AI Platform versi runtime 2.11:
(aip-env)$ pip install scikit-learn==1.0.2 pandas==1.3.5
Dengan memberikan nomor versi dalam perintah sebelumnya, Anda memastikan bahwa dependensi di lingkungan virtual cocok dengan dependensi dalam versi runtime. Hal ini membantu mencegah perilaku yang tidak terduga saat kode Anda berjalan di AI Platform Training.
Untuk mengetahui detail selengkapnya, opsi penginstalan, dan informasi pemecahan masalah, lihat petunjuk penginstalan untuk setiap framework:
Cloud Shell
Jalankan perintah berikut untuk menginstal scikit-learn, dan pandas:
pip install --user scikit-learn pandas
Untuk mengetahui detail selengkapnya, opsi penginstalan, dan informasi pemecahan masalah, lihat petunjuk penginstalan untuk setiap framework:
Menyiapkan bucket Cloud Storage
Anda memerlukan bucket Cloud Storage untuk menyimpan kode pelatihan dan dependensi. Untuk tujuan tutorial ini, cara termudah adalah menggunakan bucket Cloud Storage khusus dalam project yang sama dengan yang Anda gunakan untuk Pelatihan AI Platform.
Jika menggunakan bucket di project lain, Anda harus memastikan bahwa akun layanan AI Platform Training dapat mengakses kode pelatihan dan dependensi di Cloud Storage. Tanpa izin yang sesuai, tugas pelatihan Anda akan gagal. Lihat cara memberikan izin untuk penyimpanan.
Pastikan untuk menggunakan atau menyiapkan bucket di region yang sama dengan yang Anda gunakan untuk menjalankan tugas pelatihan. Lihat region yang tersedia untuk layanan Pelatihan AI Platform.
Bagian ini menunjukkan cara membuat bucket baru. Anda dapat menggunakan bucket yang ada, tetapi harus berada di region yang sama dengan tempat Anda berencana menjalankan tugas AI Platform. Selain itu, jika ini bukan bagian dari project yang Anda gunakan untuk menjalankan Pelatihan AI Platform, Anda harus secara eksplisit memberikan akses ke akun layanan Pelatihan AI Platform.
-
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
-aiplatform
:PROJECT_ID=$(gcloud config list project --format "value(core.project)") BUCKET_NAME=${PROJECT_ID}-aiplatform
-
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 Pelatihan AI Platform. Lihat region yang tersedia untuk layanan Pelatihan AI Platform.
Misalnya, kode berikut membuat
REGION
dan menetapkannya keus-central1
:REGION=us-central1
-
Buat bucket baru:
gcloud storage buckets create gs://$BUCKET_NAME --location=$REGION
Tentang data
Set Data Pendapatan Sensus yang digunakan sampel ini untuk pelatihan dihosting oleh Repositori Machine Learning UC Irvine.
Data sensus dari: Lichman, M. (2013). Repositori Machine Learning UCI http://archive.ics.uci.edu/ml. Irvine, CA: University of California, School of Information and Computer Science. Set data ini tersedia secara publik untuk digunakan oleh siapa saja berdasarkan persyaratan berikut yang diberikan oleh Sumber Set Data - http://archive.ics.uci.edu/ml - dan disediakan "APA ADANYA" tanpa jaminan apa pun, baik dinyatakan secara tersurat maupun tersirat, dari Google. Google tidak bertanggung jawab atas kerusakan apa pun, baik secara langsung maupun tidak langsung, akibat dari penggunaan set data.
Untuk memudahkan Anda, kami telah menghosting data di bucket Cloud Storage publik: gs://cloud-samples-data/ai-platform/sklearn/census_data/
, yang dapat Anda download dalam file pelatihan Python.
Membuat file model Python
Anda dapat menemukan semua kode pelatihan untuk bagian ini di GitHub:
train.py
.
Bagian lain dari bagian ini memberikan penjelasan tentang fungsi kode pelatihan.
Penyiapan
Impor library berikut dari Python, Google Cloud CLI, dan scikit-learn. Tetapkan variabel untuk nama bucket Cloud Storage Anda.
Mendownload data dari Cloud Storage
Selama proses pengembangan standar, Anda mengupload data Anda sendiri ke
Cloud Storage agar Pelatihan AI Platform dapat mengaksesnya. Data untuk tutorial ini dihosting di bucket publik: gs://cloud-samples-data/ai-platform/sklearn/census_data/
Kode di bawah ini mendownload set data pelatihan, adult.data
. (Data evaluasi tersedia di adult.test
, tetapi tidak digunakan dalam tutorial ini.)
Menambahkan kode model
Kode pelatihan model melakukan beberapa langkah dasar:
- Menentukan dan memuat data
- Mengonversi fitur kategoris menjadi fitur numerik
- Mengekstrak fitur numerik dengan pipeline scikit-learn
- Mengekspor dan menyimpan model ke Cloud Storage
Menentukan dan memuat data
Mengonversi fitur kategoris menjadi fitur numerik
Mengekstrak fitur numerik dengan pipeline scikit-learn
Mengekspor dan menyimpan model ke Cloud Storage
Jika bucket Cloud Storage Anda berada dalam project yang sama dengan yang Anda gunakan untuk Pelatihan AI Platform, Pelatihan AI Platform dapat membaca dari dan menulis ke bucket Anda. Jika tidak, Anda harus memastikan bahwa project yang Anda gunakan untuk menjalankan AI Platform Training dapat mengakses bucket Cloud Storage. Lihat cara memberikan izin untuk penyimpanan.
Pastikan untuk memberi nama file model Anda model.pkl
atau
model.joblib
jika Anda ingin menggunakannya untuk meminta prediksi online dengan
Prediksi AI Platform.
Memverifikasi upload file model Cloud Storage (Opsional)
Di command line, lihat konten folder model tujuan untuk memverifikasi
bahwa file model Anda telah diupload ke Cloud Storage. Tetapkan variabel lingkungan (BUCKET_NAME
) untuk nama bucket Anda, jika belum melakukannya.
gcloud storage ls gs://$BUCKET_NAME/census_*
Output akan muncul seperti berikut:
gs://[YOUR-PROJECT-ID]/census_[DATE]_[TIME]/model.joblib
Membuat paket aplikasi pelatihan
Cara termudah (dan direkomendasikan) untuk membuat paket aplikasi pelatihan menggunakan
gcloud
untuk memaketkan dan mengupload aplikasi saat Anda mengirimkan tugas
pelatihan. Metode ini memungkinkan Anda membuat struktur file yang sangat sederhana hanya dengan dua
file. Untuk tutorial ini, struktur file paket aplikasi pelatihan
Anda akan terlihat seperti berikut:
census_training/
__init__.py
train.py
Buat direktori secara lokal:
mkdir census_training
Buat file kosong bernama
__init__.py
:touch census_training/__init__.py
Simpan kode pelatihan Anda dalam satu file Python, dan simpan file tersebut dalam direktori
census_training
. Lihat contoh kode untuktrain.py
. Anda dapat menggunakancURL
untuk mendownload dan menyimpan file:curl https://raw.githubusercontent.com/GoogleCloudPlatform/cloudml-samples/master/sklearn/notebooks/census_training/train.py > census_training/train.py
Pelajari lebih lanjut cara memaketkan aplikasi pelatihan.
Mengirim tugas pelatihan
Di bagian ini, Anda akan menggunakan
gcloud ai-platform jobs submit training
untuk mengirimkan
tugas pelatihan.
Menentukan parameter tugas pelatihan
Tetapkan variabel lingkungan berikut untuk setiap parameter dalam permintaan tugas pelatihan Anda:
PROJECT_ID
- Gunakan PROJECT_ID yang cocok dengan project Google Cloud Anda.BUCKET_NAME
- Nama bucket Cloud Storage Anda.JOB_NAME
- Nama yang akan digunakan untuk tugas (hanya huruf besar/kecil, angka, dan garis bawah, yang dimulai dengan huruf). Dalam hal ini:census_training_$(date +"%Y%m%d_%H%M%S")
JOB_DIR
- Jalur ke lokasi Cloud Storage yang akan digunakan untuk file output tugas pelatihan Anda. Contoh,gs://$BUCKET_NAME/scikit_learn_job_dir
.TRAINING_PACKAGE_PATH
- Jalur lokal ke direktori utama aplikasi pelatihan Anda. Dalam hal ini:./census_training/
.MAIN_TRAINER_MODULE
- Menentukan file yang harus dijalankan oleh layanan pelatihan AI Platform Training. Formatnya adalah[YOUR_FOLDER_NAME.YOUR_PYTHON_FILE_NAME]
. Dalam hal ini,census_training.train
.REGION
- Nama region yang Anda gunakan untuk menjalankan tugas pelatihan. Gunakan salah satu region yang tersedia untuk layanan pelatihan AI Platform Training. Pastikan bucket Cloud Storage Anda berada di region yang sama.RUNTIME_VERSION
- Anda harus menentukan versi runtime AI Platform Training yang mendukung scikit-learn. Dalam contoh ini,2.11
.PYTHON_VERSION
- Versi Python yang akan digunakan untuk tugas. Untuk tutorial ini, tentukan Python 3.7.SCALE_TIER
- Spesifikasi cluster standar untuk mesin guna menjalankan tugas pelatihan Anda. Dalam hal ini,BASIC
. Anda juga dapat menggunakan tingkat skala kustom untuk menentukan konfigurasi cluster Anda sendiri untuk pelatihan.
Untuk memudahkan Anda, variabel lingkungan untuk tutorial ini ada di bawah.
Ganti [VALUES-IN-BRACKETS]
dengan nilai yang sesuai:
PROJECT_ID=[YOUR-PROJECT-ID]
BUCKET_NAME=[YOUR-BUCKET-NAME]
JOB_NAME=census_training_$(date +"%Y%m%d_%H%M%S")
JOB_DIR=gs://$BUCKET_NAME/scikit_learn_job_dir
TRAINING_PACKAGE_PATH="[YOUR-LOCAL-PATH-TO-TRAINING-PACKAGE]/census_training/"
MAIN_TRAINER_MODULE=census_training.train
REGION=us-central1
RUNTIME_VERSION=2.11
PYTHON_VERSION=3.7
SCALE_TIER=BASIC
Kirim permintaan:
gcloud ai-platform jobs submit training $JOB_NAME \
--job-dir $JOB_DIR \
--package-path $TRAINING_PACKAGE_PATH \
--module-name $MAIN_TRAINER_MODULE \
--region $REGION \
--runtime-version=$RUNTIME_VERSION \
--python-version=$PYTHON_VERSION \
--scale-tier $SCALE_TIER
Anda akan melihat output yang mirip dengan berikut ini:
Job [census_training_[DATE]_[TIME]] submitted successfully. Your job is still active. You may view the status of your job with the command $ gcloud ai-platform jobs describe census_training_[DATE]_[TIME] or continue streaming the logs with the command $ gcloud ai-platform jobs stream-logs census_training_[DATE]_[TIME] jobId: census_training_[DATE]_[TIME] state: QUEUED
Melihat log pelatihan Anda (opsional)
AI Platform Training merekam semua streaming dan pernyataan logging stdout
dan stderr
. Log ini disimpan di Logging; log ini dapat dilihat
selama dan setelah eksekusi.
Untuk melihat log tugas pelatihan Anda:
Konsol
Buka halaman Tugas Pelatihan AI Platform.
Pilih nama tugas pelatihan yang akan diperiksa. Tindakan ini akan mengarahkan Anda ke halaman Detail tugas untuk tugas pelatihan yang dipilih.
Dalam detail tugas, pilih link Lihat log. Tindakan ini akan mengarahkan Anda ke halaman Logging tempat Anda dapat menelusuri dan memfilter log untuk tugas pelatihan yang dipilih.
gcloud
Anda dapat melihat log di terminal dengan gcloud ai-platform jobs stream-logs
.
gcloud ai-platform jobs stream-logs $JOB_NAME
Langkah selanjutnya
- Dapatkan prediksi online dengan scikit-learn di AI Platform Prediction.
- Lihat cara menggunakan tingkat skala kustom untuk menentukan konfigurasi cluster Anda sendiri untuk pelatihan.