جنریٹیو ڈیٹا انٹیلی جنس

Amazon SageMaker Studio میں Streamlit ایپس بنائیں

تاریخ:

مشین لرننگ (ML) ماڈل کے ساتھ تعامل کے لیے ویب انٹرفیس تیار کرنا ایک مشکل کام ہے۔ کے ساتھ اسٹریم لائٹآپ کے ایم ایل حل کے لیے ڈیمو ایپلیکیشنز تیار کرنا آسان ہے۔ اسٹریم لائٹ ایک اوپن سورس Python لائبریری ہے جو ML اور ڈیٹا سائنس کے لیے ویب ایپس بنانا اور شیئر کرنا آسان بناتی ہے۔ ایک ڈیٹا سائنسدان کے طور پر، ہو سکتا ہے کہ آپ ڈیٹا سیٹ کے لیے اپنی تلاشیں ظاہر کرنا چاہیں، یا ایک تربیت یافتہ ماڈل تعینات کرنا چاہیں۔ Streamlit ایپلی کیشنز آپ کی ٹیم کے سامنے کسی پروجیکٹ پر پیش رفت پیش کرنے، آپ کے مینیجرز کو بصیرت حاصل کرنے اور ان کا اشتراک کرنے، اور یہاں تک کہ گاہکوں سے رائے حاصل کرنے کے لیے مفید ہیں۔

کے مربوط ترقیاتی ماحول (IDE) کے ساتھ ایمیزون سیج میکر اسٹوڈیو ساتھ Jupyter Lab 3، ہم ترقی کے مقاصد کے لیے اسی ماحول کے اندر سے Streamlit ویب ایپس بنا سکتے ہیں، چلا سکتے ہیں اور پیش کر سکتے ہیں۔ اس پوسٹ میں اس بات کا خاکہ پیش کیا گیا ہے کہ اسٹوڈیو میں اسٹریم لِٹ ایپس کو کیسے بنایا جائے اور اس کی میزبانی کیسے کی جائے، بغیر کسی وقت خرچ کرنے والے فرنٹ اینڈ ڈیولپمنٹ کے محفوظ اور دوبارہ پیدا کرنے کے قابل طریقے سے۔ مثال کے طور پر، ہم ایک اپنی مرضی کا استعمال کرتے ہیں ایمیزون پہچان۔ ڈیمو، جو اپ لوڈ کردہ تصویر کی تشریح اور لیبل کرے گا۔ یہ ایک نقطہ آغاز کے طور پر کام کرے گا، اور کسی بھی حسب ضرورت ایم ایل ماڈل کو ڈیمو کرنے کے لیے اسے عام کیا جا سکتا ہے۔ اس بلاگ کا کوڈ اس میں پایا جا سکتا ہے۔ GitHub ذخیرہ.

حل جائزہ

ذیل میں ہمارے حل کا آرکیٹیکچر ڈایاگرام ہے۔

صارف پہلے براؤزر کے ذریعے اسٹوڈیو تک رسائی حاصل کرتا ہے۔ یوزر پروفائل سے وابستہ Jupyter سرور سٹوڈیو ایمیزون ایلاسٹک کمپیوٹ کلاؤڈ (ایمیزون ای سی 2) مثال کے اندر چلتا ہے۔ اسٹوڈیو EC2 مثال کے اندر مثال کوڈ اور انحصار کی فہرست موجود ہے۔ صارف سسٹم ٹرمینل میں Streamlit ایپ app.py چلا سکتا ہے۔ اسٹوڈیو JupyterLab UI کو Jupyter سرور میں چلاتا ہے، جو نوٹ بک کے کرنل سے الگ ہوتا ہے۔ Jupyter سرور ایک پراکسی کے ساتھ آتا ہے اور ہمیں اپنی Streamlit ایپ تک رسائی کی اجازت دیتا ہے۔ ایپ کے چلنے کے بعد، صارف URL کو ایڈجسٹ کر کے AWS Jupyter Proxy کے ذریعے ایک الگ سیشن شروع کر سکتا ہے۔

حفاظتی پہلو سے، AWS Jupyter Proxy کو AWS تصدیق کے ذریعے بڑھایا جاتا ہے۔ جب تک صارف کو AWS اکاؤنٹ، اسٹوڈیو ڈومین ID، اور صارف پروفائل تک رسائی حاصل ہے، وہ لنک تک رسائی حاصل کر سکتے ہیں۔

JupyterLab 3.0 کا استعمال کرتے ہوئے اسٹوڈیو بنائیں

