මෙම අවස්ථාවෙහි එක් අංගයක් වන්නේ යන්ත්ර ඉගෙනුම් ආකෘතියක් නිර්මාණය කිරීමයි. එය සැබෑ ලෝකයේ භාවිතා කළ හැකි අතර පාරිභෝගිකයින්ට සහ සංවර්ධකයින්ට ලබා ගත යුතුය.
යන්ත්ර ඉගෙනුම් ආකෘති යෙදවීමට ඇති සරලම සහ ජනප්රියම ක්රමය නම් ඒවා REST API එකකට ඇතුළත් කිරීමයි.
FastAPI නමින් ජනප්රිය පුස්තකාලයක් සමඟින්, අද අපි ඉටු කරන්නේ එයයි.
නමුත්, මොකක්ද FastAPI?
FastAPI Python වෙබ් රාමුව සමකාලීන Python හැකියාවන්ගෙන් ප්රයෝජන ගැනීම සඳහා බිම් මට්ටමේ සිට නිර්මාණය කරන ලදී.
සේවාදායකයන් සමඟ අසමමුහුර්ත, සමගාමී සන්නිවේදනය සඳහා, එය ASGI ප්රමිතියට අනුගත වන අතර එය WSGI භාවිතා කිරීමට ද හැකියාව ඇත.
අන්ත ලක්ෂ්ය සහ මාර්ග දෙකටම අසමමුහුර්ත කාර්යයන් යෙදිය හැක. අතිරේකව, FastAPI විසින් ටයිප්-ඉඟි කරන ලද, පිරිසිදු, සමකාලීන Python කේතයෙන් වෙබ් යෙදුම් ඵලදායි ලෙස නිර්මාණය කිරීම සක්රීය කරයි.
FastAPI හි ප්රධාන භාවිත අවස්ථාව නම්, නමට අනුව, API අන්ත ලක්ෂ්ය නිර්මාණය කිරීමයි.
අන්තර්ක්රියාකාරී Swagger UI ඇතුළත් OpenAPI ප්රමිතිය භාවිතා කිරීම හෝ 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 යතුර. ඉදිරියට යාමට පෙර, අපි මෙම ප්රකාශය ඉවත් කරමු. පළමු යෙදුම දිගුවකින් තොරව පයිතන් ගොනු නාමය පමණක් භාවිතා කරයි. දෙවන යෙදුමට ඔබේ FastAPI අවස්ථාවට සමාන නමක් තිබිය යුතුය.
-reload භාවිතා කිරීමෙන්, ඔබ මුල සිට ආරම්භ කරනවාට වඩා ගොනුව සුරකින විට එය ස්වයංක්රීයව නැවත පූරණය කිරීමට ඔබට අවශ්ය බව API වෙත පවසන්න.
දැන් බ්රවුසරයක් දියත් කර https://127.0.0.1:8000 වෙත යන්න; ප්රතිඵලය පහත පරිදි දිස්විය යුතුය:
FastAPI භාවිතයෙන් සරල API එකක් සාදා ගන්නේ කෙසේදැයි ඔබට දැන් වැටහෙනවා.
Machine Learning ආකෘතිය ගොඩනැගීම සහ පුහුණු කිරීම
කිසිදු දත්තයක් රැස් කිරීම හෝ විශ්ලේෂණය කිරීමකින් තොරව, අපි සරල ආකෘතියක් පුහුණු කරන්නෙමු. මේවා ආකෘති යෙදවීම හා සම්බන්ධ නොවන අතර පවතින මාතෘකාවට අත්යවශ්ය නොවේ.
Iris දත්ත කට්ටලය මත පදනම් වූ ආකෘතියක් එයම භාවිතයෙන් ස්ථාපනය කළ හැක ස්නායු ජාලය ස්ථාපන ක්රමය.
අපි එය කරන්නෙමු: බාගත කරන්න අයිරිස් දත්ත කට්ටලය සහ ආකෘතිය පුහුණු කරන්න. එය සරල නොවනු ඇත. ආරම්භ කිරීමට, jaysmlmodel.py නමින් ගොනුවක් සාදන්න.
එහි, ඔබ පහත සඳහන් දේ කරනු ඇත:
- ආයාත - ඔබට පැන්ඩා, scikit-RandomForecastClassifier, Learn's pydantic's BaseModel (ඔබට හේතුව පහත පියවරේදී සොයා ගත හැක) සහ ආකෘති ගබඩා කිරීම සහ පැටවීම සඳහා joblib අවශ්ය වේ.
- මූලික ආකෘතියෙන් උරුම වන IrisSpecies පන්තියක් ප්රකාශ කරන්න. මෙම පන්තියේ අඩංගු වන්නේ තනි මල් විශේෂයක් පුරෝකථනය කිරීමට අවශ්ය ක්ෂේත්ර පමණි (ඊළඟ කොටසේ වැඩි විස්තර)
- පන්තියක් සාදන්න. IrisModel යනු ආදර්ශ පුහුණු සහ අනාවැකි මෙවලමකි.
- IrisModel තුළ _train model නමින් ක්රමයක් ප්රකාශ කරන්න. එය සසම්භාවී වනාන්තර තාක්ෂණය භාවිතයෙන් ආකෘති පුහුණු කිරීමට භාවිතා කරයි. පුහුණු ආකෘතිය ක්රියා පටිපාටිය මගින් ආපසු ලබා දෙනු ලැබේ.
- IrisModel තුළ පුරෝකථනය කළ විශේෂ කාර්යයක් ප්රකාශ කරන්න. ආදාන සාධක 4ක් (මල් මිනුම්) මත පදනම්ව අනාවැකි කිරීමට එය භාවිතා වේ. අනාවැකි (මල් විශේෂ) සහ අනාවැකි සම්භාවිතාව යන දෙකම ඇල්ගොරිතම මගින් ආපසු ලබා දෙනු ලැබේ.
- IrisModel හි ඉදිකිරීම්කරු වෙනස් කරන්න එවිට එය Iris දත්ත කට්ටලය පූරණය කරන අතර එය ෆෝල්ඩරයෙන් අස්ථානගත වී ඇත්නම් ආකෘතිය පුහුණු කරයි. මෙය නැවත නැවතත් නව මාදිලි පුහුණු කිරීමේ ගැටළුව විසඳයි. ජොබ්ලිබ් පුස්තකාලය ආකෘති පැටවීම සහ සුරැකීම සඳහා භාවිතා වේ.
මෙන්න සම්පූර්ණ කේතය:
මෙය නිර්මාණය කිරීම සඳහා සැලකිය යුතු කේත ප්රමාණයක් වුවද ඉහත ලැයිස්තුව සහ අදහස් ග්රහණය කර ගැනීම පහසු කරවනු ඇතැයි මම බලාපොරොත්තු වෙමි. දැන් මෙම ආකෘතිය සංවර්ධනය කර ඇති බැවින්, එහි අනාවැකි හැකියාවන් a හරහා ප්රකාශයට පත් කරමු REST API.
සම්පූර්ණ REST API නිර්මාණය කිරීම
ml_model.py ගොනුව වෙත ආපසු ගොස් සියලු දත්ත පිරිසිදු කරන්න. බොයිලර් තහඩුව ඔබට පෙර තිබූ දෙයට සමාන වනු ඇත, නමුත් අපි හිස් ගොනුවකින් නැවත ආරම්භ කළ යුතුය.
ඔබ මෙවර නිර්වචනය කරනු ලබන්නේ එක් අන්තයක් පමණි, එය මල් වර්ගය තීරණය කිරීමට භාවිතා කරයි. IrisModel.predict species() පෙර කොටසේ ප්රකාශ කරන ලදී, අනාවැකිය ක්රියාත්මක කිරීම සඳහා මෙම අන්ත ලක්ෂ්යයෙන් හැඳින්වේ.
ඉල්ලීම් වර්ගය අනෙක් විශාල වෙනසයි. URL වලට වඩා JSON හි පරාමිති සම්ප්රේෂණය කිරීම සඳහා, ඔබ භාවිතා කරන විට POST භාවිතා කිරීම නිර්දේශ කෙරේ යන්ත්ර ඉගෙනීම ඒපීඅයි.
ඔබ a නම් ඉහත වාක්ය ඛණ්ඩනයට සමාන විය හැක දත්ත විද්යා ist, ඒත් කමක් නෑ. ආකෘති සැලසුම් කිරීමට සහ යෙදවීමට, කෙනෙකුට HTTP ඉල්ලීම් සහ REST API පිළිබඳ විශේෂඥයෙකු වීම අවශ්ය නොවේ.
ml model.py සඳහා වන කාර්යයන් ස්වල්පයක් සහ සරල ය:
- ඔබ කලින් සාදන ලද jaymlmodel.py ගොනුවෙන් පහත දෑ ආයාත කළ යුතුය: uvicorn, FastAPI, IrisModel, සහ IrisSpecies.
- FastAPI සහ IrisModel නිදර්ශන සාදන්න.
- අනාවැකි කිරීමට https://127.0.0.1:8000/predict හි ශ්රිතයක් ප්රකාශ කරන්න.
- IrisModel.predict species() ක්රමයට IrisSpecies වර්ගයේ වස්තුවක් ලැබී එය ශබ්දකෝෂයක් බවට පරිවර්තනය කර එය ආපසු ලබා දෙයි. ප්රතිලාභ යනු අපේක්ෂිත පන්තිය සහ පුරෝකථනය කළ සම්භාවිතාවයි.
- API ක්රියාත්මක කිරීමට uvicorn භාවිතා කරන්න.
නැවතත්, මෙහි සම්පූර්ණ ගොනුවේ කේතය එහි අදහස් සමඟ ඇත:
ඔබ කළ යුත්තේ එපමණයි. ඊළඟ පියවරේදී, අපි API පරීක්ෂා කරමු.
API පරීක්ෂා කිරීම
API ක්රියාත්මක කිරීමට පහත පේළිය ටර්මිනලයට නැවත ඇතුල් කරන්න: uvicorn ml_model:app –reload
ලේඛන පිටුව දිස්වන ආකාරය මෙයයි:
ඉතින් අදට එච්චරයි. මෙයින් පසු කොටසින්, අපි නිගමනය කරමු.
නිගමනය
අද, ඔබ FastAPI යනු කුමක්ද සහ එය භාවිතා කරන්නේ කෙසේද යන්න ඉගෙන ගත්තේ සරල API උදාහරණයක් සහ සරල යන්ත්ර ඉගෙනීමේ උදාහරණයක් භාවිතා කරමිනි. ඔබ API ප්රලේඛන සෑදීම සහ බැලීම මෙන්ම එය පරීක්ෂා කරන ආකාරයද ඉගෙන ගෙන ඇත.
එක කෑල්ලකට එය බොහෝ දේ, ඒ නිසා එය නිවැරදිව තේරුම් ගැනීමට කියවීම් කිහිපයක් අවශ්ය නම් පුදුම නොවන්න.
සතුටු කේතනය.
ඔබමයි