Amazon SageMaker شیڈو ٹیسٹنگ PlatoBlockchain Data Intelligence کے ساتھ ML ماڈل اپ ڈیٹس کے پیداواری اثر کو کم سے کم کریں۔ عمودی تلاش۔ عی

ایمیزون سیج میکر شیڈو ٹیسٹنگ کے ساتھ ایم ایل ماڈل اپ ڈیٹس کے پیداواری اثر کو کم سے کم کریں۔

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

اس پوسٹ میں، ہم اس نئی سیج میکر کی صلاحیت کا مظاہرہ کرتے ہیں۔ متعلقہ نمونہ نوٹ بک اس GitHub میں دستیاب ہے۔ ذخیرہ.

حل کا جائزہ

آپ کا ماڈل سرونگ انفراسٹرکچر مشین لرننگ (ML) ماڈل، سرونگ کنٹینر، یا کمپیوٹ مثال پر مشتمل ہے۔ آئیے درج ذیل منظرناموں پر غور کریں:

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

درج ذیل خاکہ ہمارے حل کے فن تعمیر کو واضح کرتا ہے۔

ان میں سے ہر ایک منظرنامے کے لیے، ایک پروڈکشن ویرینٹ کا انتخاب کریں جس کے خلاف آپ جانچ کرنا چاہتے ہیں اور SageMaker خود بخود نئے ویرینٹ کو شیڈو موڈ میں تعینات کرتا ہے اور اسی اختتامی نقطہ کے اندر اصل وقت میں انفرنس کی درخواستوں کی ایک کاپی روٹ کرتا ہے۔ کالنگ ایپلیکیشن پر صرف پروڈکشن ویرینٹ کے جوابات واپس کیے جاتے ہیں۔ آپ آف لائن موازنہ کے لیے شیڈو ویرینٹ کے جوابات کو مسترد یا لاگ کرنے کا انتخاب کر سکتے ہیں۔ اختیاری طور پر، آپ بلٹ ان ڈیش بورڈ کے ذریعے مختلف حالتوں کی نگرانی کر سکتے ہیں جس میں کارکردگی میٹرکس کے ساتھ ساتھ موازنہ کیا جا سکتا ہے۔ آپ اس صلاحیت کو یا تو SageMaker inference update-endpoint APIs کے ذریعے یا SageMaker کنسول کے ذریعے استعمال کر سکتے ہیں۔

شیڈو ویریئنٹس سیج میکر انفرنس اینڈ پوائنٹس میں پروڈکشن ویرینٹ کی صلاحیت کے سب سے اوپر بنتے ہیں۔ دہرانے کے لیے، a پیداوار کی مختلف قسم ML ماڈل، سرونگ کنٹینر، اور ML مثال پر مشتمل ہے۔ چونکہ ہر ایک متغیر دوسروں سے آزاد ہے، آپ کے پاس مختلف ماڈلز، کنٹینرز یا مثال کی قسمیں مختلف اقسام میں ہوسکتی ہیں۔ SageMaker آپ کو فی متغیر کی بنیاد پر آٹو اسکیلنگ کی پالیسیاں بتانے دیتا ہے تاکہ وہ آنے والے بوجھ کی بنیاد پر آزادانہ طور پر اسکیل کر سکیں۔ SageMaker فی اختتامی نقطہ تک 10 پروڈکشن مختلف حالتوں کو سپورٹ کرتا ہے۔ آپ یا تو ویرینٹ کو ترتیب دے سکتے ہیں تاکہ آنے والی ٹریفک کا ایک حصہ وصول کرنے کے لیے ویرینٹ وزن سیٹ کر سکیں، یا آنے والی درخواست میں ٹارگٹ ویرینٹ کی وضاحت کریں۔ پروڈکشن ویرینٹ کا جواب واپس طلب کرنے والے کو بھیج دیا جاتا ہے۔