اس حل کے کام کرنے کے لیے JupyterLab 3 والا اسٹوڈیو انسٹال ہونا چاہیے۔ پرانے ورژن اس پوسٹ میں بیان کردہ خصوصیات کی حمایت نہیں کرسکتے ہیں۔ مزید معلومات کے لیے رجوع کریں۔ ایمیزون سیج میکر اسٹوڈیو اور سیج میکر نوٹ بک انسٹینس اب ڈویلپر کی پیداواری صلاحیت کو بڑھانے کے لیے JupyterLab 3 نوٹ بک کے ساتھ آتے ہیں۔. پہلے سے طے شدہ طور پر، اسٹوڈیو JupyterLab 3 کے ساتھ آتا ہے۔ آپ کو ورژن چیک کرنا چاہیے اور اگر پرانا ورژن چل رہا ہے تو اسے تبدیل کرنا چاہیے۔ مزید معلومات کے لیے رجوع کریں۔ JupyterLab ورژننگ.

آپ کا استعمال کرکے اسٹوڈیو ترتیب دے سکتے ہیں۔ AWS کلاؤڈ ڈویلپمنٹ کٹ (AWS CDK)؛ مزید معلومات کے لیے رجوع کریں۔ AWS CDK کا استعمال کرتے ہوئے Jupyter Lab 3 کے ساتھ Amazon SageMaker اسٹوڈیو سیٹ اپ کریں۔. متبادل طور پر، آپ ڈومین کی ترتیبات کو تبدیل کرنے کے لیے SageMaker کنسول استعمال کر سکتے ہیں۔ درج ذیل مراحل کو مکمل کریں:

  1. سیج میکر کنسول پر، منتخب کریں۔ ڈومینز نیوی گیشن پین میں.
  2. اپنا ڈومین منتخب کریں اور منتخب کریں۔ ترمیم کریں.

  1. کے لئے پہلے سے طے شدہ Jupyter لیب ورژن، یقینی بنائیں کہ ورژن پر سیٹ ہے۔ Jupyter Lab 3.0.

(اختیاری) ایک مشترکہ جگہ بنائیں

ہم دستاویزات یا اس بلاگ میں درج مراحل پر عمل کرکے موجودہ ڈومین میں مشترکہ جگہوں کے لیے تعاون شامل کرنے کے لیے SageMaker کنسول یا AWS CLI استعمال کر سکتے ہیں۔ AWS میں مشترکہ جگہ بنانے کے درج ذیل فوائد ہیں:

  1. تعاون: ایک مشترکہ جگہ متعدد صارفین یا ٹیموں کو ڈیٹا یا انفراسٹرکچر کی نقل کیے بغیر کسی پروجیکٹ یا وسائل کے سیٹ پر تعاون کرنے کی اجازت دیتی ہے۔
  2. لاگت کی بچت: ہر صارف یا ٹیم اپنے وسائل بنانے اور ان کا انتظام کرنے کے بجائے، ایک مشترکہ جگہ زیادہ سرمایہ کاری مؤثر ہو سکتی ہے، کیونکہ وسائل کو جمع کیا جا سکتا ہے اور متعدد صارفین کے درمیان اشتراک کیا جا سکتا ہے۔
  3. آسان انتظام: مشترکہ جگہ کے ساتھ، منتظمین ہر صارف یا ٹیم کے لیے ایک ہی وسائل کی متعدد مثالوں کا انتظام کرنے کے بجائے مرکزی طور پر وسائل کا نظم کر سکتے ہیں۔
  4. بہتر اسکیل ایبلٹی: بدلتے ہوئے مطالبات کو پورا کرنے کے لیے مشترکہ جگہ کو زیادہ آسانی سے اوپر یا نیچے کیا جا سکتا ہے، کیونکہ مختلف صارفین یا ٹیموں کی ضروریات کو پورا کرنے کے لیے متحرک طور پر وسائل مختص کیے جا سکتے ہیں۔
  5. بہتر سیکورٹی: مشترکہ جگہ میں وسائل کو مرکزی بنا کر، سیکورٹی کو بہتر بنایا جا سکتا ہے، کیونکہ رسائی کے کنٹرول اور نگرانی کو زیادہ آسانی اور مستقل طور پر لاگو کیا جا سکتا ہے۔

انحصار انسٹال کریں اور اسٹوڈیو پر مثال کو کلون کریں۔

اگلا، ہم اسٹوڈیو لانچ کرتے ہیں اور سسٹم ٹرمینل کھولتے ہیں۔ ہم اپنی مثال کو کلون کرنے کے لیے SageMaker IDE اور اپنی ایپ لانچ کرنے کے لیے سسٹم ٹرمینل کا استعمال کرتے ہیں۔ اس بلاگ کا کوڈ اس میں پایا جا سکتا ہے۔ GitHub ذخیرہ. ہم ذخیرہ کلوننگ کے ساتھ شروع کرتے ہیں:

