Pembelajaran mesin

Cara Menggunakan Comet Registry untuk Melacak Model Pembelajaran Mesin Anda

Tutorial tentang kekuatan Comet Registry

Baru-baru ini saya menikmati penggunaan Comet untuk eksperimen saya dan saya selalu terkejut dengan fitur-fitur baru yang saya temukan. Hari ini saya ingin berbicara dengan Anda tentang kemungkinan yang disediakan oleh Comet untuk melacak model Pembelajaran Mesin untuk dikirim ke produksi.

Misalkan kita menjalankan banyak eksperimen berbeda untuk memecahkan masalah tertentu. Setelah beberapa kali pengujian, kami memahami bahwa model X adalah yang terbaik dan kami ingin memilihnya sebagai model produksi. Ya, Comet memungkinkan kita melakukan hal ini berkat fungsi yang disediakan oleh Registry.

Registrasi Comet adalah tempat menyimpan semua model terdaftar. Model terdaftar adalah model yang disimpan dalam proyek Comet. Setidaknya ada dua keuntungan mendaftarkan model di Comet:

  • Pantau semua tahapan proyek kami;
  • Gunakan Registry sebagai penyimpanan aman.

Untuk membuat model tersedia di Comet Registry, pertama-tama kita perlu mendaftarkannya. Kita dapat mengikuti dua strategi untuk mendaftarkan model:

  • Gunakan experiment.log_model(name, file_name) — metode kelas Experiment() ini mencatat model sebagai artefak dan kemudian, secara manual, kita perlu menambahkannya ke Registri.
  • Gunakan experiment.register_model(MODEL_NAME) — metode kelas Experiment() ini mendaftarkan eksperimen lengkap dan menambahkannya ke Registri.

Pada artikel ini saya akan menjelaskan cara menambahkan model ke Registry melalui metode log_model(). Artikel ini disusun sebagai berikut:

  • Pengaturan skenario
  • Catat model di Comet
  • Daftarkan model di Comet

Pengaturan Skenario

Dalam contoh ini, kita akan memodelkan kumpulan data yang sama dengan dua model Machine Learning yang berbeda, dan kita akan menggunakan Comet untuk memilih yang terbaik. Sebagai contoh kumpulan data, kami akan menggunakan "kumpulan data diabetes" klasik yang disediakan oleh paket scikit-learn Python.

Pertama, kami mengimpor dataset:

from sklearn.datasets import load_diabetes
diabetes_dataset = load_diabetes()
X = diabetes_dataset.data
y = diabetes_dataset.target

Kemudian, kami membaginya menjadi set pelatihan dan pengujian, melalui fungsi train_test_split() yang disediakan oleh scikit-learn:

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=42)

Catat Modelnya

Sekarang kita mendefinisikan sebuah fungsi, bernama run_experiment(), yang menerima nama dan objek model sebagai masukan:

import numpy as np
import pickle
from comet_ml import Experiment
from sklearn.linear_model import LinearRegression, LogisticRegression
from sklearn import metrics
def run_experiment(name, model):
    experiment = Experiment(
    api_key="MY_API_KEY",
    project_name="MY_PROJECT_NAME",
    workspace="MY_WORKSPACE",
    )
    
    model.fit(X_train,y_train)
    file_name = name + '.pkl'
    with open(file_name, 'wb') as file:  
        pickle.dump(model, file)
    y_pred = model.predict(X_test)
    
    RMSE = np.sqrt(metrics.mean_squared_error(y_test, y_pred))
    experiment.log_metric("RMSE", RMSE)
    experiment.log_model(name, file_name)

Fungsi sebelumnya melakukan operasi berikut:

  • Buat eksperimen baru
  • Sesuaikan modelnya
  • Buang model ke file melalui paket acar
  • Hitung Root Mean Squared Error (RMSE)
  • Catat nilai RMSE dan model di Comet

Perhatikan bahwa kami telah menggunakan metode log_model() untuk mencatat model di Comet. Dalam hal ini, kami hanya mencatat modelnya. Jika kita ingin mencatat seluruh percobaan, kita harus menggunakan metode register_model().

