Сценарийдің бір аспектісі машиналық оқыту үлгісін жасау болып табылады. Ол нақты әлемде қолдануға және тұтынушылар мен әзірлеушілерге қолжетімді болуы керек.
Машиналық оқыту үлгілерін қолданудың ең қарапайым және ең танымал тәсілі - оларды REST API ішіне қосу.
FastAPI деп аталатын танымал кітапхананың көмегімен біз бүгін дәл осы нәрсеге қол жеткіземіз.
Бірақ, бұл не FastAPI?
FastAPI Python веб-қаңқасы қазіргі заманғы Python мүмкіндіктерін пайдалану үшін басынан бастап жасалған.
Клиенттермен асинхронды, бір мезгілде байланыс үшін ол ASGI стандартын ұстанады, сонымен бірге ол WSGI пайдалана алады.
Соңғы нүктелер мен маршруттар синхронды функцияларды қолдана алады. Сонымен қатар, FastAPI түрі бойынша нұсқалған, таза, заманауи Python кодында веб-бағдарламаларды өнімді жасауға мүмкіндік береді.
FastAPI негізгі қолдану жағдайы, аты айтып тұрғандай, API соңғы нүктелерін жасау болып табылады.
Интерактивті Swagger UI кіретін OpenAPI стандартын пайдалану немесе Python сөздігі деректерін JSON ретінде қамтамасыз ету - осыған қол жеткізудің қарапайым жолы. Дегенмен, FastAPI тек API үшін ғана емес.
Оны Jinja2 үлгі механизмі арқылы стандартты веб-беттерді ұсыну үшін және WebSockets пайдаланатын қолданбаларға қызмет көрсету үшін пайдалануға болады, сонымен қатар веб-құрылым жасай алатын барлық дерлік.
Бұл мақалада біз машиналық оқытудың қарапайым үлгісін жасаймыз, содан кейін оны қолдану үшін FastAPI пайдаланамыз. Бастайық.
FastAPI орнату және бірінші API құру
Алдымен кітапхана мен ASGI серверін орнату қажет; Uvuicorn немесе Hypercorn жұмыс істейді. Ол терминалға келесі пәрменді енгізу арқылы жұмыс істейді:
Енді API жасалғаннан кейін сіз қалаған код өңдегішін пайдаланып, оны шолуға болады. Бастау үшін ml_model.py деп аталатын Python сценарийін жасаңыз. Сіз өзіңіздің атыңызды басқаша атасаңыз болады, бірақ осы жазба үшін мен бұл файлды ml_model.py деп атаймын.
Екі соңғы нүктесі бар қарапайым API жасау үшін келесі тапсырмаларды орындау керек:
- FastAPI және Uvicorn кітапханаларын импорттаңыз.
- FastAPI класс данасын орнатыңыз.
- Индекс бетінде тікелей JSON нысанын жасайтын бірінші бағытты жариялаңыз.
- Теңшелген хабарламасы бар қарапайым JSON нысанын қамтамасыз ететін екінші бағытты жариялаңыз. Атау параметрі тікелей URL мекенжайынан алынады (мысалы, https://127.0.0.1:8000/Jay).
- API іске қосу үшін Uvicorn пайдаланыңыз.
Осы бес кезеңді орындау келесі код битінде көрсетілген, яғни. қарапайым API құру
Барлығы орындалды! Біздің API-ді дереу іске қосайық. Мұны орындау үшін ml model.py файлының жанындағы Терминал терезесін ашыңыз. Содан кейін келесіні енгізіңіз:
Enter пернесін басыңыз. Жалғастырмас бұрын, бұл тұжырымды жоққа шығарайық. Бірінші қолданба кеңейтімсіз тек Python файл атауын пайдаланады. Екінші қолданбаның аты FastAPI данасымен бірдей болуы керек.
-reload пайдалану арқылы сіз API-ге файлды нөлден емес, сақтаған кезде оның автоматты түрде қайта жүктелуін қалайтыныңызды айтасыз.
Енді браузерді іске қосыңыз және https://127.0.0.1:8000 мекенжайына өтіңіз; нәтиже келесідей көрінуі керек:
Енді сіз FastAPI көмегімен қарапайым API құру жолын түсінесіз.
Machine Learning моделін құру және оқыту
Ешқандай деректерді жинамай немесе талдамай, біз жай ғана қарапайым модельді үйретеміз. Бұл үлгілерді орналастыруға қатысы жоқ және қарастырылатын тақырып үшін маңызды емес.
Iris деректер жиынына негізделген үлгіні сол арқылы орнатуға болады нейрондық желі орнату әдісі.
Біз мұны істейміз: жүктеп алыңыз Iris деректер жинағы және үлгіні жаттықтыру. Бұл қарапайым болмайды. Бастау үшін jaysmlmodel.py деп аталатын файлды жасаңыз.
Онда сіз келесі әрекеттерді орындайсыз:
- Импорттар — үлгілерді сақтау және жүктеу үшін сізге пандалар, scikit-RandomForecastClassifier, Learn's pydantic BaseModel (неге екенін келесі қадамда табасыз) және joblib қажет болады.
- Негізгі үлгіден мұраланған IrisSpecies сыныбын жариялаңыз. Бұл класс тек бір гүл түрін болжауға қажетті өрістерді қамтиды (бұл туралы келесі бөлімде толығырақ)
- Класс құру. IrisModel - модельді оқыту және болжау құралы.
- IrisModel ішінде _train үлгісі деп аталатын әдісті жариялаңыз. Ол Кездейсоқ ормандар техникасын пайдаланып модельдерді үйрету үшін қолданылады. Оқытылған үлгі процедура арқылы қайтарылады.
- IrisModel ішінде болжанған түр функциясын жариялаңыз. Ол 4 кіріс факторына (гүл өлшемдері) негізделген болжау үшін пайдаланылады. Болжам (гүл түрлері) де, болжау ықтималдығы да алгоритм арқылы қайтарылады.
- IrisModel ішіндегі конструкторды өзгертіңіз, сонда ол Iris деректер жинағын жүктейді және ол қалтада жоқ болса, үлгіні үйретеді. Бұл жаңа үлгілерді қайта-қайта оқыту мәселесін шешеді. joblib кітапханасы үлгіні жүктеу және сақтау үшін пайдаланылады.
Міне, бүкіл код:
Жоғарыда келтірілген тізім мен түсініктемелерді түсіну оңай болды деп үміттенемін, бірақ бұл жасау үшін кодтың айтарлықтай көлемі болды. Енді бұл модель әзірленген соң, оның болжау мүмкіндіктерін a бойынша жариялайық REST API.
Толық REST API құру
ml_model.py файлына оралыңыз және барлық деректерді тазалаңыз. Бойлер тақтасы сізде бұрын болғанмен бірдей болады, бірақ біз бос файлдан бастауымыз керек.
Сіз бұл жолы тек бір соңғы нүктені анықтайсыз, ол гүл түрін анықтау үшін пайдаланылады. Алдыңғы бөлімде жарияланған IrisModel.predict types(), болжамды орындау үшін осы соңғы нүкте арқылы шақырылады.
Сұраныс түрі басқа үлкен өзгеріс болып табылады. Параметрлерді URL емес JSON форматында жіберу үшін пайдалану кезінде POST пайдалану ұсынылады машина оқыту API.
Егер сіз а болсаңыз, жоғарыдағы сөйлем бос сөз сияқты естілген болуы мүмкін деректанушы, бірақ бұл жақсы. Үлгілерді жобалау және орналастыру үшін HTTP сұраулары мен REST API интерфейстері бойынша сарапшы болу міндетті емес.
ml model.py тапсырмалары аз және қарапайым:
- Бұрын жасалған jaymlmodel.py файлынан келесіні импорттауыңыз керек: uvicorn, FastAPI, IrisModel және IrisSpecies.
- FastAPI және IrisModel даналарын жасаңыз.
- Болжам жасау үшін функцияны https://127.0.0.1:8000/predict мекенжайында жариялаңыз.
- IrisModel.predict types() әдісі IrisSpecies түріндегі нысанды алады, оны сөздікке түрлендіреді, содан кейін оны қайтарады. Қайтарулар күтілетін класс және болжанған ықтималдық болып табылады.
- API орындау үшін uvicorn пайдаланыңыз.
Тағы да, міне, бүкіл файл коды түсініктемелерімен бірге:
Мұның бәрі сізге қажет. Келесі қадамда API интерфейсін сынап көрейік.
API тестілеу
API орындау үшін Терминалға келесі жолды қайта енгізіңіз: uvicorn ml_model:app –қайта жүктеу
Құжаттама беті осылай көрінеді:
Ендеше, бүгінгі күн осылай. Бұдан кейінгі бөлімде қорытындылайық.
қорытынды
Бүгін сіз қарапайым API мысалын және қарапайым машиналық оқыту мысалын пайдаланып FastAPI деген не екенін және оны қалай пайдалану керектігін білдіңіз. Сондай-ақ API құжаттамасын жасауды және көруді, сондай-ақ оны тексеруді үйрендіңіз.
Бұл бір бөлік үшін көп, сондықтан дұрыс түсіну үшін бірнеше оқу қажет болса, таң қалмаңыз.
Бақытты кодтау.
пікір қалдыру