Salah satu aspek dari skenario adalah membuat model pembelajaran mesin. Itu harus dapat digunakan di dunia nyata dan tersedia untuk konsumen dan pengembang.
Cara paling sederhana dan paling populer untuk menerapkan model pembelajaran mesin adalah dengan menyertakannya dalam REST API.
Dengan perpustakaan populer yang disebut FastAPI, itulah yang akan kami capai hari ini.
Tapi, apa itu? API Cepat?
Kerangka web FastAPI Python dibuat dari bawah ke atas untuk memanfaatkan kemampuan Python kontemporer.
Untuk komunikasi yang tidak sinkron dan konkuren dengan klien, ia mematuhi standar ASGI, sementara ia juga mampu menggunakan WSGI.
Titik akhir dan rute dapat menggunakan fungsi async. Selain itu, FastAPI memungkinkan pembuatan aplikasi web yang produktif dalam kode Python kontemporer yang diisyaratkan dengan tipe, bersih.
Kasus penggunaan utama FastAPI adalah, seperti namanya, membuat titik akhir API.
Menggunakan standar OpenAPI, yang menyertakan UI Swagger interaktif, atau menyediakan data kamus Python sebagai JSON adalah cara sederhana untuk mencapainya. Namun, FastAPI tidak hanya untuk API.
Ini dapat digunakan untuk menawarkan halaman web standar menggunakan mesin template Jinja2 dan untuk melayani aplikasi yang menggunakan WebSockets, di samping hampir semua hal lain yang dapat dilakukan oleh kerangka kerja web.
Dalam artikel ini, kami akan mengembangkan model pembelajaran mesin langsung dan kemudian menggunakan FastAPI untuk menerapkannya. Mari kita mulai.
Pemasangan FastAPI dan pembuatan API pertama
Menginstal perpustakaan dan server ASGI diperlukan terlebih dahulu; baik Uvuicorn atau Hypercorn akan berfungsi. Ia bekerja dengan memasukkan perintah berikut ke Terminal:
Sekarang setelah API dibuat, Anda dapat menggunakan editor kode pilihan Anda dan menelusurinya. Buat skrip Python bernama ml_model.py untuk memulai. Anda dipersilakan untuk memberikan nama Anda yang berbeda, tetapi demi posting ini, saya akan merujuk ke file ini sebagai ml_model.py.
Untuk membuat API langsung dengan dua titik akhir, Anda harus menyelesaikan tugas berikut:
- Impor perpustakaan FastAPI dan Uvicorn.
- Siapkan instance kelas FastAPI.
- Deklarasikan rute pertama, yang, pada halaman indeks, menghasilkan objek JSON langsung.
- Deklarasikan rute kedua, yang menyediakan objek JSON langsung dengan pesan yang disesuaikan. Parameter nama diambil langsung dari URL (misalnya, https://127.0.0.1:8000/Jay).
- Gunakan Uvicorn untuk menjalankan API.
Menerapkan lima tahap ini ditunjukkan dalam bit kode berikut yaitu. membuat API sederhana
Semua selesai! Mari kita luncurkan API kita segera. Buka jendela Terminal di sebelah file model.py ml untuk melakukannya. Selanjutnya, masukkan berikut ini:
tombol Enter. Sebelum melanjutkan, mari kita singkirkan pernyataan ini. Aplikasi pertama menggunakan nama file Python saja, tanpa ekstensi. Aplikasi kedua harus memiliki nama yang sama dengan instans FastAPI Anda.
Dengan menggunakan -reload, Anda memberi tahu API bahwa Anda ingin memuat ulang secara otomatis saat Anda menyimpan file daripada memulai dari awal.
Sekarang luncurkan browser dan arahkan ke https://127.0.0.1:8000; hasilnya akan muncul sebagai berikut:
Anda sekarang memahami cara membuat API sederhana menggunakan FastAPI.
Membangun dan melatih model Machine Learning
Tanpa mengumpulkan atau menganalisis data apa pun, kami hanya akan melatih model sederhana. Ini tidak terkait dengan penyebaran model dan tidak penting untuk topik yang ada.
Model berdasarkan dataset Iris dapat diinstal menggunakan yang sama saraf jaringan metode instalasi.
Dan kami akan melakukannya: unduh Dataset Iris dan melatih model. Itu tidak akan sederhana. Untuk memulai, buat file bernama jaysmlmodel.py.
Di dalamnya, Anda akan melakukan hal berikut:
- Impor — Anda memerlukan panda, scikit-RandomForecastClassifier, pydantic's BaseModel (Anda akan mengetahui alasannya di langkah berikut), dan joblib untuk menyimpan dan memuat model.
- Deklarasikan kelas IrisSpecies yang mewarisi dari model dasar. Kelas ini hanya berisi bidang yang diperlukan untuk meramalkan satu spesies bunga (lebih lanjut tentang itu di bagian berikutnya)
- Buat kelas. IrisModel adalah alat pelatihan dan prediksi model.
- Deklarasikan metode bernama _train model dalam IrisModel. Ini digunakan untuk melatih model menggunakan teknik Hutan Acak. Model yang dilatih dikembalikan oleh prosedur.
- Deklarasikan fungsi spesies yang diprediksi di dalam IrisModel. Ini digunakan untuk meramalkan berdasarkan 4 faktor input (pengukuran bunga). Baik ramalan (spesies bunga) dan probabilitas prediksi dikembalikan oleh algoritma.
- Ubah konstruktor di IrisModel sehingga memuat set data Iris dan melatih model jika hilang dari folder. Ini memecahkan masalah berulang kali melatih model baru. Pustaka joblib digunakan untuk memuat dan menyimpan model.
Berikut adalah seluruh kode:
Saya harap daftar di atas dan komentar membuatnya mudah dipahami meskipun ini adalah jumlah kode yang cukup besar untuk dibuat. Sekarang model ini telah dikembangkan, mari kita publikasikan kemampuan prediksinya melalui a SISA API.
Membangun REST API lengkap
Kembali ke file ml_model.py dan bersihkan semua data. Boilerplate pada dasarnya akan sama dengan yang Anda miliki sebelumnya, tetapi kita harus memulai dari awal dengan file kosong.
Anda hanya akan menentukan satu titik akhir kali ini, yang digunakan untuk menentukan jenis bunga. IrisModel.predict species(), yang dideklarasikan di bagian sebelumnya, dipanggil oleh endpoint ini untuk melakukan prediksi.
Jenis permintaan adalah perubahan besar lainnya. Untuk mengirimkan parameter dalam JSON daripada URL, Anda disarankan menggunakan POST saat menggunakan Mesin belajar Lebah.
Kalimat di atas mungkin terdengar seperti omong kosong jika Anda ilmuwan data, tapi tidak apa-apa. Untuk merancang dan menerapkan model, seseorang tidak perlu menjadi ahli dalam permintaan HTTP dan REST API.
Tugas untuk ml model.py sedikit dan mudah:
- Anda harus mengimpor yang berikut dari file jaymlmodel.py yang dibuat sebelumnya: uvicorn, FastAPI, IrisModel, dan IrisSpecies.
- Buat instance FastAPI dan IrisModel.
- Deklarasikan fungsi di https://127.0.0.1:8000/predict untuk membuat prediksi.
- Metode IrisModel.predict species() menerima objek bertipe IrisSpecies, mengubahnya menjadi kamus, lalu mengembalikannya. Pengembalian adalah kelas yang diharapkan dan probabilitas yang diprediksi.
- Gunakan uvicorn untuk menjalankan API.
Sekali lagi, berikut adalah kode seluruh file bersama dengan komentarnya:
Itu saja yang perlu Anda lakukan. Pada langkah selanjutnya, mari kita uji API.
Menguji API
Masukkan kembali baris berikut ke Terminal untuk menjalankan API: uvicorn ml_model:app –reload
Beginilah tampilan halaman dokumentasi:
Jadi itu saja untuk hari ini. Di bagian setelah ini, mari kita simpulkan.
Kesimpulan
Hari ini, Anda mempelajari apa itu FastAPI dan cara menggunakannya, menggunakan contoh API sederhana dan contoh pembelajaran mesin sederhana. Anda juga telah mempelajari cara membuat dan melihat dokumentasi API, serta cara mengujinya.
Itu banyak untuk satu bagian, jadi jangan heran jika dibutuhkan beberapa bacaan untuk memahami dengan benar.
Selamat mengkode.
Tinggalkan Balasan