Amazon SageMaker PlatoBlockchain Data Intelligence پر NVIDIA Triton Inference Server پر فیصلے کے درخت پر مبنی ML ماڈلز کے لیے کم لیٹنسی ہوسٹنگ حاصل کریں۔ عمودی تلاش۔ عی

Amazon SageMaker پر NVIDIA Triton Inference Server پر فیصلے کے درخت پر مبنی ML ماڈلز کے لیے کم لیٹنسی ہوسٹنگ حاصل کریں۔

مشین لرننگ (ML) ماڈل کی تعیناتیوں میں آج کاروباروں کے لیے کارکردگی اور تاخیر کے تقاضے بہت زیادہ ہو سکتے ہیں۔ استعمال کے معاملات جیسے کہ دھوکہ دہی کا پتہ لگانے اور اشتہار کی جگہ کا تعین ایسی مثالیں ہیں جہاں ملی سیکنڈز اہمیت رکھتے ہیں اور کاروباری کامیابی کے لیے اہم ہیں۔ سخت سروس لیول کے معاہدوں (SLAs) کو پورا کرنے کی ضرورت ہے، اور ایک عام درخواست کے لیے متعدد مراحل کی ضرورت ہو سکتی ہے جیسے پری پروسیسنگ، ڈیٹا ٹرانسفارمیشن، ماڈل سلیکشن منطق، ماڈل ایگریگیشن، اور پوسٹ پروسیسنگ۔ بڑے پیمانے پر، اس کا مطلب اکثر کم تاخیر کو برقرار رکھتے ہوئے ٹریفک کے بہت بڑے حجم کو برقرار رکھنا ہوتا ہے۔ عام ڈیزائن پیٹرن میں سیریل انفرنس پائپ لائنز، ensembles (سکیٹر-گیدر)، اور بزنس لاجک ورک فلوز شامل ہیں، جس کے نتیجے میں درخواست کے پورے ورک فلو کو ڈائریکٹڈ ایکائیلک گراف (DAG) کے طور پر پورا کیا جاتا ہے۔ تاہم، جیسا کہ ورک فلو مزید پیچیدہ ہوتا جاتا ہے، اس سے مجموعی ردعمل کے اوقات میں اضافہ ہو سکتا ہے، جس کے نتیجے میں صارف کے اختتامی تجربے پر منفی اثر پڑ سکتا ہے اور کاروباری اہداف کو خطرہ لاحق ہو سکتا ہے۔ ٹرائٹن ان استعمال کے معاملات کو حل کر سکتا ہے جہاں ایک سے زیادہ ماڈلز ایک پائپ لائن میں ان پٹ اور آؤٹ پٹ ٹینسر کے ساتھ بنائے گئے ہیں جو ان کے درمیان جڑے ہوئے ہیں، ان کام کے بوجھ کو حل کرنے میں آپ کی مدد کرتے ہیں۔

جیسا کہ آپ ایم ایل ماڈل کے تخمینے کے سلسلے میں اپنے اہداف کا جائزہ لیتے ہیں، بہت سے اختیارات پر غور کیا جا سکتا ہے، لیکن چند ایسے ہیں جو اتنے قابل اور ثابت ہوتے ہیں۔ ایمیزون سیج میکر ساتھ ٹریٹن انفرنس سرور. Triton Inference Server کے ساتھ SageMaker بہت سے صارفین کے لیے ایک مقبول انتخاب رہا ہے کیونکہ یہ انتہائی کم (سنگل ڈیجٹ ملی سیکنڈز) انفرنس لیٹنسی کے ساتھ تھرو پٹ اور ہارڈ ویئر کے استعمال کو زیادہ سے زیادہ کرنے کے لیے بنایا گیا ہے۔ اس میں حمایت یافتہ ایم ایل فریم ورک کی وسیع رینج ہے (بشمول TensorFlow، PyTorch، ONNX، XGBoost، اور NVIDIA TensorRT) اور انفراسٹرکچر بیک اینڈز، بشمول NVIDIA GPUs، CPUs، اور AWS Inferentia. مزید برآں، Triton Inference Server SageMaker کے ساتھ مربوط ہے، جو ایک مکمل طور پر منظم اینڈ ٹو اینڈ ایم ایل سروس ہے، جو ماڈل ہوسٹنگ کے لیے ریئل ٹائم انفرنس کے اختیارات فراہم کرتی ہے۔

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

حل جائزہ