A شیڈو ویرینٹ (نیا) ایک پروڈکشن ویرینٹ کے طور پر ایک ہی اجزاء ہیں. درخواستوں کا صارف کا مخصوص حصہ، جسے کے نام سے جانا جاتا ہے۔ ٹریفک کے نمونے لینے کا فیصد, شیڈو ویرینٹ پر بھیج دیا جاتا ہے۔ آپ شیڈو ویرینٹ کے جواب کو لاگ ان کرنے کا انتخاب کر سکتے ہیں۔ ایمیزون سادہ اسٹوریج سروس (Amazon S3) یا اسے ضائع کر دیں۔

نوٹ کریں کہ SageMaker فی اینڈ پوائنٹ زیادہ سے زیادہ ایک شیڈو ویرینٹ کو سپورٹ کرتا ہے۔ شیڈو ویرینٹ کے ساتھ اینڈ پوائنٹ کے لیے، زیادہ سے زیادہ ایک پروڈکشن ویرینٹ ہو سکتا ہے۔

پروڈکشن اور شیڈو ویریئنٹس ترتیب دینے کے بعد، آپ نگرانی کر سکتے ہیں۔ درخواست کی پیمائش میں پروڈکشن اور شیڈو ویریئنٹس دونوں کے لیے ایمیزون کلاؤڈ واچ کے تحت AWS/SageMaker نام کی جگہ سیج میکر اینڈ پوائنٹ کی تمام اپ ڈیٹس کا استعمال کرتے ہوئے ترتیب دیا گیا ہے۔ نیلے / سبز کی تعیناتی اور دستیابی میں کسی نقصان کے بغیر ہوتا ہے۔ آپ کے اینڈ پوائنٹس پروڈکشن کی درخواستوں کا جواب دینا جاری رکھیں گے جب آپ شیڈو ویریئنٹس کو شامل کریں گے، ان میں ترمیم کریں گے یا ہٹائیں گے۔

آپ اس صلاحیت کو دو طریقوں میں سے کسی ایک میں استعمال کر سکتے ہیں:

  • سیج میکر کنسول کا استعمال کرتے ہوئے شیڈو ٹیسٹنگ کا انتظام کیا۔ - آپ شیڈو ٹیسٹنگ کے اختتام سے آخر تک کے سفر کا انتظام کرنے کے لیے رہنمائی والے تجربے کے لیے کنسول کا فائدہ اٹھا سکتے ہیں۔ یہ آپ کو پہلے سے طے شدہ مدت کے لیے شیڈو ٹیسٹ ترتیب دینے، لائیو ڈیش بورڈ کے ذریعے پیشرفت کی نگرانی کرنے، مکمل ہونے پر صاف کرنے اور نتائج پر عمل کرنے دیتا ہے۔
  • سیج میکر انفرنس APIs کا استعمال کرتے ہوئے سیلف سروس شیڈو ٹیسٹنگ - اگر آپ کا تعیناتی ورک فلو پہلے سے ہی تخلیق/اپ ڈیٹ/ڈیلیٹ-اینڈ پوائنٹ APIs استعمال کرتا ہے، تو آپ شیڈو ویریئنٹس کا نظم کرنے کے لیے ان کا استعمال جاری رکھ سکتے ہیں۔

مندرجہ ذیل حصوں میں، ہم ان میں سے ہر ایک منظرنامے کے ذریعے چلتے ہیں۔

منظر نامہ 1 - سیج میکر کنسول کا استعمال کرتے ہوئے شیڈو ٹیسٹنگ کا انتظام

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

پری ضروریات

سیج میکر پر پروڈکشن اور شیڈو کے ماڈل بنانے کی ضرورت ہے۔ براہ کرم کا حوالہ دیں۔ CreateModel API یہاں.

مرحلہ 1 - شیڈو ٹیسٹ بنائیں

پر تشریف لے جائیں ارادہ سیج میکر کنسول کے بائیں نیویگیشن پینل کا سیکشن اور پھر شیڈو ٹیسٹ کا انتخاب کریں۔ یہ آپ کو ایک ڈیش بورڈ پر لے جائے گا جس میں تمام طے شدہ، چل رہے ہیں اور مکمل شیڈو ٹیسٹ ہوں گے۔ کلک کریں 'شیڈو ٹیسٹ بنائیں'. ٹیسٹ کے لیے ایک نام درج کریں اور اگلا کا انتخاب کریں۔

