ایمیزون سیج میکر کے ساتھ ہزاروں ایم ایل ماڈلز کی اسکیل ٹریننگ اور انفرنس | ایمیزون ویب سروسز

ایمیزون سیج میکر کے ساتھ ہزاروں ایم ایل ماڈلز کی اسکیل ٹریننگ اور انفرنس | ایمیزون ویب سروسز

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

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

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

کیس استعمال کریں: توانائی کی پیشن گوئی

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

تیار کردہ ڈیٹاسیٹ میں تین خصوصیات ہیں:

  • گاہک کی شناخت - یہ 0-999 کے درمیان ہر صارف کے لیے ایک عددی شناخت کنندہ ہے۔
  • ٹائمسٹیمپ - یہ ایک تاریخ/وقت کی قدر ہے جو اس وقت کی نشاندہی کرتی ہے جس میں توانائی کی کھپت کی پیمائش کی گئی تھی۔ ٹائم اسٹیمپ تصادفی طور پر کوڈ میں بتائی گئی شروعات اور اختتامی تاریخوں کے درمیان بنتے ہیں۔
  • کھپت - یہ ایک فلوٹ ویلیو ہے جو توانائی کی کھپت کی نشاندہی کرتی ہے، جسے کچھ صوابدیدی یونٹ میں ماپا جاتا ہے۔ کھپت کی قدریں تصادفی طور پر 0-1,000 کے درمیان سائنوسائیڈل موسم کے ساتھ پیدا ہوتی ہیں۔

حل جائزہ

ہزاروں ایم ایل ماڈلز کو موثر طریقے سے تربیت دینے اور پیش کرنے کے لیے، ہم سیج میکر کی درج ذیل خصوصیات استعمال کر سکتے ہیں:

  • سیج میکر پروسیسنگ - سیج میکر پروسیسنگ ایک مکمل طور پر منظم ڈیٹا کی تیاری کی خدمت ہے جو آپ کو اپنے ان پٹ ڈیٹا پر ڈیٹا پروسیسنگ اور ماڈل کی تشخیص کے کام انجام دینے کے قابل بناتی ہے۔ آپ سیج میکر پروسیسنگ کو تربیت اور تخمینہ کے لیے درکار فارمیٹ میں تبدیل کرنے کے ساتھ ساتھ اپنے ماڈلز کے بیچ اور آن لائن تشخیصات کو چلانے کے لیے استعمال کر سکتے ہیں۔
  • سیج میکر تربیتی نوکریاں - آپ مختلف الگورتھم اور ان پٹ ڈیٹا کی اقسام پر ماڈلز کو تربیت دینے کے لیے SageMaker ٹریننگ جابز استعمال کر سکتے ہیں، اور تربیت کے لیے درکار کمپیوٹ وسائل کی وضاحت کر سکتے ہیں۔
  • سیج میکر ایم ایم ایز - ملٹی ماڈل اینڈ پوائنٹس آپ کو ایک ہی اینڈ پوائنٹ پر متعدد ماڈلز کی میزبانی کرنے کے قابل بناتے ہیں، جو ایک API کا استعمال کرتے ہوئے متعدد ماڈلز سے پیشین گوئیاں پیش کرنا آسان بناتا ہے۔ SageMaker MMEs متعدد ماڈلز سے پیشین گوئیاں پیش کرنے کے لیے درکار اختتامی پوائنٹس کی تعداد کو کم کر کے وقت اور وسائل کی بچت کر سکتے ہیں۔ MMEs دونوں CPU- اور GPU کی حمایت یافتہ ماڈلز کی میزبانی کی حمایت کرتے ہیں۔ نوٹ کریں کہ ہمارے منظر نامے میں، ہم 1,000 ماڈل استعمال کرتے ہیں، لیکن یہ خود سروس کی کوئی حد نہیں ہے۔

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

فن تعمیر جو بیان کردہ عمل کو دکھاتا ہے۔

ورک فلو میں درج ذیل مراحل شامل ہیں:

  1. ہم ڈیٹا کو پری پروسیس کرنے اور فی صارف ایک واحد CSV فائل بنانے اور اسے اسٹور کرنے کے لیے SageMaker پروسیسنگ کا استعمال کرتے ہیں۔ ایمیزون سادہ اسٹوریج سروس (ایمیزون S3)۔
  2. سیج میکر ٹریننگ جاب کو سیج میکر پروسیسنگ جاب کے آؤٹ پٹ کو پڑھنے اور اسے راؤنڈ رابن انداز میں ٹریننگ کے واقعات میں تقسیم کرنے کے لیے ترتیب دیا گیا ہے۔ نوٹ کریں کہ اس سے بھی حاصل کیا جاسکتا ہے۔ ایمیزون سیج میکر پائپ لائنز.
  3. ماڈل کے نمونے Amazon S3 میں تربیتی جاب کے ذریعے محفوظ کیے جاتے ہیں، اور SageMaker MME سے براہ راست پیش کیے جاتے ہیں۔

