Alur kerja machine learning

AI Platform mendukung banyak bagian dari alur kerja machine learning (ML). Dokumen ini memberikan deskripsi pengantar tentang keseluruhan proses ML dan menjelaskan di mana setiap layanan AI Platform sesuai dengan prosesnya.

Untuk pengantar layanan, lihat ringkasan teknis AI Platform.

Deskripsi singkat tentang machine learning

Machine learning (ML) adalah subbidang kecerdasan buatan (AI). Tujuan ML adalah membuat komputer belajar dari data yang Anda berikan. Alih-alih menulis kode yang menjelaskan tindakan yang harus dilakukan komputer, kode Anda menyediakan algoritma yang beradaptasi berdasarkan contoh perilaku yang diinginkan. Program yang dihasilkan, yang terdiri dari algoritma dan parameter terkait yang dipelajari, disebut model terlatih.

Alur kerja ML

Diagram di bawah ini memberikan ringkasan umum tentang berbagai tahapan dalam alur kerja ML. Kotak berwarna biru menunjukkan tempat AI Platform menyediakan layanan terkelola dan API:

Alur kerja ML
Alur kerja ML

Untuk mengembangkan dan mengelola model siap produksi, Anda harus menyelesaikan tahapan berikut:

  • Cari dan siapkan data Anda.

  • Kembangkan model Anda.

  • Latih model ML pada data Anda:

    • Melatih model
    • Mengevaluasi akurasi model
    • Menyesuaikan hyperparameter
  • Deploy model yang telah Anda latih.

  • Kirim permintaan prediksi ke model Anda:

    • Prediksi online
    • Prediksi batch
  • Pantau prediksi secara berkelanjutan.

  • Mengelola model dan versi model Anda.

Tahapan ini bersifat iteratif. Anda mungkin perlu melakukan evaluasi ulang dan kembali ke langkah sebelumnya pada tahap mana pun dalam proses ini.

Bagian selanjutnya dari halaman ini membahas tahapan tersebut secara mendetail.

Sebelum Anda memulai, evaluasi masalahnya

Sebelum Anda mulai memikirkan cara menyelesaikan masalah dengan ML, luangkan waktu untuk memikirkan masalah yang ingin Anda selesaikan. Tanyakan pada diri Anda pertanyaan-pertanyaan berikut:

Apakah Anda memiliki masalah yang terdefinisi dengan baik?

Banyak pendekatan berbeda yang dapat dilakukan saat menggunakan ML untuk mengenali pola dalam data. Penting untuk menentukan informasi yang Anda coba dapatkan dari model, dan mengapa Anda memerlukan informasi tersebut.

Apakah ML adalah solusi terbaik untuk masalah tersebut?

Supervised ML (gaya ML yang dijelaskan dalam dokumentasi ini) sangat cocok untuk jenis masalah tertentu.

Sebaiknya hanya gunakan ML untuk masalah Anda jika memiliki akses ke set data yang cukup besar untuk melatih model. Tidak ada yang mutlak tentang berapa banyak data sudah cukup. Setiap fitur (atribut data) yang Anda sertakan dalam model akan meningkatkan jumlah instance (data data) yang diperlukan untuk melatih model dengan benar. Lihat praktik terbaik ML untuk mendapatkan panduan tentang rekayasa fitur.

Anda juga harus memperhitungkan pembagian set data menjadi tiga subset: satu untuk pelatihan, satu untuk evaluasi (atau validasi), dan satu untuk pengujian.

Selidiki alternatif yang mungkin memberikan cara yang lebih mudah dan lebih konkret untuk memecahkan masalah.

Bagaimana cara mengukur keberhasilan model?

Salah satu tantangan terbesar dalam membuat model ML adalah mengetahui kapan fase pengembangan model selesai. Anda mungkin tergoda untuk terus menyempurnakan model, dengan menghasilkan peningkatan akurasi yang semakin kecil. Anda harus mengetahui arti keberhasilan sebelum Anda memulai prosesnya. Pertimbangkan tingkat akurasi yang cukup untuk kebutuhan Anda. Pertimbangkan konsekuensi tingkat error yang sesuai.

Mendapatkan dan menyiapkan data Anda

