Einn þáttur atburðarásarinnar er að búa til vélanámslíkan. Það verður að vera nothæft í hinum raunverulega heimi og aðgengilegt neytendum og þróunaraðilum.
Einfaldasta og vinsælasta leiðin til að nota vélanámslíkön er að setja þau inn í REST API.
Með vinsælu bókasafni sem heitir FastAPI, það er nákvæmlega það sem við munum ná í dag.
En, hvað er FastAPI?
FastAPI Python veframminn var búinn til frá grunni til að nýta sér nútíma Python getu.
Fyrir ósamstillt, samhliða samskipti við viðskiptavini, fylgir það ASGI staðlinum, á meðan það er einnig fær um að nota WSGI.
Endapunktar og leiðir geta bæði notað ósamstillingaraðgerðir. Að auki gerir FastAPI kleift að búa til vefforrit í afkastamikilli tegund, hreinum, nútímalegum Python kóða.
Helsta notkunartilvik FastAPI er, eins og nafnið gefur til kynna, að búa til API endapunkta.
Að nota OpenAPI staðalinn, sem inniheldur gagnvirkt Swagger notendaviðmót, eða útvega Python orðabókargögn sem JSON eru báðar einfaldar leiðir til að ná þessu. Hins vegar er FastAPI ekki aðeins fyrir API.
Það er hægt að nota til að bjóða upp á staðlaðar vefsíður sem nota Jinja2 sniðmátsvélina og til að þjóna forritum sem nota WebSockets, auk nokkurn veginn allt annað sem veframmi getur gert.
Í þessari grein munum við þróa einfalt vélanámslíkan og nota síðan FastAPI til að dreifa því. Byrjum.
Uppsetning á FastAPI og stofnun fyrsta API
Fyrst þarf að setja upp bókasafnið og ASGI netþjón; annað hvort Uvuicorn eða Hypercorn mun virka. Það virkar með því að slá inn eftirfarandi skipun í flugstöðina:
Nú þegar API hefur verið búið til geturðu notað valinn kóðaritil og flett í gegnum hann. Búðu til Python skriftu sem heitir ml_model.py til að byrja. Þér er velkomið að gefa þínu annað nafn, en vegna þessarar færslu mun ég vísa til þessarar skráar sem ml_model.py.
Til að búa til einfalt API með tveimur endapunktum verður þú að klára eftirfarandi verkefni:
- Flyttu inn FastAPI og Uvicorn bókasöfnin.
- Settu upp FastAPI bekkjartilvik.
- Lýstu yfir fyrstu leiðinni, sem á vísitölusíðunni framleiðir einfaldan JSON hlut.
- Lýstu yfir seinni leiðinni, sem veitir beinan JSON hlut með sérsniðnum skilaboðum. Nafnbreytan er tekin beint úr vefslóðinni (til dæmis https://127.0.0.1:8000/Jay).
- Notaðu Uvicorn til að keyra API.
Innleiðing þessara fimm stiga er sýnd í eftirfarandi kóða, þ.e. búa til einfalt API
Allt búið! Við skulum ræsa API okkar strax. Opnaðu Terminal glugga við hliðina á ml model.py skránni til að ná þessu. Næst skaltu slá inn eftirfarandi:
Enter takkann. Áður en lengra er haldið skulum við afsanna þessa fullyrðingu. Fyrsta appið notar Python skráarnafnið eitt og sér, án framlengingarinnar. Annað appið verður að hafa sama nafn og FastAPI tilvikið þitt.
Með því að nota -reload segirðu API að þú viljir að það endurhleðist sjálfkrafa þegar þú vistar skrána frekar en að byrja frá grunni.
Ræstu nú vafra og farðu á https://127.0.0.1:8000; niðurstaðan ætti að vera sem hér segir:
Þú skilur nú hvernig á að búa til einfalt API með FastAPI.
Byggja og þjálfa vélanámslíkanið
Án þess að safna eða greina gögn, munum við bara þjálfa einfalt líkan. Þetta eru ótengd dreifingu líkana og eru ekki nauðsynleg fyrir umræðuefnið.
Líkan byggt á Iris gagnapakkanum er hægt að setja upp með því að nota það sama tauga net uppsetningaraðferð.
Og við gerum einmitt það: hlaða niður Iris gagnasafn og þjálfa líkanið. Það verður ekki einfalt. Til að byrja skaltu búa til skrá sem heitir jaysmlmodel.py.
Í henni muntu gera eftirfarandi:
- Innflutningur — Þú þarft pöndur, scikit-RandomForecastClassifier, pydantic's BaseModel (þú munt uppgötva hvers vegna í næsta skrefi) og joblib til að geyma og hlaða módel.
- Lýstu yfir IrisSpecies flokki sem erfir frá grunnlíkaninu. Þessi flokkur inniheldur aðeins reiti sem þarf til að spá fyrir um eina blómategund (meira um það í næsta kafla)
- Búðu til bekk. IrisModel er líkanþjálfunar- og spátæki.
- Lýstu yfir aðferð sem heitir _train model innan IrisModel. Það er notað til að þjálfa módel með Random Forests tækninni. Þjálfuðu líkaninu er skilað með málsmeðferðinni.
- Lýstu yfir tegundavirkni sem spáð er í IrisModel. Það er notað til að spá út frá 4 aðföngum (blómmælingum). Bæði spáin (blómategundir) og spálíkur eru skilað af reikniritinu.
- Breyttu smiðinum í IrisModel þannig að það hleður Iris gagnasafninu og þjálfar líkanið ef það vantar í möppuna. Þetta leysir vandamálið við að þjálfa nýjar gerðir ítrekað. Joblib bókasafnið er notað til að hlaða og vista líkan.
Hér er allur kóðinn:
Ég vona að listinn hér að ofan og athugasemdirnar hafi gert það auðvelt að átta sig á því þó að þetta hafi verið umtalsvert magn af kóða til að búa til. Nú þegar þetta líkan hefur verið þróað skulum við birta spámöguleika þess yfir a REST API.
Að smíða fullt REST API
Farðu aftur í ml_model.py skrána og hreinsaðu öll gögnin. Boilerplatan verður í meginatriðum sú sama og þú hafðir áður, en við ættum að byrja upp á nýtt með auða skrá.
Þú munt aðeins skilgreina einn endapunkt að þessu sinni, sem er sá sem notaður er til að ákvarða tegund blómsins. IrisModel.predict species(), sem lýst var yfir í kaflanum á undan, er kallað af þessum endapunkti til að framkvæma spána.
Beiðnartegundin er hin stóra breytingin. Til þess að senda færibreytur í JSON frekar en URL, er mælt með því að þú notir POST þegar þú notar vél nám Forritaskil.
Setningin hér að ofan gæti hafa hljómað eins og bull ef þú ert a gagnafræðingur, en það er allt í lagi. Til að hanna og dreifa líkönum þarf maður ekki endilega að vera sérfræðingur í HTTP beiðnum og REST API.
Verkefnin fyrir ml model.py eru fá og einföld:
- Þú verður að flytja inn eftirfarandi úr áður stofnuðu jaymlmodel.py skránni: uvicorn, FastAPI, IrisModel og IrisSpecies.
- Búðu til tilvik af FastAPI og IrisModel.
- Lýstu yfir fall á https://127.0.0.1:8000/predict til að gera spár.
- Aðferðin IrisModel.predict species() tekur á móti hlut af gerðinni IrisSpecies, umbreytir honum í orðabók og skilar honum síðan. Ávöxtun er væntanlegur flokkur og spár líkur.
- Notaðu uvicorn til að keyra API.
Enn og aftur, hér er kóðinn í heild sinni ásamt athugasemdum hennar:
Það er allt sem þú þarft að gera. Í næsta skrefi skulum við prófa API.
Að prófa API
Sláðu aftur inn eftirfarandi línu inn í flugstöðina til að keyra API: uvicorn ml_model:app –reload
Svona birtist skjalasíðan:
Svo það er komið í dag. Í hlutanum eftir þetta skulum við álykta.
Niðurstaða
Í dag lærðir þú hvað FastAPI er og hvernig á að nota það, með því að nota bæði einfalt API dæmi og einfalt vélnámsdæmi. Þú hefur líka lært hvernig á að búa til og skoða API skjöl, svo og hvernig á að prófa þau.
Það er mikið fyrir eitt stykki, svo ekki vera hissa ef það þarf nokkra lestur til að skilja almennilega.
Til hamingju með kóðun.
Skildu eftir skilaboð