ہزاروں ماڈلز کو اسکیل ٹریننگ

کے ذریعے ہزاروں ماڈلز کی تربیت کی پیمائش ممکن ہے۔ distribution کے پیرامیٹر ٹریننگ ان پٹ SageMaker Python SDK میں کلاس، جو آپ کو یہ بتانے کی اجازت دیتا ہے کہ تربیتی کام کے لیے متعدد تربیتی مثالوں میں ڈیٹا کیسے تقسیم کیا جاتا ہے۔ کے لئے تین اختیارات ہیں۔ distribution پیرامیٹر: FullyReplicated, ShardedByS3Key، اور ShardedByRecord. ShardedByS3Key آپشن کا مطلب یہ ہے کہ ٹریننگ ڈیٹا کو S3 آبجیکٹ کی کے ذریعے شارڈ کیا جاتا ہے، ہر ٹریننگ مثال کے ساتھ ڈپلیکیشن سے گریز کرتے ہوئے ڈیٹا کا ایک منفرد سب سیٹ حاصل ہوتا ہے۔ سیج میکر کے ذریعہ ٹریننگ کنٹینرز میں ڈیٹا کاپی کرنے کے بعد، ہم ہر صارف فائل کو منفرد ماڈل کی تربیت دینے کے لیے فولڈر اور فائلوں کے ڈھانچے کو پڑھ سکتے ہیں۔ ذیل میں ایک مثال کوڈ کا ٹکڑا ہے:

# Assume that the training data is in an S3 bucket already, pass the parent folder
s3_input_train = sagemaker.inputs.TrainingInput( s3_data='s3://my-bucket/customer_data', distribution='ShardedByS3Key'
) # Create a SageMaker estimator and set the training input
estimator = sagemaker.estimator.Estimator(...)
estimator.fit(inputs=s3_input_train)

ہر سیج میکر ٹریننگ جاب میں محفوظ کردہ ماڈل کو اسٹور کرتا ہے۔ /opt/ml/model تربیتی کنٹینر کا فولڈر a میں محفوظ کرنے سے پہلے model.tar.gz فائل، اور پھر تربیتی کام مکمل ہونے پر اسے Amazon S3 پر اپ لوڈ کرتا ہے۔ پاور استعمال کرنے والے اس عمل کو سیج میکر پائپ لائنز کے ساتھ خودکار بھی کر سکتے ہیں۔ ایک ہی ٹریننگ جاب کے ذریعے متعدد ماڈلز کو اسٹور کرتے وقت، سیج میکر ایک سنگل بناتا ہے۔ model.tar.gz تمام تربیت یافتہ ماڈلز پر مشتمل فائل۔ پھر اس کا مطلب یہ ہوگا کہ، ماڈل کو پیش کرنے کے لیے، ہمیں پہلے آرکائیو کو کھولنا ہوگا۔ اس سے بچنے کے لیے ہم استعمال کرتے ہیں۔ چیک پوائنٹس انفرادی ماڈل کی حالت کو بچانے کے لیے۔ سیج میکر تربیتی ملازمت کے دوران بنائے گئے چیک پوائنٹس کو ایمیزون S3 میں کاپی کرنے کے لیے فعالیت فراہم کرتا ہے۔ یہاں، چیک پوائنٹس کو پہلے سے مخصوص جگہ پر محفوظ کرنے کی ضرورت ہے، پہلے سے طے شدہ ہونے کے ساتھ /opt/ml/checkpoints. ان چوکیوں کو بعد میں تربیت دوبارہ شروع کرنے کے لیے یا اختتامی نقطہ پر تعینات کرنے کے لیے ایک ماڈل کے طور پر استعمال کیا جا سکتا ہے۔ سیج میکر ٹریننگ پلیٹ فارم ٹریننگ ڈیٹاسیٹس، ماڈل آرٹفیکٹس، چیک پوائنٹس، اور AWS کلاؤڈ اسٹوریج اور سیج میکر میں تربیتی ملازمتوں کے درمیان آؤٹ پٹ کے لیے اسٹوریج کے راستوں کا انتظام کیسے کرتا ہے اس کے اعلیٰ سطحی خلاصے کے لیے، ملاحظہ کریں ایمیزون سیج میکر ٹریننگ ڈیٹا سیٹس، چیک پوائنٹس، ماڈل آرٹفیکٹس، اور آؤٹ پٹس کے لیے ٹریننگ سٹوریج فولڈرز.

