Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjelaskan cara menyebarkan kode Python yang disesuaikan dengan Mosaic AI Model Serving. Contoh dalam artikel ini berfokus pada memberikan panduan untuk menambahkan logika praproses dan pascaproses ke model Anda dan menyebarkannya.
Fungsi Python MLflow, pyfunc, memberikan fleksibilitas untuk menyebarkan bagian kode Python atau model Python apa pun. Berikut ini adalah contoh skenario di mana Anda mungkin ingin menggunakan panduan.
- Model Anda memerlukan pra-pemrosesan sebelum input dapat diteruskan ke fungsi prediksi model.
- Kerangka kerja model Anda tidak didukung secara asli oleh MLflow.
- Aplikasi Anda mengharuskan output mentah model diproses lebih lanjut agar dapat digunakan.
- Model itu sendiri memiliki logika percabangan per permintaan.
- Anda ingin menerapkan kode kustom sepenuhnya sebagai sebuah model.
Membuat model fungsi MLflow Python kustom
MLflow menawarkan kemampuan untuk mencatat kode Python dengan format model Python kustom .
Ada dua fungsi yang diperlukan saat mengemas kode python arbitrer dengan MLflow:
-
load_context- apa pun yang perlu dimuat hanya satu kali agar model beroperasi harus didefinisikan dalam fungsi ini. Ini sangat penting sehingga sistem meminimalkan jumlah artefak yang dimuat selama fungsipredict, yang mempercepat inferensi. -
predict- fungsi ini menampung semua logika yang dijalankan setiap kali permintaan input dibuat.
Nota
Sebelum menyebarkan kode kustom Anda sebagai model, ada baiknya untuk memverifikasi bahwa model mampu dilayani. Lihat dokumentasi MLflow tentang bagaimana Anda dapat menggunakan mlflow.models.predict untuk memvalidasi model sebelum penyebaran.
Catat model fungsi Python Anda
Meskipun Anda menulis model Anda dengan kode kustom, dimungkinkan untuk menggunakan modul kode bersama dari organisasi Anda. Dengan parameter code_path, penulis model dapat mencatat referensi kode lengkap yang dimuat ke dalam jalur dan dapat digunakan oleh model pyfunc kustom lainnya.
Misalnya, jika model dicatat dengan:
mlflow.pyfunc.log_model(CustomModel(), "model", code_path = ["preprocessing_utils/"])
Kode dari preprocessing_utils tersedia dalam konteks model yang dimuat. Berikut ini adalah contoh model yang menggunakan kode ini.
class CustomModel(mlflow.pyfunc.PythonModel):
def load_context(self, context):
self.model = torch.load(context.artifacts["model-weights"])
from preprocessing_utils.my_custom_tokenizer import CustomTokenizer
self.tokenizer = CustomTokenizer(context.artifacts["tokenizer_cache"])
def format_inputs(self, model_input):
# insert some code that formats your inputs
pass
def format_outputs(self, outputs):
predictions = (torch.sigmoid(outputs)).data.numpy()
return predictions
def predict(self, context, model_input):
model_input = self.format_inputs(model_input)
outputs = self.model.predict(model_input)
return self.format_outputs(outputs)
Layani model Anda
Setelah mencatat model pyfunc kustom, Anda dapat mendaftarkannya ke Unity Catalog atau Workspace Registry serta melayani model Anda pada titik akhir Model Serving .
Contoh buku catatan
Contoh notebook berikut menunjukkan cara menyesuaikan output model saat output mentah model yang dikueri perlu diproses pasca-diproses untuk dikonsumsi.
Mengkustomisasi output penyajian model dengan notebook MLflow PyFunc
Ambil buku catatan