Terakhir, kita memanggil fungsi yang ditentukan untuk menjalankan dua eksperimen, sebagai berikut:

model = LinearRegression()
run_experiment('LinearRegression', model)
model = LogisticRegression()
run_experiment('LogisticnRegression', model)

Kami telah membangun model Regresi Linier dan model Regresi Logistik. Kami menjalankan kode dan mengakses hasilnya langsung di Comet.

Manakah di antara keduanya yang memiliki kinerja lebih baik? Mari kita cari tahu bersama!

Kita dapat membandingkan keluaran kedua eksperimen tersebut langsung di dashboard Comet. Kita dapat memilih kedua eksperimen tersebut dan kemudian membandingkan RMSE masing-masing:

Eksperimen kedua (yang berhubungan dengan Regresi Linier) mengungguli eksperimen pertama.

Ingin melihat lebih banyak aksi Komet? Lihat sesi kerja, video demo, dan lainnya di saluran YouTube kami.

Daftarkan Modelnya

Di bagian Eksperimen kami memiliki dua eksperimen, satu untuk Regresi Linier dan satu lagi untuk Regresi Logistik, seperti yang ditunjukkan pada gambar berikut:

Kami klik pada percobaan pertama, dan kami memilih tab Aset & Artefak.

Di bawah direktori models, kita dapat menemukan file model tertentu, seperti yang ditunjukkan pada gambar berikut:

Kita bisa mendownload modelnya jika kita mau. Di bagian kanan layar, terdapat tombol bernama Daftar. Kita dapat mengkliknya untuk menambahkan model ke Registry. Jendela berikut akan terbuka:

Kita dapat menambahkan model tersebut ke Registry yang sudah ada atau kita dapat mendaftarkan model baru. Dalam kasus kami, kami mendaftarkan model baru.

Kita dapat mengulangi prosedur yang sama untuk percobaan kedua, tetapi ketika kita perlu menambahkan model ke Registry, kita menyimpannya ke model yang ada, yaitu model sebelumnya. Dalam hal ini, kita perlu mengubah versi model, mis. 1.0.1.

Sekarang kita dapat mengakses Model Registry dari dashboard utama Comet. Kita harus keluar dari proyek saat ini. Kita harus memiliki pandangan yang mirip dengan yang berikut:

Kami mengklik tombol Lihat model. Kami memiliki dua model:

Sekarang kita dapat mengatur tahapan versi 1.0.1, yang sesuai dengan regresi linier, ke produksi dengan mengklik panah di sebelah kiri, seperti yang ditunjukkan dalam video singkat berikut:

Ringkasan

Selamat! Anda baru saja mempelajari cara menggunakan Comet Registry untuk melacak Model Pembelajaran Mesin terbaik Anda!

Penggunaan Comet Registry dapat membantu Anda menjaga kode Anda tetap terorganisir dan teratur.

Jika Anda ingin mempelajari lebih lanjut tentang Comet, Anda dapat membaca artikel saya sebelumnya:







Selamat membuat kode! Selamat Komet!

Catatan Editor: Heartbeat adalah publikasi online dan komunitas berbasis kontributor yang berdedikasi untuk menyediakan sumber daya pendidikan utama bagi ilmu data, pembelajaran mesin, dan praktisi pembelajaran mendalam. Kami berkomitmen untuk mendukung dan menginspirasi developer dan engineer dari semua lapisan masyarakat.

Secara editorial independen, Heartbeat disponsori dan diterbitkan oleh Comet, sebuah platform MLOps yang memungkinkan ilmuwan data & tim ML melacak, membandingkan, menjelaskan, & mengoptimalkan eksperimen mereka. Kami membayar kontributor kami, dan kami tidak menjual iklan.

Jika Anda ingin berkontribusi, kunjungi panggilan untuk kontributor kami. Anda juga dapat mendaftar untuk menerima buletin mingguan kami (“Deep Learning Weekly” dan “Comet Newsletter”), bergabunglah dengan kami di “” “Slack”, dan ikuti Comet di “Twitter” dan “LinkedIn” untuk sumber daya, acara, dan masih banyak lagi yang akan membantu Anda membangun model ML yang lebih baik dan lebih cepat.