Сценарийдин бир аспектиси машина үйрөнүү моделин түзүү болуп саналат. Бул реалдуу дүйнөдө колдонууга жана керектөөчүлөр менен иштеп чыгуучуларга жеткиликтүү болушу керек.
Машина үйрөнүү моделдерин жайылтуунун эң жөнөкөй жана эң популярдуу жолу - аларды 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 объектисин камсыз кылган экинчи маршрутту жарыялаңыз. Name параметри түз эле 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 модели деп аталган ыкманы жарыялаңыз. Бул Random Forests техникасын колдонуу менен моделдерди окутуу үчүн колдонулат. Үйрөтүлгөн модель процедура менен кайтарылат.
- 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 –reload
Документтер барагы ушундайча пайда болот:
Ошентип, бүгүнкү күндө. Андан кийинки бөлүктө жыйынтыктайлы.
жыйынтыктоо
Бүгүн сиз FastAPI деген эмне экенин жана аны кантип колдонууну үйрөндүңүз, муну менен жөнөкөй API мисалын жана жөнөкөй машинаны үйрөнүү мисалдарын колдондуңуз. Сиз ошондой эле API документациясын кантип түзүүнү жана көрүүнү, ошондой эле аны кантип сыноону үйрөндүңүз.
Бул бир кесим үчүн көп, андыктан туура түшүнүү үчүн бир нече окуу керек болсо, таң калбаңыз.
Бактылуу коддоо.
Таштап Жооп