Enye inkalo yemeko kukudala imodeli yokufunda ngomatshini. Kufuneka isebenziseke kwihlabathi lokwenyani kwaye ifumaneke kubathengi kunye nabaphuhlisi.
Eyona ndlela ilula nedume kakhulu yokubeka iimodeli zokufunda koomatshini kukuzifaka kwi-REST API.
Ngelayibrari eyaziwayo ebizwa ngokuba yi-FastAPI, yiloo nto kanye esiza kuyifeza namhlanje.
Kodwa, yintoni FastAPI?
Isakhelo sewebhu se-FastAPI Python senziwe ukusuka phantsi ukuya phezulu ukuze sithathe ithuba lobuchule bePython bexesha langoku.
Kunxibelelwano olungahambelaniyo, oluhambelanayo kunye nabathengi, ibambelela kumgangatho we-ASGI, ngelixa iyakwazi ukusebenzisa i-WSGI.
Iindawo zokuphela kunye neendlela zinokusebenzisa zombini imisebenzi ye-async. Ukongeza, i-FastAPI inika amandla imveliso eveliswayo yeeapps zewebhu kuchwethezo oluchwetheziweyo, olucocekileyo, lwangoku lwekhowudi yePython.
Imeko yokusetyenziswa kwe-FastAPI, njengoko igama libonisa, ukudala i-API endpoints.
Ukusebenzisa umgangatho we-OpenAPI, oquka i-Swagger UI esebenzayo, okanye ukubonelela ngedatha yesichazi-magama sePython njenge-JSON zombini iindlela ezilula zokuphumeza oku. Nangona kunjalo, i-FastAPI ayikho kuphela i-APIs.
Ingasetyenziselwa ukubonelela ngamaphepha ewebhu asemgangathweni usebenzisa iJinja2 template injini kunye nokunikezela ngeeapps usebenzisa iiWebSockets, ukongeza kuyo yonke enye into enokwenziwa sisikhokelo sewebhu.
Kweli nqaku, siza kuphuhlisa imodeli yokufunda yomatshini ethe ngqo kwaye emva koko sisebenzise i-FastAPI ukuyihambisa. Masiqale.
Ukufakwa kwe-FastAPI kunye nokudalwa kwe-API yokuqala
Ukufakela ithala leencwadi kunye neseva ye-ASGI iyafuneka kuqala; mhlawumbi Uvuicorn okanye Hypercorn iya kusebenza. Isebenza ngokungenisa lo myalelo ulandelayo kwiTheminali:
Ngoku ukuba i-API yenziwe, ungasebenzisa umhleli wakho wekhowudi owuthandayo kwaye ukhangele kuyo. Yenza iskripthi sePython esibizwa ml_model.py ukuze uqalise. Wamkelekile ukuba unike elakho igama elahlukileyo, kodwa ngenxa yesi sithuba, ndiza kubhekisa kule fayile njenge ml_model.py.
Ukwenza i-API ethe ngqo enesiphelo ezimbini, kuya kufuneka ugqibezele le misebenzi ilandelayo:
- Ngenisa i-FastAPI kunye namathala eencwadi ase-Uvicorn.
- Misela umzekelo weklasi ye-FastAPI.
- Chaza indlela yokuqala, ethi, kwiphepha lesalathisi, ivelise into ethe ngqo ye-JSON.
- Xela indlela yesibini, ebonelela ngento ethe ngqo ye-JSON ngomyalezo olungiselelweyo. Igama lepharamitha lithathwa ngqo kwi-URL (umzekelo, https://127.0.0.1:8000/Jay).
- Sebenzisa i-Uvicorn ukuqhuba i-API.
Ukuphumeza ezi zigaba zintlanu kubonisiwe kwintwana yekhowudi, oko kukuthi. ukudala API elula
Konke kwenzekile! Masiqalise i-API yethu kwangoko. Vula ifestile yeTheminali ecaleni kwefayile ye-ml.py ukuphumeza oku. Okulandelayo, ngenisa oku kulandelayo:
iqhosha elithi Faka. Ngaphambi kokuba siqhubele phambili, makhe sihlalutye esi sibakala. Usetyenziso lokuqala lusebenzisa igama lefayile yePython yodwa, ngaphandle kokwandiswa. Usetyenziso lwesibini kufuneka lube negama elifanayo njengomzekelo wakho we-FastAPI.
Ngokusebenzisa -reload, uxelela i-API ukuba ufuna ukuba ilayishe ngokuzenzekelayo xa ugcina ifayile kunokuba uqale ekuqaleni.
Ngoku qalisa isikhangeli kwaye ujonge ku-https://127.0.0.1:8000; isiphumo kufuneka sibonakale ngolu hlobo lulandelayo:
Ngoku uyayiqonda indlela yokwenza i-API elula usebenzisa i-FastAPI.
Ukwakha nokuqeqesha imodeli yokuFunda ngoomatshini
Ngaphandle kokuqokelela okanye ukuhlalutya nayiphi na idatha, siya kuqeqesha nje imodeli elula. Ezi zinto azihambelani nokuthunyelwa kweemodeli kwaye azibalulekanga kwisihloko esikhoyo.
Imodeli esekelwe kwidatha ye-Iris inokufakwa ngokusebenzisa okufanayo inethiwekhi yomnatha indlela yokufaka.
Kwaye siyakwenza oko: khuphela i Iris dataset kwaye uqeqeshe imodeli. Oko akuyi kuba lula. Ukuqala, yenza ifayile enegama jaysmlmodel.py.
Kuyo, uya kwenza oku kulandelayo:
- Izinto ezithunyelwa ngaphandle - Uya kufuna iipandas, i-scikit-RandomForecastClassifier, funda i-pydantic's BaseModel (uya kufumanisa ukuba kutheni kwinyathelo elilandelayo), kunye ne-joblib yokugcina kunye nokulayisha iimodeli.
- Xela iklasi ye-IrisSpecies efumana ilifa kwimodeli yesiseko. Le klasi iqulethe kuphela amasimi afunekayo ukuqikelela uhlobo lwentyatyambo enye (ngaphezulu koko kwicandelo elilandelayo)
- Yenza iklasi. IrisModel iyimodeli yoqeqesho kunye nesixhobo sokuxela kwangaphambili.
- Xela indlela ebizwa _imodeli yololiwe ngaphakathi kwe-IrisModel. Isetyenziselwa ukuqeqesha imifuziselo kusetyenziswa ubuchule baMahlathi obungacwangciswanga. Imodeli eqeqeshiweyo ibuyiswa yinkqubo.
- Xela umsebenzi oqikelelweyo weentlobo ngaphakathi kwe-IrisModel. Isetyenziselwa uqikelelo olusekelwe kwizinto ezi-4 zegalelo (imilinganiselo yeentyatyambo). Zombini uqikelelo (iintlobo zeentyatyambo) kunye nentelekelelo enokwenzeka zibuyiswa yi-algorithm.
- Guqula umakhi kwi-IrisModel ukuze ilayishe isethi yedatha ye-Iris kwaye iqeqeshe imodeli ukuba ilahlekile kwifolda. Oku kusombulula ingxaki yokuqeqesha ngokuphindaphindiweyo iimodeli ezintsha. Ithala leencwadi le-joblib lisetyenziselwa ukulayisha nokugcina imodeli.
Nantsi yonke ikhowudi:
Ndiyathemba ukuba olu luhlu lungasentla kunye nezimvo zenze ukuba kube lula ukuliqonda nangona eli yayilinani elikhulu lekhowudi yokwenza. Ngoku ekubeni le modeli iphuhlisiwe, masipapashe amandla ayo okuqikelela ngaphezulu kwe I-API yokuphinda.
Ukwakha i-REST API epheleleyo
Buyela kwifayile ye-ml_model.py kwaye ucoce yonke idatha. I-boilerplate iya kuba yinto efanayo naleyo ubunayo ngaphambili, kodwa kufuneka siqale phantsi ngefayile engenanto.
Uza kuchaza isiphelo esinye kuphela ngeli xesha, esisesona sisetyenzisiweyo ukumisela uhlobo lwentyatyambo. Iintlobo ze-IrisModel.predict(), ezabhengezwa kwicandelo elandulelayo, libizwa yile ndawo yokugqibela ukwenza uqikelelo.
Uhlobo lwesicelo lolunye utshintsho olukhulu. Ukuze uthumele iiparamitha kwi-JSON kune-URL, kuyacetyiswa ukuba usebenzise i-POST xa usebenzisa yokufunda umatshini APIs.
Esi sivakalisi singasentla sisenokuvakala ngathi yintlekisa ukuba u- idatha inzululwazi, kodwa kulungile. Ukuyila kunye nokusetyenziswa kweemodeli, akufuneki ukuba umntu abe yingcali kwizicelo ze-HTTP kunye ne-REST APIs.
Imisebenzi ye-ml model.py imbalwa kwaye ithe ngqo:
- Kufuneka ungenise oku kulandelayo kwifayile yejaymlmodel.py eyenziwe ngaphambili: uvicorn, FastAPI, IrisModel, kunye neIrisSpecies.
- Yenza imizekelo ye-FastAPI kunye ne-IrisModel.
- Xela umsebenzi ku-https://127.0.0.1:8000/predict ukwenza uqikelelo.
- Indlela ye-IrisModel.predict species () ifumana into yodidi lwe-IrisSpecies, iyiguqulele kwisichazi-magama, ize iyibuyisele. Imbuyekezo ludidi olulindelekileyo kunye namathuba aqikelelweyo.
- Sebenzisa uvicorn ukuphumeza i API.
Kwakhona, nantsi ikhowudi yefayile yonke kunye nezimvo zayo:
Yiloo nto kuphela ekufuneka uyenzile. Kwinqanaba elilandelayo, masivavanye i-API.
Ukuvavanya i-API
Faka kwakhona lo mgca ulandelayo kwiSitena ukuze uphumeze i-API: uvicorn ml_model:app -reload
Le yindlela elivela ngayo iphepha loxwebhu:
Yiyo ke le yanamhlanje. Kwinxalenye esemva koku, masigqibezele.
isiphelo
Namhlanje, ufunde ukuba yintoni i-FastAPI kunye nendlela yokuyisebenzisa, usebenzisa umzekelo olula we-API kunye nomzekelo wokufunda umatshini olula. Ufundile kwakhona ukwenza kunye nokujonga amaxwebhu e-API, kunye nendlela yokuyivavanya.
Yinto eninzi yesiqwenga esinye, ngoko ungothuki ukuba kuthatha ufundo olumbalwa ukuqonda kakuhle.
Ikhowudi yolonwabo.
Shiya iMpendulo