Cara Baru Membangun Pipeline Machine Learning – Menuju AI — Teknologi, Sains, dan Teknik Terbaik

Pengarang: Abid Ali Awan

Cara Baru Membangun Pipeline Machine Learning

Merancang alur pembelajaran mesin pertama Anda dengan beberapa baris kode menggunakan Orchest. Anda akan belajar memproses data terlebih dahulu, melatih model machine learning, dan mengevaluasi hasilnya.

Gambar oleh Penulis | Elemen oleh Vecteezy

Pada artikel ini, kita akan membahas semua langkah yang diperlukan untuk membangun pipeline ML (Machine Learning). Kami akan menggunakan data klasifikasi biner Kaggle Epitope sel B COVID-19/SARS untuk menganalisis, memproses, melatih, dan mengevaluasi model kami. Kami tidak akan masuk jauh ke dalam kode dan bagaimana model ini bekerja karena Anda dapat menemukan penjelasan rinci dari proyek saya sebelumnya yang diterbitkan di Deepnote.

Kami akan menggunakan kumpulan data SARS-CoV dan sel B untuk mengklasifikasikan peptida menjadi dua kategori, antibodi dengan sifat penginduksi diberi label sebagai positif (1) dan antibodi tanpa sifat penginduksi diberi label sebagai negatif (0). Untuk mempelajari lebih lanjut tentang kumpulan data, baca makalah penelitian.

Orkestra

Orchest adalah alat untuk membangun saluran data yang tidak memerlukan DAG dan kerangka kerja. Lingkungannya mudah dinavigasi, dan Anda dapat membuat kode Python, R, dan Julia menggunakan alat favorit ilmuwan data notebook Jupyter.

Sebuah pipa di Orchest berisi yang disebut langkah. Langkah-langkah ini adalah file yang dapat dieksekusi yang dijalankan dalam lingkungan yang terisolasi dan koneksi menentukan cara aliran data. Kami dapat memvisualisasikan kemajuan kami dengan memantau setiap langkah atau kami dapat menjadwalkan menjalankan saluran kami untuk menerima laporan lengkap di dasbor.

ML Pipeline oleh Penulis

Layanan tambahan

Orchest juga dilengkapi dengan layanan tambahan seperti memvisualisasikan metrik kinerja Anda di TensorBoard atau menulis kode di VSCode karena layanan ini terintegrasi dengan mulus dalam lingkungan yang sama.

Gambar oleh Penulis

Penjadwalan Pipa

Sama seperti Airflow, Anda dapat menjadwalkan untuk menjalankan saluran Anda, untuk menit dan jam tertentu dalam sehari. Proses ini tidak mengharuskan Anda untuk membuat kode atau bahkan memantau pipeline.

Ikhtisar (orchest.readthedocs.io)

Instalasi

Instalasi untuk server lokal mudah bagi pengguna Linux, tetapi untuk windows, Anda bisa mendapatkan pengalaman serupa dengan menginstal aplikasi tambahan.

jendela

Pastikan Anda telah menginstal semua yang disebutkan di bawah ini

Versi terbaru Docker Engine: jalankan versi docker untuk memeriksa. Docker harus dikonfigurasi untuk menggunakan WSL 2. Ubuntu 20.04 LTS untuk Windows. Jalankan skrip di bawah ini di dalam lingkungan Ubuntu.

Linux

Untuk Linux, Anda hanya perlu mesin buruh pelabuhan terbaru dan kemudian jalankan skrip di bawah ini untuk mengunduh dan menginstal semua dependensi.

git clone https://github.com/orchest/orchest.git && cd orchest
./instal orkestra

# Verifikasi instalasi.
./versi orkestra –ext

# Mulai Orkes.
./orkes mulai

Proyek Pertama

Sudah waktunya bagi kita untuk memulai server lokal kita. Ketik skrip di bawah ini di dalam lingkungan Ubuntu karena kami akan menjalankan lingkungan virtual Linux di windows. Pastikan Mesin Docker berfungsi dengan baik.

Setelah berhasil menjalankan skrip, Anda akan menerima alamat web lokal yang dapat Anda salin dan tempel ke browser Anda.

cd orchest ./orchest start
Mulai server lokal | Gambar oleh Auhor

Pada halaman arahan akan melihat antarmuka pengguna yang luar biasa ini. Terakhir, saatnya kita membuat project baru dengan mengklik tombol Create Project.

Membuat proyek | Gambar oleh Penulis

Sebuah proyek berisi banyak pipeline, jadi sekarang saatnya untuk membuat pipeline Vaccine ML kami. Dengan membuat pipeline akan menambahkan file vaksin.orchest ke direktori Anda yang berisi metadata tentang setiap langkah.