یہ آپ کو شیڈو ٹیسٹ کی ترتیبات کے صفحہ پر لے جائے گا۔ آپ موجودہ IAM کردار کا انتخاب کر سکتے ہیں یا ایسا کردار بنا سکتے ہیں جس میں AmazonSageMakerFullAccess IAM پالیسی منسلک ہے۔ اگلا، منتخب کریں 'ایک نیا اختتامی نقطہ بنائیں' اور ایک نام درج کریں (xgb-prod-shadow-1)۔ آپ 'پر کلک کرکے اس اختتامی نقطہ سے وابستہ ایک پروڈکشن اور ایک شیڈو ویرینٹ شامل کرسکتے ہیں۔شامل کریں' متغیر سیکشن میں۔ آپ ان ماڈلز کو منتخب کر سکتے ہیں جو آپ نے 'ماڈل شامل کریں' ڈائلاگ باکس. اس سے پیداوار یا مختلف شکل پیدا ہوتی ہے۔ اختیاری طور پر، آپ مثال کی قسم کو تبدیل کر سکتے ہیں اور ہر قسم کے ساتھ منسلک شمار کر سکتے ہیں۔

تمام ٹریفک پروڈکشن ویرینٹ میں جاتی ہے اور یہ درخواست کی درخواستوں کا جواب دیتی ہے۔ آپ درخواستوں کے اس حصے کو کنٹرول کرسکتے ہیں جو شیڈو ویرینٹ کو تبدیل کرکے روٹ کیا جاتا ہے۔ Traffic Sampling Percentage.

آپ ٹیسٹ کی مدت کو ایک گھنٹے سے 30 دن تک کنٹرول کر سکتے ہیں۔ اگر غیر متعینہ ہے، تو یہ 7 دنوں تک ڈیفالٹ ہو جاتا ہے۔ اس مدت کے بعد، ٹیسٹ کو مکمل طور پر نشان زد کیا جاتا ہے۔ اگر آپ کسی موجودہ اینڈ پوائنٹ پر ٹیسٹ چلا رہے ہیں، تو اسے مکمل ہونے پر ٹیسٹ شروع کرنے سے پہلے ریاست میں واپس بھیج دیا جائے گا۔

آپ اختیاری طور پر شیڈو ویرینٹ کی درخواستوں اور جوابات کو استعمال کر سکتے ہیں۔ ڈیٹا کیپچر اختیارات. اگر غیر متعینہ چھوڑ دیا جائے تو، شیڈو ویرینٹ کے جوابات کو مسترد کر دیا جاتا ہے۔

Amazon SageMaker شیڈو ٹیسٹنگ PlatoBlockchain Data Intelligence کے ساتھ ML ماڈل اپ ڈیٹس کے پیداواری اثر کو کم سے کم کریں۔ عمودی تلاش۔ عی

Amazon SageMaker شیڈو ٹیسٹنگ PlatoBlockchain Data Intelligence کے ساتھ ML ماڈل اپ ڈیٹس کے پیداواری اثر کو کم سے کم کریں۔ عمودی تلاش۔ عی

مرحلہ 2 - شیڈو ٹیسٹ کی نگرانی کریں۔

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

Amazon SageMaker شیڈو ٹیسٹنگ PlatoBlockchain Data Intelligence کے ساتھ ML ماڈل اپ ڈیٹس کے پیداواری اثر کو کم سے کم کریں۔ عمودی تلاش۔ عی

میٹرکس سیکشن کلیدی میٹرکس کا موازنہ فراہم کرتا ہے اور وضاحتی اعدادوشمار کے ساتھ پیداوار اور سائے کی مختلف حالتوں کے درمیان اوورلیڈ گراف فراہم کرتا ہے۔ آپ انوکیشن میٹرکس کا موازنہ کر سکتے ہیں جیسے ModelLatency اور Invocation4xxErrors نیز مثال کے میٹرکس جیسے CPUUtilization اور DiskUtilization.