کسی بھی پروجیکٹ کے لیے ضروری ہے کہ اس کی ضروریات کی فہرست اور کوشش کا تخمینہ لگایا جائے، تاکہ پروجیکٹ کی کل لاگت کا تخمینہ لگایا جا سکے۔ سرمایہ کاری پر منافع (ROI) کا اندازہ لگانا ضروری ہے جو کسی تنظیم کے فیصلے کی حمایت کرتا ہے۔ ٹرائٹن پر کام کا بوجھ منتقل کرتے وقت کچھ غور کرنے کی باتوں میں شامل ہیں:

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

  • کلائنٹ سائیڈ لیٹینسی بجٹ - یہ کلائنٹ کی طرف سے راؤنڈ ٹرپ کے زیادہ سے زیادہ قابل قبول انتظار کے وقت کا تعین کرتا ہے جس کا اظہار عام طور پر پرسنٹائلز میں ہوتا ہے۔ کام کے بوجھ کے لیے جن کے لیے دسیوں ملی سیکنڈ کے قریب لیٹنسی بجٹ کی ضرورت ہوتی ہے، نیٹ ورک کی منتقلی مہنگی ہو سکتی ہے، اس لیے کنارے پر ماڈلز کا استعمال کرنا بہتر ہوگا۔
  • ڈیٹا پے لوڈ کی تقسیم کا سائز - پے لوڈ، جسے اکثر کہا جاتا ہے۔ پیغام کا جسم, کلائنٹ سے ماڈل میں منتقل کردہ درخواست کا ڈیٹا ہے، اور ساتھ ہی ماڈل سے کلائنٹ کو بھیجے جانے والے ردعمل کا ڈیٹا ہے۔ پے لوڈ کا سائز اکثر تاخیر پر بڑا اثر ڈالتا ہے اور اسے دھیان میں رکھا جانا چاہیے۔
  • ڈیٹا کی شکل - یہ بتاتا ہے کہ پے لوڈ ایم ایل ماڈل کو کیسے بھیجا جاتا ہے۔ فارمیٹ انسانی پڑھنے کے قابل ہو سکتا ہے، جیسے JSON اور CSV، تاہم بائنری فارمیٹس بھی ہیں، جو اکثر کمپریسڈ اور سائز میں چھوٹے ہوتے ہیں۔ یہ کمپریشن اوور ہیڈ اور ٹرانسفر سائز کے درمیان ٹریڈ آف ہے، مطلب یہ ہے کہ نیٹ ورک پر منتقل ہونے والے بائٹس کو بچانے کے لیے سی پی یو سائیکل اور لیٹنسی کو کمپریس یا ڈیکمپریس میں شامل کیا جاتا ہے۔ یہ پوسٹ دکھاتی ہے کہ JSON اور بائنری دونوں فارمیٹس کو کیسے استعمال کیا جائے۔
  • سافٹ ویئر اسٹیک اور اجزاء درکار ہیں۔ - ایک اسٹیک اجزاء کا ایک مجموعہ ہے جو آپریٹنگ سسٹم، رن ٹائمز، اور سافٹ ویئر کی تہوں سمیت ML ایپلیکیشن کو سپورٹ کرنے کے لیے مل کر کام کرتے ہیں۔ ٹریٹن بلٹ میں مقبول ایم ایل فریم ورک کے ساتھ آتا ہے، جسے کہا جاتا ہے۔ پچھواڑے، جیسے ONNX، TensorFlow، FIL، OpenVINO، مقامی Python، اور دیگر۔ آپ ایک مصنف بھی کرسکتے ہیں۔ اپنی مرضی کے پسدید آپ کے اپنے گھریلو اجزاء کے لئے۔ یہ پوسٹ ایک XGBoost ماڈل اور ڈیٹا پری پروسیسنگ پر ہے، جسے ہم NVIDIA فراہم کردہ FIL اور Python Triton backends میں منتقل کرتے ہیں۔

ان تمام عوامل کو آپ کے کام کے بوجھ کی کارکردگی کا جائزہ لینے میں اہم کردار ادا کرنا چاہیے، لیکن اس استعمال کے معاملے میں ہم آپ کے ML ماڈلز کو Triton Inference Server کے ساتھ SageMaker میں میزبانی کے لیے منتقل کرنے کے لیے درکار کام پر توجہ مرکوز کرتے ہیں۔ خاص طور پر، ہم Python میں لکھی گئی پری پروسیسنگ منطق کے ساتھ ایک XGBoost ماڈل پر مشتمل فراڈ کا پتہ لگانے کے جوڑ کی ایک مثال استعمال کرتے ہیں۔