Anda harus memiliki akses ke sekumpulan besar data pelatihan yang menyertakan atribut (disebut fitur di ML) yang ingin Anda dapat menyimpulkan (diprediksi) berdasarkan fitur lainnya.

Misalnya, Anda ingin model Anda memprediksi harga promo sebuah rumah. Mulailah dengan sekumpulan data besar yang menjelaskan karakteristik rumah di area tertentu, termasuk harga promo setiap rumah.

Analisis data

Setelah menjadi sumber data, Anda harus menganalisis dan memahami data tersebut serta menyiapkannya sebagai input untuk proses pelatihan. Misalnya, Anda mungkin perlu melakukan langkah-langkah berikut:

  • Gabungkan data dari berbagai sumber dan rasionalisasi data tersebut menjadi satu {i>dataset<i}.
  • Visualisasikan data untuk mencari tren.
  • Menggunakan bahasa dan alat yang berfokus pada data untuk menemukan pola dalam data.
  • Identifikasi fitur dalam data Anda. Fitur terdiri dari subset atribut data yang Anda gunakan pada model Anda.
  • Bersihkan data untuk menemukan nilai anomali yang disebabkan oleh error dalam entri data atau pengukuran.

Prapemrosesan data

Pada langkah pra-pemrosesan, Anda mengubah data bersih yang valid ke dalam format yang paling sesuai dengan kebutuhan model Anda. Berikut adalah beberapa contoh pra-pemrosesan data:

  • Normalisasi data numerik ke skala umum.
  • Menerapkan aturan pemformatan pada data. Misalnya, menghapus pemberian tag HTML dari fitur teks.
  • Mengurangi redundansi data melalui penyederhanaan. Misalnya, mengonversi fitur teks menjadi representasi tas kata-kata.
  • Merepresentasikan teks secara numerik. Misalnya, menetapkan nilai ke setiap nilai yang memungkinkan dalam fitur kategoris.
  • Menetapkan nilai kunci ke instance data.

Dukungan Google Cloud untuk persiapan dan eksplorasi data

TensorFlow memiliki beberapa library pra-pemrosesan yang dapat Anda gunakan dengan AI Platform. Misalnya, tf.transform.

Anda dapat men-deploy dan menyalurkan pipeline scikit-learn di AI Platform untuk menerapkan transformasi bawaan untuk pelatihan dan prediksi online. Penerapan transformasi kustom masih dalam versi beta.

Anda dapat men-deploy rutinitas prediksi kustom (beta) untuk memastikan AI Platform melakukan pra-pemrosesan input pada waktu prediksi dengan cara yang sama seperti saat Anda melakukan pra-pemrosesan data selama pelatihan.

Selain itu, pertimbangkan layanan Google Cloud berikut:

  • Notebook yang dikelola pengguna Vertex AI Workbench adalah instance Deep Learning VM Image yang telah dikemas sebelumnya dengan notebook JupyterLab dan dioptimalkan untuk tugas data science deep learning, mulai dari persiapan dan eksplorasi data hingga pengembangan prototipe yang cepat.

  • BigQuery adalah layanan data warehouse terkelola sepenuhnya yang memungkinkan analisis ad hoc pada data real-time dengan SQL standar.

  • Dataproc adalah layanan cloud yang terkelola sepenuhnya untuk menjalankan cluster Apache Spark dan Apache Hadoop.

  • Dataflow adalah layanan terkelola sepenuhnya untuk mengubah dan memperkaya data dalam mode streaming (real time) dan batch (historis) dengan keandalan dan keekspresifan yang sama.

  • Dataprep adalah layanan data tanpa server yang cerdas untuk menjelajahi, membersihkan, serta menyiapkan data terstruktur dan tidak terstruktur secara visual.

Membuat kode pada model Anda

Kembangkan model Anda menggunakan teknik ML yang telah ditetapkan atau dengan menentukan operasi dan pendekatan baru.

Mulai pembelajaran dengan mempelajari panduan memulai TensorFlow. Anda juga dapat mengikuti dokumentasi scikit-learn atau dokumentasi XGBoost untuk membuat model Anda. Kemudian, pelajari beberapa contoh kode yang dirancang agar berfungsi dengan AI Platform.

Melatih, mengevaluasi, dan menyesuaikan model Anda

