Ɗayan al'amari na yanayin shine ƙirƙirar ƙirar koyon inji. Dole ne a yi amfani da shi a duniyar gaske kuma yana samuwa ga masu amfani da masu haɓakawa.
Hanya mafi sauƙi kuma mafi shaharar hanya don tura samfuran koyon injin shine a haɗa su cikin REST API.
Tare da sanannen ɗakin karatu mai suna FastAPI, shine ainihin abin da zamu cim ma a yau.
Amma, menene FastAPI?
An ƙirƙiri tsarin gidan yanar gizo na FastAPI Python tun daga tushe don cin gajiyar damar Python na zamani.
Don asynchronous, sadarwa na lokaci guda tare da abokan ciniki, yana manne da ma'aunin ASGI, yayin da kuma yana iya amfani da WSGI.
Wuraren ƙarewa da hanyoyi na iya amfani da ayyukan async duka. Bugu da ƙari, FastAPI yana ba da damar ƙirƙirar ƙa'idodin gidan yanar gizo a cikin nau'in alama, mai tsabta, lambar Python na zamani.
Babban yanayin amfani da FastAPI shine, kamar yadda sunan ke nunawa, ƙirƙirar wuraren ƙarshen API.
Amfani da ma'aunin OpenAPI, wanda ya haɗa da Swagger UI mai mu'amala, ko samar da bayanan ƙamus na Python kamar yadda JSON duka hanyoyi ne masu sauƙi don cimma wannan. Koyaya, FastAPI ba don APIs kawai bane.
Ana iya amfani da shi don bayar da daidaitattun shafukan yanar gizo ta amfani da injin samfurin Jinja2 da kuma yin amfani da aikace-aikacen da ke amfani da WebSockets, ban da kyawawan duk abin da tsarin yanar gizon zai iya yi.
A cikin wannan labarin, za mu ƙirƙiri samfurin koyo na injin kai tsaye sannan mu yi amfani da FastAPI don tura shi. Mu fara.
Shigar da FastAPI da ƙirƙirar API na farko
Shigar da ɗakin karatu da kuma uwar garken ASGI ana buƙatar farko; ko dai Uvuicorn ko Hypercorn zai yi aiki. Yana aiki ta shigar da umarni mai zuwa cikin Terminal:
Yanzu da aka ƙirƙiri API ɗin, zaku iya amfani da editan lambar da kuka fi so kuma ku bincika ta ciki. Ƙirƙiri rubutun Python mai suna ml_model.py don farawa. Kuna marhabin da sanya sunan ku na daban, amma saboda wannan post ɗin, zan mayar da wannan fayil ɗin a matsayin ml_model.py.
Don ƙirƙirar API madaidaiciya tare da maki biyu na ƙarshe, dole ne ku kammala ayyuka masu zuwa:
- Shigo da ɗakunan karatu na FastAPI da Uvicorn.
- Saita misali ajin FastAPI.
- Bayyana hanya ta farko, wanda, a kan shafi na fihirisa, yana samar da abu JSON madaidaiciya.
- Bayyana hanya ta biyu, wacce ke ba da madaidaiciyar abu JSON tare da saƙon da aka keɓance. Ana ɗaukar sigar suna kai tsaye daga URL (misali, https://127.0.0.1:8000/Jay).
- Yi amfani da Uvicorn don gudanar da API.
Ana nuna aiwatar da waɗannan matakai guda biyar a cikin bitar lambar watau. ƙirƙirar API mai sauƙi
An gama komai! Mu kaddamar da API ɗin mu nan take. Bude tagar Tasha kusa da fayil ɗin ml model.py don cika wannan. Na gaba, shigar da wadannan:
maɓallin Shigar. Kafin mu ci gaba, bari mu karyata wannan ikirari. Farkon app yana amfani da sunan fayil ɗin Python shi kaɗai, ba tare da kari ba. Dole ne ƙa'idar ta biyu ta kasance tana da suna iri ɗaya da misalin FastAPI ɗin ku.
Ta amfani da -reload, kuna gaya wa API cewa kuna son ta sake kunnawa ta atomatik lokacin da kuka adana fayil ɗin maimakon farawa daga karce.
Yanzu kaddamar da mai bincike kuma kewaya zuwa https://127.0.0.1:8000; sakamakon ya kamata ya bayyana kamar haka:
Yanzu kun fahimci yadda ake ƙirƙirar API mai sauƙi ta amfani da FastAPI.
Gina da horar da tsarin Koyon Injin
Ba tare da tattarawa ko nazarin kowane bayanai ba, za mu horar da tsari mai sauƙi kawai. Waɗannan ba su da alaƙa da tura samfuran kuma ba su da mahimmanci ga batun da ke hannunsu.
Za'a iya shigar da samfurin bisa tushen bayanan Iris ta amfani da iri ɗaya neural network hanyar shigarwa.
Kuma za mu yi kawai cewa: zazzage da Iris dataset da kuma horar da samfurin. Hakan ba zai zama mai sauƙi ba. Don farawa, yi fayil mai suna jaysmlmodel.py.
A ciki, za ku yi kamar haka:
- Ana shigo da kaya - Za ku buƙaci pandas, scikit-RandomForecastClassifier, koyo's pydantic's BaseModel (zaku gano dalilin da yasa a mataki na gaba), da joblib don adanawa da loda samfura.
- Bayyana ajin IrisSpecies wanda ya gaji daga ƙirar tushe. Wannan ajin ya ƙunshi filayen da ake buƙata kawai don yin hasashen nau'in furanni guda ɗaya (ƙari akan wannan a sashe na gaba)
- Ƙirƙiri aji. IrisModel samfurin horo ne da kayan aikin tsinkaya.
- Bayyana hanya mai suna _train model a cikin IrisModel. Ana amfani da shi don horar da ƙira ta amfani da fasahar Random Forests. Ana dawo da samfurin horarwa ta hanyar hanya.
- Bayyana aikin jinsunan da aka annabta a cikin IrisModel. Ana amfani da shi don kintace bisa abubuwan shigarwa guda 4 (ma'aunin furanni). Dukansu tsinkaya (jinin furanni) da yuwuwar hasashen an dawo dasu ta hanyar algorithm.
- Canja maginin a cikin IrisModel domin ya loda bayanan Iris kuma ya horar da samfurin idan ya ɓace daga babban fayil ɗin. Wannan yana magance matsalar horar da sabbin samfura akai-akai. Ana amfani da ɗakin karatu na joblib don ɗaukar samfuri da adanawa.
Ga cikakken lambar:
Ina fatan jerin abubuwan da ke sama da sharhi sun sauƙaƙa fahimtar duk da cewa wannan adadi ne mai girma don ƙirƙira. Yanzu da aka ɓullo da wannan ƙirar, bari mu buga iyawar hasashen sa akan a REST API.
Gina cikakken REST API
Koma zuwa fayil ɗin ml_model.py kuma share duk bayanan. Tafsirin tukunyar jirgi zai kasance daidai da abin da kuke da shi a da, amma ya kamata mu fara da babban fayil ɗin.
Za ku ayyana ƙarshen ƙarshen lokaci ɗaya kawai, wanda shine wanda ake amfani dashi don tantance nau'in furen. IrisModel.predict nau'in (), wanda aka bayyana a cikin sashin da ya gabata, ana kiran wannan ƙarshen don aiwatar da hasashen.
Nau'in buƙatun shine ɗayan babban canji. Don watsa sigogi a JSON maimakon URL, ana ba da shawarar amfani da POST lokacin amfani injin inji APIs.
Jumlar da ke sama na iya zama kamar gibberish idan kun kasance a masanin kimiyya, amma hakan yayi daidai. Don ƙira da tura samfura, ba lallai ne mutum ya zama ƙwararre akan buƙatun HTTP da REST APIs ba.
Ayyukan ml model.py kaɗan ne kuma masu sauƙi:
- Dole ne ku shigo da waɗannan abubuwa daga fayil ɗin jaymmodel.py da aka ƙirƙira a baya: uvicorn, FastAPI, IrisModel, da IrisSpecies.
- Ƙirƙiri misalin FastAPI da IrisModel.
- Ƙayyade aiki a https://127.0.0.1:8000/annabta don yin tsinkaya.
- Hanyar IrisModel.predict nau'in() tana karɓar wani abu na nau'in IrisSpecies, canza shi zuwa ƙamus, sannan ya mayar da shi. Komawa shine ajin da ake tsammani da yiwuwar annabta.
- Yi amfani da uvicorn don aiwatar da API.
Har ila yau, ga dukkan lambar fayil ɗin tare da sharhinsa:
Abin da kuke buƙatar yi ke nan. A mataki na gaba, bari mu gwada API.
Gwajin API
Sake shigar da layin mai zuwa cikin Terminal don aiwatar da API: uvicorn ml_model: app -sake saukewa
Wannan shine yadda shafin takaddun ya bayyana:
To yau kenan. A bangare bayan haka, bari mu karkare.
Kammalawa
A yau, kun koyi abin da FastAPI yake da kuma yadda ake amfani da shi, ta yin amfani da duka misalin API mai sauƙi da misalin koyan inji mai sauƙi. Kun koyi yadda ake ƙirƙira da duba takaddun API, da yadda ake gwada shi.
Wannan yana da yawa ga yanki ɗaya, don haka kada ka yi mamaki idan ya ɗauki ƴan karatu don fahimtar yadda ya kamata.
Murnar codeing.
Leave a Reply