منظر جو هڪ پاسو مشين سکيا وارو ماڊل ٺاهي رهيو آهي. اهو حقيقي دنيا ۾ قابل استعمال هجڻ گهرجي ۽ صارفين ۽ ڊولپرز لاء دستياب هجي.
مشين لرننگ ماڊلز کي ترتيب ڏيڻ جو آسان ۽ تمام مشهور طريقو انھن کي REST API ۾ بند ڪرڻ آھي.
FastAPI نالي هڪ مشهور لائبريري سان، اهو ئي آهي جيڪو اسان اڄ پورو ڪنداسين.
پر، ڇا آهي فاسٽ اي پي آئي?
FastAPI Python ويب فريم ورڪ جديد پٿون صلاحيتن مان فائدو وٺڻ لاءِ گرائونڊ اپ کان ٺاهيو ويو.
هم وقت سازي لاءِ، ڪلائنٽ سان سمورو رابطو، اهو ASGI معيار تي عمل ڪري ٿو، جڏهن ته اهو پڻ WSGI استعمال ڪرڻ جي قابل آهي.
آخر پوائنٽ ۽ رستا ٻئي ڪم ڪري سگھن ٿا async افعال. اضافي طور تي، FastAPI ويب ايپس جي پيداواري تخليق کي ٽائپ-اشارٽ، صاف، معاصر پٿون ڪوڊ ۾ قابل بڻائي ٿو.
FastAPI جو بنيادي استعمال ڪيس آهي، جيئن نالو مشورو ڏئي ٿو، API جي آخري پوائنٽ ٺاهڻ.
OpenAPI معيار کي استعمال ڪندي، جنهن ۾ هڪ انٽرايڪٽو Swagger UI شامل آهي، يا Python ڊڪشنري ڊيٽا مهيا ڪرڻ جيئن JSON ٻنهي کي حاصل ڪرڻ جا آسان طريقا آهن. بهرحال، FastAPI صرف APIs لاءِ ناهي.
اهو Jinja2 ٽيمپليٽ انجڻ استعمال ڪندي معياري ويب صفحا پيش ڪرڻ ۽ WebSockets استعمال ڪندي ايپس جي خدمت ڪرڻ لاءِ استعمال ٿي سگهي ٿو، ان کان علاوه تمام گهڻو ڪجهه ٻيو ويب فريم ورڪ ڪري سگهي ٿو.
هن آرٽيڪل ۾، اسان هڪ سڌريل مشين لرننگ ماڊل ٺاهينداسين ۽ پوءِ ان کي ترتيب ڏيڻ لاءِ FastAPI استعمال ڪنداسين. اچو ته شروع ڪريون.
FastAPI جي تنصيب ۽ پهرين API جي تخليق
لائبريري کي انسٽال ڪرڻ ۽ هڪ ASGI سرور جي ضرورت آهي پهرين؛ يا ته Uvuicorn يا Hypercorn ڪم ڪندو. اهو ٽرمينل ۾ هيٺ ڏنل حڪم داخل ڪندي ڪم ڪري ٿو:
ھاڻي ته API ٺاھيو ويو آھي، توھان استعمال ڪري سگھوٿا پنھنجي پسنديده ڪوڊ ايڊيٽر ۽ ان جي ذريعي براؤز ڪريو. شروع ڪرڻ لاءِ ml_model.py نالي هڪ پٿون اسڪرپٽ ٺاهيو. توھان کي ڀليڪار آھي ته توھان پنھنجو ڪو ٻيو نالو ڏيو، پر ھن پوسٽ جي خاطر، مان ھن فائل کي ml_model.py طور حوالو ڏيندس.
ٻن آخري پوائنٽن سان سڌو API ٺاھڻ لاءِ، توھان کي ھيٺين ڪمن کي مڪمل ڪرڻ گھرجي:
- FastAPI ۽ Uvicorn لائبريريون درآمد ڪريو.
- هڪ FastAPI ڪلاس مثال قائم ڪريو.
- پهرين رستي جو اعلان ڪريو، جيڪو، انڊيڪس پيج تي، سڌو JSON اعتراض پيدا ڪري ٿو.
- ٻئي رستي جو اعلان ڪريو، جيڪو سڌو سنئون JSON شئي ڏئي ٿو ڪسٽمائيز پيغام سان. نالو پيٽرولر سڌو URL مان ورتو ويو آهي (مثال طور، https://127.0.0.1:8000/Jay).
- API کي هلائڻ لاءِ Uvicorn استعمال ڪريو.
انهن پنجن مرحلن کي لاڳو ڪرڻ هيٺ ڏنل بٽ ڪوڊ ۾ ڏيکاريل آهي يعني. هڪ سادي API ٺاهڻ
سمورو ڪم مڪمل ٿي ويو! اچو ته اسان جي API کي فوري طور تي لانچ ڪريو. هن کي مڪمل ڪرڻ لاءِ ml model.py فائل جي اڳيان ٽرمينل ونڊو کوليو. اڳيون، ھيٺيون داخل ڪريو:
داخل ڪريو چيڪ. اڳتي وڌڻ کان اڳ، اچو ته هن دعوي کي رد ڪريون. پهرين ايپ صرف پٿون فائل جو نالو استعمال ڪري ٿي، بغير واڌ جي. ٻئي ائپ کي لازمي طور تي ساڳيو نالو هجڻ گهرجي جيئن توهان جي FastAPI مثال.
استعمال ڪندي -reload، توهان API کي ٻڌايو ته توهان چاهيو ٿا ته اهو خودڪار طريقي سان ٻيهر لوڊ ٿئي جڏهن توهان شروع کان شروع ڪرڻ بجاءِ فائل محفوظ ڪريو.
ھاڻي ھڪڙو برائوزر شروع ڪريو ۽ ڏانھن وڃو https://127.0.0.1:8000؛ نتيجو هن ريت ظاهر ٿيڻ گهرجي:
توھان ھاڻي سمجھو ٿا ته FastAPI استعمال ڪندي ھڪڙو سادو API ڪيئن ٺاھيو.
مشين لرننگ ماڊل جي تعمير ۽ تربيت
ڪنهن به ڊيٽا گڏ ڪرڻ يا تجزيو ڪرڻ کان سواء، اسان صرف هڪ سادي نموني کي تربيت ڏينداسين. اهي ماڊلز جي ترتيب سان لاڳاپيل نه آهن ۽ هٿ ۾ موضوع لاء ضروري نه آهن.
Iris dataset جي بنياد تي هڪ ماڊل ساڳيو استعمال ڪري انسٽال ڪري سگهجي ٿو نظرياتي نيٽورڪ انسٽاليشن جو طريقو.
۽ اسان صرف اهو ڪنداسين: ڊائون لوڊ ڪريو Iris ڊيٽا سيٽ ۽ ماڊل کي تربيت ڏيو. اهو سادو نه هوندو. شروع ڪرڻ لاءِ، jaysmlmodel.py نالي هڪ فائل ٺاهيو.
ان ۾، توھان ھيٺ ڏنل ڪندا:
- درآمدون - توھان کي ضرورت پوندي pandas، scikit-RandomForecastClassifier، learn's pydantic's BaseModel (توھان کي معلوم ٿيندو ته ھيٺين قدم ۾ ڇو)، ۽ ماڊل اسٽوريج ۽ لوڊ ڪرڻ لاءِ جابليب.
- هڪ IrisSpecies ڪلاس جو اعلان ڪريو جيڪو بنيادي ماڊل مان ورثي ۾ ملي ٿو. هن ڪلاس ۾ صرف هڪ گلن جي نسلن جي اڳڪٿي ڪرڻ لاءِ گهربل فيلڊس شامل آهن (ان بابت وڌيڪ ايندڙ حصي ۾)
- هڪ ڪلاس ٺاهيو. IrisModel هڪ ماڊل ٽريننگ ۽ اڳڪٿي ڪرڻ وارو اوزار آهي.
- IrisModel اندر _train ماڊل نالي هڪ طريقو بيان ڪريو. اهو استعمال ڪيو ويندو آهي ماڊل ٽريننگ استعمال ڪندي رينڊم ٻيلن ٽيڪنڪ. تربيتي ماڊل واپسي جي طريقيڪار جي ذريعي.
- IrisModel اندر اڳڪٿي ڪيل نسل جي فنڪشن جو اعلان ڪريو. اهو استعمال ڪيو ويو آهي 4 ان پٽ فڪٽرن (گلن جي ماپ) جي بنياد تي اڳڪٿي ڪرڻ لاءِ. ٻئي اڳڪٿي (گلن جي نسل) ۽ اڳڪٿي جو امڪان الورورٿم طرفان موٽايو ويو آهي.
- IrisModel ۾ تعمير ڪندڙ کي تبديل ڪريو ته جيئن اھو Iris ڊيٽا سيٽ لوڊ ڪري ۽ ماڊل کي تربيت ڏئي جيڪڏھن اھو فولڊر مان غائب آھي. هي بار بار نئين ماڊل جي تربيت جو مسئلو حل ڪري ٿو. جابلب لائبريري ماڊل لوڊ ڪرڻ ۽ بچت لاءِ استعمال ڪئي وئي آهي.
هتي سڄو ڪوڊ آهي:
مون کي اميد آهي ته مٿي ڏنل فهرست ۽ رايا ان کي سمجهڻ آسان بڻائي ڇڏيو آهي جيتوڻيڪ اهو ٺاهڻ لاءِ ڪوڊ جي وڏي مقدار هئي. هاڻي ته هي ماڊل تيار ڪيو ويو آهي، اچو ته ان جي اڳڪٿي جي صلاحيتون شايع ڪريون REST API.
مڪمل REST API ٺاھڻ
ml_model.py فائل ڏانھن واپس وڃو ۽ سڀني ڊيٽا کي صاف ڪريو. بوائلر پليٽ لازمي طور تي ساڳيو هوندو جيڪو توهان وٽ اڳ ۾ هو، پر اسان کي هڪ خالي فائل سان شروع ڪرڻ گهرجي.
توهان هن وقت صرف هڪ آخري نقطي جي وضاحت ڪنداسين، جيڪو گلن جي قسم کي طئي ڪرڻ لاء استعمال ڪيو ويو آهي. IrisModel.predict species()، جنهن جو اڳئين حصي ۾ اعلان ڪيو ويو هو، هن آخري نقطي ذريعي اڳڪٿي ڪرڻ لاءِ سڏيو ويندو آهي.
درخواست جو قسم ٻي وڏي تبديلي آھي. URL جي بجاءِ JSON ۾ پيٽرول منتقل ڪرڻ لاءِ، اها صلاح ڏني وئي آهي ته توهان پوسٽ استعمال ڪريو جڏهن استعمال ڪريو مشين جي سکيا اي پي ايز.
مٿيون جملو شايد گبباري وانگر لڳندو هجي جيڪڏهن توهان آهيو ڊيٽا سائنسدان، پر اهو ٺيڪ آهي. ماڊلز کي ڊزائين ڪرڻ ۽ ترتيب ڏيڻ لاءِ، ڪنهن کي لازمي طور تي HTTP درخواستن ۽ REST APIs تي ماهر ٿيڻ جي ضرورت ناهي.
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 دستاويزن کي ڪيئن ٺاهيو ۽ ڏسو، انهي سان گڏ ان کي ڪيئن جانچيو.
اھو ھڪڙي ھڪڙي ٽڪري لاءِ تمام گھڻو آھي، تنھنڪري حيران نه ٿيو جيڪڏھن اھو صحيح سمجھڻ لاءِ ڪجھ پڙھڻ جي ضرورت آھي.
خوش ڪوڊنگ.
جواب ڇڏي وڃو