NVIDIA ٹرائٹن انفرنس سرور

ٹریٹن انفرنس سرور کو گراؤنڈ اپ سے ڈیزائن کیا گیا ہے تاکہ ٹیموں کو GPU یا CPU پر مبنی انفراسٹرکچر پر کسی بھی فریم ورک سے تربیت یافتہ AI ماڈلز کو تعینات، چلانے اور اسکیل کرنے کے قابل بنایا جا سکے۔ اس کے علاوہ، اسے متحرک بیچنگ، کنکرنٹ رنز، بہترین ماڈل کنفیگریشن، ماڈل کا جوڑا، اور اسٹریمنگ ان پٹ کے لیے سپورٹ جیسی خصوصیات کے ساتھ پیمانے پر اعلیٰ کارکردگی کا اندازہ پیش کرنے کے لیے بہتر بنایا گیا ہے۔

مندرجہ ذیل خاکہ NVIDIA Triton ensemble پائپ لائن کی ایک مثال دکھاتا ہے۔

Amazon SageMaker PlatoBlockchain Data Intelligence پر NVIDIA Triton Inference Server پر فیصلے کے درخت پر مبنی ML ماڈلز کے لیے کم لیٹنسی ہوسٹنگ حاصل کریں۔ عمودی تلاش۔ عی

کام کے بوجھ کو ان صلاحیتوں کو مدنظر رکھنا چاہیے جو Triton SageMaker ہوسٹنگ کے ساتھ فراہم کرتا ہے تاکہ پیش کردہ فوائد کو زیادہ سے زیادہ حاصل کیا جا سکے۔ مثال کے طور پر، Triton HTTP کے ساتھ ساتھ a C API، جو ضرورت پڑنے پر لچک کے ساتھ ساتھ پے لوڈ کی اصلاح کی اجازت دیتا ہے۔ جیسا کہ پہلے ذکر کیا گیا ہے، ٹرائٹن باکس سے باہر کئی مشہور فریم ورکس کو سپورٹ کرتا ہے، بشمول TensorFlow، PyTorch، ONNX، XGBoost، اور NVIDIA TensorRT۔ یہ فریم ورک ٹرائٹن بیک اینڈز کے ذریعے سپورٹ کیے جاتے ہیں، اور شاذ و نادر صورت میں کہ بیک اینڈ آپ کے استعمال کے معاملے کی حمایت نہیں کرتا ہے، ٹرائٹن آپ کو خود کو لاگو کرنے اور اسے آسانی سے مربوط کرنے کی اجازت دیتا ہے۔.

مندرجہ ذیل خاکہ NVIDIA Triton فن تعمیر کی ایک مثال دکھاتا ہے۔

سیج میکر پر NVIDIA Triton

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

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

اختیارات کی یہ وسعت، ماڈیولرٹی، اور مختلف سرونگ فریم ورک کے استعمال میں آسانی سیج میکر اور ٹریٹن کو ایک طاقتور میچ بناتی ہے۔

NVIDIA FIL پسدید سپورٹ

کے ساتہ ٹریٹن کا 22.05 ورژن ریلیز، NVIDIA اب کئی مشہور ML فریم ورک کے ذریعہ تربیت یافتہ جنگلاتی ماڈلز کی حمایت کرتا ہے، بشمول XGBoost، LightGBM، Scikit-learn، اور cuML۔ ٹرائٹن کے لیے FIL بیک اینڈ استعمال کرتے وقت، آپ کو یہ یقینی بنانا چاہیے کہ آپ جو ماڈل نمونے فراہم کرتے ہیں وہ معاون ہیں۔ مثال کے طور پر، FIL سپورٹ کرتا ہے۔ model_type xgboost, xgboost_json, lightgbm، یا treelite_checkpoint، یہ بتاتا ہے کہ آیا فراہم کردہ ماڈل بالترتیب XGBoost بائنری فارمیٹ، XGBoost JSON فارمیٹ، LightGBM ٹیکسٹ فارمیٹ، یا Treelite بائنری فارمیٹ میں ہے۔

یہ بیک اینڈ سپورٹ ہمارے لیے اپنی مثال میں استعمال کرنے کے لیے ضروری ہے کیونکہ FIL XGBoost ماڈلز کو سپورٹ کرتا ہے۔ صرف اس بات کو یقینی بنانا ہے کہ ہم جس ماڈل کو تعینات کرتے ہیں وہ بائنری یا JSON فارمیٹس کو سپورٹ کرتا ہے۔