Amazon SageMaker شیڈو ٹیسٹنگ PlatoBlockchain Data Intelligence کے ساتھ ML ماڈل اپ ڈیٹس کے پیداواری اثر کو کم سے کم کریں۔ عمودی تلاش۔ عی

مرحلہ 3 - شیڈو ویرینٹ کو نئے پروڈکشن ویرینٹ میں پروموٹ کریں۔

موازنہ کرنے پر، آپ یا تو شیڈو ویرینٹ کو نئے پروڈکشن ویرینٹ کے طور پر فروغ دینے کا انتخاب کرسکتے ہیں یا شیڈو ویرینٹ کو ہٹا سکتے ہیں۔ ان دونوں اختیارات کے لیے، 'منتخب کریں۔مکمل نشان زد کریں' صفحے کے اوپری حصے پر۔ یہ آپ کو شیڈو ویرینٹ کو فروغ دینے یا ہٹانے کا اختیار فراہم کرتا ہے۔

اگر آپ فروغ دینے کا انتخاب کرتے ہیں، تو آپ کو ایک تعیناتی صفحہ پر لے جایا جائے گا، جہاں آپ تعیناتی سے پہلے مختلف ترتیبات کی تصدیق کر سکتے ہیں۔ تعیناتی سے پہلے، ہم تجویز کرتے ہیں کہ آپ کے شیڈو ویریئنٹس کا سائز تبدیل کر کے 100 فیصد ٹریفک کو ہینڈل کر سکیں۔ اگر آپ متبادل مثال کی اقسام یا سائز کا اندازہ کرنے کے لیے شیڈو ٹیسٹنگ کا استعمال نہیں کر رہے ہیں، تو آپ 'منتخب کریں' کا استعمال کر سکتے ہیں۔پیداوار کی مختلف ترتیبات کو برقرار رکھیں. دوسری صورت میں، آپ کو منتخب کر سکتے ہیں 'شیڈو ویرینٹ کی ترتیبات کو برقرار رکھیں. اگر آپ یہ اختیار منتخب کرتے ہیں، تو براہ کرم یقینی بنائیں کہ آپ کی ٹریفک کے نمونے 100% پر سیٹ ہیں۔ متبادل طور پر، اگر آپ ان ترتیبات کو اوور رائڈ کرنا چاہتے ہیں تو آپ مثال کی قسم اور شمار کر سکتے ہیں۔

ایک بار جب آپ تعیناتی کی تصدیق کر لیتے ہیں، تو SageMaker آپ کے اینڈ پوائنٹ پر اپ ڈیٹ شروع کرے گا تاکہ شیڈو ویرینٹ کو نئے پروڈکشن ویرینٹ میں فروغ دیا جا سکے۔ جیسا کہ SageMaker تمام اپ ڈیٹس کے ساتھ ہے، اپ ڈیٹ کے دوران آپ کا اختتامی نقطہ اب بھی فعال رہے گا۔

Amazon SageMaker شیڈو ٹیسٹنگ PlatoBlockchain Data Intelligence کے ساتھ ML ماڈل اپ ڈیٹس کے پیداواری اثر کو کم سے کم کریں۔ عمودی تلاش۔ عی

Amazon SageMaker شیڈو ٹیسٹنگ PlatoBlockchain Data Intelligence کے ساتھ ML ماڈل اپ ڈیٹس کے پیداواری اثر کو کم سے کم کریں۔ عمودی تلاش۔ عی

منظر نامہ 2: SageMaker inference APIs کا استعمال کرتے ہوئے شیڈو ٹیسٹنگ

اس سیکشن میں شیڈو ویریئنٹس کو تعینات کرنے کے لیے موجودہ سیج میکر تخلیق/اپ ڈیٹ/ڈیلیٹ-اینڈ پوائنٹ APIs کو استعمال کرنے کے طریقے کا احاطہ کیا گیا ہے۔

