کی میز کے مندرجات[چھپائیں][دکھائیں]
منظر نامے کا ایک پہلو مشین لرننگ ماڈل بنانا ہے۔ یہ حقیقی دنیا میں قابل استعمال اور صارفین اور ڈویلپرز کے لیے دستیاب ہونا چاہیے۔
مشین لرننگ ماڈلز کو تعینات کرنے کا سب سے آسان اور مقبول طریقہ یہ ہے کہ انہیں REST API میں بند کر دیا جائے۔
FastAPI نامی ایک مشہور لائبریری کے ساتھ، بالکل وہی ہے جو ہم آج پورا کریں گے۔
لیکن، کیا ہے فاسٹ اے پی آئی?
FastAPI Python ویب فریم ورک کو زمینی سطح پر Python کی عصری صلاحیتوں سے فائدہ اٹھانے کے لیے بنایا گیا تھا۔
کلائنٹس کے ساتھ غیر مطابقت پذیر، ہم آہنگ مواصلات کے لیے، یہ ASGI معیار پر عمل پیرا ہے، جبکہ یہ WSGI استعمال کرنے کے قابل بھی ہے۔
اختتامی نقطہ اور راستے دونوں async افعال کو ملازمت دے سکتے ہیں۔ مزید برآں، فاسٹ اے پی آئی ویب ایپس کی پیداواری تخلیق کے قابل بناتا ہے ٹائپ-ہنٹڈ، صاف، ہم عصر Python کوڈ۔
FastAPI کا بنیادی استعمال کیس ہے، جیسا کہ نام سے پتہ چلتا ہے، API کے اختتامی نکات بنانا ہے۔
OpenAPI معیار کا استعمال کرنا، جس میں ایک انٹرایکٹو سویگر UI شامل ہے، یا JSON کے بطور Python ڈکشنری ڈیٹا فراہم کرنا دونوں اس کو حاصل کرنے کے آسان طریقے ہیں۔ تاہم، FastAPI نہ صرف APIs کے لیے ہے۔
اسے Jinja2 ٹیمپلیٹ انجن کا استعمال کرتے ہوئے معیاری ویب صفحات پیش کرنے اور WebSockets کو استعمال کرنے والی ایپس کو پیش کرنے کے لیے استعمال کیا جا سکتا ہے، اس کے علاوہ ویب فریم ورک کے ذریعے بہت کچھ کیا جا سکتا ہے۔
اس آرٹیکل میں، ہم مشین لرننگ کا ایک سادہ ماڈل تیار کریں گے اور پھر اسے تعینات کرنے کے لیے FastAPI کا استعمال کریں گے۔ چلو شروع کریں.
FastAPI کی تنصیب اور پہلے API کی تخلیق
سب سے پہلے لائبریری اور ASGI سرور کو انسٹال کرنا ضروری ہے۔ Uvuicorn یا Hypercorn یا تو کام کرے گا۔ یہ ٹرمینل میں درج ذیل کمانڈ کو داخل کرکے کام کرتا ہے۔
اب جبکہ API بن چکا ہے، آپ اپنا پسندیدہ کوڈ ایڈیٹر استعمال کر سکتے ہیں اور اس کے ذریعے براؤز کر سکتے ہیں۔ شروع کرنے کے لیے ml_model.py نامی ایک Python اسکرپٹ بنائیں۔ آپ کو اپنا ایک مختلف نام دینے کا خیرمقدم ہے، لیکن اس پوسٹ کی خاطر، میں اس فائل کو ml_model.py کے طور پر حوالہ دوں گا۔
دو اختتامی نقطوں کے ساتھ ایک سیدھا سادہ API بنانے کے لیے، آپ کو درج ذیل کاموں کو مکمل کرنا ہوگا۔
- FastAPI اور Uvicorn لائبریریاں درآمد کریں۔
- فاسٹ اے پی آئی کلاس مثال قائم کریں۔
- پہلے راستے کا اعلان کریں، جو، انڈیکس پیج پر، ایک سیدھا 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 کیسے بنایا جائے۔
مشین لرننگ ماڈل کی تعمیر اور تربیت
کوئی ڈیٹا اکٹھا یا تجزیہ کیے بغیر، ہم صرف ایک سادہ ماڈل کو تربیت دیں گے۔ یہ ماڈلز کی تعیناتی سے غیر متعلق ہیں اور موضوع کے لیے ضروری نہیں ہیں۔
Iris ڈیٹاسیٹ پر مبنی ایک ماڈل اسی کا استعمال کرتے ہوئے انسٹال کیا جا سکتا ہے۔ عصبی نیٹ ورک تنصیب کا طریقہ.
اور ہم صرف یہ کریں گے: ڈاؤن لوڈ کریں۔ آئیرس ڈیٹاسیٹ اور ماڈل کو تربیت دیں۔ یہ آسان نہیں ہوگا۔ شروع کرنے کے لیے، jaysmlmodel.py نام کی فائل بنائیں۔
اس میں، آپ مندرجہ ذیل کام کریں گے:
- امپورٹس — آپ کو پانڈوں، سکیٹ-رینڈم فاریکاسٹ کلاسیفائر، سیکھنے کا پیڈینٹک کا بیس ماڈل (آپ کو اگلے مرحلے میں معلوم ہو جائے گا کہ ایسا کیوں ہے) اور ماڈلز کو اسٹور کرنے اور لوڈ کرنے کے لیے جاب لیب کی ضرورت ہوگی۔
- ایک IrisSpecies کلاس کا اعلان کریں جو بیس ماڈل سے وراثت میں ملتی ہے۔ اس کلاس میں صرف ایک پھول کی نسل کی پیشن گوئی کرنے کے لیے درکار فیلڈز شامل ہیں (اگلے حصے میں اس پر مزید)
- ایک کلاس بنائیں۔ IrisModel ایک ماڈل ٹریننگ اور پیشین گوئی کا ٹول ہے۔
- IrisModel کے اندر _train ماڈل کے نام سے ایک طریقہ کا اعلان کریں۔ یہ رینڈم فاریسٹ تکنیک کا استعمال کرتے ہوئے ماڈلز کو تربیت دینے کے لیے استعمال کیا جاتا ہے۔ تربیت یافتہ ماڈل طریقہ کار کے ذریعے واپس آ جاتا ہے۔
- IrisModel کے اندر ایک پیش گوئی شدہ پرجاتیوں کے فنکشن کا اعلان کریں۔ اس کا استعمال 4 ان پٹ عوامل (پھول کی پیمائش) کی بنیاد پر پیشن گوئی کے لیے کیا جاتا ہے۔ پیشن گوئی (پھول کی اقسام) اور پیشین گوئی کا امکان دونوں الگورتھم کے ذریعے لوٹائے جاتے ہیں۔
- IrisModel میں کنسٹرکٹر کو تبدیل کریں تاکہ یہ Iris ڈیٹاسیٹ کو لوڈ کرے اور اگر فولڈر سے غائب ہو تو ماڈل کو تربیت دے۔ اس سے نئے ماڈلز کو بار بار تربیت دینے کا مسئلہ حل ہو جاتا ہے۔ جاب لیب لائبریری کو ماڈل لوڈنگ اور سیونگ کے لیے استعمال کیا جاتا ہے۔
یہاں پورا کوڈ ہے:
مجھے امید ہے کہ مندرجہ بالا فہرست اور تبصروں نے اسے سمجھنا آسان بنا دیا ہے حالانکہ یہ کوڈ بنانے کے لیے کافی مقدار میں تھا۔ اب جبکہ یہ ماڈل تیار ہو چکا ہے، آئیے اس کی پیشین گوئی کی صلاحیتوں کو a پر شائع کرتے ہیں۔ باقی API.
مکمل REST API کی تعمیر
ml_model.py فائل پر واپس جائیں اور تمام ڈیٹا کو صاف کریں۔ بوائلر پلیٹ بنیادی طور پر وہی ہوگی جو آپ کے پاس پہلے تھی، لیکن ہمیں ایک خالی فائل کے ساتھ شروع کرنا چاہئے۔
آپ اس بار صرف ایک اختتامی نقطہ کی وضاحت کریں گے، جو پھول کی قسم کا تعین کرنے کے لیے استعمال کیا جاتا ہے۔ IrisModel.predict species(، جس کا پچھلے حصے میں اعلان کیا گیا تھا، پیشین گوئی کو انجام دینے کے لیے اس اختتامی نقطہ سے کہا جاتا ہے۔
درخواست کی قسم دوسری بڑی تبدیلی ہے۔ URL کے بجائے JSON میں پیرامیٹرز منتقل کرنے کے لیے، یہ تجویز کیا جاتا ہے کہ آپ POST استعمال کرتے وقت استعمال کریں مشین لرننگ APIs.
اگر آپ ایک ہیں تو مندرجہ بالا جملہ بے ہودہ لگتا ہے۔ ڈیٹا سائنسدان، لیکن یہ ٹھیک ہے۔ ماڈلز کو ڈیزائن اور تعینات کرنے کے لیے، ضروری نہیں کہ وہ 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 دستاویزات بنانے اور دیکھنے کے ساتھ ساتھ اس کی جانچ کرنے کا طریقہ بھی سیکھ لیا ہے۔
یہ ایک ہی ٹکڑے کے لیے بہت کچھ ہے، لہذا اگر اسے صحیح طریقے سے سمجھنے کے لیے کچھ پڑھنے کی ضرورت ہو تو حیران نہ ہوں۔
مبارک ہو کوڈنگ۔
جواب دیجئے