Eszenatokiaren alderdi bat ikaskuntza automatikoaren eredua sortzea da. Mundu errealean erabilgarri izan behar du eta kontsumitzaile eta garatzaileentzat eskuragarri.
Ikaskuntza automatikoko ereduak zabaltzeko modurik errazena eta ezagunena REST API batean biltzea da.
FastAPI izeneko liburutegi ezagun batekin, horixe da gaur lortuko duguna.
Baina, zer da FastAPI?
FastAPI Python web-esparrua hasieratik sortu zen Python-en egungo gaitasunei etekina ateratzeko.
Bezeroekin komunikazio asinkrono eta aldi berean egiteko, ASGI estandarrari atxikitzen zaio, WSGI erabiltzeko gai den bitartean.
Amaiera-puntuak eta ibilbideek funtzio asinkronikoak erabil ditzakete. Gainera, FastAPI-k web-aplikazioen sorkuntza produktiboa ahalbidetzen du Python kode, garbi eta garaikidean.
FastAPI-ren erabilera kasu nagusia, izenak dioen bezala, API amaierako puntuak sortzea da.
Swagger UI interaktiboa barne duen OpenAPI estandarra erabiltzea edo Python hiztegiaren datuak JSON gisa ematea modu errazak dira hori lortzeko. Hala ere, FastAPI ez da APIentzat bakarrik.
Jinja2 txantiloi motorra erabiliz web orri estandarrak eskaintzeko eta WebSockets erabiltzen dituzten aplikazioak zerbitzatzeko erabil daiteke, web esparru batek egin dezakeen beste guztiaz gain.
Artikulu honetan, ikaskuntza automatikoko eredu sinple bat garatuko dugu eta, ondoren, FastAPI erabiliko dugu hura zabaltzeko. Has gaitezen.
FastAPI instalatzea eta lehen APIa sortzea
Liburutegia eta ASGI zerbitzari bat instalatzea beharrezkoa da lehenik; Uvuicorn edo Hypercorn funtzionatuko dute. Terminalean komando hau sartuz funtzionatzen du:
APIa sortuta dagoenean, nahiago duzun kode-editorea erabil dezakezu eta bertan arakatu. Sortu ml_model.py izeneko Python script bat hasteko. Ongi etorria zara zureari beste izen bat ematea, baina mezu honen mesedetan, fitxategi hau ml_model.py izenarekin aipatuko dut.
Bi amaierako API zuzen bat sortzeko, zeregin hauek bete behar dituzu:
- Inportatu FastAPI eta Uvicorn liburutegiak.
- Konfiguratu FastAPI klase-instantzia.
- Adierazi lehenengo ibilbidea, zeinak, indize-orrian, JSON objektu zuzena sortzen duena.
- Adierazi bigarren ibilbidea, JSON objektu zuzen bat mezu pertsonalizatu batekin eskaintzen duena. Izenaren parametroa URLtik zuzenean hartzen da (adibidez, https://127.0.0.1:8000/Jay).
- Erabili Uvicorn APIa exekutatzeko.
Bost etapa hauek ezartzea hurrengo kode-bit honetan erakusten da, hots. API sinple bat sortzea
Dena eginda! Abiarazi dezagun berehala gure APIa. Ireki terminal-leiho bat ml model.py fitxategiaren ondoan hori lortzeko. Ondoren, sartu honako hau:
Sartu tekla. Aurrera jarraitu baino lehen, ezabatu dezagun baieztapen hau. Lehenengo aplikazioak Python fitxategi-izena bakarrik erabiltzen du, luzapenik gabe. Bigarren aplikazioak zure FastAPI instantziaren izen bera izan behar du.
-reload erabiliz, fitxategia gordetzen duzunean automatikoki berriro kargatu nahi duzula esaten diozu APIari, hutsetik hasi beharrean.
Orain abiarazi arakatzaile bat eta nabigatu https://127.0.0.1:8000; emaitza honela agertu behar da:
Orain ulertzen duzu nola sortu API sinple bat FastAPI erabiliz.
Machine Learning eredua eraiki eta trebatzea
Daturik bildu edo aztertu gabe, eredu sinple bat entrenatuko dugu. Hauek ez dute zerikusirik ereduen hedapenarekin eta ez dira ezinbestekoak eskuartean dugun gaiarekin.
Iris datu-multzoan oinarritutako eredu bat instalatu daiteke bera erabiliz sare neural instalazio metodoa.
Eta horixe egingo dugu: deskargatu Iris datu multzoa eta eredua trebatu. Hori ez da erraza izango. Hasteko, egin jaysmlmodel.py izeneko fitxategi bat.
Bertan, honako hau egingo duzu:
- Inportazioak - Panda, scikit-RandomForecastClassifier, Learn's pydantic-en BaseModel (ondorengo urratsean zergatik ezagutuko duzu) eta joblib beharko dituzu ereduak gordetzeko eta kargatzeko.
- Oinarrizko eredutik heredatzen den IrisSpecies klase bat aldarrikatu. Klase honek lore espezie bakarra aurreikusteko beharrezkoak diren eremuak baino ez ditu (horri buruzko informazio gehiago hurrengo atalean)
- Sortu klase bat. IrisModel ereduen prestakuntza eta iragarpen tresna da.
- Adierazi _train model izeneko metodoa IrisModel barruan. Random Forests teknika erabiliz modeloak entrenatzeko erabiltzen da. Prestatutako eredua prozeduraren bidez itzultzen da.
- Adierazi aurreikusitako espezie-funtzioa IrisModel barruan. 4 sarrerako faktoreetan oinarrituta (loreen neurketak) aurreikusteko erabiltzen da. Algoritmoak iragarpena (lore espeziea) eta iragarpen probabilitatea itzultzen ditu.
- Aldatu IrisModel-en eraikitzailea, Iris datu-multzoa kargatu eta eredua entrena dezan karpetatik falta bada. Honek eredu berriak behin eta berriz entrenatzearen arazoa konpontzen du. Joblib liburutegia ereduak kargatzeko eta gordetzeko erabiltzen da.
Hona hemen kode osoa:
Espero dut goiko zerrenda eta iruzkinak errazago ulertzea, nahiz eta hau sortzeko kode kopuru handia izan. Orain eredu hau garatu dela, argitara ditzagun bere iragarpen-gaitasunak a REST API.
REST API osoa eraikitzen
Itzuli ml_model.py fitxategira eta garbitu datu guztiak. Boilerplate funtsean lehen zeukanaren berdina izango da, baina berriro hasi beharko genuke fitxategi huts batekin.
Amaiera puntu bakarra definituko duzu oraingoan, hau da, lore mota zehazteko erabiltzen dena. Aurreko atalean deklaratu zen IrisModel.predict species(), amaiera-puntu honek deitzen du iragarpena egiteko.
Eskaera mota da beste aldaketa handia. Parametroak URLan baino JSON-n transmititzeko, erabiltzean POST erabiltzea gomendatzen da makina ikaskuntza APIak.
Baliteke goiko esaldi honek iragarkia izatea a bazara datu zientzialaria, baina ondo dago. Ereduak diseinatzeko eta zabaltzeko, ez da zertan HTTP eskaeretan eta REST APIetan aditua izan behar.
ml model.py-ren zereginak gutxi eta sinpleak dira:
- Aurretik sortutako jaymlmodel.py fitxategitik honako hauek inportatu behar dituzu: uvicorn, FastAPI, IrisModel eta IrisSpecies.
- Sortu FastAPI eta IrisModel-en instantziak.
- Adierazi funtzio bat https://127.0.0.1:8000/predict helbidean iragarpenak egiteko.
- IrisModel.predict species() metodoak IrisSpecies motako objektu bat jasotzen du, hiztegi bihurtzen du eta, ondoren, itzultzen du. Errendimenduak espero diren klaseak eta aurreikusitako probabilitatea dira.
- Erabili uvicorn APIa exekutatzeko.
Berriro ere, hona hemen fitxategiaren kodea osoa bere iruzkinekin batera:
Hori da egin behar duzun guztia. Hurrengo urratsean, proba dezagun APIa.
APIa probatzen
Sartu berriro lerro hau Terminalean APIa exekutatzeko: uvicorn ml_model:app –reload
Honela agertzen da dokumentazio orria:
Beraz, gaurkoa da. Honen ondorengo zatian, amaitu dezagun.
Ondorioa
Gaur, FastAPI zer den eta nola erabili ikasi duzu, APIaren adibide sinple bat eta ikaskuntza automatikoko adibide sinple bat erabiliz. Gainera, APIaren dokumentazioa nola sortu eta ikusten ikasi duzu, baita hura nola probatu ere.
Pieza bakarrerako asko da, beraz, ez harritu irakurketa batzuk behar badira ondo ulertzeko.
Pozik kodetzea.
Utzi erantzun bat