Muat Model Sekali Saat Startup
Gunakan peristiwa lifespan agar pemuatan hanya terjadi sekali.
Muat Model Sekali Saat Startup adalah pelajaran MLOps Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar MLOps Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus MLOps Academy mencakup 4 pelajaran total.
Jebakan Endpoint Lambat
Jika Anda memanggil joblib.load di dalam /predict, model akan dimuat ulang pada setiap permintaan. Hal itu lambat dan boros untuk model berukuran besar. 🐢
Muat Hanya Sekali
Solusinya: muat model satu kali saat layanan dimulai, simpan di memori, lalu gunakan kembali untuk setiap prediksi.
Pengait Lifespan
FastAPI menyediakan fungsi lifespan untuk menjalankan penyiapan sebelum melayani permintaan dan pembersihan setelahnya. Fungsi ini adalah tempat yang tepat untuk memuat model.
Tulis Pengelola Konteks Asinkron
Anda menghias fungsi asinkron dengan asynccontextmanager. Kode sebelum yield berjalan saat mulai, sedangkan kode setelahnya berjalan saat berhenti.
from contextlib import asynccontextmanagerSimpan Model dalam State
Muat model saat mulai, lalu simpan di app.state, tempat bersama yang nantinya dapat dijangkau oleh setiap penangan permintaan.
@asynccontextmanager
async def lifespan(app):
app.state.model = joblib.load("model.joblib")
yieldHubungkan ke Aplikasi
Teruskan fungsi lifespan Anda saat membuat aplikasi. Kini FastAPI menjalankan kode pemuatan Anda sekali saat server mulai.
app = FastAPI(lifespan=lifespan)Baca di Rute
Di dalam /predict, Anda mengambil model yang sudah dimuat dari app.state. Tidak ada pembacaan dari disk, hanya pencarian cepat di memori.
@app.post("/predict")
def predict(req: Request):
model = req.app.state.modelBersihkan Saat Berhenti
Apa pun yang berada setelah yield berjalan saat aplikasi berhenti, sehingga cocok untuk menutup file atau membebaskan memori GPU yang digunakan model.
yield
app.state.model = NonePermintaan Pertama Lebih Cepat
Karena pemuatan selesai saat startup, pengguna pertama pun mendapatkan respons cepat, bukan terkena penalti pemuatan awal. ⚡
Perhatikan Jumlah Worker
Setiap worker uvicorn merupakan proses tersendiri dengan salinan modelnya sendiri. Semakin banyak worker berarti semakin banyak memori yang digunakan, jadi tentukan jumlahnya dengan cermat.
Mengapa Ini Penting
Memuat sekali merupakan pengoptimalan inti saat melayani model: langkah ini mengurangi latensi, menurunkan I/O disk, dan membuat penggunaan memori tetap mudah diperkirakan saat menghadapi lalu lintas nyata. 📈
Pemeriksaan Singkat
Anda ingin model dimuat tepat satu kali saat layanan dimulai. Di mana hal itu seharusnya dilakukan?
Rangkuman
Anda memindahkan pemuatan ke pengait lifespan, menyimpan model di app.state, dan membacanya pada setiap permintaan. Satu kali memuat, respons cepat, dan penghentian yang bersih. 🙌
Belajar Python dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Muat Model Sekali Saat Startup” gratis?
Ya — teks lengkap “Muat Model Sekali Saat Startup” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus MLOps Academy, upgrade ke CoddyKit PRO. Kursus MLOps Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Muat Model Sekali Saat Startup”?
Gunakan peristiwa lifespan agar pemuatan hanya terjadi sekali. Kamu berlatih MLOps Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai MLOps Academy?
Tidak diperlukan pengalaman sebelumnya. MLOps Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Muat Model Sekali Saat Startup” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran MLOps Academy ini?
Ya. Setiap pelajaran MLOps Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Endpoint /predict Pertama Anda
- Validasi Permintaan dengan Pydantic
- Muat Model Sekali Saat Startup
- Tambahkan Pemeriksaan Kesiapan /health