اگلا، ہم سسٹم ٹرمینل کھولتے ہیں۔

ایک بار کلون ہونے کے بعد، سسٹم ٹرمینل میں درج ذیل کمانڈ کو چلا کر ہمارے مثالی کوڈ کو چلانے کے لیے انحصار انسٹال کریں۔ یہ پہلے چل کر انحصار کو انسٹال کرے گا۔ pip install --no-cache-dir -r requirements.txt. no-cache-dir پرچم کیشے کو غیر فعال کردے گا۔ کیشنگ انسٹالیشن فائلوں کو ذخیرہ کرنے میں مدد کرتا ہے (.whl) ان ماڈیولز کے جو آپ پائپ کے ذریعے انسٹال کرتے ہیں۔ یہ سورس فائلوں کو بھی اسٹور کرتا ہے (.tar.gz) دوبارہ ڈاؤن لوڈ کرنے سے بچنے کے لیے جب ان کی میعاد ختم نہ ہوئی ہو۔ اگر ہماری ہارڈ ڈرائیو پر جگہ نہیں ہے یا اگر ہم ڈوکر امیج کو ہر ممکن حد تک چھوٹا رکھنا چاہتے ہیں تو ہم اس جھنڈے کو استعمال کر سکتے ہیں تاکہ کمانڈ کم سے کم میموری استعمال کے ساتھ مکمل ہو جائے۔ اگلا اسکرپٹ پیکیجز انسٹال کرے گا۔ iproute اور jq ، جو درج ذیل مرحلے میں استعمال کیا جائے گا۔
sh setup.sh

Streamlit ڈیمو چلائیں اور قابل اشتراک لنک بنائیں

اس بات کی تصدیق کرنے کے لیے کہ تمام انحصار کامیابی سے انسٹال ہو گئے ہیں اور Amazon Recognition ڈیمو دیکھنے کے لیے، درج ذیل کمانڈ کو چلائیں:

ایپ کی میزبانی کرنے والا پورٹ نمبر ظاہر ہوگا۔

نوٹ کریں کہ ترقی کرتے وقت، اسکرپٹ کو خود بخود دوبارہ چلانے میں مددگار ثابت ہو سکتا ہے۔ app.py ڈسک پر ترمیم کی جاتی ہے۔ کرنے کے لیے، تاکہ ہم runOnSave میں ترمیم کر سکیں ترتیب کا اختیار شامل کرکے --server.runOnSave true ہماری کمانڈ پر جھنڈا:

streamlit run app.py --server.runOnSave true

مندرجہ ذیل اسکرین شاٹ ایک مثال دکھاتا ہے کہ ٹرمینل پر کیا ڈسپلے ہونا چاہیے۔

مندرجہ بالا مثال سے ہم پورٹ نمبر، ڈومین ID، اور اسٹوڈیو یو آر ایل دیکھتے ہیں جس پر ہم اپنی ایپ چلا رہے ہیں۔ آخر میں، ہم وہ URL دیکھ سکتے ہیں جو ہمیں اپنی اسٹریملٹ ایپ تک رسائی کے لیے استعمال کرنے کی ضرورت ہے۔ یہ اسکرپٹ اسٹوڈیو یو آر ایل کو تبدیل کر رہا ہے، بدل رہا ہے۔ lab? ساتھ proxy/[PORT NUMBER]/ . Recognition آبجیکٹ کا پتہ لگانے کا ڈیمو دکھایا جائے گا، جیسا کہ درج ذیل اسکرین شاٹ میں دکھایا گیا ہے۔

اب جبکہ ہمارے پاس Streamlit ایپ کام کر رہی ہے، ہم اس URL کو کسی بھی ایسے شخص کے ساتھ شیئر کر سکتے ہیں جسے اس سٹوڈیو ڈومین ID اور صارف پروفائل تک رسائی حاصل ہے۔ ان ڈیمو کو شیئر کرنا آسان بنانے کے لیے، ہم درج ذیل کمانڈ کو چلا کر اسٹیٹس چیک کر سکتے ہیں اور تمام چل رہی اسٹریم لِٹ ایپس کی فہرست بنا سکتے ہیں۔ sh status.sh

