Dengan algoritma bawaan di AI Platform Training, Anda dapat mengirimkan data pelatihan, memilih algoritma, dan membiarkan AI Platform Training menangani prapemrosesan dan pelatihan untuk Anda, tanpa menulis kode apa pun untuk aplikasi pelatihan.
Ringkasan
Dalam tutorial ini, Anda akan melatih model pembelajar linear tanpa menulis kode apa pun. Anda mengirimkan set data Pendapatan Sensus ke AI Platform Training untuk pra-pemrosesan dan pelatihan, lalu men-deploy model di AI Platform Training untuk mendapatkan prediksi. Model yang dihasilkan memprediksi probabilitas bahwa pendapatan tahunan seseorang lebih besar dari $50.000.
Sebelum memulai
Untuk menyelesaikan tutorial ini di command line, gunakan Cloud Shell atau lingkungan mana pun tempat Google Cloud CLI diinstal.
Selesaikan langkah-langkah berikut untuk menyiapkan akun GCP, mengaktifkan API yang diperlukan, serta menginstal dan mengaktifkan Google Cloud CLI:
- 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 AI Platform Training & Prediction and Compute Engine APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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 AI Platform Training & Prediction and Compute Engine APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Penyiapan
Untuk menggunakan algoritma bawaan tabel, Anda harus menghapus baris header dari file CSV dan memindahkan nilai target ke kolom pertama. Kami telah mengubah set data Sensus asli untuk digunakan dengan tutorial ini, dan menghostingnya di bucket Cloud Storage publik,
gs://cloud-samples-data/ai-platform/census/algorithms/data/
.
Konsol
Sebelum memulai tugas pelatihan, Anda perlu menyalin data dari bucket Cloud Storage publik kami ke bucket Cloud Storage Anda.
Salin data contoh ke bucket Cloud Storage Anda
Pertama, download data pelatihan dan pengujian dari bucket Cloud Storage publik kami.
Buka bucket Cloud Storage publik kami:
Download
test.csv
dantrain.csv
:Klik nama file.
Dari halaman Detail objek, klik Download. File ini didownload ke lingkungan lokal Anda sebagai
ai-platform_census_algorithms_data_test.csv
danai-platform_census_algorithms_data_train.csv
.
Selanjutnya, upload data pelatihan dan pengujian ke bucket Cloud Storage Anda.
Buka halaman Browser untuk bucket Cloud Storage Anda. Pilih project Anda dari menu drop-down Select a project, atau buka di tab baru:
Klik nama bucket yang ingin Anda gunakan, atau buat bucket baru jika Anda tidak memilikinya. (Jika Anda membuat bucket baru, pastikan itu adalah bucket regional, dan pilih region yang sama dengan tempat Anda menjalankan tugas pelatihan AI Platform Training.)
(Opsional) Klik Buat folder untuk membuat folder bagi file yang Anda upload. Masukkan nama untuk folder (misalnya, "data"), lalu klik Buat. Kemudian, buka folder baru dengan mengklik nama folder.
Klik Upload files untuk mengupload file pelatihan dan pengujian,
ai-platform_census_algorithms_data_train.csv
danai-platform_census_algorithms_data_test.csv
, ke bucket Anda.
Setelah data disalin ke bucket, Anda dapat memulai tugas pelatihan dengan memilih jenis algoritma yang ingin digunakan.
Memilih algoritme
Buka halaman Tugas Pelatihan AI Platform di konsol Google Cloud:
Klik tombol Tugas pelatihan baru. Dari opsi yang ditampilkan di bawah, klik Pelatihan algoritma bawaan. Halaman Create a new training job akan ditampilkan.
Pembuatan tugas pelatihan dibagi menjadi empat langkah. Langkah pertama adalah Algoritma pelatihan. Pilih pembelajar linear dan klik Berikutnya.
gcloud
Siapkan variabel lingkungan untuk project ID, bucket Cloud Storage, jalur Cloud Storage ke data pelatihan, dan pilihan algoritma Anda.
Algoritma bawaan AI Platform Training berada dalam container Docker yang dihosting di Container Registry.
PROJECT_ID=YOUR_PROJECT_ID
BUCKET_NAME=YOUR_BUCKET_NAME
REGION="us-central1"
gcloud config set project $PROJECT_ID
gcloud config set compute/region $REGION
# Copy the training data into your Cloud Storage bucket, and set the path
# to your copy of the training data.
TRAINING_DATA_SOURCE=gs://cloud-samples-data/ai-platform/census/algorithms/data/train.csv
TRAINING_DATA_PATH=gs://$BUCKET_NAME/algorithms-demo/data/train.csv
gcloud storage cp $TRAINING_DATA_SOURCE $TRAINING_DATA_PATH
# Specify the Docker container URI specific to the algorithm.
IMAGE_URI="gcr.io/cloud-ml-algos/linear_learner_cpu:latest"
Mengirim tugas pelatihan
Untuk mengirimkan tugas, Anda harus menentukan beberapa argumen pelatihan dasar dan beberapa argumen dasar yang terkait dengan algoritma pembelajar linear.
Argumen umum untuk tugas pelatihan:
Argumen tugas pelatihan | |
---|---|
Argumen | Deskripsi |
job-id |
ID unik untuk tugas pelatihan Anda. Anda dapat menggunakannya untuk menemukan log status tugas pelatihan setelah mengirimkannya. |
job-dir |
Jalur Cloud Storage tempat AI Platform Training menyimpan file pelatihan setelah menyelesaikan tugas pelatihan yang berhasil. |
scale-tier |
Menentukan jenis mesin untuk pelatihan. Gunakan BASIC untuk memilih
konfigurasi hanya satu mesin.
|
master-image-uri |
URI Container Registry yang digunakan untuk menentukan container Docker yang akan digunakan untuk tugas pelatihan. Gunakan penampung untuk algoritma pemelajar linear bawaan yang ditentukan sebelumnya sebagai IMAGE_URI .
|
region |
Tentukan region yang tersedia untuk menjalankan tugas pelatihan Anda. Untuk
tutorial ini, Anda dapat menggunakan region us-central1 .
|
Argumen khusus untuk algoritma pembelajar linear bawaan:
Argumen algoritme | |
---|---|
Argumen | Deskripsi |
preprocess |
Argumen Boolean yang menyatakan apakah Pelatihan AI Platform harus melakukan prapemrosesan data atau tidak. |
model_type |
Menunjukkan jenis model yang akan dilatih: klasifikasi atau regresi. |
training_data_path |
Lokasi Cloud Storage ke data pelatihan, yang harus berupa file CSV. |
learning_rate |
Kecepatan pembelajaran yang digunakan oleh pengoptimal linear. |
max_steps |
Jumlah langkah untuk menjalankan pelatihan. |
batch_size |
Jumlah contoh yang akan digunakan per langkah pelatihan. |
Untuk mengetahui daftar mendetail semua flag algoritma pembelajar linear lainnya, lihat referensi pembelajar linear bawaan.
Konsol
Biarkan Aktifkan pra-pemrosesan data otomatis dicentang.
Untuk Jalur data pelatihan, klik Browse. Di panel kanan, klik nama bucket tempat Anda mengupload data pelatihan, lalu buka file
ai-platform_census_algorithms_data_train.csv
.Biarkan kolom untuk Data validasi dan Data pengujian pada setelan defaultnya.
Di Output directory, masukkan jalur ke bucket Cloud Storage Anda tempat Anda ingin AI Platform Training menyimpan output dari tugas pelatihan. Anda dapat mengisi jalur bucket Cloud Storage secara langsung, atau klik tombol Browse untuk memilihnya.
Agar semuanya tetap teratur, buat direktori baru dalam bucket Cloud Storage Anda untuk tugas pelatihan ini. Anda dapat melakukannya dalam panel Jelajahi.
Klik Berikutnya.
Untuk Model type, pilih Classification.
Biarkan semua kolom lain tetap pada setelan defaultnya, lalu klik Berikutnya.
Di halaman Setelan tugas:
- Masukkan ID Tugas yang unik (seperti "linear_example").
- Masukkan region yang tersedia (seperti "us-central1").
- Pilih "BASIC" untuk tingkat skala.
Klik Selesai untuk mengirimkan tugas pelatihan.
gcloud
Siapkan semua argumen untuk tugas pelatihan dan algoritme, sebelum menggunakan
gcloud
untuk mengirimkan tugas:DATASET_NAME="census" ALGORITHM="linear" MODEL_TYPE="classification" MODEL_NAME="${DATASET_NAME}_${ALGORITHM}_${MODEL_TYPE}" # Give a unique name to your training job. DATE="$(date '+%Y%m%d_%H%M%S')" JOB_ID="${MODEL_NAME}_${DATE}" # Make sure you have access to this Cloud Storage bucket. JOB_DIR="gs://${BUCKET_NAME}/algorithms_training/${MODEL_NAME}/${DATE}"
Kirim tugas:
gcloud ai-platform jobs submit training $JOB_ID \ --master-image-uri=$IMAGE_URI --scale-tier=BASIC --job-dir=$JOB_DIR \ -- \ --preprocess --model_type=$MODEL_TYPE --batch_size=250 \ --learning_rate=0.1 --max_steps=1000 --training_data_path=$TRAINING_DATA_PATH
Setelah tugas berhasil dikirim, Anda dapat melihat log menggunakan perintah
gcloud
berikut:gcloud ai-platform jobs describe $JOB_ID gcloud ai-platform jobs stream-logs $JOB_ID
Memahami direktori lowongan
Setelah tugas pelatihan berhasil diselesaikan, AI Platform Training akan membuat model terlatih di bucket Cloud Storage Anda, beserta beberapa artefak lainnya. Anda dapat menemukan struktur direktori berikut dalam JOB_DIR
:
- artifacts/
- metadata.json
- model/ (direktori TensorFlow SavedModel yang juga berisi file
deployment_config.yaml
)- saved_model.pb
- deployment_config.yaml
- processed_data/
- test.csv
- training.csv
- validation.csv
Direktori tugas juga berisi berbagai file checkpoint model di direktori "eksperimen".
Pastikan struktur direktori di JOB_DIR
Anda cocok dengan:
gcloud storage ls $JOB_DIR/* --all-versions
Men-deploy model terlatih
AI Platform Prediction mengatur model terlatih Anda menggunakan resource model dan versi. Model AI Platform Prediction adalah penampung untuk versi model machine learning Anda.
Untuk men-deploy model, Anda membuat resource model di AI Platform Prediction, membuat versi model tersebut, lalu menggunakan model dan versi untuk meminta prediksi online.
Pelajari lebih lanjut cara men-deploy model ke AI Platform Prediction.
Konsol
Di halaman Tugas, Anda dapat menemukan daftar semua tugas pelatihan. Klik nama tugas pelatihan yang baru saja Anda kirimkan ("linear_example" atau nama tugas yang Anda gunakan).
Di halaman Detail tugas, Anda dapat melihat progres umum tugas, atau mengklik Lihat log untuk melihat progresnya secara lebih mendetail.
Jika tugas berhasil, tombol Deploy model akan muncul di bagian atas. Klik Deploy model.
Pilih "Deploy as new model", lalu masukkan nama model, seperti "linear_model". Selanjutnya, klik Konfirmasi.
Di halaman Create version, masukkan nama versi, seperti "v1", dan biarkan semua kolom lainnya menggunakan setelan defaultnya. Klik Simpan.
Di halaman Model details, nama versi Anda akan ditampilkan. Pembuatan versi ini memerlukan waktu beberapa menit. Jika versi sudah siap, ikon tanda centang akan muncul di samping nama versi.
Klik nama versi ("v1") untuk membuka halaman Detail versi. Pada langkah berikutnya dalam tutorial ini, Anda akan mengirim permintaan prediksi
gcloud
Proses pelatihan dengan algoritma pembelajar linear bawaan menghasilkan file, deployment_config.yaml
, yang mempermudah deployment model Anda di AI Platform Prediction untuk prediksi.
Salin file ke direktori lokal Anda dan lihat kontennya:
gcloud storage cp $JOB_DIR/model/deployment_config.yaml . cat deployment_config.yaml
File
deployment_config.yaml
Anda akan terlihat seperti berikut:deploymentUri: gs://YOUR_BUCKET_NAME/algorithms_training/census_linear_classification/20190227060114/model framework: TENSORFLOW labels: global_step: '1000' job_id: census_linear_classification_20190227060114 accuracy: '86' runtimeVersion: '1.14' pythonVersion: '2.7'
Buat model dan versi di AI Platform Training:
MODEL_NAME="${DATASET_NAME}_${ALGORITHM}_${MODEL_TYPE}" gcloud ai-platform models create $MODEL_NAME --regions $REGION # Create a model and a version using the file above. VERSION_NAME="v_${DATE}" gcloud ai-platform versions create $VERSION_NAME \ --model $MODEL_NAME \ --config deployment_config.yaml
Pembuatan versi memerlukan waktu beberapa menit.
Mendapatkan prediksi online
Saat meminta prediksi, Anda harus memastikan bahwa data input Anda
diformat dengan cara yang sama seperti data pelatihan. Sebelum pelatihan,
AI Platform Training akan memproses data Anda terlebih dahulu dengan mengubahnya menjadi
korpus yang ditampilkan di metadata.json
.
Model pembelajar linear menerapkan pra-pemrosesan serupa pada data input Anda sebelum membuat prediksi.
Konsol
Di halaman Detail versi untuk "v1", versi yang baru saja Anda buat, Anda dapat mengirim contoh permintaan prediksi.
Pilih tab Uji & Gunakan.
Salin contoh berikut ke kolom input:
{ "instances": [ {"csv_row": "44, Private, 160323, Some-college, 10, Married-civ-spouse, Machine-op-inspct, Husband, Black, Male, 7688, 0, 40, United-States", "key": "dummy-key"} ] }
Klik Uji.
Contoh hasil prediksi memiliki beberapa kolom. Daftar
classes
menampilkan class>50K'
yang diprediksi:{ "predictions": [ { ... "classes": [ ">50K" ], ... } ] }
Dalam hal ini, model yang di-deploy memprediksi individu yang informasinya Anda berikan memperoleh gaji lebih dari $50.000. (Karena pelatihan bersifat non-deterministik, model Anda mungkin berbeda.)
gcloud
Tinjau beberapa baris terakhir
metadata.json
:gcloud storage cat $JOB_DIR/artifacts/metadata.json | tail
Objek
target_column.mapping
menunjukkan cara class yang diprediksi akan ditampilkan dalam hasil prediksi:"target_algorithm": "TensorFlow", "target_column": { "mapping": { "0": "<=50K", "1": ">50K" }, "num_category": 2, "type": "classification" } }
Menyiapkan input prediksi untuk satu instance data. Perhatikan bahwa Anda harus menyediakan setiap instance data sebagai objek JSON dengan kolom berikut:
csv_row
, string yang berisi baris fitur yang dipisahkan koma dalam format yang sama dengan instance yang digunakan selama pelatihan.key
, ID string yang unik untuk setiap instance. Ini berfungsi sebagai kunci instance yang muncul sebagai bagian dari output prediksi, sehingga Anda dapat mencocokkan setiap prediksi dengan instance input yang sesuai.Hal ini diperlukan untuk prediksi batch, karena prediksi batch memproses input dan menyimpan output dalam urutan yang tidak dapat diprediksi.
Untuk prediksi online, yang menghasilkan output dalam urutan yang sama dengan input yang Anda berikan, kunci instance kurang penting. Contoh ini hanya melakukan prediksi pada satu instance, sehingga nilai kunci instance tidak penting.
Untuk mengirim permintaan prediksi online menggunakan Google Cloud CLI, seperti dalam contoh ini, tulis setiap instance ke baris dalam file JSON yang dibatasi baris baru.
Jalankan perintah berikut di terminal untuk membuat input untuk satu instance yang dapat Anda kirim ke AI Platform Prediction:
# A sample record from census dataset. Ground truth is >50K RAW_DATA_POINT='44, Private, 160323, Some-college, 10, Married-civ-spouse, Machine-op-inspct, Husband, Black, Male, 7688, 0, 40, United-States' # Create a prediction request file echo "{\"csv_row\": \"$RAW_DATA_POINT\", \"key\": \"dummy-key\"}" > sample_input.json # Check the prediction request file. cat sample_input.json
Kirim permintaan prediksi:
gcloud ai-platform predict \ --model $MODEL_NAME \ --version $VERSION_NAME \ --json-instances sample_input.json \ --format "value(predictions[0].classes[0])" \ --signature-name "predict"
Output prediksi ini difilter untuk hanya menampilkan class yang diprediksi:
>50K
Kemungkinan besar, output prediksi adalah >50K
. Model yang di-deploy memprediksi bahwa individu yang informasinya Anda berikan memperoleh gaji lebih dari $50.000. (Karena pelatihan bersifat non-deterministik, model Anda mungkin berbeda.)
Tentang data
Set data Pendapatan Sensus yang digunakan sampel ini untuk pelatihan dihosting oleh UC Irvine Machine Learning Repository.
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.
Langkah selanjutnya
- Pelajari lebih lanjut cara menggunakan algoritma pembelajar linear bawaan.