Memulai dengan algoritma pembelajar linear bawaan

Dengan algoritma bawaan di AI Platform Training, Anda dapat mengirimkan data pelatihan, memilih algoritme, dan membiarkan AI Platform Training menangani pra-pemrosesan dan pelatihan untuk Anda, tanpa perlu 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 Sensus Revenue ke Pelatihan AI Platform untuk pra-pemrosesan dan pelatihan, lalu men-deploy model tersebut 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 apa 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:

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  4. Enable the AI Platform Training & Prediction and Compute Engine APIs.

    Enable the APIs

  5. Menginstal Google Cloud CLI.
  6. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init
  7. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  8. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  9. Enable the AI Platform Training & Prediction and Compute Engine APIs.

    Enable the APIs

  10. Menginstal Google Cloud CLI.
  11. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init

Penyiapan

Untuk menggunakan algoritma bawaan berbentuk 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.

Menyalin data sampel ke bucket Cloud Storage

  1. Pertama, download data pelatihan dan pengujian dari bucket Cloud Storage publik kami.

    1. Buka bucket Cloud Storage publik kami:

      Mendapatkan data sampel

    2. Mendownload test.csv dan train.csv:

      1. Klik nama file.

      2. Dari halaman Object details, klik Download. File ini masing-masing didownload ke lingkungan lokal Anda sebagai ai-platform_census_algorithms_data_test.csv dan ai-platform_census_algorithms_data_train.csv.

  2. Selanjutnya, upload data pelatihan dan pengujian ke bucket Cloud Storage Anda.

    1. Buka halaman Browser untuk bucket Cloud Storage Anda. Pilih project Anda dari menu drop-down Select a project, atau buka di tab baru:

      Halaman Browser Cloud Storage

    2. Klik nama bucket yang ingin digunakan, atau buat bucket baru jika Anda belum memilikinya. (Jika Anda membuat bucket baru, pastikan bucket tersebut berupa bucket regional, lalu pilih region yang sama tempat Anda menjalankan tugas pelatihan AI Platform Training.)

    3. (Opsional) Klik Buat folder guna membuat folder untuk file yang Anda upload. Masukkan nama untuk folder tersebut (misalnya "data"), lalu klik Create. Kemudian, buka folder baru dengan mengklik nama folder.

    4. Klik Upload files untuk mengupload file pelatihan dan pengujian, ai-platform_census_algorithms_data_train.csv dan ai-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 Anda gunakan.

Pilih algoritma Anda

  1. Buka halaman Tugas Pelatihan AI Platform di Konsol Google Cloud:

    Halaman Tugas Pelatihan AI Platform

  2. Klik tombol Tugas pelatihan baru. Dari opsi yang ditampilkan di bawah, klik Pelatihan algoritme bawaan. Halaman Buat tugas pelatihan baru akan ditampilkan.

  3. Pembuatan tugas pelatihan dibagi menjadi empat langkah. Langkah pertama adalah Algoritme pelatihan. Pilih linear learner dan klik Next.

gcloud

Siapkan variabel lingkungan untuk project ID Anda, bucket Cloud Storage, jalur Cloud Storage ke data pelatihan, dan pilihan algoritme Anda.

Algoritma bawaan Pelatihan AI Platform berada di 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
gsutil 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 algoritme linear learner.

Argumen umum untuk tugas pelatihan:

Melatih argumen tugas
Argumen Deskripsi
job-id ID unik untuk tugas pelatihan Anda. Anda dapat menggunakannya untuk menemukan log tentang 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 untuk satu mesin saja.
master-image-uri URI Container Registry digunakan untuk menentukan container Docker yang akan digunakan untuk tugas pelatihan. Gunakan container untuk algoritme pembelajar linear bawaan yang ditentukan sebelumnya sebagai IMAGE_URI.
region Tentukan region yang tersedia untuk menjalankan tugas pelatihan Anda. Untuk tutorial ini, Anda dapat menggunakan wilayah us-central1.

Argumen khusus untuk algoritme pelajar 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 dari semua flag algoritma pembelajar linear lainnya, lihat referensi pembelajar linear bawaan.

Konsol

  1. Biarkan Aktifkan pra-pemrosesan data otomatis dicentang.

  2. Untuk Jalur data pelatihan, klik Jelajahi. Di panel kanan, klik nama bucket tempat Anda mengupload data pelatihan, lalu buka file ai-platform_census_algorithms_data_train.csv Anda.

  3. Biarkan kolom untuk Validation data dan Test data pada setelan defaultnya.

  4. Di Direktori output, masukkan jalur ke bucket Cloud Storage Anda tempat Anda ingin AI Platform Training menyimpan output dari tugas pelatihan Anda. Anda dapat mengisi jalur bucket Cloud Storage secara langsung, atau mengklik tombol Browse untuk memilihnya.

    Agar semuanya tetap teratur, buat direktori baru dalam bucket Cloud Storage untuk tugas pelatihan ini. Anda dapat melakukannya di dalam panel Browse.

    Klik Next.

  5. Untuk Jenis model, pilih Klasifikasi.

  6. Biarkan semua kolom lain pada setelan defaultnya, lalu klik Next.

  7. Di halaman Job settings:

    1. Masukkan ID Tugas unik (seperti "linear_example").
    2. Masukkan region yang tersedia (seperti "us-central1").
    3. Pilih "DASAR" untuk tingkat skala.

    Klik Selesai untuk mengirim tugas pelatihan.

