مصنوعی ذہانت (AI) ٹیکنالوجی کمیونٹی میں ایک اہم اور مقبول موضوع بن گیا ہے۔ جیسا کہ AI تیار ہوا ہے، ہم نے مختلف قسم کے مشین لرننگ (ML) ماڈلز کو ابھرتے دیکھا ہے۔ ایک نقطہ نظر، کے طور پر جانا جاتا ہے جوڑ ماڈلنگ، ڈیٹا سائنسدانوں اور پریکٹیشنرز کے درمیان تیزی سے کرشن حاصل کر رہا ہے۔ اس پوسٹ میں، ہم اس بات پر تبادلہ خیال کرتے ہیں کہ جوڑ کے ماڈل کیا ہیں اور ان کا استعمال کیوں فائدہ مند ہو سکتا ہے۔ اس کے بعد ہم اس کی ایک مثال فراہم کرتے ہیں کہ آپ کس طرح اپنے حسب ضرورت ملبوسات کو استعمال کرتے ہوئے تربیت، اصلاح، اور تعینات کر سکتے ہیں۔ ایمیزون سیج میکر.
Ensemble لرننگ سے مراد کسی بھی انفرادی سیکھنے کے الگورتھم سے زیادہ درست پیشین گوئیاں حاصل کرنے کے لیے متعدد لرننگ ماڈلز اور الگورتھم کا استعمال ہے۔ وہ متنوع ایپلی کیشنز اور سیکھنے کی ترتیبات جیسے سائبر سیکیورٹی [1] اور دھوکہ دہی کا پتہ لگانے، ریموٹ سینسنگ، مالیاتی فیصلہ سازی، طبی تشخیص، اور یہاں تک کہ کمپیوٹر ویژن اور قدرتی زبان کی پروسیسنگ (NLP) میں اگلے بہترین اقدامات کی پیش گوئی کرنے میں کارآمد ثابت ہوئے ہیں۔ کام ہم ان کو تربیت دینے کے لیے استعمال کی جانے والی تکنیکوں، ان کی ساخت، اور جس طرح سے وہ مختلف پیشین گوئیوں کو ایک ہی اندازہ میں ضم کرتے ہیں، ان کی درجہ بندی کرتے ہیں۔ ان زمروں میں شامل ہیں:
- بڑھتی ہوئی - ترتیب وار ایک سے زیادہ کمزور سیکھنے والوں کی تربیت، جہاں ترتیب میں پچھلے سیکھنے والوں کی ہر غلط پیشین گوئی کو اگلے سیکھنے والے کو زیادہ وزن اور ان پٹ دیا جاتا ہے، اس طرح ایک مضبوط سیکھنے والا پیدا ہوتا ہے۔ مثالوں میں AdaBoost، Gradient Boosting، اور XGBoost شامل ہیں۔
- بیگنگ - ایک ماڈل کے فرق کو کم کرنے کے لیے متعدد ماڈلز کا استعمال کرتا ہے۔ مثالوں میں بے ترتیب جنگل اور اضافی درخت شامل ہیں۔
- اسٹیکنگ (ملاوٹ) - اکثر متضاد ماڈلز کا استعمال کرتے ہیں، جہاں ہر فرد تخمینہ لگانے والے کی پیشین گوئیاں ایک ساتھ رکھی جاتی ہیں اور پیشین گوئی کو سنبھالنے والے حتمی تخمینہ لگانے والے کے ان پٹ کے طور پر استعمال ہوتی ہیں۔ یہ حتمی تخمینہ لگانے والے کی تربیت کا عمل اکثر کراس توثیق کا استعمال کرتا ہے۔
پیشین گوئیوں کو یکجا کرنے کے متعدد طریقے ہیں جو ماڈل آخر کار تیار کرتا ہے، مثال کے طور پر، ایک میٹا-اسٹیمیٹر کا استعمال کرتے ہوئے جیسے لکیری لرنر، ایک ووٹنگ کا طریقہ جو درجہ بندی کے کاموں کے لیے اکثریت کی ووٹنگ کی بنیاد پر پیشین گوئی کرنے کے لیے متعدد ماڈلز کا استعمال کرتا ہے، یا رجعت کے لیے ایک جوڑا اوسط۔
اگرچہ کئی لائبریریاں اور فریم ورک ملبوسات کے ماڈلز کا نفاذ فراہم کرتے ہیں، جیسے کہ XGBoost، CatBoost، یا scikit-learn's random forest، اس پوسٹ میں ہم آپ کے اپنے ماڈلز لانے اور ان کو اسٹیکنگ جوڑ کے طور پر استعمال کرنے پر توجہ مرکوز کرتے ہیں۔ تاہم، ہر ماڈل کے لیے وقف وسائل استعمال کرنے کی بجائے (سرشار ٹریننگ اور ٹیوننگ جابز اور فی ماڈل کے اختتامی پوائنٹس کی میزبانی)، ہم ایک ہی SageMaker ٹریننگ جاب اور سنگل ٹیوننگ جاب کا استعمال کرتے ہوئے ایک حسب ضرورت جوڑا (متعدد ماڈلز) کو تربیت، ٹیون، اور تعینات کرتے ہیں، اور ایک ہی اختتامی نقطہ پر تعینات کریں، اس طرح ممکنہ لاگت اور آپریشنل اوور ہیڈ کو کم کریں۔
بائیو: اپنا جوڑا لاؤ
سیج میکر کے ساتھ متضاد جوڑ بنانے والے ماڈلز کو تربیت دینے اور تعینات کرنے کے کئی طریقے ہیں: آپ ہر ماڈل کو تربیت دے سکتے ہیں۔ علیحدہ تربیتی کام اور ہر ماڈل کو الگ الگ استعمال کرتے ہوئے بہتر بنائیں ایمیزون سیج میکر آٹومیٹک ماڈل ٹیوننگ. ان ماڈلز کی میزبانی کرتے وقت، SageMaker ایک ہی کرایہ دار کے بنیادی ڈھانچے پر متعدد ماڈلز کی میزبانی کے لیے مختلف سرمایہ کاری مؤثر طریقے فراہم کرتا ہے۔ اس قسم کی ترتیبات کے لیے تفصیلی تعیناتی پیٹرن میں پایا جا سکتا ہے۔ ایمیزون سیج میکر میں ماڈل ہوسٹنگ پیٹرن، حصہ 1: ایمیزون سیج میکر پر ایم ایل ایپلیکیشنز بنانے کے لیے عام ڈیزائن پیٹرن. ان نمونوں میں متعدد اختتامی نقطوں (ہر تربیت یافتہ ماڈل کے لیے) یا ایک سنگل کا استعمال شامل ہے۔ ملٹی ماڈل اینڈ پوائنٹ، یا یہاں تک کہ ایک بھی ملٹی کنٹینر اختتامی نقطہ جہاں کنٹینرز کو انفرادی طور پر منگوایا جا سکتا ہے یا پائپ لائن میں جکڑا جا سکتا ہے۔ ان تمام حلوں میں ایک میٹا تخمینہ لگانے والا شامل ہے (مثال کے طور پر ایک او ڈبلیو ایس لامبڈا۔ فنکشن) جو ہر ماڈل کو طلب کرتا ہے اور ملاوٹ یا ووٹنگ فنکشن کو لاگو کرتا ہے۔
تاہم، ایک سے زیادہ تربیتی ملازمتیں چلانے سے آپریشنل اور لاگت کے اوور ہیڈ متعارف ہو سکتے ہیں، خاص طور پر اگر آپ کے جوڑے کو ایک ہی ڈیٹا پر تربیت کی ضرورت ہے۔ اسی طرح، الگ الگ اینڈ پوائنٹس یا کنٹینرز پر مختلف ماڈلز کی میزبانی اور بہتر درستگی کے لیے ان کی پیشین گوئی کے نتائج کو یکجا کرنے کے لیے متعدد درخواستوں کی ضرورت ہوتی ہے، اور اس لیے اضافی انتظام، لاگت، اور نگرانی کی کوششوں کو متعارف کرایا جاتا ہے۔ مثال کے طور پر، سیج میکر سپورٹ کرتا ہے۔ ٹریٹن انفرنس سرور کا استعمال کرتے ہوئے ایم ایل ماڈلز کو جوڑیں۔، لیکن اس حل کے لیے ماڈلز یا ماڈل کے جوڑ کو ٹرائٹن بیک اینڈ کے ذریعے سپورٹ کرنے کی ضرورت ہے۔ مزید برآں، ٹرائٹن سرور کو ترتیب دینے کے لیے کسٹمر سے اضافی کوششوں کی ضرورت ہے اور یہ سمجھنے کے لیے اضافی سیکھنے کی ضرورت ہے کہ مختلف ٹریٹن بیک اینڈ کیسے کام کرتے ہیں۔ اس لیے، صارفین حل کو نافذ کرنے کے لیے زیادہ سیدھا طریقہ کو ترجیح دیتے ہیں جہاں انھیں صرف ایک بار اختتامی نقطہ پر درخواست بھیجنے کی ضرورت ہوتی ہے اور ان کے پاس یہ کنٹرول کرنے کی لچک ہوتی ہے کہ حتمی آؤٹ پٹ پیدا کرنے کے لیے نتائج کو کیسے جمع کیا جاتا ہے۔
حل جائزہ
ان خدشات کو دور کرنے کے لیے، ہم سنگل ٹریننگ جاب کا استعمال کرتے ہوئے ملبوس ٹریننگ کی مثال کے ذریعے چلتے ہیں، ماڈل کے ہائپر پیرامیٹر کو بہتر بناتے ہیں اور اسے ایک کنٹینر کا استعمال کرتے ہوئے بغیر سرور کے اختتامی نقطہ پر تعینات کرتے ہیں۔ ہم اپنے ملبوسات کے اسٹیک کے لیے دو ماڈل استعمال کرتے ہیں: CatBoost اور XGBoost (یہ دونوں جوڑیاں بڑھا رہے ہیں)۔ اپنے ڈیٹا کے لیے، ہم استعمال کرتے ہیں۔ ذیابیطس ڈیٹاسیٹ اسکیٹ لرن لائبریری سے: یہ 2 خصوصیات پر مشتمل ہے (عمر، جنس، جسم کا حجم، بلڈ پریشر، اور چھ خون کے سیرم کی پیمائش)، اور ہمارا ماڈل بنیادی خصوصیات کو جمع کرنے کے 10 سال بعد بیماری کے بڑھنے کی پیش گوئی کرتا ہے (ایک رجعت ماڈل)۔
مکمل کوڈ ذخیرہ پر پایا جا سکتا ہے۔ GitHub کے.
ایک ہی SageMaker کام میں متعدد ماڈلز کو تربیت دیں۔
اپنے ماڈلز کی تربیت کے لیے، ہم اسکرپٹ موڈ میں سیج میکر ٹریننگ جابز استعمال کرتے ہیں۔ اسکرپٹ موڈ کے ساتھ، آپ SageMaker فریم ورک کنٹینرز کا استعمال کرتے ہوئے حسب ضرورت ٹریننگ (اور بعد میں انفرنس کوڈ) لکھ سکتے ہیں۔ فریم ورک کنٹینرز آپ کو AWS کے زیر انتظام ریڈی میڈ ماحول استعمال کرنے کے قابل بناتے ہیں جس میں تمام ضروری کنفیگریشن اور ماڈیول شامل ہیں۔ یہ ظاہر کرنے کے لیے کہ آپ کس طرح فریم ورک کنٹینر کو اپنی مرضی کے مطابق بنا سکتے ہیں، مثال کے طور پر، ہم پہلے سے بنایا ہوا SKLearn کنٹینر استعمال کرتے ہیں، جس میں XGBoost اور CatBoost پیکجز شامل نہیں ہیں۔ ان پیکجوں کو شامل کرنے کے لیے دو اختیارات ہیں: یا تو بلٹ ان کنٹینر کو بڑھا دیں۔ CatBoost اور XGBoost کو انسٹال کرنے کے لیے (اور پھر حسب ضرورت کنٹینر کے طور پر تعینات کریں)، یا SageMaker ٹریننگ جاب اسکرپٹ موڈ فیچر استعمال کریں، جو آپ کو ایک فراہم کرنے کی اجازت دیتا ہے۔ requirements.txt
تربیتی تخمینہ ساز بناتے وقت فائل۔ سیج میکر ٹریننگ جاب میں درج لائبریریوں کو انسٹال کرتا ہے۔ requirements.txt
رن ٹائم کے دوران فائل۔ اس طرح، آپ کو اپنی ڈوکر امیج ریپوزٹری کا انتظام کرنے کی ضرورت نہیں ہے اور یہ ٹریننگ اسکرپٹ کو چلانے کے لیے زیادہ لچک فراہم کرتا ہے جن کے لیے ازگر کے اضافی پیکجز کی ضرورت ہوتی ہے۔
درج ذیل کوڈ بلاک اس کوڈ کو دکھاتا ہے جسے ہم تربیت شروع کرنے کے لیے استعمال کرتے ہیں۔ دی entry_point
پیرامیٹر ہماری ٹریننگ اسکرپٹ کی طرف اشارہ کرتا ہے۔ ہم SageMaker SDK API کی دو زبردست خصوصیات بھی استعمال کرتے ہیں:
- سب سے پہلے، ہم اپنی سورس ڈائرکٹری کے لیے مقامی راستہ اور انحصار میں بتاتے ہیں۔
source_dir
اورdependencies
پیرامیٹرز، بالترتیب. SDK ان ڈائریکٹریوں کو کمپریس اور اپ لوڈ کرے گا۔ ایمیزون سادہ اسٹوریج سروس (Amazon S3) اور SageMaker انہیں ورکنگ ڈائرکٹری کے تحت تربیتی مثال پر دستیاب کرائے گا۔/opt/ml/code
. - دوسرا، ہم SDK استعمال کرتے ہیں۔
SKLearn
ہمارے پسندیدہ ازگر اور فریم ورک ورژن کے ساتھ تخمینہ کرنے والا آبجیکٹ، تاکہ سیج میکر متعلقہ کنٹینر کو کھینچ لے۔ ہم نے ایک کسٹم ٹریننگ میٹرک کی بھی تعریف کی ہے۔validation:rmse
'، جو ٹریننگ لاگز میں خارج ہو گا اور SageMaker کے ذریعے حاصل کیا جائے گا۔ بعد میں، ہم ٹیوننگ جاب میں اس میٹرک کو مقصدی میٹرک کے طور پر استعمال کرتے ہیں۔
hyperparameters = {"num_round": 6, "max_depth": 5}
estimator_parameters = {
"entry_point": "multi_model_hpo.py",
"source_dir": "code",
"dependencies": ["my_custom_library"],
"instance_type": training_instance_type,
"instance_count": 1,
"hyperparameters": hyperparameters,
"role": role,
"base_job_name": "xgboost-model",
"framework_version": "1.0-1",
"keep_alive_period_in_seconds": 60,
"metric_definitions":[
{'Name': 'validation:rmse', 'Regex': 'validation-rmse:(.*?);'}
]
}
estimator = SKLearn(**estimator_parameters)
اگلا، ہم اپنی تربیت کا اسکرپٹ لکھتے ہیں (multi_model_hpo.py)۔ ہمارا اسکرپٹ ایک سادہ بہاؤ کی پیروی کرتا ہے: ہائپر پیرامیٹرز پر قبضہ کریں۔ جس کے ساتھ کام کو ترتیب دیا گیا تھا اور CatBoost ماڈل کو تربیت دیں۔ اور XGBoost ماڈل. ہم بھی ایک کو نافذ کرتے ہیں۔ k-fold کراس توثیق کی تقریب. درج ذیل کوڈ دیکھیں:
if __name__ == "__main__":
parser = argparse.ArgumentParser() # Sagemaker specific arguments. Defaults are set in the environment variables.
parser.add_argument("--output-data-dir", type=str, default=os.environ["SM_OUTPUT_DATA_DIR"])
parser.add_argument("--model-dir", type=str, default=os.environ["SM_MODEL_DIR"])
parser.add_argument("--train", type=str, default=os.environ["SM_CHANNEL_TRAIN"])
parser.add_argument("--validation", type=str, default=os.environ["SM_CHANNEL_VALIDATION"])
.
.
.
"""
Train catboost
"""
K = args.k_fold
catboost_hyperparameters = {
"max_depth": args.max_depth,
"eta": args.eta,
}
rmse_list, model_catboost = cross_validation_catboost(train_df, K, catboost_hyperparameters)
.
.
.
"""
Train the XGBoost model
""" hyperparameters = {
"max_depth": args.max_depth,
"eta": args.eta,
"objective": args.objective,
"num_round": args.num_round,
} rmse_list, model_xgb = cross_validation(train_df, K, hyperparameters)
ماڈلز کی تربیت کے بعد، ہم CatBoost اور XGBoost دونوں پیشین گوئیوں کے اوسط کا حساب لگاتے ہیں۔ نتیجہ، pred_mean
، ہمارے جوڑ کی آخری پیشین گوئی ہے۔ پھر، ہم تعین کرتے ہیں mean_squared_error
توثیق کے سیٹ کے خلاف۔ val_rmse
تربیت کے دوران پورے جوڑ کی تشخیص کے لیے استعمال کیا جاتا ہے۔ دھیان دیں کہ ہم RMSE ویلیو کو اس پیٹرن میں بھی پرنٹ کرتے ہیں جو اس ریجیکس میں فٹ بیٹھتا ہے جسے ہم نے میں استعمال کیا ہے۔ metric_definitions
. بعد میں، سیج میکر آٹومیٹک ماڈل ٹیوننگ اسے مقصدی میٹرک حاصل کرنے کے لیے استعمال کرے گی۔ درج ذیل کوڈ دیکھیں:
pred_mean = np.mean(np.array([pred_catboost, pred_xgb]), axis=0)
val_rmse = mean_squared_error(y_validation, pred_mean, squared=False)
print(f"Final evaluation result: validation-rmse:{val_rmse}")
آخر میں، ہماری اسکرپٹ دونوں ماڈل نمونے کو آؤٹ پٹ فولڈر میں محفوظ کرتی ہے۔ /opt/ml/model
.
جب تربیتی کام مکمل ہو جاتا ہے، سیج میکر کے مواد کو پیک کرتا اور کاپی کرتا ہے۔ /opt/ml/model
ڈائرکٹری ایک واحد آبجیکٹ کے طور پر کمپریسڈ TAR فارمیٹ میں S3 مقام پر جو آپ نے جاب کنفیگریشن میں بتائی ہے۔ ہمارے معاملے میں، SageMaker دونوں ماڈلز کو TAR فائل میں بنڈل کرتا ہے اور تربیتی کام کے اختتام پر اسے Amazon S3 پر اپ لوڈ کرتا ہے۔ درج ذیل کوڈ دیکھیں:
model_file_name = 'catboost-regressor-model.dump'
# Save CatBoost model
path = os.path.join(args.model_dir, model_file_name)
print('saving model file to {}'.format(path))
model.save_model(path)
.
.
.
# Save XGBoost model
model_location = args.model_dir + "/xgboost-model"
pickle.dump(model, open(model_location, "wb"))
logging.info("Stored trained model at {}".format(model_location))
خلاصہ طور پر، آپ کو یہ دیکھنا چاہیے کہ اس طریقہ کار میں ہم نے ایک بار ڈیٹا ڈاؤن لوڈ کیا اور ایک ہی ٹریننگ جاب کا استعمال کرتے ہوئے دو ماڈلز کو تربیت دی۔
خودکار جوڑ ماڈل ٹیوننگ
چونکہ ہم ML ماڈلز کا ایک مجموعہ بنا رہے ہیں، اس لیے تمام ممکنہ ہائپر پیرامیٹر کی ترتیب کو تلاش کرنا ناقابل عمل ہے۔ سیج میکر پیش کرتا ہے۔ خودکار ماڈل ٹیوننگ (AMT)، جو آپ کی جانب سے متعین کردہ حدود کے اندر اقدار کے سب سے زیادہ امید افزا امتزاج پر توجہ مرکوز کرکے بہترین ماڈل ہائپر پیرامیٹرس کی تلاش کرتا ہے (یہ آپ پر منحصر ہے کہ دریافت کرنے کے لیے صحیح حدود کی وضاحت کریں)۔ سیج میکر متعدد اصلاحی طریقوں کی حمایت کرتا ہے۔ آپ کے لئے منتخب کرنے کے لئے.
ہم اصلاح کے عمل کے دو حصوں کی وضاحت کرتے ہوئے شروع کرتے ہیں: مقصدی میٹرک اور ہائپر پیرامیٹر جو ہم ٹیون کرنا چاہتے ہیں۔ ہماری مثال میں، ہم توثیق RMSE کو ہدف میٹرک کے طور پر استعمال کرتے ہیں اور ہم ٹیون کرتے ہیں۔ eta
اور max_depth
(دوسرے ہائپرپیرامیٹرس کے لیے، رجوع کریں۔ XGBoost ہائپر پیرامیٹرز اور کیٹ بوسٹ ہائپر پیرامیٹرز):
from sagemaker.tuner import (
IntegerParameter,
ContinuousParameter,
HyperparameterTuner,
) hyperparameter_ranges = {
"eta": ContinuousParameter(0.2, 0.3),
"max_depth": IntegerParameter(3, 4)
}
metric_definitions = [{"Name": "validation:rmse", "Regex": "validation-rmse:([0-9.]+)"}]
objective_metric_name = "validation:rmse"
ہم میں بھی یقینی بنانے کی ضرورت ہے تربیتی سکرپٹ کہ ہمارے ہائپر پیرامیٹرس ہارڈ کوڈ نہیں ہیں اور SageMaker رن ٹائم دلائل سے نکالے گئے ہیں:
catboost_hyperparameters = {
"max_depth": args.max_depth,
"eta": args.eta,
}
SageMaker ایک JSON فائل میں ہائپرپیرامیٹر بھی لکھتا ہے اور اس سے پڑھا جا سکتا ہے۔ /opt/ml/input/config/hyperparameters.json
تربیت کی مثال پر.
CatBoost کی طرح، ہم XGBoost ماڈل کے لیے ہائپر پیرامیٹر بھی حاصل کرتے ہیں (اس پر غور کریں۔ objective
اور num_round
ٹیون نہیں ہیں):
catboost_hyperparameters = {
"max_depth": args.max_depth,
"eta": args.eta,
}
آخر میں، ہم ان کنفیگریشنز کا استعمال کرتے ہوئے ہائپر پیرامیٹر ٹیوننگ جاب شروع کرتے ہیں:
tuner = HyperparameterTuner(
estimator,
objective_metric_name,
hyperparameter_ranges,
max_jobs=4,
max_parallel_jobs=2,
objective_type='Minimize'
)
tuner.fit({"train": train_location, "validation": validation_location}, include_cls_metadata=False)
کام مکمل ہونے پر، آپ بہترین تربیتی جاب (کم سے کم RMSE کے ساتھ):
job_name=tuner.latest_tuning_job.name
attached_tuner = HyperparameterTuner.attach(job_name)
attached_tuner.describe()["BestTrainingJob"]
AMT کے بارے میں مزید معلومات کے لیے رجوع کریں۔ SageMaker کے ساتھ خودکار ماڈل ٹیوننگ انجام دیں۔.
تعیناتی
اپنے حسب ضرورت جوڑ کو تعینات کرنے کے لیے، ہمیں تخمینہ کی درخواست کو سنبھالنے اور سیج میکر ہوسٹنگ کو ترتیب دینے کے لیے اسکرپٹ فراہم کرنے کی ضرورت ہے۔ اس مثال میں، ہم نے ایک واحد فائل کا استعمال کیا جس میں تربیت اور انفرنس کوڈ دونوں شامل ہیں (multi_model_hpo.py)۔ سیج میکر اگر کے تحت کوڈ استعمال کرتا ہے۔ _ name _ == "_ main _"
تربیت اور افعال کے لیے model_fn
, input_fn
، اور predict_fn
ماڈل کی تعیناتی اور خدمت کرتے وقت۔
انفرنس اسکرپٹ
جیسا کہ تربیت کے ساتھ ہے، ہم SageMaker SKLearn فریم ورک کنٹینر کو اپنے انفرنس اسکرپٹ کے ساتھ استعمال کرتے ہیں۔ اسکرپٹ سیج میکر کو درکار تین طریقوں کو نافذ کرے گی۔
سب سے پہلے، model_fn
طریقہ ہماری محفوظ کردہ ماڈل آرٹفیکٹ فائلوں کو پڑھتا ہے اور انہیں میموری میں لوڈ کرتا ہے۔ ہمارے معاملے میں، طریقہ ہمارے جوڑ کو واپس کرتا ہے۔ all_model
، جو ایک ازگر کی فہرست ہے، لیکن آپ کلید کے طور پر ماڈل کے ناموں والی لغت بھی استعمال کر سکتے ہیں۔
def model_fn(model_dir):
catboost_model = CatBoostRegressor()
catboost_model.load_model(os.path.join(model_dir, model_file_name))
model_file = "xgboost-model"
model = pickle.load(open(os.path.join(model_dir, model_file), "rb"))
all_model = [catboost_model, model]
return all_model
دوسرا، input_fn
طریقہ ہمارے انفرنس ہینڈلر کو بھیجے جانے والے ان پٹ ڈیٹا کو ڈی سیریلائز کرتا ہے۔ ان پٹ ہینڈلرز کے بارے میں مزید معلومات کے لیے، رجوع کریں۔ آپ کے اپنے انفرنس کنٹینر کو اپنانا.
def input_fn(input_data, content_type):
dtype=None
payload = StringIO(input_data)
return np.genfromtxt(payload, dtype=dtype, delimiter=",")
تیسری، predict_fn
طریقہ ماڈلز سے پیشین گوئیاں حاصل کرنے کا ذمہ دار ہے۔ طریقہ ماڈل لیتا ہے اور ڈیٹا کو واپس کرتا ہے۔ input_fn
پیرامیٹرز کے طور پر اور حتمی پیشین گوئی واپس کرتا ہے۔ ہماری مثال میں، ہمیں ماڈل لسٹ کے پہلے ممبر سے CatBoost کا نتیجہ ملتا ہے (model[0]
) اور دوسرے ممبر سے XGBoost (model[1]
)، اور ہم ایک بلینڈنگ فنکشن استعمال کرتے ہیں جو دونوں پیشین گوئیوں کا مطلب واپس کرتا ہے:
def predict_fn(input_data, model):
predictions_catb = model[0].predict(input_data)
dtest = xgb.DMatrix(input_data)
predictions_xgb = model[1].predict(dtest,
ntree_limit=getattr(model, "best_ntree_limit", 0),
validate_features=False)
return np.mean(np.array([predictions_catb, predictions_xgb]), axis=0)
اب جب کہ ہمارے پاس اپنے تربیت یافتہ ماڈلز اور انفرنس اسکرپٹ ہیں، ہم اپنے جوڑ کو تعینات کرنے کے لیے ماحول کو ترتیب دے سکتے ہیں۔
سیج میکر سرور لیس انفرنس
اگرچہ موجود ہیں سیج میکر میں ہوسٹنگ کے بہت سے اختیاراتاس مثال میں، ہم سرور لیس اینڈ پوائنٹ استعمال کرتے ہیں۔ سرور لیس اینڈ پوائنٹس خود بخود کمپیوٹ وسائل شروع کرتے ہیں اور ٹریفک کے لحاظ سے ان کو اندر اور باہر پیمانہ کرتے ہیں۔ اس سے سرورز کا انتظام کرنے کی غیر متفاوت بھاری لفٹنگ ختم ہو جاتی ہے۔ یہ آپشن کام کے بوجھ کے لیے مثالی ہے جن میں ٹریفک کی رفتار کے درمیان وقفہ وقفہ ہوتا ہے اور وہ سرد آغاز کو برداشت کر سکتے ہیں۔
بغیر سرور کے اختتامی نقطہ کو ترتیب دینا سیدھا سادہ ہے کیونکہ ہمیں مثال کی اقسام کو منتخب کرنے یا اسکیلنگ کی پالیسیوں کو منظم کرنے کی ضرورت نہیں ہے۔ ہمیں صرف دو پیرامیٹرز فراہم کرنے کی ضرورت ہے: میموری کا سائز اور زیادہ سے زیادہ ہم آہنگی۔ سرور لیس اینڈ پوائنٹ آپ کی منتخب کردہ میموری کے متناسب کمپیوٹ وسائل کو خود بخود تفویض کرتا ہے۔ اگر آپ میموری کے بڑے سائز کا انتخاب کرتے ہیں، تو آپ کے کنٹینر کو مزید vCPUs تک رسائی حاصل ہے۔ آپ کو ہمیشہ اپنے اینڈ پوائنٹ کی میموری کا سائز اپنے ماڈل کے سائز کے مطابق منتخب کرنا چاہیے۔ دوسرا پیرامیٹر جو ہمیں فراہم کرنے کی ضرورت ہے وہ زیادہ سے زیادہ ہم آہنگی ہے۔ ایک اختتامی نقطہ کے لیے، یہ پیرامیٹر 200 تک سیٹ کیا جا سکتا ہے (اس تحریر کے مطابق، کسی علاقے میں سرور لیس اینڈ پوائنٹس کی کل تعداد کی حد 50 ہے)۔ آپ کو نوٹ کرنا چاہیے کہ انفرادی اختتامی نقطہ کے لیے زیادہ سے زیادہ ہم آہنگی اس اختتامی نقطہ کو آپ کے اکاؤنٹ کے لیے اجازت دی گئی تمام درخواستوں کو لینے سے روکتی ہے، کیونکہ زیادہ سے زیادہ سے زیادہ کسی بھی اختتامی نقطہ کی درخواستوں کو روک دیا جاتا ہے (فی خطہ کے تمام سرور لیس اینڈ پوائنٹس کے لیے کل ہم آہنگی کے بارے میں مزید معلومات کے لیے، رجوع کریں کو ایمیزون سیج میکر کے اختتامی نکات اور کوٹے).
from sagemaker.serverless.serverless_inference_config import ServerlessInferenceConfig
serverless_config = ServerlessInferenceConfig(
memory_size_in_mb=6144,
max_concurrency=1,
)
اب جب کہ ہم نے اختتامی نقطہ کو ترتیب دیا ہے، ہم آخر کار اس ماڈل کو تعینات کر سکتے ہیں جو ہمارے ہائپر پیرامیٹر آپٹیمائزیشن جاب میں منتخب کیا گیا تھا:
estimator=attached_tuner.best_estimator()
predictor = estimator.deploy(serverless_inference_config=serverless_config)
صاف کرو
اگرچہ سرور لیس اینڈ پوائنٹس کی لاگت صفر ہے جب استعمال نہیں کیا جا رہا ہے، جب آپ اس مثال کو چلانا ختم کر لیتے ہیں، تو آپ کو اینڈ پوائنٹ کو حذف کرنا یقینی بنانا چاہیے:
predictor.delete_endpoint(predictor.endpoint)
نتیجہ
اس پوسٹ میں، ہم نے اپنی مرضی کے مطابق جوڑ کو تربیت دینے، بہتر بنانے اور تعینات کرنے کے لیے ایک نقطہ نظر کا احاطہ کیا۔ ہم نے ایک سے زیادہ ماڈلز کو تربیت دینے کے لیے ایک ہی ٹریننگ جاب کو استعمال کرنے کے طریقہ کار کو تفصیل سے بتایا، خودکار ماڈل ٹیوننگ کو کس طرح استعمال کیا جائے تاکہ انسبل ہائپر پیرامیٹر کو بہتر بنایا جائے، اور ایک واحد سرور لیس اینڈ پوائنٹ کو کیسے تعینات کیا جائے جو متعدد ماڈلز سے حاصل کردہ نتائج کو ملاتا ہو۔
اس طریقہ کا استعمال ممکنہ لاگت اور آپریشنل مسائل کو حل کرتا ہے۔ تربیتی کام کی قیمت ان وسائل پر مبنی ہے جو آپ استعمال کی مدت کے لیے استعمال کرتے ہیں۔ دونوں ماڈلز کی تربیت کے لیے صرف ایک بار ڈیٹا ڈاؤن لوڈ کرنے سے، ہم نے جاب کے ڈیٹا ڈاؤن لوڈ کے مرحلے اور ڈیٹا کو ذخیرہ کرنے والے استعمال شدہ حجم کو آدھا کم کر دیا، اس طرح تربیتی کام کی مجموعی لاگت کم ہو گئی۔ مزید برآں، AMT جاب میں چار تربیتی جاب چلتی ہیں، جن میں سے ہر ایک میں مذکورہ بالا کم وقت اور ذخیرہ ہوتا ہے، تاکہ لاگت کی بچت میں 4 گنا اضافہ ہو! بغیر سرور کے اختتامی نقطہ پر ماڈل کی تعیناتی کے حوالے سے، کیونکہ آپ پروسیس شدہ ڈیٹا کی رقم کے لیے بھی ادائیگی کرتے ہیں، دو ماڈلز کے لیے صرف ایک بار اینڈ پوائنٹ کو استعمال کرتے ہوئے، آپ I/O ڈیٹا چارجز کا نصف ادا کرتے ہیں۔
اگرچہ اس پوسٹ نے صرف دو ماڈلز کے فوائد دکھائے ہیں، لیکن آپ اس طریقہ کو تربیت دینے، ٹیون کرنے اور متعدد جوڑ ماڈلز کو تعینات کرنے کے لیے استعمال کر سکتے ہیں تاکہ اس سے بھی زیادہ اثر دیکھا جا سکے۔
حوالہ جات
[1] راج کمار، پی ارون؛ Selvakumar, S. (2011). "اعصابی درجہ بندی کے جوڑ کا استعمال کرتے ہوئے سروس حملے کا پتہ لگانے کی تقسیم شدہ انکار"۔ کمپیوٹر کمیونیکیشنز۔ 34 (11): 1328–1341۔ doi:10.1016/j.comcom.2011.01.012۔
[2] بریڈلی ایفرون، ٹریور ہسٹی، آئن جانسٹون اور رابرٹ تبشیرانی (2004) "کم سے کم زاویہ رجعت،" شماریات کے اعداد و شمار (بحث کے ساتھ)، 407-499۔ (https://web.stanford.edu/~hastie/Papers/LARS/LeastAngle_2002.pdf)
مصنفین کے بارے میں
میلانیا لی، پی ایچ ڈی، سڈنی، آسٹریلیا میں مقیم AWS میں ایک سینئر AI/ML ماہر TAM ہے۔ وہ انٹرپرائز صارفین کو AWS پر جدید ترین AI/ML ٹولز سے فائدہ اٹھاتے ہوئے حل تیار کرنے میں مدد کرتی ہے اور بہترین طریقوں کے ساتھ مشین لرننگ سلوشنز کو آرکیٹیکٹنگ اور لاگو کرنے کے بارے میں رہنمائی فراہم کرتی ہے۔ اپنے فارغ وقت میں، وہ باہر فطرت کو تلاش کرنا اور خاندان اور دوستوں کے ساتھ وقت گزارنا پسند کرتی ہے۔
یوری روزنبرگ یورپ، مشرق وسطیٰ اور افریقہ کے لیے AI اور ML ماہر تکنیکی مینیجر ہے۔ اسرائیل سے باہر کی بنیاد پر، Uri انٹرپرائز کے صارفین کو ML کام کے بوجھ کو ڈیزائن، بنانے اور چلانے کے لیے بااختیار بنانے کے لیے کام کرتا ہے۔ اپنے فارغ وقت میں، وہ سائیکلنگ، پیدل سفر، اور RMSEs کو کم کرنے سے لطف اندوز ہوتا ہے۔
- SEO سے چلنے والا مواد اور PR کی تقسیم۔ آج ہی بڑھا دیں۔
- پلیٹو ڈیٹا ڈاٹ نیٹ ورک ورٹیکل جنریٹو اے آئی۔ اپنے آپ کو بااختیار بنائیں۔ یہاں تک رسائی حاصل کریں۔
- پلیٹوآئ اسٹریم۔ ویب 3 انٹیلی جنس۔ علم میں اضافہ۔ یہاں تک رسائی حاصل کریں۔
- پلیٹو ای ایس جی۔ آٹوموٹو / ای وی، کاربن، کلین ٹیک، توانائی ، ماحولیات، شمسی، ویسٹ مینجمنٹ یہاں تک رسائی حاصل کریں۔
- بلاک آفسیٹس۔ ماحولیاتی آفسیٹ ملکیت کو جدید بنانا۔ یہاں تک رسائی حاصل کریں۔
- ماخذ: https://aws.amazon.com/blogs/machine-learning/efficiently-train-tune-and-deploy-custom-ensembles-using-amazon-sagemaker/
- : ہے
- : ہے
- : نہیں
- :کہاں
- ][p
- $UP
- 1
- 10
- 100
- 11
- 200
- 2011
- 50
- 60
- 7
- a
- ہمارے بارے میں
- تک رسائی حاصل
- کے مطابق
- اکاؤنٹ
- درستگی
- درست
- شامل کریں
- ایڈیشنل
- اس کے علاوہ
- پتہ
- افریقہ
- کے بعد
- کے خلاف
- عمر
- AI
- AI / ML
- یلگورتم
- یلگوردمز
- تمام
- کی اجازت
- کی اجازت دیتا ہے
- بھی
- ہمیشہ
- ایمیزون
- ایمیزون سیج میکر
- ایمیزون ویب سروسز
- کے درمیان
- رقم
- an
- اور
- کوئی بھی
- ایپلی کیشنز
- نقطہ نظر
- کیا
- دلائل
- AS
- At
- حملہ
- آسٹریلیا
- خودکار
- خود کار طریقے سے
- دستیاب
- نگرانی
- دور
- AWS
- پسدید
- کی بنیاد پر
- بیس لائن
- BE
- کیونکہ
- بن
- رہا
- کیا جا رہا ہے
- فائدہ مند
- فوائد
- BEST
- بہترین طریقوں
- بہتر
- کے درمیان
- سے پرے
- ملاوٹ
- مرکب
- بلاک
- خون
- بلڈ پریشر
- جسم
- اضافے کا باعث
- دونوں
- لانے
- آ رہا ہے
- تعمیر
- عمارت
- تعمیر میں
- بنڈل
- لیکن
- by
- حساب
- کر سکتے ہیں
- قبضہ
- پر قبضہ کر لیا
- کیس
- اقسام
- زنجیروں سے جکڑا ہوا
- بوجھ
- میں سے انتخاب کریں
- درجہ بندی
- کوڈ
- سردی
- مجموعہ
- کے مجموعے
- امتزاج
- کامن
- کموینیکیشن
- کمیونٹی
- زبردست
- مکمل
- کمپیوٹنگ
- کمپیوٹر
- کمپیوٹر ویژن
- اندراج
- ترتیب
- تشکیل شدہ
- مشتمل
- کنٹینر
- کنٹینر
- مواد
- کنٹرول
- اسی کے مطابق
- قیمت
- سرمایہ کاری مؤثر
- احاطہ کرتا ہے
- تخلیق
- اپنی مرضی کے
- گاہک
- گاہکوں
- اپنی مرضی کے مطابق
- سائبر سیکیورٹی
- اعداد و شمار
- فیصلہ کرنا
- وقف
- غلطی
- وضاحت
- کی وضاحت
- وضاحت
- مظاہرہ
- سروس کا انکار
- منحصر ہے
- تعیناتی
- تعینات
- تعیناتی
- ڈیزائن
- ڈیزائن پیٹرن
- تفصیلی
- کھوج
- اس بات کا تعین
- مختلف
- ڈائریکٹریز
- بات چیت
- بحث
- بیماری
- متنوع
- میں Docker
- نہیں کرتا
- نہیں
- ڈاؤن لوڈ، اتارنا
- پھینک
- مدت
- کے دوران
- ہر ایک
- وسطی
- اثر
- ہنر
- مؤثر طریقے سے
- کوششوں
- یا تو
- ابھر کر سامنے آئے
- بااختیار
- کو چالو کرنے کے
- آخر
- اختتام پوائنٹ
- کو یقینی بنانے کے
- انٹرپرائز
- ماحولیات
- ماحول
- خاص طور پر
- یورپ
- تشخیص
- بھی
- وضع
- مثال کے طور پر
- مثال کے طور پر
- تلاش
- ایکسپلور
- اضافی
- خاندان
- نمایاں کریں
- خصوصیات
- فائل
- فائلوں
- فائنل
- آخر
- مالی
- پہلا
- لچک
- بہاؤ
- توجہ مرکوز
- توجہ مرکوز
- کے بعد
- مندرجہ ذیل ہے
- کے لئے
- جنگل
- فارمیٹ
- ملا
- چار
- فریم ورک
- فریم ورک
- دھوکہ دہی
- فراڈ کا پتہ لگانے
- دوست
- سے
- مکمل
- تقریب
- افعال
- مزید برآں
- حاصل کرنا
- حاصل کرنا
- پیدا
- حاصل
- حاصل کرنے
- دی
- زیادہ سے زیادہ
- رہنمائی
- نصف
- ہینڈل
- ہینڈل
- ہے
- he
- بھاری
- بھاری وزن اٹھانا
- مدد کرتا ہے
- اس کی
- اعلی
- ان
- میزبان
- ہوسٹنگ
- کس طرح
- کیسے
- تاہم
- HTML
- HTTP
- HTTPS
- ہائپر پیرامیٹر کی اصلاح
- ہائپر پیرامیٹر ٹیوننگ
- مثالی
- ناقابل یقین
- if
- تصویر
- پر عملدرآمد
- پر عمل درآمد
- عمل
- اہم
- in
- شامل
- شامل ہیں
- انفرادی
- انفرادی طور پر
- معلومات
- انفراسٹرکچر
- ان پٹ
- انسٹال
- مثال کے طور پر
- کے بجائے
- انٹیلی جنس
- میں
- متعارف کرانے
- متعارف کرواتا ہے
- درخواست کی
- پکارتے ہیں۔
- اسرائیل
- مسائل
- IT
- ایوب
- نوکریاں
- فوٹو
- JSON
- چابیاں
- بچے
- جانا جاتا ہے
- زبان
- بڑے
- بعد
- شروع
- سیکھنے
- لیورنگنگ
- Li
- لائبریریوں
- لائبریری
- اٹھانے
- LIMIT
- لسٹ
- فہرست
- بوجھ
- مقامی
- واقع ہے
- محل وقوع
- لاگ ان
- دیکھنا
- سے محبت کرتا ہے
- مشین
- مشین لرننگ
- مین
- اکثریت
- بنا
- انتظام
- میں کامیاب
- انتظام
- مینیجر
- مینیجنگ
- ماس
- زیادہ سے زیادہ
- مطلب
- پیمائش
- طبی
- رکن
- یاد داشت
- ضم کریں
- طریقہ
- طریقوں
- میٹرک۔
- مشرق
- مشرق وسطی
- شاید
- کم سے کم
- کم سے کم
- ML
- موڈ
- ماڈل
- ماڈل
- ماڈیولز
- نگرانی
- زیادہ
- سب سے زیادہ
- ایک سے زیادہ
- نام
- نام
- قدرتی
- قدرتی زبان عملیات
- فطرت، قدرت
- ضروری
- ضرورت ہے
- اگلے
- ویزا
- نوٹس..
- تعداد
- متعدد
- اعتراض
- مقصد
- of
- تجویز
- اکثر
- on
- ایک بار
- ایک
- صرف
- کام
- آپریشنل
- اصلاح کے
- کی اصلاح کریں
- اصلاح
- اختیار
- آپشنز کے بھی
- or
- OS
- دیگر
- ہمارے
- باہر
- باہر
- پیداوار
- مجموعی طور پر
- خود
- پیکجوں کے
- پیرامیٹر
- پیرامیٹرز
- حصہ
- حصے
- منظور
- راستہ
- پاٹرن
- پیٹرن
- ادا
- فی
- ادوار
- مرحلہ
- پائپ لائن
- پلاٹا
- افلاطون ڈیٹا انٹیلی جنس
- پلیٹو ڈیٹا
- پوائنٹس
- پالیسیاں
- مقبول
- ممکن
- پوسٹ
- ممکنہ
- طریقوں
- پیش گوئی
- کی پیشن گوئی
- پیشن گوئی
- پیش گو
- پیش گوئیاں
- کو ترجیح دیتے ہیں
- کو ترجیح دی
- دباؤ
- روکتا ہے
- پچھلا
- پرنٹ
- طریقہ کار
- عمل
- عملدرآمد
- پروسیسنگ
- پیدا
- بڑھنے
- وعدہ
- ثابت
- فراہم
- فراہم کرتا ہے
- ازگر
- بے ترتیب
- میں تیزی سے
- پڑھیں
- کو کم
- کم
- کو کم کرنے
- مراد
- شمار
- ریجیکس
- خطے
- ریموٹ
- ذخیرہ
- کی نمائندگی
- درخواست
- ضرورت
- کی ضرورت ہے
- وسائل
- بالترتیب
- ذمہ دار
- نتیجہ
- نتائج کی نمائش
- واپسی
- واپسی
- ٹھیک ہے
- ROBERT
- کردار
- رن
- چل رہا ہے
- s
- sagemaker
- سیج میکر خودکار ماڈل ٹیوننگ
- اسی
- محفوظ کریں
- بچت
- پیمانے
- سکیلنگ
- سائنسدانوں
- سائنٹ سیکھنا
- سکرپٹ
- sdk
- دوسری
- دیکھنا
- دیکھا
- منتخب
- بھیجنے
- سینئر
- علیحدہ
- تسلسل
- سیرم
- بے سرور
- سرورز
- سروس
- سروسز
- خدمت
- مقرر
- ترتیبات
- کئی
- جنس
- وہ
- ہونا چاہئے
- سے ظاہر ہوا
- شوز
- اسی طرح
- سادہ
- ایک
- چھ
- سائز
- So
- حل
- حل
- حل کرتا ہے
- ماخذ
- ماہر
- مخصوص
- مخصوص
- خرچ
- ڈھیر لگانا
- سجا دیئے
- اسٹیکنگ
- اسٹینفورڈ
- شروع کریں
- شروع ہوتا ہے
- ریاستی آرٹ
- کے اعداد و شمار
- مراحل
- ذخیرہ
- ذخیرہ
- پردہ
- براہ راست
- مضبوط
- اس طرح
- خلاصہ
- تائید
- کی حمایت کرتا ہے
- اس بات کا یقین
- سڈنی
- لیتا ہے
- لینے
- ہدف
- کاموں
- ٹیکنیکل
- تکنیک
- ٹیکنالوجی
- کرایہ دار
- سے
- کہ
- ۔
- ان
- ان
- تو
- وہاں.
- اس طرح
- لہذا
- یہ
- وہ
- اس
- ان
- اگرچہ؟
- تین
- کے ذریعے
- وقت
- اوقات
- کرنے کے لئے
- مل کر
- اوزار
- موضوع
- کل
- کرشن
- ٹریفک
- ٹرین
- تربیت یافتہ
- ٹریننگ
- درخت
- ٹریور
- رخ
- دو
- اقسام
- کے تحت
- سمجھ
- استعمال
- استعمال کی شرائط
- استعمال کیا جاتا ہے
- استعمال
- کا استعمال کرتے ہوئے
- توثیق
- قیمت
- اقدار
- مختلف
- ورژن
- نقطہ نظر
- حجم
- ووٹنگ
- چاہتے ہیں
- تھا
- راستہ..
- طریقوں
- we
- ویب
- ویب خدمات
- وزن
- تھے
- کیا
- جب
- جس
- جبکہ
- پوری
- کیوں
- گے
- ساتھ
- کے اندر
- کام
- کام کر
- کام کرتا ہے
- لکھنا
- تحریری طور پر
- XGBoost
- سال
- تم
- اور
- زیفیرنیٹ
- صفر