AI Platform menyediakan layanan yang Anda butuhkan untuk melatih dan mengevaluasi model Anda di cloud. Selain itu, AI Platform menawarkan fungsi penyesuaian hyperparameter untuk mengoptimalkan proses pelatihan.

Saat melatih model, Anda memberinya data yang sudah Anda ketahui nilainya untuk atribut data target (fitur). Anda menjalankan model untuk memprediksi nilai target tersebut untuk data pelatihan Anda, sehingga model dapat menyesuaikan setelannya agar lebih sesuai dengan data dan dengan demikian dapat memprediksi nilai target dengan lebih akurat.

Demikian pula, saat mengevaluasi model terlatih, Anda harus memasukkan data yang berisi nilai target ke model tersebut. Anda membandingkan hasil prediksi model dengan nilai aktual untuk data evaluasi, lalu menggunakan teknik statistik yang sesuai dengan model untuk mengukur keberhasilannya.

Anda juga dapat menyesuaikan model dengan mengubah operasi atau setelan yang Anda gunakan untuk mengontrol proses pelatihan, seperti jumlah langkah pelatihan yang akan dijalankan. Teknik ini dikenal sebagai penyelarasan hyperparameter.

Menguji model Anda

Selama pelatihan, Anda menerapkan model pada data yang diketahui untuk menyesuaikan setelan dan meningkatkan hasil. Jika hasilnya cukup baik untuk kebutuhan aplikasi, Anda harus men-deploy model ke sistem apa pun yang digunakan aplikasi Anda, lalu mengujinya.

Untuk menguji model, jalankan data melalui data tersebut dalam konteks sedekat mungkin dengan aplikasi akhir dan infrastruktur produksi.

Gunakan set data yang berbeda dari set data yang digunakan untuk pelatihan dan evaluasi. Idealnya, Anda harus menggunakan set data terpisah setiap kali melakukan pengujian, sehingga model Anda akan diuji dengan data yang belum pernah diproses sebelumnya.

Anda mungkin juga ingin membuat set data pengujian yang berbeda, bergantung pada sifat model Anda. Misalnya, Anda dapat menggunakan set data yang berbeda untuk lokasi atau titik waktu tertentu, atau Anda dapat membagi instance untuk meniru demografi yang berbeda.

Selama proses pengujian, Anda melakukan penyesuaian pada parameter model dan hyperparameter berdasarkan hasil pengujian. Anda mungkin menemukan masalah dalam model atau dalam interaksinya dengan bagian aplikasi lainnya.

Menghosting model Anda di cloud

AI Platform menyediakan alat untuk mengupload model ML terlatih ke cloud, sehingga Anda dapat mengirim permintaan prediksi ke model tersebut.

Untuk men-deploy model terlatih di AI Platform, Anda harus menyimpan model yang dilatih menggunakan alat yang disediakan oleh framework machine learning Anda. Hal ini melibatkan serialisasi informasi yang mewakili model terlatih Anda ke dalam file yang dapat di-deploy untuk prediksi di cloud.

Kemudian, Anda mengupload model tersimpan ke bucket Cloud Storage, dan membuat resource model di AI Platform, dengan menentukan jalur Cloud Storage ke model tersimpan Anda.

Saat men-deploy model, Anda juga dapat menyediakan kode kustom (beta) untuk menyesuaikan caranya menangani permintaan prediksi.

Mengirim permintaan prediksi ke model Anda

AI Platform menyediakan layanan yang diperlukan untuk meminta prediksi dari model Anda di cloud.

Ada dua cara untuk mendapatkan prediksi dari model terlatih: prediksi online (terkadang disebut prediksi HTTP) dan prediksi batch. Dalam kedua kasus ini, Anda meneruskan data input ke model machine learning yang dihosting di cloud dan mendapatkan inferensi untuk setiap instance data.

Memantau layanan prediksi Anda

Pantau prediksi secara berkelanjutan. AI Platform menyediakan API untuk memeriksa tugas yang sedang berjalan. Selain itu, berbagai alat Google Cloud mendukung pengoperasian model yang di-deploy, seperti Cloud Logging dan Cloud Monitoring.

Mengelola model dan versi model Anda

AI Platform menyediakan berbagai antarmuka untuk mengelola model dan versi Anda, termasuk REST API, alat command line gcloud ai-platform, dan Konsol Google Cloud.

Langkah selanjutnya