gcloud

  1. Siapkan semua argumen untuk tugas pelatihan dan algoritma, sebelum menggunakan gcloud untuk mengirim 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}"
    
  2. 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
    

  3. 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 pekerjaan Anda

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:

  • artefak/
    • metadata.json
  • model/ (direktori TersimpanModel yang juga berisi file deployment_config.yaml)
    • saved_model.pb
    • deployment_config.yaml
  • diproses_data/
    • test.csv
    • training.csv
    • validation.csv

Direktori tugas juga berisi berbagai file checkpoint model dalam direktori "experiment".

Pastikan struktur direktori di JOB_DIR cocok dengan:

gsutil ls -a $JOB_DIR/*

Men-deploy model yang dilatih

AI Platform Prediction mengatur model terlatih Anda menggunakan resource model dan versi. Model Prediksi AI Platform adalah penampung untuk versi model machine learning Anda.

Untuk men-deploy model, buat resource model di AI Platform Prediction, buat versi model tersebut, lalu gunakan model dan versi tersebut untuk meminta prediksi online.

Pelajari lebih lanjut cara men-deploy model ke AI Platform Prediction.

Konsol

  1. Di halaman Tugas, Anda dapat menemukan daftar semua tugas pelatihan Anda. Klik nama tugas pelatihan yang baru saja Anda kirimkan ("linear_example" atau nama tugas yang Anda gunakan).

  2. Di halaman Detail tugas, Anda dapat melihat progres umum dari tugas Anda, atau mengklik View logs untuk melihat progresnya secara lebih mendetail.

  3. Setelah tugas berhasil, tombol Deploy model akan muncul di bagian atas. Klik Deploy model.

  4. Pilih "Deploy as new model", dan masukkan nama model, seperti "linear_model". Selanjutnya, klik Konfirmasi.

  5. Pada halaman Buat versi, masukkan nama versi, misalnya "v1", dan biarkan semua kolom lain dalam setelan defaultnya. Klik Save.

  6. Di halaman Detail model, nama versi akan ditampilkan. Pembuatan versi memerlukan waktu beberapa menit. Jika versi sudah siap, ikon tanda centang akan muncul di samping nama versi.

  7. Klik nama versi ("v1") untuk membuka halaman Detail versi. Pada langkah selanjutnya dalam tutorial ini, Anda akan mengirim permintaan prediksi

gcloud

Proses pelatihan dengan algoritme learner linear bawaan menghasilkan file, deployment_config.yaml, yang memudahkan deployment model Anda di AI Platform Prediction untuk prediksi.

  1. Salin file ke direktori lokal Anda dan lihat isinya:

    gsutil 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'
    
  2. Buat model dan versi dalam 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 diformat dengan cara yang sama dengan data pelatihan. Sebelum pelatihan, Pelatihan AI Platform melakukan pra-pemrosesan data dengan mengubahnya menjadi korpus yang ditampilkan di metadata.json.

Model pelajar linear menerapkan pra-pemrosesan yang serupa ke data input Anda sebelum membuat prediksi.

Konsol

  1. Di halaman Detail versi untuk "v1", versi yang baru saja dibuat, Anda dapat mengirim contoh permintaan prediksi.

    Pilih tab Pengujian & Penggunaan.

  2. 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"}
       ]
     }
    
  3. Klik Uji.

    Contoh hasil prediksi memiliki beberapa kolom. Daftar classes menunjukkan class yang diprediksi >50K':

    {
       "predictions": [
         {
           ...
           "classes": [
             ">50K"
           ],
           ...
         }
       ]
     }
    

    Dalam hal ini, model yang di-deploy memprediksi individu yang informasinya Anda berikan memperoleh gaji lebih dari $50.000. (Karena pelatihan tidak deterministik, model Anda mungkin berbeda.)

gcloud

  1. Tinjau beberapa baris terakhir metadata.json:

    gsutil 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"
      }
    }
    
  2. Siapkan input prediksi untuk satu instance data. Perhatikan bahwa Anda harus memberikan setiap instance data sebagai objek JSON dengan kolom berikut:

    • csv_row, string yang berisi baris fitur yang dipisahkan koma dalam format yang sama seperti instance yang digunakan selama pelatihan.
    • key, ID string yang unik untuk setiap instance. Kunci ini berfungsi sebagai kunci instance yang muncul sebagai bagian dari output prediksi sehingga Anda dapat mencocokkan setiap prediksi dengan instance input yang terkait.

      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 tidak begitu penting. Contoh ini hanya melakukan prediksi pada satu instance, sehingga nilai kunci instance tidak menjadi masalah.

    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 Anda guna 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
    
  3. 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 agar hanya menampilkan class yang diprediksi:

    >50K
    

Kemungkinan besar, output prediksinya adalah >50K. Model yang di-deploy memprediksi individu yang informasinya Anda berikan akan memperoleh gaji lebih dari $50.000. (Karena pelatihan bersifat non-deterministik, model Anda mungkin berbeda.)

Tentang data

Set data Sensus Revenue yang digunakan sampel ini untuk pelatihan dihosting oleh UC Irvine Machine Learning Repository.

Data sensus disediakan oleh: Lichman, M. (2013). Repositori UCI Machine Learning http://archive.ics.uci.edu/ml. Irvine, CA: University of California, School of Information and Computer Science.

Langkah selanjutnya