اس بات کو یقینی بنانے کے علاوہ کہ آپ کے پاس مناسب ماڈل کی شکل ہے، دیگر تحفظات کو بھی لیا جانا چاہیے۔ ٹرائٹن کے لیے FIL بیک اینڈ ڈویلپرز کو اپنے کام کے بوجھ کو ٹیون کرنے اور ماڈل چلانے کی کارکردگی کو بہتر بنانے کے لیے قابل ترتیب اختیارات فراہم کرتا ہے۔ ترتیب dynamic_batching ٹریٹن کو کلائنٹ سائڈ کی درخواستوں کو رکھنے اور انہیں سرور سائیڈ پر بیچنے کی اجازت دیتا ہے، تاکہ FIL کے متوازی کمپیوٹیشن کو مؤثر طریقے سے استعمال کر کے پورے بیچ کا ایک ساتھ اندازہ لگایا جا سکے۔ آپشن max_queue_delay_microseconds ایک ناکام محفوظ کنٹرول پیش کرتا ہے کہ ٹریٹن کتنی دیر تک بیچ بنانے کا انتظار کرتا ہے۔ FIL Shapley وضاحت کنندہ کے ساتھ آتا ہے، جسے کنفیگریشن کے ذریعے چالو کیا جا سکتا ہے۔ treeshap_output; تاہم، آپ کو یہ بات ذہن میں رکھنی چاہیے کہ Shapley آؤٹ پٹ اس کے آؤٹ پٹ سائز کی وجہ سے کارکردگی کو نقصان پہنچاتا ہے۔ ایک اور اہم پہلو ہے۔ storage_type میموری فوٹ پرنٹ اور رن ٹائم کے درمیان تجارت کرنے کے لیے۔ مثال کے طور پر، سٹوریج کو SPARSE کے طور پر استعمال کرنا میموری کی کھپت کو کم کر سکتا ہے، جبکہ DENSE زیادہ میموری استعمال کی قیمت پر آپ کے ماڈل کی کارکردگی کو کم کر سکتا ہے۔ ان میں سے ہر ایک کے لیے بہترین انتخاب کا فیصلہ کرنا آپ کے کام کے بوجھ اور آپ کے لیٹینسی بجٹ پر منحصر ہے، اس لیے ہم تجویز کرتے ہیں کہ تمام اختیارات پر گہری نظر ڈالیں۔ FIL پسدید اکثر پوچھے گئے سوالات اور FIL میں دستیاب کنفیگریشنز کی فہرست.

ٹرائیٹن پر ماڈل کی میزبانی کرنے کے اقدامات

آئیے اپنے فراڈ کا پتہ لگانے کے استعمال کے کیس کو ایک مثال کے طور پر دیکھتے ہیں کہ کام کا بوجھ Triton پر منتقل کرتے وقت کن چیزوں پر غور کرنا چاہیے۔

اپنے کام کے بوجھ کی شناخت کریں۔

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

موجودہ اور ہدف کی کارکردگی کے میٹرکس اور دوسرے اہداف کی شناخت کریں جو لاگو ہوسکتے ہیں۔

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

اس بات کا تعین کرنے کے لیے پیچھے سے کام کریں کہ آیا Triton آپ کی ضروریات کی بنیاد پر آپ کے کام کے بوجھ کی میزبانی کر سکتا ہے۔

یہ تعین کرنے کے لیے کہ آیا Triton آپ کی ضروریات کو پورا کر سکتا ہے، آپ تشویش کے دو اہم شعبوں پر توجہ دینا چاہتے ہیں۔ سب سے پہلے اس بات کو یقینی بنانا ہے کہ ٹرائٹن ایک قابل قبول فرنٹ اینڈ آپشن جیسے HTTP یا C API کے ساتھ خدمات انجام دے سکے۔

