PlatoBlockchain ڈیٹا انٹیلی جنس کی جانچ کے لیے Amazon SageMaker پر اپنے ماڈلز کی تعیناتی میں لگنے والے وقت کو کم کریں۔ عمودی تلاش۔ عی

اپنے ماڈلز کو Amazon SageMaker پر جانچ کے لیے تعینات کرنے میں لگنے والے وقت کو کم کریں۔

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

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

حل جائزہ

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

یہ Python لائبریری ڈیٹا سائنسدانوں کو SageMaker پر تیزی سے شروع کرنے کے لیے ایک سادہ انٹرفیس فراہم کرتی ہے، بغیر کسی نچلے درجے کی SageMaker فعالیت کو جاننے کی ضرورت کے۔

اگر آپ کے پاس اپنے پسندیدہ IDE کا استعمال کرتے ہوئے مقامی طور پر تربیت یافتہ ماڈلز ہیں اور آپ کلاؤڈ کے پیمانے سے فائدہ اٹھانا چاہتے ہیں، تو آپ اپنے ماڈل کو SageMaker پر تعینات کرنے کے لیے اس لائبریری کا استعمال کر سکتے ہیں۔ سیج میکر کے ساتھ، کلاؤڈ بیسڈ ایم ایل پلیٹ فارم کے تمام اسکیلنگ فوائد کے علاوہ، آپ کو مقصد سے تیار کردہ تربیتی ٹولز (تقسیم شدہ تربیت، ہائپر پیرامیٹر ٹیوننگ)، تجرباتی انتظام، ماڈل مینجمنٹ، تعصب کا پتہ لگانے، ماڈل کی وضاحت، اور بہت سے دوسرے تک رسائی حاصل ہے۔ ایسی صلاحیتیں جو ایم ایل لائف سائیکل کے کسی بھی پہلو میں آپ کی مدد کر سکتی ہیں۔ آپ ML کے لیے تین سب سے مشہور فریم ورکس میں سے انتخاب کر سکتے ہیں: Scikit-learn، PyTorch، اور TensorFlow، اور اپنی مرضی کے مطابق کمپیوٹ کا انتخاب کر سکتے ہیں۔ ڈیفالٹس راستے میں فراہم کیے جاتے ہیں تاکہ اس لائبریری کے صارفین پیچیدہ فیصلے کرنے یا نئے تصورات سیکھنے کی ضرورت کے بغیر اپنے ماڈلز کو تعینات کر سکیں۔ اس پوسٹ میں، ہم آپ کو دکھاتے ہیں کہ اس لائبریری کے ساتھ کیسے شروعات کی جائے اور SageMaker ہوسٹنگ پر اپنے ML ماڈلز کی تعیناتی کو بہتر بنایا جائے۔

لائبریری میں پایا جا سکتا ہے GitHub ذخیرہ.

سیج میکر مائیگریشن ٹول کٹ

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

۔ SageMakerMigration کلاس سیج میکر APIs پر اعلی سطحی تجریدوں پر مشتمل ہے جو آپ کے ماڈل کو SageMaker میں تعینات کرنے کے لیے درکار اقدامات کو نمایاں طور پر کم کر دیتا ہے، جیسا کہ مندرجہ ذیل تصویر میں دکھایا گیا ہے۔ یہ تجربہ کے لیے ہے تاکہ ڈویلپرز جلدی شروع کر سکیں اور SageMaker کی جانچ کر سکیں۔ یہ پیداوار کی منتقلی کے لیے نہیں ہے۔

Scikit-learn، PyTorch، اور TensorFlow ماڈلز کے لیے، یہ لائبریری تربیت یافتہ ماڈلز کو SageMaker ریئل ٹائم اینڈ پوائنٹ یا سرور لیس اینڈ پوائنٹ پر تعینات کرنے میں معاونت کرتی ہے۔ سیج میکر میں تخمینہ کے اختیارات کے بارے میں مزید جاننے کے لیے، رجوع کریں۔ اندازہ کے لیے ماڈلز تعینات کریں۔.

