پی ٹورچ پر مبنی مشین لرننگ (ML) فریم ورک ہے۔ ٹارچ لائبریری، کمپیوٹر وژن اور قدرتی زبان کی پروسیسنگ جیسی ایپلی کیشنز کے لیے استعمال ہوتی ہے۔ صارفین کی جانب سے PyTorch فریم ورک کا انتخاب کرنے کی بنیادی وجوہات میں سے ایک اس کی سادگی اور یہ حقیقت ہے کہ اسے Python کے ساتھ کام کرنے کے لیے ڈیزائن اور اسمبل کیا گیا ہے۔ PyTorch متحرک کمپیوٹیشنل گراف کی حمایت کرتا ہے، رن ٹائم کے وقت نیٹ ورک کے رویے کو تبدیل کرنے کے قابل بناتا ہے۔ یہ ایم ایل فریم ورک کی اکثریت پر ایک بڑا لچکدار فائدہ فراہم کرتا ہے، جس کے لیے رن ٹائم سے پہلے نیورل نیٹ ورکس کو جامد اشیاء کے طور پر بیان کرنے کی ضرورت ہوتی ہے۔ اس پوسٹ میں، ہم یہ دیکھنے کے لیے گہرائی میں ڈوبتے ہیں کہ کیسے ایمیزون سیج میکر NVIDIA Triton Inference Server کا استعمال کرتے ہوئے ان PyTorch ماڈلز کی خدمت کر سکتے ہیں۔
سیج میکر ان صارفین کے لیے کئی اختیارات فراہم کرتا ہے جو اپنے ایم ایل ماڈلز کی میزبانی کرنا چاہتے ہیں۔ کلیدی دستیاب خصوصیات میں سے ایک سیج میکر ہے۔ ریئل ٹائم انفرنس اینڈ پوائنٹس. ریئل ٹائم کام کے بوجھ میں کارکردگی کی توقعات اور سروس لیول ایگریمنٹس (SLAs) کی مختلف سطحیں ہوسکتی ہیں، جو کہ تاخیر اور تھرو پٹ کی ضروریات کو پورا کرتی ہیں۔
ریئل ٹائم اینڈ پوائنٹس کے ساتھ، مختلف تعیناتی کے اختیارات متوقع کارکردگی کے مختلف درجات کے مطابق ہوتے ہیں۔ مثال کے طور پر، آپ کا کاروبار ایسے ماڈل پر بھروسہ کر سکتا ہے جو پیش گوئی کی جانے والی کارکردگی کے ساتھ تاخیر اور تھرو پٹ کے لیے بہت سخت SLAs کو پورا کرے۔ اس صورت میں، SageMaker فراہم کرتا ہے سنگل ماڈل اینڈ پوائنٹس (SMEs)، آپ کو ایک واحد ML ماڈل کو منطقی اختتامی نقطہ پر تعینات کرنے کی اجازت دیتا ہے، جو بنیادی سرور کی نیٹ ورکنگ اور کمپیوٹ کی صلاحیت کو استعمال کرے گا۔ دیگر استعمال کے معاملات کے لیے جہاں آپ کو کارکردگی اور لاگت کے درمیان بہتر توازن کی ضرورت ہے، ملٹی ماڈل اینڈ پوائنٹس (MMEs) آپ کو ایک منطقی اختتامی نقطہ کے پیچھے متعدد ماڈلز کو تعینات کرنے اور میموری سے ان کی لوڈنگ اور ان لوڈنگ کا خلاصہ کرتے ہوئے انفرادی طور پر ان کی درخواست کرنے کی اجازت دیتا ہے۔
سیج میکر سنگل ماڈل اور ملٹی ماڈل اینڈ پوائنٹس کے ذریعے مدد فراہم کرتا ہے۔ NVIDIA ٹرائٹن انفرنس سرور. ٹرائٹن مختلف بیک اینڈز کو انجن کے طور پر سپورٹ کرتا ہے تاکہ مختلف کو چلانے اور سرونگ کو طاقت بخش سکے۔ فریم ورک ماڈل، جیسے PyTorch، TensorFlow، TensorRT، یا ONNX رن ٹائم۔ کسی بھی ٹرائٹن کی تعیناتی کے لیے، یہ سمجھنا بہت ضروری ہے کہ بیک اینڈ کا رویہ آپ کے کام کے بوجھ کو کیسے متاثر کرتا ہے اور اس کے منفرد کنفیگریشن پیرامیٹرز سے کیا توقع کی جائے۔ اس پوسٹ میں، ہم آپ کو سمجھنے میں مدد کرتے ہیں۔ Triton PyTorch پسدید گہرائی میں
PyTorch پسدید کے ساتھ Triton
PyTorch پسدید کو چلانے کے لیے ڈیزائن کیا گیا ہے۔ ٹارچ اسکرپٹ PyTorch C++ API استعمال کرنے والے ماڈل۔ TorchScript Python کا ایک جامد سب سیٹ ہے جو PyTorch ماڈل کی ساخت کو پکڑتا ہے۔ اس بیک اینڈ کو استعمال کرنے کے لیے، آپ کو Just-In-Time (JIT) تالیف کا استعمال کرتے ہوئے اپنے PyTorch ماڈل کو TorchScript میں تبدیل کرنا ہوگا۔ JIT TorchScript کوڈ کو ایک بہترین انٹرمیڈیٹ نمائندگی میں مرتب کرتی ہے، جو اسے غیر ازگر کے ماحول میں تعیناتی کے لیے موزوں بناتی ہے۔ Triton بہتر کارکردگی اور لچک کے لیے TorchScript استعمال کرتا ہے۔
ٹرائٹن کے ساتھ تعینات ہر ماڈل کو کنفیگریشن فائل کی ضرورت ہوتی ہے (config.pbtxt
) جو ماڈل میٹا ڈیٹا کی وضاحت کرتا ہے، جیسے کہ ان پٹ اور آؤٹ پٹ ٹینسرز، ماڈل کا نام، اور پلیٹ فارم۔ کنفیگریشن فائل ٹرائیٹن کے لیے ضروری ہے کہ ماڈل کو کیسے لوڈ، چلایا جائے اور بہتر بنایا جائے۔ PyTorch ماڈلز کے لیے، کنفیگریشن فائل میں پلیٹ فارم فیلڈ کو سیٹ کیا جانا چاہیے۔ pytorch_libtorch
. آپ GPU اور CPU پر Triton PyTorch ماڈل لوڈ کر سکتے ہیں (دیکھیں۔ متعدد ماڈل مثالیں۔) اور ماڈل کے وزن کو یا تو GPU میموری/VRAM یا میزبان میموری/RAM میں اسی مناسبت سے رکھا جائے گا۔
نوٹ کریں کہ صرف ماڈل forward
Pytorch پسدید استعمال کرتے وقت طریقہ کہا جائے گا؛ اگر آپ کسی درخواست کا جواب دینے کے لیے اپنے خام ماڈل کی پیشین گوئیوں کو تیار کرنے، اعادہ کرنے اور تبدیل کرنے کے لیے زیادہ پیچیدہ منطق پر انحصار کرتے ہیں، تو آپ کو اسے ایک حسب ضرورت ماڈل کے طور پر آگے لپیٹنا چاہیے۔ متبادل طور پر، آپ جوڑا ماڈل استعمال کر سکتے ہیں یا کاروباری منطق سکرپٹ.
آپ دستیاب کنفیگریشن پر مبنی خصوصیات کے امتزاج کا استعمال کرکے ٹرائٹن پر PyTorch ماڈل کی کارکردگی کو بہتر بنا سکتے ہیں۔ ان میں سے کچھ پسدید اجناسٹک ہیں، جیسے متحرک بیچنگ اور سمورتی ماڈل چلتا ہے۔ (ملاحظہ کریں Amazon SageMaker پر NVIDIA Triton Inference Server کا استعمال کرتے ہوئے ماڈل سرونگ کے لیے ہائپر اسکیل کارکردگی حاصل کریں۔ مزید جاننے کے لیے) اور کچھ PyTorch کے لیے مخصوص ہیں۔ آئیے ان پر گہری نظر ڈالتے ہیں۔ ترتیب کے پیرامیٹرز اور آپ کو ان کا استعمال کیسے کرنا چاہئے:
- DISABLE_OPTIMIZED_EXECUTION - ٹارچ اسکرپٹ کے چلنے والے ماڈلز کو بہتر بنانے کے لیے اس پیرامیٹر کا استعمال کریں۔ یہ پیرامیٹر لوڈ شدہ TorchScript ماڈل کی ابتدائی کال کو سست کر دیتا ہے، اور ہو سکتا ہے۔ فائدہ نہیں یا اس سے بھی رکاوٹ کچھ معاملات میں ماڈل کی کارکردگی۔ تیار
false
اگر اسکیلنگ یا کولڈ اسٹارٹ لیٹنسی کے لیے آپ کی برداشت بہت کم ہے۔ - INFERENCE_MODE - PyTorch انفرنس موڈ کو ٹوگل کرنے کے لیے اس پیرامیٹر کا استعمال کریں۔ انفرنس موڈ میں، حسابات کو پسماندہ گراف میں ریکارڈ نہیں کیا جاتا ہے، اور یہ PyTorch کو آپ کے ماڈل کو تیز کرنے کی اجازت دیتا ہے۔ یہ بہتر رن ٹائم ایک خرابی کے ساتھ آتا ہے: آپ انفرنس موڈ سے باہر نکلنے کے بعد آٹو گراڈ کے ذریعے ریکارڈ کیے جانے والے کمپیوٹیشن میں انفرنس موڈ میں بنائے گئے ٹینسر استعمال نہیں کر پائیں گے۔ تیار
true
اگر سابقہ شرائط آپ کے استعمال کے معاملے پر لاگو ہوتی ہیں (زیادہ تر انفرنس ورک بوجھ کے لیے درست)۔ - ENABLE_NVFUSER - فعال کرنے کے لیے اس پیرامیٹر کا استعمال کریں۔ NvFuser (CUDA Graph Fuser) TorchScript ماڈلز کے لیے آپٹیمائزیشن۔ اگر متعین نہیں کیا گیا ہے، ڈیفالٹ PyTorch fuser استعمال کیا جاتا ہے۔
- ENABLE_WEIGHT_SHARING - اس پیرامیٹر کو استعمال کریں تاکہ ماڈل کی مثالیں (کاپیاں) ایک ہی ڈیوائس پر وزن بانٹنے کی اجازت دیں۔ یہ ماڈل لوڈنگ اور انفرنس کے میموری استعمال کو کم کر سکتا ہے۔ اسے ایسے ماڈلز کے ساتھ استعمال نہیں کیا جانا چاہیے جو ریاست کو برقرار رکھتے ہوں۔
- ENABLE_CACHE_CLEANING - ہر ماڈل کے چلنے کے بعد CUDA کیشے کی صفائی کو فعال کرنے کے لیے اس پیرامیٹر کا استعمال کریں (صرف اس صورت میں اثر ہوتا ہے جب ماڈل GPU پر ہو)۔ اس پرچم کو ترتیب دے رہا ہے۔
true
ہر ماڈل کے چلنے کے بعد اضافی CUDA کیش کلیننگ آپریشنز کی وجہ سے کارکردگی پر منفی اثر پڑے گا۔ آپ کو یہ جھنڈا صرف اس صورت میں استعمال کرنا چاہئے جب آپ ٹرائٹن کے ساتھ متعدد ماڈلز پیش کرتے ہیں اور CUDA کا سامنا ماڈل کے دوران میموری کے مسائل سے ہوتا ہے۔ - ENABLE_JIT_EXECUTOR، ENABLE_JIT_PROFILING، اور ENABLE_TENSOR_FUSER - ان پیرامیٹرز کو PyTorch کی اصلاح کو غیر فعال کرنے کے لیے استعمال کریں جو بعض اوقات پیچیدہ رن موڈز اور متحرک شکلوں والے ماڈلز میں لیٹنسی ریگریشن کا سبب بن سکتے ہیں۔
سیج میکر پر ٹرائٹن کا اندازہ
سیج میکر۔ کی اجازت دیتا ہے آپ NVIDIA Triton Inference Server کے ساتھ SMEs اور MMEs دونوں کو تعینات کریں۔ مندرجہ ذیل اعداد و شمار ٹرائٹن کے اعلیٰ سطحی فن تعمیر کو ظاہر کرتا ہے۔ دی ماڈل ذخیرہ ماڈلز کا فائل سسٹم پر مبنی ذخیرہ ہے جسے ٹریٹن انفرنسنگ کے لیے دستیاب کرائے گا۔ انفرنس کی درخواستیں HTTPS کے ذریعے سرور پر پہنچتی ہیں اور پھر مناسب فی ماڈل شیڈیولر تک پہنچ جاتی ہیں۔ ٹریٹن لاگو کرتا ہے۔ متعدد شیڈولنگ اور بیچنگ الگورتھم جسے ماڈل بہ ماڈل کی بنیاد پر ترتیب دیا جا سکتا ہے۔ ہر ماڈل کا شیڈیولر اختیاری طور پر تخمینہ کی درخواستوں کی بیچنگ کرتا ہے اور پھر درخواستوں کو پاس کرتا ہے۔ پسدید ماڈل کی قسم کے مطابق۔ بیک اینڈ بیچ کی گئی درخواستوں میں فراہم کردہ ان پٹس کا استعمال کرتے ہوئے انفرنسنگ کرتا ہے اور اس کے بعد آؤٹ پٹ واپس کیے جاتے ہیں۔
SageMaker اینڈ پوائنٹس کے لیے اپنے آٹو اسکیلنگ گروپس کو ترتیب دیتے وقت، آپ غور کرنا چاہیں گے۔ SageMakerVariantInvocationsPerInstance
آپ کے آٹو اسکیلنگ گروپ کی اسکیلنگ کی خصوصیات کا تعین کرنے کے بنیادی معیار کے طور پر۔ اس کے علاوہ، اس بنیاد پر کہ آیا آپ کے ماڈلز GPU یا CPU پر چل رہے ہیں، آپ استعمال کرنے پر بھی غور کر سکتے ہیں۔ CPUUtilization
or GPUUtilization
اضافی معیار کے طور پر. نوٹ کریں کہ SMEs کے لیے، کیونکہ تعینات کیے گئے ماڈلز ایک جیسے ہیں، اس لیے آپ کے SLAs کو پورا کرنے کے لیے مناسب پالیسیاں ترتیب دینا کافی سیدھا ہے۔ MMEs کے لیے، ہم تجویز کرتے ہیں کہ اسی طرح کے ماڈلز کو ایک دیے گئے اختتامی نقطہ کے پیچھے تعینات کیا جائے تاکہ زیادہ مستحکم، متوقع کارکردگی ہو۔ استعمال کے معاملات میں جہاں مختلف سائز اور تقاضوں کے ماڈلز استعمال کیے جاتے ہیں، ہو سکتا ہے کہ آپ ان کام کے بوجھ کو متعدد MMEs میں الگ کرنا چاہیں، یا بہترین لاگت اور کارکردگی کا توازن حاصل کرنے کے لیے ان کی آٹو اسکیلنگ گروپ پالیسی کو ٹھیک کرنے میں اضافی وقت صرف کریں۔ دیکھیں ایمیزون سیج میکر میں ماڈل ہوسٹنگ پیٹرن، حصہ 3: ایمیزون سیج میکر ملٹی ماڈل اینڈ پوائنٹس کے ساتھ ملٹی ماڈل انفرنس کو چلائیں اور بہتر بنائیں MMEs کے لیے آٹو اسکیلنگ پالیسی کے بارے میں مزید معلومات کے لیے۔ (نوٹ کریں کہ اگرچہ MMS کنفیگریشنز اس معاملے میں لاگو نہیں ہوتی ہیں، لیکن پالیسی کے تحفظات اب بھی ہوتے ہیں۔)
NVIDIA ٹرائٹن ڈیپ لرننگ کنٹینرز (DLCs) کی فہرست کے لیے جو SageMaker inference سے تعاون یافتہ ہیں، دیکھیں دستیاب ڈیپ لرننگ کنٹینرز امیجز.
حل جائزہ
مندرجہ ذیل حصوں میں، ہم دستیاب ایک مثال کے ذریعے چلتے ہیں GitHub کے یہ سمجھنے کے لیے کہ ہم تصویر کی درجہ بندی کے لیے ResNet ماڈل کو تعینات کرنے کے لیے GPU پر Triton اور SageMaker MMEs کا استعمال کیسے کر سکتے ہیں۔ مظاہرے کے مقاصد کے لیے، ہم پہلے سے تربیت یافتہ ResNet50 ماڈل استعمال کرتے ہیں جو تصاویر کو 1,000 زمروں میں درجہ بندی کر سکتا ہے۔
شرائط
آپ کو پہلے AWS اکاؤنٹ اور ایک کی ضرورت ہے۔ AWS شناخت اور رسائی کا انتظام (IAM) منتظم صارف۔ AWS اکاؤنٹ ترتیب دینے کے طریقے کے بارے میں ہدایات کے لیے، دیکھیں میں ایک نیا AWS اکاؤنٹ کیسے بناؤں اور چالو کروں؟. IAM ایڈمنسٹریٹر صارف کے ساتھ اپنے اکاؤنٹ کو محفوظ کرنے کے طریقے کے بارے میں ہدایات کے لیے، دیکھیں اپنا پہلا IAM ایڈمن صارف اور صارف گروپ بنانا.
سیج میکر تک رسائی کی ضرورت ہے۔ ایمیزون سادہ اسٹوریج سروس (ایمیزون S3) بالٹی جو آپ کے ماڈل کو اسٹور کرتی ہے۔ ایسی پالیسی کے ساتھ ایک IAM رول بنائیں جو SageMaker کو آپ کی بالٹی تک پڑھنے کی رسائی فراہم کرے۔
اگر آپ نوٹ بک چلانے کا ارادہ رکھتے ہیں۔ ایمیزون سیج میکر اسٹوڈیو، کا حوالہ دیتے ہیں شروع کریں سیٹ اپ ہدایات کیلئے۔
اپنے ماحول کو ترتیب دیں۔
اپنے ماحول کو ترتیب دینے کے لیے، درج ذیل مراحل کو مکمل کریں:
G5.xlarge مثال کے ساتھ SageMaker نوٹ بک مثال لانچ کریں۔
آپ اس مثال کو اسٹوڈیو نوٹ بک مثال پر بھی چلا سکتے ہیں۔
- منتخب کریں صرف اس نوٹ بک مثال کے لیے عوامی گٹ ریپوزٹری کو کلون کریں۔ اور GitHub ذخیرہ کی وضاحت کریں۔ URL.
- جب JupyterLab تیار ہو جائے تو لانچ کریں۔
resnet_pytorch_python_backend_MME.ipynb
کے ساتھ نوٹ بکconda_python3
conda kernel اور قدم بہ قدم اس نوٹ بک کے ذریعے چلائیں۔
انحصار انسٹال کریں اور مطلوبہ لائبریری درآمد کریں۔
انحصار کو انسٹال کرنے اور مطلوبہ لائبریری درآمد کرنے کے لیے درج ذیل کوڈ کا استعمال کریں:
نمونے کے نمونے تیار کریں۔
۔ generate_model_pytorch.sh
ورک اسپیس ڈائرکٹری میں فائل میں پائی ٹارچ ماڈل کو لوڈ اور محفوظ کرنے کے لیے اسکرپٹس شامل ہیں۔ سب سے پہلے، ہم استعمال کرتے ہوئے ایک پہلے سے تربیت یافتہ ResNet50 ماڈل لوڈ کرتے ہیں۔ torchvision
ماڈل پیکج. ہم ماڈل کو بطور اے محفوظ کرتے ہیں۔ model.pt TorchScript آپٹمائزڈ اور سیریلائز فارمیٹ میں فائل۔ TorchScript کو ماڈل فارورڈ پاس کرنے کے لیے مثال کے ان پٹ کی ضرورت ہوتی ہے، اس لیے ہم RGB امیج کا ایک نمونہ 224X224 ڈائمینشن کے تین رنگین چینلز کے ساتھ پاس کرتے ہیں۔ اس ماڈل کو ایکسپورٹ کرنے کا اسکرپٹ پر پایا جا سکتا ہے۔ GitHub repo.
ٹریٹن کے پاس ماڈل ریپوزٹری لے آؤٹ کے لیے مخصوص تقاضے ہیں۔ ٹاپ لیول ماڈل ریپوزٹری ڈائرکٹری کے اندر، ہر ماڈل کی اپنی ذیلی ڈائرکٹری ہوتی ہے جس میں متعلقہ ماڈل کی معلومات ہوتی ہیں۔ ٹرائٹن میں ہر ماڈل ڈائرکٹری میں کم از کم ایک عددی ذیلی ڈائرکٹری ہونی چاہیے جو ماڈل کے ورژن کی نمائندگی کرتی ہو، جیسا کہ درج ذیل مثال میں دکھایا گیا ہے۔ قدر 1 ہمارے Pytorch ماڈل کے ورژن 1 کی نمائندگی کرتی ہے۔ ہر ماڈل کو اس کے مخصوص بیک اینڈ کے ذریعے چلایا جاتا ہے، اس لیے ہر ورژن کی ذیلی ڈائرکٹری میں اس بیک اینڈ کے لیے مطلوبہ ماڈل آرٹفیکٹ ہونا چاہیے۔ کیونکہ ہم ایک PyTorch بیک اینڈ استعمال کر رہے ہیں، a model.pt
فائل کو ورژن ڈائرکٹری میں درکار ہے۔ ماڈل فائلوں کے نام دینے کے کنونشنز کے بارے میں مزید تفصیلات کے لیے، رجوع کریں۔ ماڈل فائلیں۔.
ہر ٹرائٹن ماڈل کو بھی فراہم کرنا ضروری ہے۔ config.pbtxt
ماڈل کی ترتیب کو بیان کرنے والی فائل۔ تشکیل کی ترتیبات کے بارے میں مزید جاننے کے لیے، سے رجوع کریں۔ ماڈل ترتیب. باہر config.pbtxt فائل پسدید کی وضاحت کرتی ہے۔ pytorch_libtorch
، اور ان پٹ اور آؤٹ پٹ ٹینسر کی شکلیں اور ڈیٹا کی قسم کی معلومات کی وضاحت کرتا ہے۔ ہم یہ بھی بتاتے ہیں کہ ہم اس ماڈل کو GPU پر کے ذریعے چلانا چاہتے ہیں۔ instance_group
پیرامیٹر درج ذیل کوڈ دیکھیں:
کے لئے instance_group
config، جب صرف ایک گنتی کی وضاحت کی جاتی ہے، Triton ہر دستیاب GPU ڈیوائس پر ماڈل کی x گنتی لوڈ کرتا ہے۔ اگر آپ یہ کنٹرول کرنا چاہتے ہیں کہ آپ کے ماڈلز کو کون سے GPU ڈیوائسز پر لوڈ کرنا ہے، تو آپ GPU ڈیوائس IDs کی وضاحت کرکے واضح طور پر ایسا کرسکتے ہیں۔ نوٹ کریں کہ MMEs کے لیے، واضح طور پر اس طرح کے GPU ڈیوائس آئی ڈیز کی وضاحت کرنے سے میموری کا انتظام خراب ہو سکتا ہے کیونکہ متعدد ماڈلز واضح طور پر ایک ہی GPU ڈیوائس کو مختص کرنے کی کوشش کر سکتے ہیں۔
اس کے بعد ہم ماڈل آرٹفیکٹس کو tar.gz کرتے ہیں، جو SageMaker کی طرف سے متوقع فارمیٹ ہے:
اب جب کہ ہم نے ماڈل کے نمونے Amazon S3 پر اپ لوڈ کر دیے ہیں، ہم SageMaker ملٹی ماڈل اینڈ پوائنٹ بنا سکتے ہیں۔
ماڈل تعینات کریں۔
اب ہم Triton ماڈل کو SageMaker MME پر تعینات کرتے ہیں۔ کنٹینر کی تعریف میں، کی وضاحت کریں۔ ModelDataUrl
S3 ڈائرکٹری کی وضاحت کرنے کے لیے جس میں وہ تمام ماڈلز ہوں جنہیں SageMaker MME لوڈ کرنے اور پیشین گوئیاں پیش کرنے کے لیے استعمال کرے گا۔ موڈ پر سیٹ کریں۔ MultiModel
اس بات کی نشاندہی کرنے کے لیے کہ SageMaker MME کنٹینر کی تفصیلات کے ساتھ اختتامی نقطہ بنائے گا۔ ہم نے کنٹینر کو ایک تصویر کے ساتھ سیٹ کیا ہے جو GPU کے ساتھ MMEs کی تعیناتی کی حمایت کرتا ہے (MME کا حوالہ دیں کنٹینر کی تصاویر مزید تفصیلات کے لیے). نوٹ کریں کہ پیرامیٹر mode
کرنے کے لئے مقرر کیا گیا ہے MultiModel
. یہ کلیدی تفریق ہے۔
SageMaker Boto3 کلائنٹ کا استعمال کرتے ہوئے، کا استعمال کرتے ہوئے ماڈل بنائیں تخلیق_ماڈل API ہم کنٹینر کی تعریف کو پاس کرتے ہیں۔ create_model
API کے ساتھ ModelName
اور ExecutionRoleArn
:
کا استعمال کرتے ہوئے ایم ایم ای کنفیگریشنز بنائیں create_endpoint_config Boto3 API۔ میں ایک تیز رفتار GPU کمپیوٹنگ مثال کی وضاحت کریں۔ InstanceType
(اس پوسٹ کے لیے، ہم ایک g4dn.4xlarge مثال استعمال کرتے ہیں)۔ ہم کم از کم دو مثالوں کے ساتھ اپنے اختتامی نقطوں کو ترتیب دینے کی تجویز کرتے ہیں۔ یہ SageMaker کو ماڈلز کے لیے متعدد دستیابی زونز میں پیشین گوئیوں کا ایک انتہائی دستیاب سیٹ فراہم کرنے کی اجازت دیتا ہے۔
پچھلے اختتامی نقطہ کی ترتیب کا استعمال کرتے ہوئے، ہم ایک نیا SageMaker اینڈ پوائنٹ بناتے ہیں اور تعیناتی کے ختم ہونے کا انتظار کرتے ہیں۔ حیثیت بدل جائے گی۔ InService
جب تعیناتی کامیاب ہو جاتی ہے۔
ماڈل کو طلب کریں اور پیشین گوئیاں چلائیں۔
مندرجہ ذیل طریقہ ایک نمونے کی تصویر کو تبدیل کرتا ہے جسے ہم پے لوڈ میں اندازہ لگانے کے لیے استعمال کریں گے جسے ٹرائیٹن سرور کو اندازہ لگانے کے لیے بھیجا جا سکتا ہے۔
۔ tritonclient
پیکیج تفصیلات کی تفصیلات جاننے کے بغیر پے لوڈ بنانے کے لیے یوٹیلیٹی طریقے فراہم کرتا ہے۔ ہم اپنی قیاس آرائی کی درخواست کو بائنری فارمیٹ میں تبدیل کرنے کے لیے درج ذیل طریقے استعمال کرتے ہیں، جو تخمینہ کے لیے کم تاخیر فراہم کرتا ہے:
اختتامی نقطہ کامیابی کے ساتھ بننے کے بعد، ہم MME کو استعمال کرتے ہوئے تخمینہ کی درخواستیں بھیج سکتے ہیں۔ invoke_enpoint
API ہم وضاحت کرتے ہیں۔ TargetModel
انووکیشن کال میں اور ہر ماڈل کی قسم کے لیے پے لوڈ میں پاس کریں:
مزید برآں، SageMaker MMEs استعمال کی نگرانی کے لیے مثال کی سطح کے میٹرکس فراہم کرتے ہیں۔ ایمیزون کلاؤڈ واچ:
- لوڈ شدہ ماڈل کاؤنٹ - کنٹینرز میں بھری ہوئی ماڈلز کی تعداد
- GPU استعمال - کنٹینرز کے ذریعہ استعمال ہونے والے GPU یونٹوں کا فیصد
- GPUMemoryUtilization - کنٹینرز کے ذریعہ استعمال کردہ GPU میموری کا فیصد
- ڈسک کا استعمال - کنٹینرز کے ذریعہ استعمال ہونے والی ڈسک کی جگہ کا فیصد
SageMaker MMEs ماڈل لوڈنگ میٹرکس بھی فراہم کرتا ہے جیسے کہ درج ذیل:
- ماڈل لوڈنگ ویٹ ٹائم - ماڈل کے ڈاؤن لوڈ یا لوڈ ہونے کے لیے وقت کا وقفہ
- ماڈل ان لوڈنگ ٹائم - ماڈل کو کنٹینر سے اتارنے کے لیے وقت کا وقفہ
- ماڈل ڈاؤن لوڈنگ ٹائم - ایمیزون S3 سے ماڈل ڈاؤن لوڈ کرنے کا وقت
- ماڈل کیچ ہٹ - ماڈل کی درخواستوں کی تعداد جو ماڈل کی درخواست کی سطح کی بصیرت حاصل کرنے کے لیے پہلے سے ہی کنٹینر پر بھری ہوئی ہیں۔
مزید تفصیلات کے لئے ملاحظہ کریں Amazon CloudWatch کے ساتھ Amazon SageMaker کی نگرانی کریں۔.
صاف کرو
چارجز سے بچنے کے لیے، ماڈل اینڈ پوائنٹ کو حذف کریں:
بہترین طریقوں
PyTorch بیک اینڈ استعمال کرتے وقت، زیادہ تر اصلاحی فیصلے آپ کے کام کے بوجھ میں تاخیر یا تھرو پٹ کی ضروریات پر منحصر ہوں گے اور آپ کس ماڈل فن تعمیر کو استعمال کر رہے ہیں۔ عام طور پر، کارکردگی کو بہتر بنانے کے لیے ترتیب کے پیرامیٹرز کا ڈیٹا پر مبنی موازنہ کرنے کے لیے، آپ کو Triton's کارکردگی کا تجزیہ کرنے والا. اس ٹول کے ساتھ، آپ کو مندرجہ ذیل فیصلے کی منطق کو اپنانا چاہیے:
- تجربہ کریں اور چیک کریں کہ آیا آپ کے ماڈل فن تعمیر کو a میں تبدیل کیا جا سکتا ہے۔ TensorRT انجن اور ٹرائٹن کے ساتھ تعینات TensorRT بیک اینڈ. NVIDIA GPUs کے ساتھ ماڈلز کو تعینات کرنے کا یہ افضل طریقہ ہے کیونکہ TensorRT ماڈل فارمیٹ اور رن ٹائم دونوں بنیادی ہارڈ ویئر کی صلاحیتوں کا بہترین استعمال کرتے ہیں۔
- ہمیشہ سیٹ
INFERENCE_MODE
کرنے کے لئےtrue
خالص تخمینہ کے کام کے بوجھ کے لیے جہاں آٹوگراڈ کیلکولیشن کی ضرورت نہیں ہے۔ - اگر SMEs کو تعینات کر رہے ہیں تو، مناسب طریقے سے وضاحت کر کے ہارڈ ویئر کے استعمال کو زیادہ سے زیادہ کریں۔ مثال کے طور پر گروپ کی ترتیب دستیاب GPU میموری یا RAM کے مطابق (صحیح سائز تلاش کرنے کے لیے پرفارمنس اینالائزر ٹول استعمال کریں)۔
مزید MME مخصوص بہترین طریقوں کے لیے، رجوع کریں۔ ایمیزون سیج میکر میں ماڈل ہوسٹنگ پیٹرن، حصہ 3: ایمیزون سیج میکر ملٹی ماڈل اینڈ پوائنٹس کے ساتھ ملٹی ماڈل انفرنس کو چلائیں اور بہتر بنائیں.
نتیجہ
اس پوسٹ میں، ہم نے ٹرائٹن انفرنس سرور کے ذریعے تعاون یافتہ PyTorch بیک اینڈ میں گہرائی تک رسائی حاصل کی، جو CPU اور GPU پر مبنی دونوں ماڈلز کے لیے سرعت فراہم کرتا ہے۔ ہم نے کنفیگریشن کے کچھ پیرامیٹرز سے گزرے جنہیں آپ ماڈل کی کارکردگی کو بہتر بنانے کے لیے ایڈجسٹ کر سکتے ہیں۔ آخر میں، ہم نے ایک واک تھرو فراہم کیا۔ مثال کے طور پر نوٹ بک SageMaker ملٹی ماڈل اینڈ پوائنٹ کی تعیناتی کا مظاہرہ کرنے کے لیے۔ اسے ضرور آزمائیں!
مصنفین کے بارے میں
نیلم کوشیا۔ AWS میں ایک انٹرپرائز سلوشنز آرکیٹیکٹ ہے۔ سوفٹ ویئر انجینئرنگ میں پس منظر کے ساتھ، وہ آرکیٹیکچر کے کردار میں آرگنائیلی طور پر چلی گئیں۔ اس کی موجودہ توجہ انٹرپرائز کے صارفین کو AI/ML ہونے کی گہرائی کے ساتھ اسٹریٹجک کاروباری نتائج کے لیے کلاؤڈ اپنانے کے سفر میں مدد کر رہی ہے۔ وہ جدت اور شمولیت کے بارے میں پرجوش ہے۔ اپنے فارغ وقت میں، وہ پڑھنے اور باہر رہنے سے لطف اندوز ہوتی ہے۔
جواؤ مورا سپین میں مقیم AWS میں AI/ML ماہر حل آرکیٹیکٹ ہے۔ وہ گہرے سیکھنے کے ماڈل کی تربیت اور انفرنس آپٹیمائزیشن کے ساتھ صارفین کی مدد کرتا ہے، اور زیادہ وسیع پیمانے پر AWS پر بڑے پیمانے پر ML پلیٹ فارم بنانے میں۔ وہ ایم ایل اسپیشلائزڈ ہارڈویئر اور کم کوڈ ایم ایل سلوشنز کا ایک فعال حامی بھی ہے۔
وویک گنگاسنی۔ ایمیزون ویب سروسز میں ایک سینئر مشین لرننگ سلوشنز آرکیٹیکٹ ہیں۔ وہ مشین لرننگ اسٹارٹ اپس کے ساتھ کام کرتا ہے تاکہ AWS پر AI/ML ایپلیکیشنز کی تعمیر اور تعیناتی کی جا سکے۔ اس کی توجہ فی الحال MLOps، ML inference، اور Low-code ML کے حل فراہم کرنے پر ہے۔ اس نے مختلف ڈومینز میں پراجیکٹس پر کام کیا ہے، جن میں نیچرل لینگویج پروسیسنگ اور کمپیوٹر ویژن شامل ہیں۔
- SEO سے چلنے والا مواد اور PR کی تقسیم۔ آج ہی بڑھا دیں۔
- پلیٹوآئ اسٹریم۔ ویب 3 ڈیٹا انٹیلی جنس۔ علم میں اضافہ۔ یہاں تک رسائی حاصل کریں۔
- ایڈریین ایشلے کے ساتھ مستقبل کا نقشہ بنانا۔ یہاں تک رسائی حاصل کریں۔
- PREIPO® کے ساتھ PRE-IPO کمپنیوں میں حصص خریدیں اور بیچیں۔ یہاں تک رسائی حاصل کریں۔
- ماخذ: https://aws.amazon.com/blogs/machine-learning/host-ml-models-on-amazon-sagemaker-using-triton-cv-model-with-pytorch-backend/
- : ہے
- : ہے
- : نہیں
- :کہاں
- $UP
- 000
- 1
- 10
- 100
- 13
- 17
- 224
- 23
- 40
- 7
- 8
- 9
- a
- قابلیت
- ہمارے بارے میں
- تیز
- تک رسائی حاصل
- کے مطابق
- اکاؤنٹ
- کے پار
- فعال
- شامل کیا
- اس کے علاوہ
- ایڈیشنل
- منتظم
- اپنانے
- منہ بولابیٹا بنانے
- فائدہ
- کے بعد
- معاہدے
- AI / ML
- تمام
- کی اجازت
- اجازت دے رہا ہے
- کی اجازت دیتا ہے
- ساتھ
- پہلے ہی
- بھی
- اگرچہ
- ایمیزون
- ایمیزون سیج میکر
- ایمیزون ویب سروسز
- an
- اور
- کوئی بھی
- اے پی آئی
- ایپلی کیشنز
- کا اطلاق کریں
- مناسب
- فن تعمیر
- کیا
- رقبہ
- AS
- جمع
- At
- آٹو
- دستیابی
- دستیاب
- سے اجتناب
- AWS
- پسدید
- پس منظر
- متوازن
- کی بنیاد پر
- بنیاد
- BE
- کیونکہ
- اس سے پہلے
- پیچھے
- کیا جا رہا ہے
- BEST
- بہترین طریقوں
- بہتر
- کے درمیان
- جسم
- دونوں
- موٹے طور پر
- تعمیر
- عمارت
- کاروبار
- by
- C ++
- کیشے
- حساب
- فون
- کہا جاتا ہے
- کر سکتے ہیں
- صلاحیتوں
- اہلیت
- قبضہ
- کیس
- مقدمات
- اقسام
- کیونکہ
- کچھ
- تبدیل
- تبدیل کر دیا گیا
- چینل
- خصوصیات
- بوجھ
- چیک کریں
- منتخب کریں
- درجہ بندی
- درجہ بندی کرنا۔
- صفائی
- کلائنٹ
- بادل
- بادل اپنانا
- کوڈ
- سردی
- رنگ
- مجموعہ
- آتا ہے
- موازنہ
- مکمل
- پیچیدہ
- گنتی
- کمپیوٹنگ
- کمپیوٹر
- کمپیوٹر ویژن
- کمپیوٹنگ
- حالات
- ترتیب
- غور کریں
- خیالات
- پر مشتمل ہے
- کنٹینر
- کنٹینر
- پر مشتمل ہے
- کنٹرول
- تبدیل
- اسی کے مطابق
- قیمت
- تخلیق
- بنائی
- معیار
- اہم
- موجودہ
- اس وقت
- اپنی مرضی کے
- گاہکوں
- اعداد و شمار
- اعداد و شمار پر مبنی ہے
- فیصلہ
- فیصلے
- گہری
- گہری سیکھنے
- گہرے
- پہلے سے طے شدہ
- کی وضاحت
- وضاحت کرتا ہے
- وضاحت
- ترسیل
- مظاہرہ
- تعیناتی
- تعینات
- تعینات
- تعیناتی
- گہرائی
- ڈیزائن
- تفصیلات
- اس بات کا تعین
- آلہ
- کے الات
- مختلف
- فرق کرنے والا
- طول و عرض
- do
- ڈومینز
- نہیں
- کبوتر
- نیچے
- ڈاؤن لوڈ، اتارنا
- دو
- کے دوران
- متحرک
- ہر ایک
- اثر
- یا تو
- کو چالو کرنے کے
- کو فعال کرنا
- اختتام پوائنٹ
- انجن
- انجنیئرنگ
- انجن
- انٹرپرائز
- ماحولیات
- ماحول
- ضروری
- بھی
- مثال کے طور پر
- باہر نکلنا
- توقع ہے
- توقعات
- توقع
- حقیقت یہ ہے
- کافی
- خصوصیات
- میدان
- اعداد و شمار
- فائل
- فائلوں
- آخر
- مل
- ختم
- پہلا
- لچک
- توجہ مرکوز
- توجہ مرکوز
- کے بعد
- کے لئے
- فارمیٹ
- آگے
- ملا
- فریم ورک
- فریم ورک
- سے
- جنرل
- پیدا
- حاصل
- جاؤ
- GitHub کے
- دی
- فراہم کرتا ہے
- GPU
- GPUs
- گراف
- گرافکس
- گروپ
- گروپ کا
- ہارڈ ویئر
- ہے
- ہونے
- he
- مدد
- مدد
- مدد کرتا ہے
- اس کی
- اعلی سطحی
- انتہائی
- میزبان
- ہوسٹنگ
- کس طرح
- کیسے
- HTML
- HTTP
- HTTPS
- i
- شناختی
- شناخت
- if
- تصویر
- تصویر کی درجہ بندی
- تصاویر
- اثر
- اثرات
- عمل
- درآمد
- درآمدات
- کو بہتر بنانے کے
- بہتر
- in
- سمیت
- شمولیت
- اشارہ کرتے ہیں
- انفرادی طور پر
- معلومات
- ابتدائی
- جدت طرازی
- ان پٹ
- آدانوں
- انسٹال
- مثال کے طور پر
- ہدایات
- میں
- مسائل
- IT
- میں
- جیٹ
- سفر
- فوٹو
- JSON
- رکھی
- کلیدی
- بچے
- جان
- زبان
- بڑے پیمانے پر
- تاخیر
- شروع
- لے آؤٹ
- قیادت
- جانیں
- سیکھنے
- کم سے کم
- لمبائی
- سطح
- سطح
- لائبریری
- کی طرح
- لسٹ
- لوڈ
- لوڈ کر رہا ہے
- بوجھ
- منطق
- منطقی
- دیکھو
- تلاش
- لو
- کم
- مشین
- مشین لرننگ
- برقرار رکھنے کے
- اہم
- اکثریت
- بنا
- بنانا
- انتظام
- زیادہ سے زیادہ
- مئی..
- سے ملو
- یاد داشت
- میٹا ڈیٹا
- طریقہ
- طریقوں
- پیمائش کا معیار
- شاید
- ML
- ایم ایل اوپس
- موڈ
- ماڈل
- ماڈل
- طریقوں
- کی نگرانی
- زیادہ
- سب سے زیادہ
- زیادہ تر
- ملٹی ماڈل اینڈ پوائنٹ
- ایک سے زیادہ
- ضروری
- نام
- نام
- قدرتی
- قدرتی زبان عملیات
- ضرورت ہے
- ضروریات
- منفی طور پر
- نیٹ ورک
- نیٹ ورکنگ
- نیٹ ورک
- نیند نیٹ ورک
- نئی
- نہیں
- نوٹ بک
- اب
- تعداد
- عجیب
- NVIDIA
- اشیاء
- حاصل
- of
- on
- ایک
- صرف
- آپریشنز
- اصلاح کے
- کی اصلاح کریں
- اصلاح
- آپشنز کے بھی
- or
- حکم
- نامیاتی طور پر
- دیگر
- ہمارے
- باہر
- نتائج
- باہر
- پیداوار
- پر
- خود
- پیکج
- پیرامیٹر
- پیرامیٹرز
- حصہ
- منظور
- گزرتا ہے
- جذباتی
- پیٹرن
- فیصد
- کارکردگی
- کارکردگی کا مظاہرہ
- منصوبہ
- پلیٹ فارم
- پلیٹ فارم
- پلاٹا
- افلاطون ڈیٹا انٹیلی جنس
- پلیٹو ڈیٹا
- پالیسیاں
- پالیسی
- غریب
- پوسٹ
- طاقت
- طریقوں
- پیش قیاسی
- پیشن گوئی
- افضل
- تیار
- پرائمری
- پروسیسنگ
- منصوبوں
- مناسب
- مناسب طریقے سے
- پروجیکٹ
- فراہم
- فراہم
- فراہم کرتا ہے
- عوامی
- مقاصد
- ازگر
- pytorch
- RAM
- خام
- پڑھیں
- پڑھنا
- تیار
- اصل وقت
- وجوہات
- سفارش
- درج
- کو کم
- انحصار کرو
- ذخیرہ
- نمائندگی
- نمائندگی
- کی نمائندگی کرتا ہے
- درخواست
- درخواستوں
- کی ضرورت
- ضرورت
- ضروریات
- کی ضرورت ہے
- جواب
- جواب
- نتیجہ
- واپسی
- RGB
- ٹھیک ہے
- کردار
- رن
- چل رہا ہے
- sagemaker
- سیج میکر کا اندازہ
- اسی
- محفوظ کریں
- سکیلنگ
- شیڈولنگ
- سکرپٹ
- سیکشنز
- محفوظ بنانے
- دیکھنا
- بھیجنے
- سینئر
- بھیجا
- علیحدہ
- خدمت
- سروس
- سروسز
- خدمت
- مقرر
- قائم کرنے
- ترتیبات
- سیٹ اپ
- کئی
- سائز
- سیکنڈ اور
- وہ
- ہونا چاہئے
- دکھایا گیا
- شوز
- اسی طرح
- سادہ
- سادگی
- صرف
- ایک
- سائز
- سائز
- سست
- ایس ایم ایز
- So
- سافٹ ویئر کی
- سافٹ ویئر انجینئرنگ
- حل
- کچھ
- خلا
- سپین
- ماہر
- مخصوص
- تصریح
- وضاحتیں
- مخصوص
- تیزی
- خرچ
- شروع کریں
- سترٹو
- حالت
- درجہ
- مستحکم
- مرحلہ
- مراحل
- ابھی تک
- ذخیرہ
- پردہ
- براہ راست
- حکمت عملی
- اسٹریٹجک کاروبار
- سخت
- ساخت
- سٹوڈیو
- کامیاب
- کامیابی کے ساتھ
- اس طرح
- موزوں
- حمایت
- تائید
- کی حمایت کرتا ہے
- لے لو
- ٹیسسرور
- کہ
- ۔
- علاقہ
- کے بارے میں معلومات
- ان
- ان
- تو
- یہ
- اس
- ان
- تین
- کے ذریعے
- تھرو پٹ
- وقت
- کرنے کے لئے
- رواداری
- کے آلے
- اوپر کی سطح
- ٹریننگ
- تبدیل
- تبدیل
- تبادلوں
- رخ
- سچ
- کوشش
- دو
- قسم
- بنیادی
- سمجھ
- منفرد
- یونٹس
- اپ لوڈ کردہ
- استعمال
- استعمال کی شرائط
- استعمال کیس
- استعمال کیا جاتا ہے
- رکن کا
- استعمال
- کا استعمال کرتے ہوئے
- کی افادیت
- قیمت
- مختلف
- ورژن
- بہت
- کی طرف سے
- نقطہ نظر
- انتظار
- واک تھرو
- چاہتے ہیں
- راستہ..
- we
- ویب
- ویب خدمات
- چلا گیا
- کیا
- جب
- چاہے
- جس
- جبکہ
- ڈبلیو
- وکیپیڈیا
- گے
- ساتھ
- کے اندر
- بغیر
- کام
- کام کیا
- کام کرتا ہے
- لپیٹو
- X
- تم
- اور
- زیفیرنیٹ
- علاقوں