جیسا کہ پہلے ذکر کیا گیا ہے، اس بات کا تعین کرنا بھی ضروری ہے کہ آیا ٹرائٹن ایسے بیک اینڈ کو سپورٹ کرتا ہے جو آپ کے نمونے پیش کر سکتا ہے۔ Triton کی ایک بڑی تعداد کی حمایت کرتا ہے پچھواڑے جو مختلف فریم ورکس جیسے PyTorch اور TensorFlow کو سپورٹ کرنے کے لیے تیار کیے گئے ہیں۔ اس بات کو یقینی بنانے کے لیے چیک کریں کہ آپ کے ماڈلز سپورٹ ہیں اور آپ کے پاس مناسب ماڈل فارمیٹ ہے جس کی ٹرائٹن کو توقع ہے۔ ایسا کرنے کے لیے، سب سے پہلے یہ دیکھنے کے لیے چیک کریں کہ ٹرائٹن بیک اینڈ کس ماڈل فارمیٹس کو سپورٹ کرتا ہے۔ بہت سے معاملات میں، اس کے لیے ماڈل کے لیے کسی تبدیلی کی ضرورت نہیں ہے۔ دوسری صورتوں میں، آپ کے ماڈل کو مختلف فارمیٹ میں تبدیلی کی ضرورت پڑ سکتی ہے۔ ماخذ اور ہدف کی شکل پر منحصر ہے، مختلف اختیارات موجود ہیں، جیسے کہ تبدیلی a Treelite کے بائنری چیک پوائنٹ فارمیٹ کو استعمال کرنے کے لیے Python pickle فائل.

اس استعمال کے معاملے کے لیے، ہم تعین کرتے ہیں۔ FIL پسدید بغیر کسی تبدیلی کی ضرورت کے XGBoost ماڈل کو سپورٹ کر سکتا ہے اور یہ کہ ہم استعمال کر سکتے ہیں۔ ازگر پسدید پری پروسیسنگ کے لئے. ٹریٹن کی جوڑ والی خصوصیت کے ساتھ، آپ ہوسٹنگ مثالوں کے درمیان مہنگی نیٹ ورک کالوں سے بچ کر اپنے کام کے بوجھ کو مزید بہتر بنا سکتے ہیں۔

ایک منصوبہ بنائیں اور میزبانی کے لیے Triton استعمال کرنے کے لیے درکار کوششوں کا اندازہ لگائیں۔

آئیے آپ کے ماڈلز کو ٹرائٹن میں منتقل کرنے کے منصوبے کے بارے میں بات کرتے ہیں۔ ہر ٹرائٹن تعیناتی کے لیے درج ذیل کی ضرورت ہوتی ہے:

  • ٹرائٹن بیک اینڈز کے لیے مطلوبہ نمونے ماڈل
  • ٹریٹن کنفیگریشن فائلیں
  • مناسب ساخت کے ساتھ ایک ماڈل ریپوزٹری فولڈر

ہم اس پوسٹ میں بعد میں ان تعیناتی انحصار کو کیسے تخلیق کرنے کی ایک مثال دکھاتے ہیں۔

منصوبہ چلائیں اور نتائج کی توثیق کریں۔

مناسب طریقے سے ترتیب شدہ ماڈل ریپوزٹری میں مطلوبہ فائلیں اور نمونے بنانے کے بعد، آپ کو اپنی تعیناتی کو ٹیون کرنے اور اس کی تصدیق کرنے کی ضرورت ہے کہ آپ نے اب اپنے ہدف کے میٹرکس کو پورا کر لیا ہے۔

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

عمل

اب آئیے عملدرآمد کی تفصیلات پر نظر ڈالتے ہیں۔ اس کے لیے ہم نے دو نوٹ بک تیار کی ہیں جو اس بات کی مثال پیش کرتی ہیں کہ کیا توقع کی جا سکتی ہے۔ دی پہلی نوٹ بک دیئے گئے XGBoost ماڈل کی ٹریننگ کے ساتھ ساتھ پری پروسیسنگ منطق کو بھی دکھاتا ہے جو ٹریننگ اور انفرنس ٹائم دونوں کے لیے استعمال ہوتا ہے۔ دی دوسری نوٹ بک دکھاتا ہے کہ ہم کس طرح ٹرائٹن پر تعیناتی کے لیے درکار نمونے تیار کرتے ہیں۔

پہلی نوٹ بک ایک موجودہ نوٹ بک دکھاتی ہے جو آپ کی تنظیم کے پاس ہے۔ ریپڈز لائبریریوں کا سوٹ اور RAPIDS کونڈا کرنل۔ یہ مثال AWS کے ذریعہ فراہم کردہ G4DN مثال کی قسم پر چلتی ہے، جو NVIDIA T4 پروسیسرز کا استعمال کرتے ہوئے GPU کو تیز کرتا ہے۔