اس مثال کے لیے، ہمارے پاس دو XGBoost ماڈل ہیں جو پہلے سے تربیت یافتہ ماڈلز کے دو مختلف ورژنز کی نمائندگی کرتے ہیں۔ model.tar.gz فی الحال پیداوار میں تعینات ماڈل ہے. model2 نیا ماڈل ہے، اور ہم اس کی کارکردگی کو پروڈکشن میں استعمال کرنے کا فیصلہ کرنے سے پہلے آپریشنل میٹرکس جیسے لیٹنسی کے لحاظ سے جانچنا چاہتے ہیں۔ ہم تعینات کرتے ہیں۔ model2 کے شیڈو ویرینٹ کے طور پر model.tar.gz. دونوں پہلے سے تربیت یافتہ ماڈل عوامی S3 بالٹی میں محفوظ ہیں۔ s3://sagemaker-sample-files. ہم پہلے اپنے لوکل کمپیوٹ کے ماڈل کو ڈاؤن لوڈ کرتے ہیں اور پھر S3 پر اپ لوڈ کرتے ہیں۔

اس مثال کے ماڈلز کا استعمال ایک موبائل گاہک کے اپنے موجودہ موبائل آپریٹر کو چھوڑنے کے امکان کی پیش گوئی کرنے کے لیے کیا جاتا ہے۔ ہم جو ڈیٹاسیٹ استعمال کرتے ہیں وہ عوامی طور پر دستیاب ہے اور اس کا ذکر کتاب میں کیا گیا تھا۔ ڈیٹا میں علم کی دریافت بذریعہ ڈینیئل ٹی لاروس۔ ان ماڈلز کو استعمال کرتے ہوئے تربیت دی گئی تھی۔ XGB چرن پیشن گوئی نوٹ بک سیج میکر میں۔ آپ اپنے پہلے سے تربیت یافتہ ماڈل بھی استعمال کر سکتے ہیں، ایسی صورت میں آپ ڈاؤن لوڈ کرنا چھوڑ سکتے ہیں۔ s3://sagemaker-sample-files اور اپنے ماڈلز کو براہ راست ماڈل/فولڈر میں کاپی کریں۔

!aws s3 cp s3://sagemaker-sample-files/models/xgb-churn/xgb-churn-prediction-model.tar.gz model/
!aws s3 cp s3://sagemaker-sample-files/models/xgb-churn/xgb-churn-prediction-model2.tar.gz model/

مرحلہ 1 - ماڈل بنائیں

ہم ماڈل فائلوں کو اپنی S3 بالٹی میں اپ لوڈ کرتے ہیں اور SageMaker کے دو ماڈل بناتے ہیں۔ درج ذیل کوڈ دیکھیں:

model_url = S3Uploader.upload(
    local_path="model/xgb-churn-prediction-model.tar.gz",
    desired_s3_uri=f"s3://{bucket}/{prefix}",
)
model_url2 = S3Uploader.upload(
    local_path="model/xgb-churn-prediction-model2.tar.gz",
    desired_s3_uri=f"s3://{bucket}/{prefix}",
from sagemaker import image_uris
image_uri = image_uris.retrieve("xgboost", boto3.Session().region_name, "0.90-1")
image_uri2 = image_uris.retrieve("xgboost", boto3.Session().region_name, "0.90-2")

model_name = f"DEMO-xgb-churn-pred-{datetime.now():%Y-%m-%d-%H-%M-%S}"
model_name2 = f"DEMO-xgb-churn-pred2-{datetime.now():%Y-%m-%d-%H-%M-%S}"

resp = sm.create_model(
    ModelName=model_name,
    ExecutionRoleArn=role,
    Containers=[{"Image": image_uri, "ModelDataUrl": model_url}],
)

resp = sm.create_model(
    ModelName=model_name2,
    ExecutionRoleArn=role,
    Containers=[{"Image": image_uri2, "ModelDataUrl": model_url2}],
)

مرحلہ 2 - دو ماڈلز کو پروڈکشن اور شیڈو ویریئنٹس کے بطور ریئل ٹائم انفرنس اینڈ پوائنٹ پر تعینات کریں۔

ہم پروڈکشن اور شیڈو ویریئنٹس کے ساتھ ایک اینڈ پوائنٹ کنفیگریشن بناتے ہیں۔ دی ProductionVariants اور ShadowProductionVariants خاص دلچسپی رکھتے ہیں. ان دونوں قسموں میں 5 vCPUs اور 4 GiB میموری کے ساتھ ml.m16.xlarge مثالیں ہیں، اور ابتدائی مثالوں کی تعداد 1 پر سیٹ ہے۔ درج ذیل کوڈ کو دیکھیں:

ep_config_name = f"Shadow-EpConfig-{datetime.now():%Y-%m-%d-%H-%M-%S}"
production_variant_name = "production"
shadow_variant_name = "shadow"
create_endpoint_config_response = sm.create_endpoint_config(
    EndpointConfigName=ep_config_name,
    ProductionVariants=[
    # Type: Array of ProductionVariant (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariant.html) objects
      { 
         "VariantName": shadow_variant_name,
        {
            "VariantName": production_variant_name,
            "ModelName": model_name,
            "InstanceType": "ml.m5.xlarge",
            "InitialInstanceCount": 2,
            "InitialVariantWeight": 1,
        }
    ],
     # Type: Array of ShadowProductionVariants 
    ShadowProductionVariants = [
         "ModelName": model_name2,
         "InitialInstanceCount": 1,
         "InitialVariantWeight": 0.5,
         "InstanceType": "ml.m5.xlarge" 
      }
   ]
)

آخر میں، ہم پروڈکشن اور شیڈو ویرینٹ بناتے ہیں:

endpoint_name = f"xgb-prod-shadow-{datetime.now():%Y-%m-%d-%H-%M-%S}"
create_endpoint_api_response = sm.create_endpoint(
                                    EndpointName=endpoint_name,
                                    EndpointConfigName=ep_config_name,
                                )

مرحلہ 3 - جانچ کے لیے اختتامی نقطہ کو طلب کریں۔

اختتامی نقطہ کامیابی کے ساتھ بننے کے بعد، آپ اسے شروع کر سکتے ہیں۔ ہم ترتیب وار انداز میں تقریباً 3,000 درخواستیں بھیجتے ہیں:

def invoke_endpoint(endpoint_name, wait_interval_sec=0.01, should_raise_exp=False):
    with open("test_data/test-dataset-input-cols.csv", "r") as f:
        for row in f:
            payload = row.rstrip("n")
            try:
                for i in range(10): #send the same payload 10 times for testing purpose
                    response = sm_runtime.invoke_endpoint(
                        EndpointName=endpoint_name, ContentType="text/csv", Body=payload
                    )
            except Exception as e:
                print("E", end="", flush=True)
                if should_raise_exp:
                    raise e

invoke_endpoint(endpoint_name)

مرحلہ 4 - میٹرکس کا موازنہ کریں۔

اب جب کہ ہم نے پروڈکشن اور شیڈو ماڈل دونوں کو تعینات کر دیا ہے، آئیے انوکیشن میٹرکس کا موازنہ کریں۔ تقابل کے لیے دستیاب انووکیشن میٹرکس کی فہرست کے لیے، رجوع کریں۔ Amazon CloudWatch کے ساتھ Amazon SageMaker کی نگرانی کریں۔. آئیے پروڈکشن اور شیڈو ویریئنٹس کے درمیان درخواستوں کا موازنہ کرکے شروع کریں۔

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

Amazon SageMaker شیڈو ٹیسٹنگ PlatoBlockchain Data Intelligence کے ساتھ ML ماڈل اپ ڈیٹس کے پیداواری اثر کو کم سے کم کریں۔ عمودی تلاش۔ عیAmazon SageMaker شیڈو ٹیسٹنگ PlatoBlockchain Data Intelligence کے ساتھ ML ماڈل اپ ڈیٹس کے پیداواری اثر کو کم سے کم کریں۔ عمودی تلاش۔ عی

اگلا، آئیے ماڈل کی تاخیر کا موازنہ کریں (ModelLatency میٹرک) پیداوار اور سائے کی مختلف حالتوں کے درمیان۔ ماڈل لیٹینسی وہ وقت ہے جو ماڈل کو جواب دینے میں لگتا ہے جیسا کہ SageMaker سے دیکھا گیا ہے۔ ہم مشاہدہ کر سکتے ہیں کہ شیڈو ویریئنٹ کے ماڈل لیٹینسی کس طرح پروڈکشن ویرینٹ کے ساتھ موازنہ کرتی ہے بغیر اختتامی صارفین کو شیڈو ویرینٹ کے سامنے لائے۔

Amazon SageMaker شیڈو ٹیسٹنگ PlatoBlockchain Data Intelligence کے ساتھ ML ماڈل اپ ڈیٹس کے پیداواری اثر کو کم سے کم کریں۔ عمودی تلاش۔ عی

ہم اوور ہیڈ تاخیر کی توقع کرتے ہیں (OverheadLatency میٹرک) پروڈکشن اور شیڈو ویریئنٹس میں موازنہ کرنے کے لیے۔ اوور ہیڈ لیٹنسی وقفہ ہے جس وقت سے SageMaker کو درخواست موصول ہوتی ہے اس وقت سے ماپا جاتا ہے جب تک کہ وہ کلائنٹ کو جواب نہیں دیتا، ماڈل کی تاخیر کو کم کر دیتا ہے۔

Amazon SageMaker شیڈو ٹیسٹنگ PlatoBlockchain Data Intelligence کے ساتھ ML ماڈل اپ ڈیٹس کے پیداواری اثر کو کم سے کم کریں۔ عمودی تلاش۔ عی

مرحلہ 5- اپنے شیڈو ویرینٹ کو فروغ دیں۔

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

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

promote_ep_config_name = f"PromoteShadow-EpConfig-{datetime.now():%Y-%m-%d-%H-%M-%S}"

create_endpoint_config_response = sm.create_endpoint_config(
    EndpointConfigName=promote_ep_config_name,
    ProductionVariants=[
        {
            "VariantName": shadow_variant_name,
            "ModelName": model_name2,
            "InstanceType": "ml.m5.xlarge",
            "InitialInstanceCount": 2,
            "InitialVariantWeight": 1.0,
        }
    ],
)
print(f"Created EndpointConfig: {create_endpoint_config_response['EndpointConfigArn']}")

update_endpoint_api_response = sm.update_endpoint(
    EndpointName=endpoint_name,
    EndpointConfigName=promote_ep_config_name,
)

wait_for_endpoint_in_service(endpoint_name)

sm.describe_endpoint(EndpointName=endpoint_name)

مرحلہ 6 - صاف کریں۔

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

dsm.delete_endpoint(EndpointName=endpoint_name)
sm.delete_endpoint_config(EndpointConfigName=ep_config_name)
sm.delete_endpoint_config(EndpointConfigName=promote_ep_config_name)
sm.delete_model(ModelName=model_name)
sm.delete_model(ModelName=model_name2)

نتیجہ

اس پوسٹ میں، ہم نے شیڈو ٹیسٹنگ کے نام سے جانے والی تعیناتی حفاظتی مشق کا استعمال کرتے ہوئے مکمل پروڈکشن رول آؤٹ سے پہلے ایک ماڈل سرونگ اسٹیک کے نئے ورژن کی کارکردگی کا موازنہ کرنے کے لیے SageMaker inference کی ایک نئی صلاحیت متعارف کرائی ہے۔ ہم نے آپ کو شیڈو ویریئنٹس استعمال کرنے کے فوائد اور مختلف حالتوں کو ترتیب دینے کے طریقوں سے آگاہ کیا آخر سے آخر تک مثال. شیڈو ویریئنٹس کے بارے میں مزید جاننے کے لیے، شیڈو ٹیسٹ سے رجوع کریں۔ دستاویزات.


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

Amazon SageMaker شیڈو ٹیسٹنگ PlatoBlockchain Data Intelligence کے ساتھ ML ماڈل اپ ڈیٹس کے پیداواری اثر کو کم سے کم کریں۔ عمودی تلاش۔ عیراگھو رمیشا۔ ایمیزون سیج میکر سروس ٹیم کے ساتھ ایک مشین لرننگ سلوشنز آرکیٹیکٹ ہے۔ وہ صارفین کی ایم ایل پروڈکشن ورک بوجھ کو SageMaker پر پیمانے پر بنانے، تعینات کرنے اور منتقل کرنے میں مدد کرنے پر توجہ مرکوز کرتا ہے۔ وہ مشین لرننگ، AI، اور کمپیوٹر ویژن ڈومینز میں مہارت رکھتا ہے، اور UT Dallas سے کمپیوٹر سائنس میں ماسٹر ڈگری رکھتا ہے۔ اپنے فارغ وقت میں وہ سفر اور فوٹو گرافی سے لطف اندوز ہوتے ہیں۔

Amazon SageMaker شیڈو ٹیسٹنگ PlatoBlockchain Data Intelligence کے ساتھ ML ماڈل اپ ڈیٹس کے پیداواری اثر کو کم سے کم کریں۔ عمودی تلاش۔ عیچنگ وی لی ایمیزون ویب سروسز میں مشین لرننگ کا ماہر ہے۔ انہوں نے پی ایچ ڈی کی ڈگری حاصل کی۔ آپریشنز ریسرچ میں جب اس نے اپنے مشیر کے ریسرچ گرانٹ اکاؤنٹ کو توڑا اور نوبل انعام دینے میں ناکام رہے جس کا اس نے وعدہ کیا تھا۔ فی الحال وہ مالیاتی خدمات اور انشورنس انڈسٹری میں صارفین کو AWS پر مشین لرننگ سلوشنز بنانے میں مدد کرتا ہے۔ اپنے فارغ وقت میں وہ پڑھنا اور پڑھانا پسند کرتے ہیں۔

Amazon SageMaker شیڈو ٹیسٹنگ PlatoBlockchain Data Intelligence کے ساتھ ML ماڈل اپ ڈیٹس کے پیداواری اثر کو کم سے کم کریں۔ عمودی تلاش۔ عیکیون ژاؤ ایمیزون سیج میکر انفرنس پلیٹ فارم ٹیم کے ساتھ ایک سینئر سافٹ ویئر ڈویلپمنٹ انجینئر ہے۔ وہ تعیناتی گارڈریلز اور شیڈو تعیناتیوں کے لیڈ ڈویلپر ہیں، اور وہ اعلی دستیابی کے ساتھ پیمانے پر ایم ایل ورک بوجھ اور تعیناتیوں کا انتظام کرنے میں صارفین کی مدد کرنے پر توجہ مرکوز کرتے ہیں۔ وہ تیز اور محفوظ ML ملازمتوں کی تعیناتی اور آسانی سے ML آن لائن تجربات کو چلانے کے لیے پلیٹ فارم آرکیٹیکچر کے ارتقاء پر بھی کام کرتا ہے۔ اپنے فارغ وقت میں، وہ پڑھنے، گیمنگ اور سفر سے لطف اندوز ہوتا ہے۔

Amazon SageMaker شیڈو ٹیسٹنگ PlatoBlockchain Data Intelligence کے ساتھ ML ماڈل اپ ڈیٹس کے پیداواری اثر کو کم سے کم کریں۔ عمودی تلاش۔ عیترون سائرام Amazon SageMaker Inference کے لیے ایک سینئر پروڈکٹ مینیجر ہے۔ وہ مشین لرننگ کے تازہ ترین رجحانات کے بارے میں جاننے اور صارفین کو ان سے فائدہ اٹھانے میں مدد کرنے میں دلچسپی رکھتا ہے۔ اپنے فارغ وقت میں وہ بائیک چلانے، اسکیئنگ اور ٹینس کھیلنے سے لطف اندوز ہوتے ہیں۔

ٹائم اسٹیمپ:

سے زیادہ AWS مشین لرننگ