Membuat saluran | Gambar oleh Penulis

Untuk kode, kami akan menggunakan proyek kami sebelumnya dan fokus untuk membangun saluran yang efektif.

Prediksi epitop yang digunakan dalam pengembangan vaksin

Saluran ML

Pipeline Machine Learning adalah kode yang dapat dieksekusi secara independen untuk menjalankan banyak tugas yang terlibat dalam mempersiapkan dan melatih model pada data yang diproses Azure Machine Learning. Gambar di bawah menjelaskan model machine learning generik yang digunakan di setiap project machine learning. Panah mewakili aliran data dari satu tugas terisolasi ke tugas lain yang menyelesaikan siklus hidup pembelajaran mesin.

Kredit Gambar: Microsoft

Membuat Langkah

Mari simpan teori untuk nanti dan belajar dengan praktik, mari belajar dengan praktik.

Pertama, Anda perlu membuat langkah dengan mengklik tombol Langkah Baru. Kita perlu menambahkan langkah dan jika kita tidak memiliki file python atau .ipynb di arah kita, kita dapat membuat file baru dengan satu langkah sederhana yang ditunjukkan di bawah ini.

Langkah Pertama | Gambar oleh Penulis

Voilà kami telah berhasil membuat langkah pertama kami dan sekarang kami perlu membuat beberapa lagi dan mencoba menghubungkan node.

Langkah Muat Data | Gambar oleh Penulis

Kami telah menambahkan langkah EDA (Exploratory Data Analysis) dan Preprocessing. Kemudian gabungkan dengan langkah Muat Data sehingga setiap langkah memiliki akses ke data yang diekstraksi.

Kami akan membahas lebih detail tentang bagaimana kami akan mengkodekan langkah-langkah ini nanti.

Membuat Langkah tambahan | Gambar oleh Penulis

Untuk langkah-langkah kode, klik tombol Edit di JupyterLab, yang akan membawa kita ke notebook Jupyter di mana Anda bisa mulai coding.

Edit di Jupyter Notebook | Gambar oleh Penulis

Untuk menjalankan semua langkah, pilih semua dengan menggunakan mouse lalu klik tombol biru di kiri bawah yang disebut Jalankan Langkah yang Dipilih. Ini akan menjalankan semua langkah satu demi satu.

Kita bisa mengklik setiap langkah dan memeriksa log, atau kita bisa langsung pergi ke notebook untuk memeriksa kemajuannya.

orkestra/orkestra (github.com)

Keluaran

Setelah menghubungkan node, mari buat beberapa perubahan pada kode kita.

kita perlu mengimpor data beban orchest menggunakan pandas read_csv Concat bcell dan sars dataframe. Gunakan orchest.output untuk menampilkan data untuk langkah berikutnya (menggunakan output bernama).

Output orkestra mengambil satu atau beberapa variabel dan membuat aliran data, yang dapat kita gunakan dalam langkah-langkah berikut. Dalam kasus kami bcell, covid, sars, bcell_sars disimpan dalam variabel aliran data yang disebut ‘data’.

import orchest import pandas as pd # Ubah data menjadi DataFrame. INPUT_DIR = “Data” bcell = pd.read_csv(f”{INPUT_DIR}/input_bcell.csv”) covid = pd.read_csv(f”{INPUT_DIR}/input_covid.csv”) sars = pd.read_csv(f”{INPUT_DIR} /input_sars.csv”) bcell_sars = pd.concat([bcell, sars], axis=0, abaikan_index=True) # Keluarkan data Vaksin. print(“Mengeluarkan data Vaksin yang dikonversi…”) orchest.output((bcell, covid, sars, bcell_sars), name=”data”) print(bcell_sars.shape) print(“Success!”)

Mengeluarkan data Vaksin yang dikonversi…
(14907, 14)
Kesuksesan!

Memasukkan

Sekarang kita akan melihat langkah input. Itu mengambil keempat variabel dan menggunakannya untuk mengeksplorasi dan menganalisis data. Saya telah menambahkan hanya beberapa sel notebook Jupyter untuk menunjukkan aliran data antar node. Untuk melihat analisis lengkap, periksa EDA | Catatan dalam.

Mari impor perpustakaan yang diperlukan termasuk Orchest.

https://medium.com/media/5c4cedb89111a092bcbfb023f9f2ce7b/href

Gunakan fungsi orchest.get_inputs untuk membuat objek dan kemudian tambahkan nama (‘data’) dari variabel pipeline data untuk mengekstrak variabel dari langkah sebelumnya.