Amazon SageMaker PlatoBlockchain Data Intelligence پر NVIDIA Triton Inference Server پر فیصلے کے درخت پر مبنی ML ماڈلز کے لیے کم لیٹنسی ہوسٹنگ حاصل کریں۔ عمودی تلاش۔ عی

اس مثال میں پری پروسیسنگ ٹاسک GPU ایکسلریشن سے فائدہ اٹھاتے ہیں اور cuML اور cuDF لائبریریوں کو بہت زیادہ استعمال کرتے ہیں۔ اس کی ایک مثال درج ذیل کوڈ میں ہے، جہاں ہم cuML کا استعمال کرتے ہوئے واضح لیبل انکوڈنگ دکھاتے ہیں۔ ہم بھی ایک پیدا کرتے ہیں label_encoders.pkl فائل جسے ہم انکوڈرز کو سیریلائز کرنے کے لیے استعمال کر سکتے ہیں اور انفرنس ٹائم کے دوران پری پروسیسنگ کے لیے استعمال کر سکتے ہیں۔

Amazon SageMaker PlatoBlockchain Data Intelligence پر NVIDIA Triton Inference Server پر فیصلے کے درخت پر مبنی ML ماڈلز کے لیے کم لیٹنسی ہوسٹنگ حاصل کریں۔ عمودی تلاش۔ عی

پہلی نوٹ بک ہمارے XGBoost ماڈل کو تربیت دے کر اور اس کے مطابق نمونے محفوظ کر کے اختتام پذیر ہوتی ہے۔

Amazon SageMaker PlatoBlockchain Data Intelligence پر NVIDIA Triton Inference Server پر فیصلے کے درخت پر مبنی ML ماڈلز کے لیے کم لیٹنسی ہوسٹنگ حاصل کریں۔ عمودی تلاش۔ عی

Amazon SageMaker PlatoBlockchain Data Intelligence پر NVIDIA Triton Inference Server پر فیصلے کے درخت پر مبنی ML ماڈلز کے لیے کم لیٹنسی ہوسٹنگ حاصل کریں۔ عمودی تلاش۔ عی

اس منظر نامے میں، ٹریننگ کوڈ پہلے سے موجود ہے اور ٹریننگ کے وقت ماڈل کے لیے کسی تبدیلی کی ضرورت نہیں ہے۔ مزید برآں، اگرچہ ہم نے تربیت کے دوران پری پروسیسنگ کے لیے GPU ایکسلریشن کا استعمال کیا، لیکن ہم اندازہ وقت پر پری پروسیسنگ کے لیے CPUs کو استعمال کرنے کا ارادہ رکھتے ہیں۔ ہم بعد میں پوسٹ میں مزید وضاحت کریں گے۔

آئیے اب دوسری نوٹ بک کی طرف بڑھتے ہیں اور یاد کرتے ہیں کہ ہمیں ٹرائٹن کی کامیاب تعیناتی کے لیے کیا ضرورت ہے۔

سب سے پہلے، ہمیں بیک اینڈ کے ذریعہ درکار ماڈل نمونے کی ضرورت ہے۔ اس جوڑ کے لیے ہمیں جن فائلوں کو بنانے کی ضرورت ہے ان میں شامل ہیں:

  • پری پروسیسنگ نمونے (model.py, label_encoders.pkl)
  • XGBoost ماڈل نمونے (xgboost.json)