ریئل ٹائم بمقابلہ سرور لیس اینڈ پوائنٹس

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

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

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

اپنا تربیت یافتہ ماڈل اور انفرنس اسکرپٹ تیار کریں۔

اس ماڈل کی شناخت کرنے کے بعد جسے آپ SageMaker پر تعینات کرنا چاہتے ہیں، آپ کو یقینی بنانا چاہیے کہ ماڈل SageMaker کو صحیح فارمیٹ میں پیش کیا گیا ہے۔ سیج میکر اینڈ پوائنٹس عام طور پر دو اجزاء پر مشتمل ہوتے ہیں: تربیت یافتہ ماڈل آرٹفیکٹ (.pth، .pkl، وغیرہ) اور ایک انفرنس اسکرپٹ۔ تخمینہ اسکرپٹ ہمیشہ لازمی نہیں ہوتا ہے، لیکن اگر فراہم نہیں کیا جاتا ہے، تو آپ جو سرونگ کنٹینر استعمال کر رہے ہیں اس کے ڈیفالٹ ہینڈلرز لاگو ہوتے ہیں۔ یہ اسکرپٹ فراہم کرنا ضروری ہے اگر آپ کو اندازہ لگانے کے لیے اپنی ان پٹ/آؤٹ پٹ فعالیت کو حسب ضرورت بنانا ہو۔

تربیت یافتہ ماڈل کا نمونہ محض ایک محفوظ کردہ Scikit-learn، PyTorch، یا TensorFlow ماڈل ہے۔ Scikit-learn کے لیے، یہ عام طور پر ایک اچار کی فائل ہے، PyTorch کے لیے یہ ایک .pt یا .pth فائل ہے، اور TensorFlow کے لیے یہ اثاثوں، .pb فائلوں اور دیگر متغیرات کے ساتھ ایک فولڈر ہے۔

عام طور پر، آپ کو یہ کنٹرول کرنے کی ضرورت ہوتی ہے کہ آپ کا ماڈل کس طرح ان پٹ پر کارروائی کرتا ہے اور انفرنس کو انجام دیتا ہے، اور آپ کے جواب کے لیے آؤٹ پٹ فارمیٹ کو کنٹرول کرتا ہے۔ SageMaker کے ساتھ، آپ ایک فراہم کر سکتے ہیں۔ تخمینہ سکرپٹ اس حسب ضرورت کو شامل کرنے کے لیے۔ SageMaker کے ذریعہ استعمال ہونے والی کسی بھی انفرنس اسکرپٹ میں درج ذیل چار ہینڈلر فنکشنز میں سے ایک یا زیادہ ہونا ضروری ہے: model_fn, input_fn, predict_fn، اور output_fn.

نوٹ کریں کہ یہ چار فنکشنز پر لاگو ہوتے ہیں۔ پی ٹورچ اور سکیٹ سیکھنا کنٹینرز خاص طور پر. TensorFlow میں قدرے مختلف ہینڈلرز ہیں کیونکہ یہ ان کے ساتھ مربوط ہے۔ TensorFlow سرونگ. TensorFlow کے ساتھ ایک انفرنس اسکرپٹ کے لیے، آپ کے پاس دو ہیں۔ ماڈل ہینڈلرز: input_handler اور output_handler۔ ایک بار پھر، ان کا وہی پری پروسیسنگ اور پوسٹ پروسیسنگ مقصد ہے جس کے ساتھ آپ کام کر سکتے ہیں، لیکن ان کے ساتھ ضم کرنے کے لیے انہیں قدرے مختلف طریقے سے ترتیب دیا گیا ہے۔ TensorFlow سرونگ. PyTorch ماڈلز کے لیے، model_fn ایک لازمی فنکشن ہے جس کا انفرنس اسکرپٹ میں ہونا ضروری ہے۔

ماڈل_ ایف این

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