ہم اس کام کو بڑھانے کے لیے لائف سائیکل اسکرپٹس یا مشترکہ جگہوں کا استعمال کر سکتے ہیں۔ شیل اسکرپٹ کو دستی طور پر چلانے اور انحصار انسٹال کرنے کے بجائے استعمال کریں۔ لائف سائیکل سکرپٹس اس عمل کو ہموار کرنے کے لیے۔ ٹیم کے ساتھ اس ایپ کو تیار کرنے اور بڑھانے کے لیے اور ساتھیوں کے ساتھ ڈیش بورڈز کا اشتراک کریں، استعمال کریں۔ مشترکہ جگہیں. سٹوڈیو میں مشترکہ جگہیں بنا کر، صارفین حقیقی وقت میں Streamlit ایپ تیار کرنے کے لیے مشترکہ جگہ میں تعاون کر سکتے ہیں۔ مشترکہ جگہ کے تمام وسائل کو فلٹر اور ٹیگ کیا جاتا ہے، جس سے ML پروجیکٹس پر توجہ مرکوز کرنا اور اخراجات کا انتظام کرنا آسان ہوجاتا ہے۔ اسٹوڈیو میں اپنی درخواستیں بنانے کے لیے درج ذیل کوڈ سے رجوع کریں۔

صفائی

ایک بار جب ہم ایپ کا استعمال کر لیتے ہیں، تو ہم سننے والے بندرگاہوں کو خالی کرنا چاہتے ہیں۔ سٹریملیٹ پر چلنے والے تمام عملوں کو حاصل کرنے اور انہیں استعمال کے لیے آزاد کرنے کے لیے ہم اپنا کلین اپ اسکرپٹ چلا سکتے ہیں: sh cleanup.sh

نتیجہ

اس پوسٹ میں، ہم نے Amazon Recognition کا استعمال کرتے ہوئے آبجیکٹ کا پتہ لگانے کے کام کے لیے Streamlit ڈیمو کی میزبانی کی ایک آخری مثال دکھائی۔ ہم نے سٹوڈیو میں اپنی Streamlit ایپ کو چلانے کے لیے فوری ویب ایپلیکیشنز، حفاظتی تحفظات، اور سیٹ اپ بنانے کے محرکات کو تفصیل سے بتایا۔ آخر میں، ہم نے AWS Jupyter Proxy کے ذریعے علیحدہ سیشن شروع کرنے کے لیے اپنے ویب براؤزر میں URL پیٹرن میں ترمیم کی۔

یہ ڈیمو آپ کو کسی بھی تصویر کو اپ لوڈ کرنے اور Amazon Recognition سے آؤٹ پٹ کو دیکھنے کی اجازت دیتا ہے۔ نتائج پر بھی کارروائی کی جاتی ہے، اور آپ ایپ کے ذریعے تمام باؤنڈنگ بکس کے ساتھ CSV فائل ڈاؤن لوڈ کر سکتے ہیں۔ آپ اپنے ڈیٹاسیٹ کو تشریح اور لیبل کرنے کے لیے اس کام کو بڑھا سکتے ہیں، یا اپنے حسب ضرورت ماڈل کو دکھانے کے لیے کوڈ میں ترمیم کر سکتے ہیں!


مصنفین کے بارے میں

دپیکا کھلر میں ایم ایل انجینئر ہے۔ ایمیزون ایم ایل حل لیب. وہ صارفین کو ان کے کاروباری مسائل کو حل کرنے کے لیے ML سلوشنز کو مربوط کرنے میں مدد کرتی ہے۔ ابھی حال ہی میں، اس نے میڈیا صارفین کے لیے ٹریننگ اور انفرنس پائپ لائنز اور مارکیٹنگ کے لیے پیشین گوئی کرنے والے ماڈلز بنائے ہیں۔

مارسیلو ایبرل AWS AI تنظیم میں ایک ML انجینئر ہے۔ وہ MLOps کی کوششوں کی قیادت کر رہا ہے۔ ایمیزون ایم ایل حل لیبتوسیع پذیر ایم ایل سسٹمز کو ڈیزائن اور لاگو کرنے میں صارفین کی مدد کرنا۔ اس کا مشن صارفین کو ان کے انٹرپرائز ML سفر پر رہنمائی کرنا اور پیداوار کے لیے ان کے ML راستے کو تیز کرنا ہے۔

یش شاہ میں سائنس مینیجر ہے۔ ایمیزون ایم ایل حل لیب. وہ اور ان کی اپلائیڈ سائنسدانوں اور ML انجینئرز کی ٹیم صحت کی دیکھ بھال، کھیلوں، آٹوموٹو اور مینوفیکچرنگ سے ML استعمال کے کیسز کی ایک رینج پر کام کرتی ہے۔

اسپاٹ_مگ

تازہ ترین انٹیلی جنس

اسپاٹ_مگ