Triton میں Python پسدید ہم سے Conda ماحول کو انحصار کے طور پر استعمال کرنے کا تقاضا کرتا ہے۔ اس صورت میں، ہم FIL بیک اینڈ میں چلائے جانے والے XGBoost ماڈل میں فیڈ کرنے سے پہلے خام ڈیٹا کو پری پروسیس کرنے کے لیے Python بیک اینڈ کا استعمال کرتے ہیں۔ اگرچہ ہم نے اصل میں ڈیٹا پری پروسیسنگ کرنے کے لیے RAPIDS cuDF اور cuML لائبریریوں کا استعمال کیا تھا (جیسا کہ پہلے ہمارے GPU کا استعمال کرتے ہوئے حوالہ دیا گیا ہے)، یہاں ہم پانڈا اور Scikit-learn کو انفرنس ٹائم (اپنے CPU کا استعمال کرتے ہوئے) کے لیے پری پروسیسنگ انحصار کے طور پر استعمال کرتے ہیں۔ ہم یہ تین وجوہات کی بنا پر کرتے ہیں:

  • یہ بتانے کے لیے کہ آپ کے انحصار کے لیے کونڈا ماحول کیسے بنایا جائے اور اسے میں کیسے پیک کیا جائے۔ فارمیٹ متوقع ہے۔ Triton's Python پسدید کی طرف سے.
  • CPU پر Python بیک اینڈ میں چلنے والے پری پروسیسنگ ماڈل کو دکھا کر جب کہ XGBoost ماڈل FIL بیک اینڈ میں GPU پر چلتا ہے، ہم یہ واضح کرتے ہیں کہ کس طرح ٹرائٹن کے ملبوس پائپ لائن میں ہر ماڈل ایک مختلف فریم ورک بیک اینڈ پر چل سکتا ہے، اور مختلف ہارڈ ویئر پر چل سکتا ہے۔ کنفیگریشنز
  • یہ اس بات پر روشنی ڈالتا ہے کہ کس طرح RAPIDS لائبریریاں (cuDF، cuML) اپنے CPU ہم منصبوں (Pandas, Scikit-learn) کے ساتھ مطابقت رکھتی ہیں۔ اس طرح، ہم دکھا سکتے ہیں کہ کس طرح LabelEncoders cuML میں بنایا گیا Scikit-learn اور اس کے برعکس استعمال کیا جا سکتا ہے۔ نوٹ کریں کہ اگر آپ تخمینہ وقت کے دوران بڑی مقدار میں ٹیبلر ڈیٹا کو پہلے سے پروسیس کرنے کی توقع رکھتے ہیں، تو آپ اب بھی RAPIDS کو GPU-تیز کرنے کے لیے استعمال کر سکتے ہیں۔

یاد رکھیں کہ ہم نے تخلیق کیا۔ label_encoders.pkl پہلی نوٹ بک میں فائل. زمرہ انکوڈنگ کے لیے اس کو ہمارے میں شامل کرنے کے علاوہ اور کچھ نہیں ہے۔ model.py پری پروسیسنگ کے لئے فائل۔

Amazon SageMaker PlatoBlockchain Data Intelligence پر NVIDIA Triton Inference Server پر فیصلے کے درخت پر مبنی ML ماڈلز کے لیے کم لیٹنسی ہوسٹنگ حاصل کریں۔ عمودی تلاش۔ عی

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

XGBoost ماڈل کے لیے، مزید کچھ کرنے کی ضرورت نہیں ہے۔ ہم نے ماڈل کو پہلی نوٹ بک میں تربیت دی اور ٹرائٹن کے FIL بیک اینڈ کو XGBoost ماڈلز کے لیے کسی اضافی کوشش کی ضرورت نہیں ہے۔

اگلا، ہمیں ٹریٹن کنفیگریشن فائلوں کی ضرورت ہے۔ ٹرائٹن کے جوڑ میں ہر ماڈل کو a کی ضرورت ہوتی ہے۔ config.pbtxt فائل اس کے علاوہ، ہم بھی ایک بناتے ہیں config.pbtxt مجموعی طور پر جوڑ کے لئے فائل. یہ فائلیں ٹرائٹن کو ان پٹ اور آؤٹ پٹس جیسی معلومات کے ساتھ جوڑ کے بارے میں میٹا ڈیٹا جاننے کی اجازت دیتی ہیں اور ساتھ ہی جوڑا سے وابستہ ڈی اے جی کی وضاحت کرنے میں بھی مدد کرتی ہیں۔

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

Amazon SageMaker PlatoBlockchain Data Intelligence پر NVIDIA Triton Inference Server پر فیصلے کے درخت پر مبنی ML ماڈلز کے لیے کم لیٹنسی ہوسٹنگ حاصل کریں۔ عمودی تلاش۔ عی

ہمارے پاس یہ تین شرائط ہونے کے بعد، ہم تعیناتی کے لیے پیکیجنگ کے طور پر ایک کمپریسڈ فائل بناتے ہیں اور اسے اپ لوڈ کرتے ہیں۔ ایمیزون سادہ اسٹوریج سروس (ایمیزون S3)۔

Amazon SageMaker PlatoBlockchain Data Intelligence پر NVIDIA Triton Inference Server پر فیصلے کے درخت پر مبنی ML ماڈلز کے لیے کم لیٹنسی ہوسٹنگ حاصل کریں۔ عمودی تلاش۔ عی

اب ہم اس ماڈل ریپوزٹری سے ایک SageMaker ماڈل بنا سکتے ہیں جسے ہم نے پچھلے مرحلے میں Amazon S3 پر اپ لوڈ کیا تھا۔

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

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