درج ذیل کوڈ میں فرضی کا استعمال کیا گیا ہے۔ model.save() کے اندر فنکشن train.py تربیتی منطق پر مشتمل سکرپٹ:

import tarfile
import boto3
import os [ ... argument parsing ... ] for customer in os.list_dir(args.input_path): # Read data locally within the Training job df = pd.read_csv(os.path.join(args.input_path, customer, 'data.csv')) # Define and train the model model = MyModel() model.fit(df) # Save model to output directory with open(os.path.join(output_dir, 'model.json'), 'w') as fout: fout.write(model_to_json(model)) # Create the model.tar.gz archive containing the model and the training script with tarfile.open(os.path.join(output_dir, '{customer}.tar.gz'), "w:gz") as tar: tar.add(os.path.join(output_dir, 'model.json'), "model.json") tar.add(os.path.join(args.code_dir, "training.py"), "training.py")

SageMaker MMEs کے ساتھ ہزاروں ماڈلز کی پیمائش کا اندازہ

SageMaker MMEs آپ کو ایک اینڈ پوائنٹ کنفیگریشن بنا کر ایک ہی وقت میں متعدد ماڈلز پیش کرنے کی اجازت دیتے ہیں جس میں پیش کرنے کے لیے تمام ماڈلز کی فہرست شامل ہوتی ہے، اور پھر اس اینڈ پوائنٹ کنفیگریشن کا استعمال کرتے ہوئے ایک اینڈ پوائنٹ بناتا ہے۔ ہر بار جب آپ نیا ماڈل شامل کرتے ہیں تو اختتامی نقطہ کو دوبارہ تعینات کرنے کی ضرورت نہیں ہے کیونکہ اختتامی نقطہ خود بخود مخصوص S3 راستوں میں ذخیرہ کردہ تمام ماڈلز کو پیش کرے گا۔ اس سے حاصل کیا جاتا ہے۔ ملٹی ماڈل سرور (MMS)، ML ماڈل پیش کرنے کے لیے ایک اوپن سورس فریم ورک جسے کنٹینرز میں نصب کیا جا سکتا ہے تاکہ فرنٹ اینڈ فراہم کیا جا سکے جو نئے MME کنٹینر APIs کی ضروریات کو پورا کرتا ہے۔ اس کے علاوہ، آپ دیگر ماڈل سرورز بھی استعمال کر سکتے ہیں۔ ٹارچ سرو اور رخ. MMS آپ کے کسٹم کنٹینر میں کے ذریعے انسٹال کیا جا سکتا ہے۔ سیج میکر انفرنس ٹول کٹ. MMS کو شامل کرنے اور اسے اپنے ماڈلز کی خدمت کے لیے استعمال کرنے کے لیے اپنی Dockerfile کو ترتیب دینے کے طریقے کے بارے میں مزید جاننے کے لیے، ملاحظہ کریں سیج میکر ملٹی ماڈل اینڈ پوائنٹس کے لیے اپنا کنٹینر بنائیں.

درج ذیل کوڈ کا ٹکڑا دکھاتا ہے کہ SageMaker Python SDK کا استعمال کرتے ہوئے MME کیسے بنایا جائے:

from sagemaker.multidatamodel import MultiDataModel # Create the MultiDataModel definition
multimodel = MultiDataModel( name='customer-models', model_data_prefix=f's3://{bucket}/scaling-thousand-models/models', model=your_model,
) # Deploy on a real-time endpoint
predictor = multimodel.deploy( initial_instance_count=1, instance_type='ml.c5.xlarge',
)

جب MME لائیو ہوتا ہے، تو ہم اسے پیشین گوئیاں پیدا کرنے کے لیے پکار سکتے ہیں۔ درخواستیں کسی بھی AWS SDK کے ساتھ ساتھ SageMaker Python SDK کے ساتھ بھی کی جا سکتی ہیں، جیسا کہ درج ذیل کوڈ کے ٹکڑوں میں دکھایا گیا ہے:

predictor.predict( data='{"period": 7}', # the payload, in this case JSON target_model='{customer}.tar.gz' # the name of the target model
)

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

نتیجہ

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


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

ڈیوڈ کی تصویرڈیوڈ گیلیٹیلی EMEA خطے میں AI/ML کے لیے ایک ماہر حل آرکیٹیکٹ ہے۔ وہ برسلز میں مقیم ہے اور پورے بینیلکس میں صارفین کے ساتھ مل کر کام کرتا ہے۔ وہ اس وقت سے ایک ڈویلپر رہا ہے جب وہ بہت چھوٹا تھا، اس نے 7 سال کی عمر میں کوڈ بنانا شروع کیا۔ اس نے یونیورسٹی میں AI/ML سیکھنا شروع کیا، اور تب سے اسے اس سے پیار ہو گیا۔

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

ٹائم اسٹیمپ:

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