Pelatihan dengan algoritma bawaan di Pelatihan AI Platform memungkinkan Anda mengirim set data dan melatih model tanpa menulis kode pelatihan apa pun. Halaman ini menjelaskan cara kerja algoritma pembelajar linear bawaan, dan cara menggunakannya.
Ringkasan
Algoritma bawaan ini melakukan pra-pemrosesan dan pelatihan:
- Pra-pemrosesan: Pelatihan AI Platform memproses campuran data kategoris dan numerik Anda menjadi semua set data numerik guna mempersiapkannya untuk pelatihan.
- Pelatihan: Dengan menggunakan set data dan parameter model yang Anda berikan, AI Platform Training menjalankan pelatihan menggunakan Linear Estimator TensorFlow.
Batasan
Fitur berikut tidak didukung untuk pelatihan dengan algoritma pelajar linear bawaan:
- Pelatihan multi-GPU. Algoritma bawaan hanya menggunakan satu GPU pada satu waktu. Untuk memanfaatkan pelatihan dengan beberapa GPU di satu mesin secara maksimal, Anda harus membuat aplikasi pelatihan. Temukan informasi selengkapnya tentang jenis mesin.
- Pelatihan dengan TPU. Untuk berlatih dengan TPU, Anda harus membuat aplikasi pelatihan. Pelajari cara menjalankan tugas pelatihan dengan TPU.
- Pelatihan terdistribusi. Untuk menjalankan tugas pelatihan terdistribusi pada AI Platform Training, Anda harus membuat aplikasi pelatihan.
Jenis mesin yang didukung
Tingkat skala dan jenis mesin Pelatihan AI Platform berikut didukung:
- Tingkat skala
BASIC
- Tingkat skala
CUSTOM
dengan salah satu jenis mesin Compute Engine yang didukung oleh AI Platform Training. - Tingkat skala
CUSTOM
dengan salah satu jenis mesin lama berikut:standard
large_model
complex_model_s
complex_model_m
complex_model_l
standard_gpu
standard_p100
standard_v100
large_model_v100
Memformat data input
Setiap baris set data mewakili satu instance, dan setiap kolom set data mewakili nilai fitur. Kolom target mewakili nilai yang ingin Anda prediksi.
Menyiapkan file CSV
Data input harus berupa file CSV dengan encoding UTF-8. Jika data pelatihan Anda hanya terdiri dari nilai kategoris dan numerik, Anda dapat menggunakan modul pra-pemrosesan kami untuk mengisi nilai numerik yang hilang, membagi set data, dan menghapus baris dengan lebih dari 10% nilai yang hilang. Jika tidak, Anda dapat menjalankan pelatihan tanpa mengaktifkan pra-pemrosesan otomatis.
Anda harus menyiapkan file CSV input untuk memenuhi persyaratan berikut:
- Hapus baris header. Baris header berisi label untuk setiap kolom. Hapus baris header agar tidak mengirimkannya bersama instance data lainnya sebagai bagian dari data pelatihan.
- Pastikan kolom target adalah kolom pertama. Kolom target berisi nilai yang Anda coba prediksi. Untuk algoritma klasifikasi, semua nilai dalam kolom target adalah class atau kategori. Untuk algoritma regresi, semua nilai dalam kolom target adalah nilai numerik.
Menangani nilai bilangan bulat
Arti nilai bilangan bulat dapat ambigu, yang membuat kolom nilai bilangan bulat bermasalah dalam pra-pemrosesan otomatis. AI Platform Training secara otomatis menentukan cara menangani nilai bilangan bulat. Secara default:
- Jika setiap nilai bilangan bulat unik, kolom akan diperlakukan sebagai kunci instance.
- Jika hanya ada beberapa nilai bilangan bulat unik, kolom akan diperlakukan sebagai kategoris.
- Jika tidak, nilai dalam kolom akan dikonversi menjadi float dan diperlakukan sebagai numerik.
Untuk mengganti penentuan default ini:
- Jika data harus diperlakukan sebagai numerik, konversi semua nilai bilangan bulat dalam kolom menjadi floating point, mis. {101,0, 102,0, 103,0}
- Jika data harus diperlakukan sebagai kategoris, tambahkan awalan non-numerik ke semua nilai bilangan bulat dalam kolom, misalnya {kode_101, kode_102, kode_103}
Memeriksa izin bucket Cloud Storage
Untuk menyimpan data Anda, gunakan bucket Cloud Storage di project Google Cloud yang sama dengan yang Anda gunakan untuk menjalankan tugas Pelatihan AI Platform. Jika tidak, berikan AI Platform akses ke bucket Cloud Storage tempat data Anda disimpan.
Mengirim tugas pelatihan pembelajar linear
Bagian ini menjelaskan cara mengirimkan tugas pelatihan menggunakan algoritma pelajar linear bawaan.
Anda dapat menemukan penjelasan singkat tentang setiap hyperparameter dalam Google Cloud Console, dan penjelasan yang lebih komprehensif di referensi untuk algoritma pembelajar linear bawaan.
Konsol
Buka halaman Tugas Pelatihan AI Platform di Konsol Google Cloud:
Klik tombol Tugas pelatihan baru. Dari opsi yang ditampilkan di bawah, klik Pelatihan algoritme bawaan.
Di halaman Create a new training job, pilih linear learner, lalu klik Next.
Untuk mempelajari lebih lanjut semua parameter yang tersedia, ikuti link di Konsol Google Cloud dan lihat referensi pelajar linear bawaan untuk mengetahui detail lebih lanjut.
gcloud
Tetapkan variabel lingkungan untuk tugas Anda, dengan mengisi
[VALUES-IN-BRACKETS]
dengan nilai Anda sendiri:# Specify the name of the Cloud Storage bucket where you want your # training outputs to be stored, and the Docker container for # your built-in algorithm selection. BUCKET_NAME='BUCKET_NAME' IMAGE_URI='gcr.io/cloud-ml-algos/linear_learner_cpu:latest' # Specify the Cloud Storage path to your training input data. TRAINING_DATA='gs://$BUCKET_NAME/YOUR_FILE_NAME.csv' DATE="$(date '+%Y%m%d_%H%M%S')" MODEL_NAME='MODEL_NAME' JOB_ID="${MODEL_NAME}_${DATE}" JOB_DIR="gs://${BUCKET_NAME}/algorithm_training/${MODEL_NAME}/${DATE}"
Kirim tugas pelatihan menggunakan
gcloud ai-platform jobs training submit
. Sesuaikan contoh umum ini untuk digunakan dengan {i>dataset<i} Anda: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
Pantau status tugas pelatihan Anda dengan melihat log menggunakan
gcloud
. Lihatgcloud ai-platform jobs describe
dangcloud ai-platform jobs stream-logs
.gcloud ai-platform jobs describe ${JOB_ID} gcloud ai-platform jobs stream-logs ${JOB_ID}
Cara kerja pra-pemrosesan
Prapemrosesan otomatis bekerja untuk data kategoris dan numerik. Rutinitas pra-pemrosesan menganalisis terlebih dahulu, lalu mengubah data Anda.
Analisis
Pertama, AI Platform Training otomatis mendeteksi jenis data setiap
kolom, mengidentifikasi cara setiap kolom harus diperlakukan, dan menghitung beberapa
statistik data dalam kolom tersebut. Informasi ini dicatat dalam
file metadata.json
.
AI Platform Training menganalisis jenis kolom target untuk mengidentifikasi apakah set data tertentu ditujukan untuk regresi atau klasifikasi. Jika analisis ini
bentrok dengan pilihan Anda untuk model_type
, akan terjadi
error. Jelaskan cara memperlakukan kolom target dengan memformat data secara jelas dalam kasus yang ambigu.
Jenis: Kolom dapat berupa numerik atau kategori.
Perlakuan: Pelatihan AI Platform mengidentifikasi cara memperlakukan setiap kolom sebagai berikut:
- Jika kolom mencakup satu nilai di semua baris, kolom tersebut diperlakukan sebagai konstanta.
- Jika kolom bersifat kategoris, dan menyertakan nilai unik di semua baris, kolom tersebut akan diperlakukan sebagai row_identifier.
- Jika kolom berupa numerik dengan nilai float, atau jika berupa numerik dengan nilai bilangan bulat dan berisi banyak nilai unik, kolom tersebut akan diperlakukan sebagai numerik.
- Jika kolom bersifat numerik dengan nilai bilangan bulat, dan berisi sedikit nilai unik yang cukup, kolom tersebut akan diperlakukan sebagai kolom kategoris dengan nilai bilangan bulat berupa identitas atau kosakata.
- Kolom dianggap memiliki beberapa nilai unik jika jumlah nilai unik dalam kolom kurang dari 20% dari jumlah baris dalam set data input.
- Jika kolom merupakan kategoris dengan kardinalitas tinggi, kolom tersebut akan ditangani dengan hashing, dengan jumlah bucket hash sama dengan akar kuadrat dari jumlah nilai unik dalam kolom.
- Kolom kategoris dianggap memiliki kardinalitas tinggi jika jumlah nilai unik lebih besar dari akar kuadrat jumlah baris dalam set data.
- Jika kolom bersifat kategoris, dan jumlah nilai unik kurang dari atau sama dengan akar kuadrat jumlah baris dalam set data, kolom tersebut diperlakukan sebagai kolom kategoris normal dengan kosakata.
Statistik: Pelatihan AI Platform menghitung statistik berikut, berdasarkan jenis kolom dan perlakuan yang diidentifikasi, untuk digunakan untuk mengubah kolom di tahap berikutnya.
- Jika kolom berupa angka, nilai {i>mean<i} dan varians akan dihitung.
- Jika kolom bersifat kategoris, dan perlakuannya adalah identitas atau kosakata, nilai yang berbeda diekstrak dari kolom.
- Jika kolom bersifat kategoris, dan perlakuannya adalah hashing, jumlah bucket hash dihitung berdasarkan kardinalitas kolom.
Transformasi
Setelah analisis awal set data selesai, AI Platform Training akan mentransformasi data Anda berdasarkan jenis, perlakuan, dan statistik yang diterapkan ke set data Anda. AI Platform Training melakukan transformasi dalam urutan berikut:
- Memisahkan set data pelatihan menjadi set data validasi dan pengujian jika Anda menentukan persentase pemisahan.
- Menghapus baris yang memiliki lebih dari 10% fitur yang hilang.
- Mengisi nilai numerik yang hilang menggunakan nilai {i>mean<i} pada kolom.
Contoh transformasi
Baris berisi 10% nilai yang tidak ada akan dihapus. Pada contoh berikut, anggaplah baris memiliki 10 nilai. Setiap contoh baris dipotong agar lebih praktis.
Masalah baris | Nilai asli | Nilai yang diubah | Penjelasan |
---|---|---|---|
Contoh baris yang tidak memiliki nilai | [3, 0,45, ..., 'fruits', 0, 1] |
[3, 0,45, ..., 1, 0, 0, 0, 1] |
String 'values' diubah menjadi nilai "1, 0, 0" dalam encoding one-hot. Hal ini terjadi nanti dalam grafik TensorFlow. |
Terlalu banyak nilai yang hilang | [3, 0,45, ..., 'buah', __, __] |
Baris dihapus | Lebih dari 10% nilai dalam baris tidak ada. |
Nilai numerik tidak ada | [3, 0,45, ..., 'fruits', 0, __] |
[3, 0,45, ..., 1, 0, 0, 0, 0,54] |
|
Nilai kategori tidak ada | [3, 0,45, ..., __, 0, 1] |
[3, 0,45, ..., 0, 0, 0, 0, 1] |
|
Kolom fitur
Selama transformasi, kolom tidak akan diproses. Sebagai gantinya, metadata yang dihasilkan selama analisis diteruskan ke AI Platform Training untuk membuat kolom fitur yang sesuai:
Jenis kolom | Perawatan kolom | Kolom fitur yang dihasilkan |
---|---|---|
Numerik | (Semua jenis perlakuan kolom) |
tf.feature_column.numeric_column
Nilai rata-rata dan varian digunakan untuk menstandarkan nilai: |
Kategoris | Identitas |
tf.feature_column.categorical_column_with_identity
|
Kategoris | Kosakata |
tf.feature_column.categorical_column_with_vocabulary_list
|
Kategoris | Hashing |
tf.feature_column.categorical_column_with_hash_bucket
|
Kategoris | ID Konstanta atau Baris | Diabaikan. Tidak ada kolom fitur yang dibuat. |
Setelah pra-pemrosesan otomatis selesai, AI Platform Training akan mengupload set data yang telah diproses kembali ke bucket Cloud Storage di direktori yang Anda tentukan dalam permintaan tugas.
Referensi pembelajaran lebih lanjut
- Pelajari model linear skala besar lebih lanjut.
- Pelajari lebih lanjut cara model linear dibuat dengan TensorFlow Estimator API.
- Pelajari kolom fitur TensorFlow lebih lanjut.