https://medium.com/media/861539f16ce5bc476527e22db25d564c/href

Seperti yang kita lihat, kita telah berhasil memuat data dari tugas sebelumnya.

https://medium.com/media/4ab2e1a492e711b36e0fecbc60cd528e/href

Menggunakan PCA dari sklearn untuk mengurangi dimensi menjadi 2 dan menggunakan plot pencar untuk memvisualisasikan distribusi target.

https://medium.com/media/9c01377e27a39548d3814eee732521bb/href

Masukan dan keluaran

Mari kita gunakan fungsi input dan output untuk mengekstrak data pelatihan dan kemudian menggunakannya untuk melatih Pengklasifikasi Hutan Acak kita. Setelah pelatihan, kami akan mengekspor data kami untuk evaluasi.

https://medium.com/media/cfa124e48061ae1c0f75e220a5de27ef/href

Input train test split dari langkah Preprocessed menggunakan ‘training_data’ sebagai nama aliran data.

https://medium.com/media/0e57044020113f1b87e6d6281825d821/href

Menggunakan 400 estimator dan memasang set data kereta kami. Seperti yang dapat kita lihat, skor AUC kami cukup baik untuk model tanpa penyetelan hyperparameter.

https://medium.com/media/af2734c69ef32a4bdfe7e760465c6f3a/href

Mari kita keluarkan model dan prediksi kita untuk evaluasi.

https://medium.com/media/e98ec938e18be9c0f2a3262d76ca402e/href

Pipa Akhir

Memuat data Eksplorasi Analisis data Menggunakan Alteryx EvalML dan Microsoft FLAML untuk melakukan praproses, melatih beberapa mode, lalu mengevaluasi hasil Memproses data untuk pelatihan Latih di Naive Bayes, Random Forest, CatBoost, dan LightGBM. Mengevaluasi hasil. Ensembling Membandingkan Skor Akurasi.

Gambar oleh Penulis

Hasil

Hasil AutoML

https://medium.com/media/a650391ec2fb60b493656b7ad932dba8/href

Hasil akhir masing-masing model dan ensemble dengan AUC dan skor akurasi.

https://medium.com/media/1967de3d2d7824aa4fc05036d80e2149/href

Proyek

Anda dapat menemukan proyek ini di GitHub jika Anda ingin menjelajahi setiap langkah. Anda juga dapat menggunakan repo GitHub saya dan memuatnya ke server lokal Orchest, dan itu akan berjalan dari awal, dengan hasil yang serupa.

GitHub – kingabzpro/Covid19-Vaccine-ML-Pipeline: Merancang saluran pembelajaran mesin pertama Anda dengan beberapa baris kode dan drag and drop sederhana menggunakan Orchest. Dalam proyek ini kami akan melatih model klasifikasi biner untuk memprediksi epitop yang digunakan untuk pengembangan vaksin.

Awan Orkes

Orchest Cloud dalam versi beta tertutup tetapi Anda dapat mengajukan permohonan dan dalam beberapa minggu Anda bisa mendapatkan akses. Sejujurnya, layanan bisa tidak merepotkan karena mudah memuat proyek GitHub secara langsung yang berjalan dengan lancar.

Impor Cloud oleh Penulis

Kesimpulan

Yannick Perrenet dan Rick Lamers adalah orang-orang luar biasa yang telah membantu saya selama proses pembelajaran. Jika saya memiliki masalah atau menemukan bug apa pun, mereka dengan cepat merespons dan mengusulkan solusi alternatif saat memperbarui alur kerja saat ini. Pada awalnya, saya menghadapi banyak masalah dengan instalasi dan memuat perpustakaan tertentu, tetapi masalah ini dengan cepat diselesaikan oleh komunitas Orchest Slack. Secara keseluruhan, pengalaman saya menggunakan Orchest cukup luar biasa, dan saya pikir ini akan menjadi masa depan ilmu data.

Cloud IDE perlu mengadopsi pipeline ML agar tetap kompetitif.

Kami telah mengembangkan alur pembelajaran mesin lengkap mulai dari penyerapan data hingga pelatihan dan evaluasi model. Kami juga telah mempelajari betapa mudahnya membuat langkah dan menggabungkan node menggunakan satu klik. Saya harap artikel saya telah membuat hidup Anda lebih sederhana dan untuk pemula, ini adalah tambang emas karena Anda dapat mempelajari, melatih, dan menerapkan model pembelajaran mesin Anda dari satu platform.

Anda dapat mengikuti saya di LinkedIn dan Polywork tempat saya memposting artikel luar biasa tentang ilmu data dan pembelajaran mesin.

Machine Learning awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Menuju AI