def model_fn(model_dir):
    model = Your_Model()
    with open(os.path.join(model_dir, 'model.pth'), 'rb') as f:
        model.load_state_dict(torch.load(f))
    return model

فریم ورک اور ماڈل کی قسم پر منحصر ہے، یہ کوڈ تبدیل ہو سکتا ہے، لیکن فنکشن کو ایک ابتدائی ماڈل واپس کرنا چاہیے۔

input_fn

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

def input_fn(request_body, request_content_type):
    """An input_fn that loads a pickled tensor"""
    if request_content_type == 'application/python-pickle':
        return torch.load(BytesIO(request_body))
    else:
        # Handle other content-types here or raise an Exception
        # if the content type is not supported.
        pass

۔ request_body ماڈل سے تخمینہ پیدا کرنے کے لیے استعمال کیے جانے والے ڈیٹا پر مشتمل ہے اور اسے اس فنکشن میں پارس کیا جاتا ہے تاکہ یہ مطلوبہ فارمیٹ میں ہو۔

predict_fn

یہ تیسرا فنکشن ہے جسے اس وقت کہا جاتا ہے جب آپ کے ماڈل کو طلب کیا جاتا ہے۔ یہ فنکشن پہلے سے پروسیس شدہ ان پٹ ڈیٹا لیتا ہے جس سے واپس کیا گیا ہے۔ input_fn اور اس سے لوٹا ہوا ماڈل استعمال کرتا ہے۔ model_fn پیشن گوئی کرنے کے لئے. مثال کے طور پر:

def predict_fn(input_data, model):
    device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
    model.to(device)
    model.eval()
    with torch.no_grad():
        return model(input_data.to(device))

آپ اختیاری طور پر شامل کر سکتے ہیں۔ output_fn کے آؤٹ پٹ کو پارس کرنے کے لیے predict_fn اسے کلائنٹ کو واپس کرنے سے پہلے۔ فنکشن دستخط ہے def output_fn(prediction, content_type).

اپنے پہلے سے تربیت یافتہ ماڈل کو SageMaker میں منتقل کریں۔

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

#SKLearn Model

model_folder/
    model.pkl
    inference.py
    
# Tensorflow Model
model_folder/
    0000001/
        assets/
        variables/
        keras_metadata.pb
        saved_model.pb
    inference.py
    
# PyTorch Model
model_folder/
    model.pth
    inference.py

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

from sagemaker_migration import frameworks as fwk

if __name__ == "__main__":
    ''' '''
    sk_model = fwk.SKLearnModel(
        version = "0.23-1", 
        model_data = 'model.joblib',
        inference_option = 'real-time',
        inference = 'inference.py',
        instance_type = 'ml.m5.xlarge'
    )
    sk_model.deploy_to_sagemaker()

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

نتیجہ

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

دیکھو GitHub ذخیرہ سیج میکر مائیگریشن ٹول کٹ کو استعمال کرنے کے بارے میں مزید دریافت کرنے کے لیے، اور پروجیکٹ میں شامل کرنے کے لیے مثالیں یا فیچر کی درخواستیں بھی دینے کے لیے آزاد محسوس کریں!


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

PlatoBlockchain ڈیٹا انٹیلی جنس کی جانچ کے لیے Amazon SageMaker پر اپنے ماڈلز کی تعیناتی میں لگنے والے وقت کو کم کریں۔ عمودی تلاش۔ عیکریٹ تھڈاکا ایک ایم ایل سلوشنز آرکیٹیکٹ ہے جو ایمیزون سیج میکر سروس SA ٹیم میں کام کر رہا ہے۔ AWS میں شامل ہونے سے پہلے، کریٹ نے ابتدائی مرحلے کے AI سٹارٹ اپس میں کام کرنے میں وقت گزارا جس کے بعد کچھ وقت AI ریسرچ، MLOps اور تکنیکی قیادت میں مختلف کرداروں میں مشاورت میں گزارا۔

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

ٹائم اسٹیمپ:

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