Salah sahiji aspék skénario nyaéta nyiptakeun modél pembelajaran mesin. Éta kedah tiasa dianggo di dunya nyata sareng sayogi pikeun konsumén sareng pamekar.
Cara pangbasajanna sareng pang populerna pikeun nyebarkeun modél pembelajaran mesin nyaéta ngalampirkeunana dina REST API.
Kalayan perpustakaan populér anu disebut FastAPI, éta persis anu bakal urang laksanakeun ayeuna.
Tapi, naon FastAPI?
Kerangka wéb FastAPI Python diciptakeun ti mimiti pikeun ngamangpaatkeun kamampuan Python kontemporer.
Pikeun asynchronous, komunikasi babarengan jeung klien, éta taat kana standar ASGI, bari eta oge sanggup ngagunakeun WSGI.
Titik tungtung sareng rute tiasa duanana nganggo fungsi async. Salaku tambahan, FastAPI ngamungkinkeun nyiptakeun aplikasi wéb anu produktif dina kode Python kontemporer anu ditunjuk, bersih, kontemporer.
Kasus panggunaan utama FastAPI nyaéta, sakumaha nami nunjukkeun, nyiptakeun titik tungtung API.
Ngagunakeun standar OpenAPI, nu ngawengku hiji Swagger UI interaktif, atawa nyadiakeun data kamus Python sakumaha JSON duanana cara basajan pikeun ngahontal ieu. Nanging, FastAPI sanés ngan ukur pikeun API.
Éta tiasa dianggo pikeun nawiskeun halaman wéb standar nganggo mesin témplat Jinja2 sareng ngalayanan aplikasi anu ngagunakeun WebSockets, salian ti sadayana anu tiasa dilakukeun ku kerangka wéb.
Dina tulisan ieu, urang bakal ngembangkeun modél pembelajaran mesin anu langsung teras nganggo FastAPI pikeun nyebarkeunana. Hayu urang mimitian.
Pamasangan FastAPI sareng nyiptakeun API munggaran
Masang perpustakaan sareng server ASGI diperyogikeun heula; boh Uvuicorn atanapi Hypercorn bakal dianggo. Gawéna ku cara nuliskeun paréntah di handap kana Terminal:
Ayeuna yén API parantos didamel, anjeun tiasa nganggo pangropéa kode anu anjeun pikahoyong sareng kotektak. Jieun Aksara Python disebut ml_model.py pikeun ngamimitian. Anjeun wilujeng sumping ka masihan anjeun ngaran béda, tapi demi pos ieu, abdi bakal ngarujuk kana file ieu salaku ml_model.py.
Pikeun nyieun API langsung sareng dua titik tungtung, anjeun kedah ngarengsekeun tugas-tugas ieu:
- Impor perpustakaan FastAPI sareng Uvicorn.
- Nyetél conto kelas FastAPI.
- Nyatakeun jalur kahiji, anu, dina kaca indéks, ngahasilkeun objék JSON lugas.
- Nyatakeun jalur kadua, nu nyadiakeun objék JSON lugas jeung pesen ngaropéa. Parameter nami dicandak langsung tina URL (contona, https://127.0.0.1:8000/Jay).
- Anggo Uvicorn pikeun ngajalankeun API.
Nerapkeun lima tahap ieu dipidangkeun dina bit handap kode ie. nyieun API basajan
Kabéh rengse! Hayu urang ngajalankeun API urang langsung. Buka jandela Terminal gigireun file ml model.py pikeun ngalengkepan ieu. Salajengna, lebetkeun ieu:
konci Lebetkeun. Sateuacan ngaléngkah, hayu urang ngabéréskeun pernyataan ieu. Aplikasi munggaran ngagunakeun nami file Python nyalira, tanpa ekstensi. Aplikasi kadua kedah gaduh nami anu sami sareng conto FastAPI anjeun.
Kalayan ngagunakeun -reload, anjeun nyarioskeun ka API yén anjeun badé ngamuat deui sacara otomatis nalika anjeun simpen file tinimbang mimiti ti mimiti.
Ayeuna ngajalankeun browser tur arahkeun ka https://127.0.0.1:8000; hasilna kedah némbongan saperti kieu:
Ayeuna anjeun ngartos kumaha carana ngadamel API saderhana nganggo FastAPI.
Ngawangun sareng ngalatih modél Pembelajaran Mesin
Tanpa ngumpulkeun atanapi nganalisa data naon waé, urang ngan ukur ngalatih modél anu saderhana. Ieu henteu aya hubunganana sareng panyebaran modél sareng henteu penting pikeun topik anu aya.
Model dumasar kana dataset Iris tiasa dipasang nganggo anu sami jaringan neural métode instalasi.
Sarta kami bakal ngalakukeun ngan éta: ngundeur éta Dataset Iris jeung ngalatih modél. Éta moal saderhana. Pikeun ngamimitian, jieun file ngaranna jaysmlmodel.py.
Dina éta, anjeun bakal ngalakukeun ieu:
- Impor - Anjeun bakal peryogi pandas, scikit-RandomForecastClassifier, diajar urang pydantic urang BaseModel (anjeun bakal manggihan naha dina hambalan handap), sarta joblib pikeun nyimpen jeung model loading.
- Nyatakeun hiji kelas IrisSpecies nu inherits tina model dasar. Kelas ieu ngan ngandung widang anu dipikabutuh pikeun ngaramal hiji spésiés kembang (langkung seueur ngeunaan éta dina bagian salajengna)
- Jieun kelas. IrisModel mangrupikeun latihan modél sareng alat prediksi.
- Nyatakeun metode anu dingaranan modél _train dina IrisModel. Hal ieu dipaké pikeun ngalatih modél ngagunakeun téhnik Random Forests. Modél dilatih dipulangkeun ku prosedur.
- Nyatakeun fungsi spésiés diprediksi di jero IrisModel. Hal ieu dianggo pikeun ngaramal dumasar kana 4 faktor input (ukuran kembang). Duanana ramalan (spésiés kembang) sareng kamungkinan ramalan dipulangkeun ku algoritma.
- Robah konstruktor dina IrisModel supados ngamuat set data Iris sareng ngalatih modél upami leungit tina polder. Ieu solves masalah sababaraha kali latihan model anyar. Perpustakaan joblib dianggo pikeun ngamuat sareng nyimpen modél.
Ieu kodeu sadayana:
Abdi ngarepkeun daptar di luhur sareng koméntar ngagampangkeun nangkep sanaos ieu jumlah kode anu ageung pikeun diciptakeun. Ayeuna model ieu geus dimekarkeun, hayu urang nyebarkeun kamampuhan prediksi na leuwih a sesa API.
Ngawangun REST API lengkep
Balik deui ka file ml_model.py sareng bersihkeun sadaya data. Boilerplate bakal dasarna sami sareng anu anjeun gaduh sateuacanna, tapi urang kedah ngamimitian deui ku file kosong.
Anjeun ngan ukur bakal nangtukeun hiji titik akhir waktos ieu, nyaéta anu dianggo pikeun nangtukeun jinis kembang. Spésiés IrisModel.predict (), anu dinyatakeun dina bagian saencanna, disebut ku tungtung ieu pikeun ngalaksanakeun prediksi.
Jenis pamundut teh robah badag lianna. Pikeun ngirimkeun parameter dina JSON tinimbang URL, disarankeun yén anjeun nganggo POST nalika nganggo learning mesin API.
Kalimah di luhur bisa jadi disada kawas gibberish lamun anjeun a élmuwan data, tapi teu kunanaon. Pikeun ngarancang sareng nyebarkeun modél, saurang henteu kedah janten ahli dina pamundut HTTP sareng API REST.
Tugas pikeun ml model.py saeutik tur lugas:
- Anjeun kedah ngimpor ieu tina file jaymlmodel.py anu tos didamel sateuacana: uvicorn, FastAPI, IrisModel, sareng IrisSpecies.
- Jieun conto FastAPI sareng IrisModel.
- Nyatakeun fungsi dina https://127.0.0.1:8000/predict pikeun nyieun prediksi.
- Metoda IrisModel.predict spésiés () narima hiji obyék tipe IrisSpecies, transforms kana kamus, lajeng mulih deui. Wangsulna mangrupikeun kelas anu diperkirakeun sareng kamungkinan anu diprediksi.
- Anggo uvicorn pikeun ngaéksekusi API.
Acan deui, ieu kode sakabéh file babarengan jeung komentar na:
Éta sadayana anu anjeun kedah laksanakeun. Dina lengkah saterusna, hayu urang nguji API.
Nguji API
Lebetkeun deui garis di handap ieu kana Terminal pikeun ngaéksekusi API: uvicorn ml_model:app -reload
Ieu kumaha halaman dokuméntasi muncul:
Ku kituna éta pikeun poé ieu. Dina bagian saatos ieu, hayu urang nyimpulkeun.
kacindekan
Dinten ayeuna, anjeun diajar naon FastAPI sareng kumaha cara ngagunakeunana, nganggo conto API saderhana sareng conto pembelajaran mesin saderhana. Anjeun ogé parantos diajar kumaha cara ngadamel sareng ningali dokuméntasi API, ogé kumaha cara nguji éta.
Éta pisan pikeun sapotong tunggal, janten entong reuwas upami peryogi sababaraha bacaan pikeun ngartos leres.
Wilujeng coding.
Leave a Reply