Amazon SageMaker PlatoBlockchain Data Intelligence پر NVIDIA Triton Inference Server پر فیصلے کے درخت پر مبنی ML ماڈلز کے لیے کم لیٹنسی ہوسٹنگ حاصل کریں۔ عمودی تلاش۔ عی

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

Amazon SageMaker PlatoBlockchain Data Intelligence پر NVIDIA Triton Inference Server پر فیصلے کے درخت پر مبنی ML ماڈلز کے لیے کم لیٹنسی ہوسٹنگ حاصل کریں۔ عمودی تلاش۔ عی

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

Amazon SageMaker PlatoBlockchain Data Intelligence پر NVIDIA Triton Inference Server پر فیصلے کے درخت پر مبنی ML ماڈلز کے لیے کم لیٹنسی ہوسٹنگ حاصل کریں۔ عمودی تلاش۔ عی

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

Amazon SageMaker PlatoBlockchain Data Intelligence پر NVIDIA Triton Inference Server پر فیصلے کے درخت پر مبنی ML ماڈلز کے لیے کم لیٹنسی ہوسٹنگ حاصل کریں۔ عمودی تلاش۔ عی

خلاصہ

اس پوسٹ میں، ہم نے آپ کو ٹرائٹن انفرنس سرور کے ساتھ سیج میکر پر ایک XGBoost جوڑے کے کام کا بوجھ تعینات کرنے کے بارے میں بتایا۔ سیج میکر پر کام کے بوجھ کو ٹرائٹن پر منتقل کرنا سرمایہ کاری پر فائدہ مند منافع ہو سکتا ہے۔ کسی بھی ٹیکنالوجی کو اپنانے کی طرح، جانچ کا عمل اور منصوبہ کلیدی حیثیت رکھتا ہے، اور ہم نے آپ کی رہنمائی کے لیے پانچ قدمی عمل کی تفصیل دی ہے کہ آپ کے کام کے بوجھ کو منتقل کرتے وقت کن چیزوں پر غور کرنا چاہیے۔ اس کے علاوہ، ہم نے سیج میکر پر ٹرائٹن پر Python پری پروسیسنگ اور XGBoost ماڈل کا استعمال کرتے ہوئے ایک جوڑا لگانے کے لیے درکار اقدامات کی گہرائی تک رسائی حاصل کی۔

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

آپ اس مثال کے لیے استعمال شدہ نوٹ بکس کو تلاش کر سکتے ہیں۔ GitHub کے.


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

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

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

Amazon SageMaker PlatoBlockchain Data Intelligence پر NVIDIA Triton Inference Server پر فیصلے کے درخت پر مبنی ML ماڈلز کے لیے کم لیٹنسی ہوسٹنگ حاصل کریں۔ عمودی تلاش۔ عیکشتیز گپتا NVIDIA میں ایک حل آرکیٹیکٹ ہے۔ وہ کلاؤڈ صارفین کو GPU AI ٹیکنالوجیز کے بارے میں تعلیم دینے سے لطف اندوز ہوتا ہے جو NVIDIA کو پیش کرنا ہے اور ان کی مشین لرننگ اور ڈیپ لرننگ ایپلی کیشنز کو تیز کرنے میں ان کی مدد کرنا ہے۔ کام سے باہر، وہ دوڑنا، پیدل سفر کرنے اور جنگلی حیات کو دیکھنے سے لطف اندوز ہوتا ہے۔

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

Amazon SageMaker PlatoBlockchain Data Intelligence پر NVIDIA Triton Inference Server پر فیصلے کے درخت پر مبنی ML ماڈلز کے لیے کم لیٹنسی ہوسٹنگ حاصل کریں۔ عمودی تلاش۔ عیایلیوتھ ٹریانا NVIDIA میں ڈیولپر ریلیشنز مینیجر ہے۔ وہ Amazon ML/DL کام کے بوجھ، EC2 مصنوعات، اور AWS AI خدمات کو تیز کرنے کے لیے Amazon اور AWS پروڈکٹ لیڈروں، ڈویلپرز، اور سائنسدانوں کو NVIDIA تکنیکی ماہرین اور پروڈکٹ لیڈروں سے جوڑتا ہے۔ اس کے علاوہ، ایلیوتھ ایک پرجوش ماؤنٹین بائیکر، اسکیئر، اور پوکر کھلاڑی ہے۔

ٹائم اسٹیمپ:

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