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

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

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

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

بالکل درست فریکوئنسی تلاش کرنے کے لیے ریڈیو ریسیور پر نوب موڑنے کی طرح، کارکردگی کو بہتر بنانے کے لیے ہر ہائپر پیرامیٹر کو احتیاط سے ٹیون کرنا چاہیے۔ زیادہ سے زیادہ اقدار کے لیے ہائپر پیرامیٹر کی جگہ تلاش کرنا کہا جاتا ہے۔ ہائپر پیرامیٹر ٹیوننگ or ہائپر پیرامیٹر کی اصلاح (HPO)، اور اس کے نتیجے میں ایسا ماڈل ہونا چاہیے جو درست پیشین گوئیاں کرے۔

اس پوسٹ میں، ہم نے اپنی پہلی HPO جاب کا استعمال کرتے ہوئے سیٹ اپ اور چلایا ہے۔ ایمیزون سیج میکر آٹومیٹک ماڈل ٹیوننگ (AMT)۔ ہم نتائج کو دریافت کرنے کے لیے دستیاب طریقوں کے بارے میں سیکھتے ہیں، اور اپنے HPO ٹرائلز اور ہائپر پیرامیٹر اسپیس کی تلاش کے کچھ بصیرت انگیز تصورات تخلیق کرتے ہیں!

ایمیزون سیج میکر آٹومیٹک ماڈل ٹیوننگ

بطور ایم ایل پریکٹیشنر استعمال کر رہے ہیں۔ سیج میکر AMT، آپ مندرجہ ذیل پر توجہ مرکوز کر سکتے ہیں:

  • تربیتی کام فراہم کرنا
  • اپنے کام سے مماثل صحیح مقصدی میٹرک کی وضاحت کرنا
  • ہائپرپیرامیٹر تلاش کی جگہ کا دائرہ کار

SageMaker AMT باقی کا خیال رکھتا ہے، اور آپ کو انفراسٹرکچر، آرکیسٹریٹنگ ٹریننگ جابز، اور ہائپر پیرامیٹر کے انتخاب کو بہتر بنانے کے بارے میں سوچنے کی ضرورت نہیں ہے۔

آئیے ایک XGBoost الگورتھم کو تربیت دینے اور ٹیون کرنے کے لیے اپنی پہلی سادہ HPO جاب کے لیے SageMaker AMT کا استعمال کرتے ہوئے شروع کریں۔ ہم چاہتے ہیں کہ آپ کا AMT سفر ہینڈ آن اور پریکٹیکل ہو، اس لیے ہم نے ذیل میں مثال شیئر کی ہے۔ GitHub ذخیرہ. اس پوسٹ کا احاطہ کرتا ہے۔ 1_tuning_of_builtin_xgboost.ipynb کاپی.

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

شرائط

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

حل جائزہ

ہم SageMaker AMT کا استعمال کرتے ہوئے اپنی پہلی HPO جاب کو چلانے کے لیے اینڈ ٹو اینڈ سیٹ اپ بنانے جا رہے ہیں۔ جب ہمارا ٹیوننگ کام مکمل ہو جاتا ہے، تو ہم نتائج کو دریافت کرنے کے لیے دستیاب کچھ طریقوں کو دیکھتے ہیں، دونوں کے ذریعے AWS مینجمنٹ کنسول اور پروگرامی طور پر AWS SDKs اور APIs کے ذریعے۔

سب سے پہلے، ہم اپنے آپ کو ماحولیات اور سیج میکر ٹریننگ سے واقف کراتے ہیں، اسٹینڈ اکیلی ٹریننگ جاب چلا کر، بغیر کسی ٹیوننگ کے۔ ہم XGBoost الگورتھم استعمال کرتے ہیں، جو کہ فراہم کردہ بہت سے الگورتھم میں سے ایک ہے۔ سیج میکر بلٹ ان الگورتھم (کوئی تربیتی اسکرپٹ کی ضرورت نہیں!)

ہم دیکھتے ہیں کہ کس طرح سیج میکر ٹریننگ مندرجہ ذیل طریقوں سے کام کرتی ہے:

  • ایک مثال شروع اور روکتا ہے۔
  • ضروری کنٹینر مہیا کرتا ہے۔
  • مثال پر تربیت اور توثیق کے ڈیٹا کو کاپی کرتا ہے۔
  • ٹریننگ چلاتا ہے۔
  • میٹرکس اور لاگز جمع کرتا ہے۔
  • تربیت یافتہ ماڈل کو جمع اور ذخیرہ کرتا ہے۔

پھر ہم AMT میں چلے جاتے ہیں اور HPO جاب چلاتے ہیں:

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

ایک SageMaker بلٹ ان XGBoost الگورتھم کو تربیت دیں۔

یہ سب ایک ماڈل کی تربیت کے ساتھ شروع ہوتا ہے۔ ایسا کرنے سے، ہمیں اندازہ ہوتا ہے کہ سیج میکر ٹریننگ کیسے کام کرتی ہے۔

ہم SageMaker کی پیش کردہ رفتار اور استعمال میں آسانی سے فائدہ اٹھانا چاہتے ہیں۔ بلٹ ان الگورتھم. تربیت کے ساتھ شروع کرنے کے لیے ہمیں صرف چند اقدامات کی ضرورت ہے:

  1. ڈیٹا تیار کریں اور لوڈ کریں۔ - ہم XGBoost کے لیے اپنے ڈیٹاسیٹ کو بطور ان پٹ ڈاؤن لوڈ اور تیار کرتے ہیں اور اسے اپنے پر اپ لوڈ کرتے ہیں۔ ایمیزون سادہ اسٹوریج سروس (ایمیزون S3) بالٹی۔
  2. ہمارے بلٹ ان الگورتھم کی تصویر URI کو منتخب کریں۔ - SageMaker اس URI کو ہمارے ٹریننگ کنٹینر کو لانے کے لیے استعمال کرتا ہے، جو ہمارے معاملے میں XGBoost ٹریننگ اسکرپٹ پر مشتمل ہے۔ کئی الگورتھم ورژن تعاون یافتہ ہیں۔.
  3. ہائپر پیرامیٹرز کی وضاحت کریں۔ - سیج میکر کی وضاحت کرنے کے لئے ایک انٹرفیس فراہم کرتا ہے۔ ہائپرپیرامیٹر ہمارے بلٹ ان الگورتھم کے لیے۔ یہ وہی ہائپرپیرامیٹر ہیں جو اوپن سورس ورژن میں استعمال ہوتے ہیں۔
  4. تخمینہ لگانے والا بنائیں - ہم تربیت کے پیرامیٹرز کی وضاحت کرتے ہیں جیسے مثال کی قسم اور مثالوں کی تعداد۔
  5. fit() فنکشن کو کال کریں۔ - ہم اپنا تربیتی کام شروع کرتے ہیں۔

مندرجہ ذیل خاکہ دکھاتا ہے کہ یہ اقدامات کیسے مل کر کام کرتے ہیں۔

ڈیٹا فراہم کریں۔

ایم ایل ٹریننگ چلانے کے لیے، ہمیں ڈیٹا فراہم کرنے کی ضرورت ہے۔ ہم سیج میکر کو اپنی تربیت اور توثیق کا ڈیٹا Amazon S3 کے ذریعے فراہم کرتے ہیں۔

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

sm_sess = sagemaker.session.Session([..])

BUCKET = sm_sess.default_bucket()
PREFIX = 'amt-visualize-demo'
output_path = f's3://{BUCKET}/{PREFIX}/output'

نوٹ بک میں، ہم ایک عوامی ڈیٹاسیٹ استعمال کرتے ہیں اور ڈیٹا کو مقامی طور پر میں ذخیرہ کرتے ہیں۔ data ڈائریکٹری اس کے بعد ہم اپنی تربیت اور توثیق کا ڈیٹا Amazon S3 پر اپ لوڈ کرتے ہیں۔ بعد میں، ہم ان مقامات کی طرف اشارہ کرتے ہیں تاکہ انہیں SageMaker ٹریننگ میں منتقل کیا جا سکے۔

# acquire and prepare the data (not shown here)
# store the data locally
[..]
train_data.to_csv('data/train.csv', index=False, header=False)
valid_data.to_csv('data/valid.csv', index=False, header=False)
[..]
# upload the local files to S3
boto_sess.resource('s3').Bucket(BUCKET).Object(os.path.join(PREFIX, 'data/train/train.csv')).upload_file('data/train.csv')
boto_sess.resource('s3').Bucket(BUCKET).Object(os.path.join(PREFIX, 'data/valid/valid.csv')).upload_file('data/valid.csv')

اس پوسٹ میں، ہم HPO کو متعارف کرانے پر توجہ مرکوز کرتے ہیں۔ مثال کے لیے، ہم ایک مخصوص ڈیٹا سیٹ اور ٹاسک استعمال کرتے ہیں، تاکہ ہم معروضی میٹرکس کی پیمائش حاصل کر سکیں جسے ہم پھر ہائپر پیرامیٹر کے انتخاب کو بہتر بنانے کے لیے استعمال کرتے ہیں۔ تاہم، مجموعی پوسٹ کے لیے نہ تو ڈیٹا اور نہ ہی ٹاسک کی کوئی اہمیت ہے۔ آپ کو ایک مکمل تصویر پیش کرنے کے لیے، آئیے مختصراً بیان کرتے ہیں کہ ہم کیا کرتے ہیں: ہم ایک XGBoost ماڈل کو تربیت دیتے ہیں جو کہ ہاتھ سے لکھے ہوئے ہندسوں کی درجہ بندی کرے۔
ہاتھ سے لکھے ہندسوں کے ڈیٹا سیٹ کی آپٹیکل ریکگنیشن [1] بذریعہ Scikit-learn۔ XGBoost سٹرکچرڈ ڈیٹا کے لیے ایک بہترین الگورتھم ہے اور اسے ہندسوں کے ڈیٹاسیٹ پر بھی لاگو کیا جا سکتا ہے۔ اقدار 8×8 امیجز ہیں، جیسا کہ مندرجہ ذیل مثال میں دکھایا گیا ہے۔
0 a
5 اور ایک
4.

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

XGBoost امیج URI منتخب کریں۔

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

اگر آپ خود اپنی تربیت کا اسکرپٹ لکھنا چاہتے ہیں، تو دیکھتے رہیں، ہم نے آپ کو اپنی اگلی پوسٹ میں شامل کر لیا ہے! ہم آپ کو دکھائیں گے کہ سیج میکر ٹریننگ جابز کو آپ کی اپنی مرضی کے مطابق ٹریننگ اسکرپٹس کے ساتھ کیسے چلایا جائے۔

ابھی کے لیے، ہمیں الگورتھم، AWS ریجن، اور ورژن نمبر بتا کر درست تصویر URI کی ضرورت ہے:

xgboost_container = sagemaker.image_uris.retrieve('xgboost', region, '1.5-1')

یہی ہے. اب ہمارے پاس XGBoost الگورتھم کا حوالہ ہے۔

ہائپر پیرامیٹرز کی وضاحت کریں۔

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

اگرچہ ان میں سے ہر ایک ہائپر پیرامیٹر قابل ترتیب اور ایڈجسٹ ہے، مقصدی میٹرک multi:softmax اس کا تعین ہمارے ڈیٹاسیٹ اور مسئلہ کی قسم سے ہوتا ہے جسے ہم حل کر رہے ہیں۔ ہمارے معاملے میں، ہندسوں کے ڈیٹاسیٹ میں متعدد لیبل ہوتے ہیں (ایک ہاتھ سے لکھے ہوئے ہندسے کا مشاہدہ ہو سکتا ہے 0 or 1,2,3,4,5,6,7,8,9)، یعنی یہ ایک کثیر طبقے کی درجہ بندی کا مسئلہ ہے۔

hyperparameters = {
    'num_class': 10,
    'max_depth': 5,
    'eta':0.2,
    'alpha': 0.2,
    'objective':'multi:softmax',
    'eval_metric':'accuracy',
    'num_round':200,
    'early_stopping_rounds': 5
}

دیگر ہائپرپیرامیٹر کے بارے میں مزید معلومات کے لیے، رجوع کریں۔ XGBoost ہائپر پیرامیٹرز.

تخمینہ لگانے والا بنائیں

ہم ٹریننگ کو تخمینہ لگانے والے آبجیکٹ پر ترتیب دیتے ہیں، جو SageMaker ٹریننگ کے لیے ایک اعلیٰ سطحی انٹرفیس ہے۔

اگلا، ہم تربیت کے لیے مثالوں کی تعداد، مثال کی قسم (CPU-based یا GPU-based)، اور منسلک اسٹوریج کے سائز کی وضاحت کرتے ہیں:

estimator = sagemaker.estimator.Estimator(
    image_uri=xgboost_container, 
    hyperparameters=hyperparameters,
    role=role,
    instance_count=1, 
    instance_type='ml.m5.large', 
    volume_size=5, # 5 GB 
    output_path=output_path
)

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

fit() فنکشن کو کال کریں۔

وہ ڈیٹا یاد ہے جو ہم نے پہلے Amazon S3 پر اپ لوڈ کیا تھا؟ اب ہم اس کے حوالے بناتے ہیں:

s3_input_train = TrainingInput(s3_data=f's3://{BUCKET}/{PREFIX}/data/train', content_type='csv')
s3_input_valid = TrainingInput(s3_data=f's3://{BUCKET}/{PREFIX}/data/valid', content_type='csv')

کو ایک کال fit() ہماری تربیت کا آغاز کرتا ہے۔ ہم تربیتی اعداد و شمار کے حوالہ جات دیتے ہیں جو ہم نے ابھی SageMaker Training کو اپنی تربیت اور توثیق کے ڈیٹا کی طرف اشارہ کرنے کے لیے بنایا ہے:

estimator.fit({'train': s3_input_train, 'validation': s3_input_valid})

نوٹ کریں کہ بعد میں HPO چلانے کے لیے، ہمیں اصل میں کال کرنے کی ضرورت نہیں ہے۔ fit() یہاں ہمیں HPO کے لیے بعد میں تخمینہ لگانے والے آبجیکٹ کی ضرورت ہے، اور ہم صرف اپنی HPO جاب بنانے کے لیے کود سکتے ہیں۔ لیکن چونکہ ہم سیج میکر ٹریننگ کے بارے میں جاننا چاہتے ہیں اور یہ دیکھنا چاہتے ہیں کہ ایک ہی تربیتی کام کو کیسے چلانا ہے، ہم اسے یہاں کال کرتے ہیں اور آؤٹ پٹ کا جائزہ لیتے ہیں۔

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

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

Jupyter نوٹ بک میں fit() فنکشن سے آؤٹ پٹ

یہ بھی نوٹ کریں کہ آؤٹ پٹ جاب کے اختتام پر، ٹریننگ کا دورانیہ سیکنڈز اور قابل بل سیکنڈز میں دکھایا گیا ہے۔

آخر میں، ہم دیکھتے ہیں کہ SageMaker ہمارے ٹریننگ ماڈل کو S3 آؤٹ پٹ پاتھ پر اپ لوڈ کرتا ہے جو تخمینہ لگانے والے آبجیکٹ پر بیان کیا گیا ہے۔ ماڈل اندازہ لگانے کے لیے تیار ہے۔

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

موجودہ اور سابقہ ​​تربیتی ملازمتوں کا معائنہ کریں۔

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

سیج میکر ٹریننگ جابز کا کنسول ویو

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

مندرجہ ذیل اسکرین شاٹ ہمارے تربیتی کام کا کنسول ویو دکھاتا ہے۔

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

ہم سیل آؤٹ پٹ کے طور پر موصول ہونے والی معلومات کا جائزہ لے سکتے ہیں۔ fit() SageMaker کنسول کے اندر انفرادی تربیتی کام میں فنکشن، پیرامیٹرز اور میٹا ڈیٹا کے ساتھ جو ہم نے اپنے تخمینہ کار میں بیان کیے ہیں۔

تربیتی مثال سے لاگ آؤٹ پٹ کو یاد کریں جو ہم نے پہلے دیکھا تھا۔ ہم یہاں بھی اپنی تربیتی ملازمت کے لاگز تک اسکرول کر کے رسائی حاصل کر سکتے ہیں۔ کی نگرانی سیکشن اور انتخاب لاگز دیکھیں.

ٹریننگ جاب میں مانیٹرنگ ٹیب کا کنسول ویو

یہ ہمیں CloudWatch کے اندر مثال کے لاگز دکھاتا ہے۔

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

تربیتی کام کے لیے ہم نے اپنی نوٹ بک میں جن ہائیپرپیرامیٹرس کی وضاحت کی ہے انہیں بھی یاد رکھیں۔ ہم انہیں یہاں تربیتی کام کے اسی UI میں بھی دیکھتے ہیں۔

سیج میکر ٹریننگ جاب کے ہائپر پیرامیٹرز کا کنسول ویو

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

آپ اس وقت پوچھ رہے ہوں گے، یہ ہائپر پیرامیٹر آپٹیمائزیشن کے لیے بالکل متعلقہ کیوں ہے؟ اس کی وجہ یہ ہے کہ آپ ان HPO ٹرائلز کو تلاش کر سکتے ہیں، معائنہ کر سکتے ہیں اور ان میں گہرائی میں غوطہ لگا سکتے ہیں جن میں ہماری دلچسپی ہے۔ ہو سکتا ہے کہ بہترین نتائج کے ساتھ، یا وہ جو دلچسپ رویے کا مظاہرہ کریں۔ ہم اسے آپ پر چھوڑ دیں گے جسے آپ "دلچسپ" کے طور پر بیان کرتے ہیں۔ یہ ہمیں ہماری تربیتی ملازمتوں کا معائنہ کرنے کے لیے ایک مشترکہ انٹرفیس فراہم کرتا ہے، اور آپ اسے SageMaker تلاش کے ساتھ استعمال کر سکتے ہیں۔

اگرچہ SageMaker AMT HPO جابز کو آرکیسٹریٹ کرتا ہے، HPO ٹرائل سبھی انفرادی SageMaker ٹریننگ جابز کے طور پر شروع کیے گئے ہیں اور اس تک رسائی حاصل کی جا سکتی ہے۔

تربیت کا احاطہ کرتے ہوئے، آئیے ٹیوننگ کرتے ہیں!

ایک SageMaker بلٹ ان XGBoost الگورتھم کو تربیت دیں اور ٹیون کریں۔

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

from sagemaker.tuner import IntegerParameter, ContinuousParameter, HyperparameterTuner

hpt_ranges = {
    'alpha': ContinuousParameter(0.01, .5),
    'eta': ContinuousParameter(0.1, .5),
    'min_child_weight': ContinuousParameter(0., 2.),
    'max_depth': IntegerParameter(1, 10)
}

انفرادی ہائپر پیرامیٹر کی حدود ان کی قسم سے متعین ہوتی ہیں، جیسے مسلسل پیرامیٹر. ان پیرامیٹر رینجز کو منتخب کرنے کے بارے میں مزید معلومات اور تجاویز کے لیے، دیکھیں ایک XGBoost ماڈل کو ٹیون کریں۔.

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

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

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

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

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

یہ بتا کر کہ ہم اپنے مقصدی میٹرک کو زیادہ سے زیادہ کرنا چاہتے ہیں، validation:accuracy، ہم SageMaker AMT سے کہہ رہے ہیں کہ وہ ٹریننگ انسٹینس لاگز میں ان میٹرکس کو تلاش کرے اور ہائپر پیرامیٹر ویلیوز کو منتخب کرے جو اس کے خیال میں ہمارے توثیق کے ڈیٹا پر درستگی میٹرک کو زیادہ سے زیادہ بنائے گی۔ ہم نے ایک مناسب انتخاب کیا۔ XGBoost کے لیے مقصدی میٹرک ہماری دستاویزات سے۔

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

ہم بھی تعریف کرتے ہیں۔ max_jobs اس بات کی وضاحت کرنے کے لیے کہ کل کتنے ٹرائلز چلائے جائیں۔ بلا جھجھک ہماری مثال سے انحراف کریں اور پیسے بچانے کے لیے چھوٹی تعداد کا استعمال کریں۔

n_jobs = 50
n_parallel_jobs = 3

tuner_parameters = {
    'estimator': estimator, # The same estimator object we defined above
    'base_tuning_job_name': 'bayesian',
    'objective_metric_name': 'validation:accuracy',
    'objective_type': 'Maximize',
    'hyperparameter_ranges': hpt_ranges,
    'strategy': 'Bayesian',
    'max_jobs': n_jobs,
    'max_parallel_jobs': n_parallel_jobs
}

ہم ایک بار پھر کال کرتے ہیں۔ fit(), اسی طرح جب ہم نے پوسٹ میں پہلے ایک تربیتی کام شروع کیا تھا۔ لیکن اس بار ٹیونر آبجیکٹ پر، تخمینہ لگانے والے آبجیکٹ پر نہیں۔ اس سے ٹیوننگ کا کام شروع ہو جاتا ہے، اور اس کے نتیجے میں AMT تربیتی ملازمتیں شروع کر دیتا ہے۔

tuner = HyperparameterTuner(**tuner_parameters)
tuner.fit({'train': s3_input_train, 'validation': s3_input_valid}, wait=False)
tuner_name = tuner.describe()['HyperParameterTuningJobName']
print(f'tuning job submitted: {tuner_name}.')

درج ذیل خاکہ SageMaker AMT کے ساتھ HPO کو شامل کر کے ہمارے پچھلے فن تعمیر پر پھیلتا ہے۔

SageMaker AMT کے ساتھ سیج میکر ٹریننگ اور ہائپر پیرامیٹر آپٹیمائزیشن کا جائزہ

ہم دیکھتے ہیں کہ ہماری HPO جاب جمع کر دی گئی ہے۔ ٹرائلز کی تعداد پر منحصر ہے، کی طرف سے وضاحت n_jobs اور متوازی کی سطح، اس میں کچھ وقت لگ سکتا ہے۔ ہماری مثال کے طور پر، صرف 30 کی متوازی سطح کے ساتھ 50 ٹرائلز میں 3 منٹ لگ سکتے ہیں۔

tuning job submitted: bayesian-221102-2053.

جب یہ ٹیوننگ کام مکمل ہو جائے، آئیے SageMaker کنسول پر ہمارے لیے دستیاب معلومات کو دریافت کریں۔

کنسول پر AMT جابز کی چھان بین کریں۔

آئیے انتخاب کرکے سیج میکر کنسول پر اپنی ٹیوننگ جاب تلاش کریں۔ ٹریننگ نیویگیشن پین میں اور پھر ہائپر پیرامیٹر ٹیوننگ جابز. یہ ہمیں ہماری AMT ملازمتوں کی فہرست فراہم کرتا ہے، جیسا کہ درج ذیل اسکرین شاٹ میں دکھایا گیا ہے۔ یہاں ہم اپنے کو تلاش کرتے ہیں۔ bayesian-221102-2053 کام کو ٹیوننگ کریں اور معلوم کریں کہ یہ اب مکمل ہو گیا ہے۔

ہائپر پیرامیٹر ٹیوننگ جابس پیج کا کنسول ویو۔ تصویر ٹیوننگ جابز کی فہرست کا منظر دکھاتی ہے، جس میں ہماری 1 ٹیوننگ اندراج شامل ہے۔

آئیے اس HPO کام کے نتائج کو قریب سے دیکھتے ہیں۔

ہم نے پروگرام کے لحاظ سے نتائج کو نکالنے کی تلاش کی ہے۔ نوٹ بک. سب سے پہلے کے ذریعے SageMaker Python SDK، جو ایک اعلی سطح کی اوپن سورس Python لائبریری ہے، جو SageMaker کو ایک وقف API فراہم کرتی ہے۔ پھر کے ذریعے بوٹو 3، جو ہمیں SageMaker اور دیگر AWS خدمات کو نچلی سطح کے API فراہم کرتا ہے۔

SageMaker Python SDK کا استعمال کرتے ہوئے، ہم اپنے HPO کام کے نتائج حاصل کر سکتے ہیں:

sagemaker.HyperparameterTuningJobAnalytics(tuner_name).dataframe()[:10]

اس سے ہمیں پانڈاس ڈیٹا فریم میں اپنے ہر ٹرائل کے نتائج کا تجزیہ کرنے کی اجازت ملی، جیسا کہ درج ذیل اسکرین شاٹ میں دیکھا گیا ہے۔

Jupyter نوٹ بک میں پانڈاس ٹیبل ہماری HPO جاب کے لیے ٹریلز سے نتائج اور میٹا ڈیٹا دکھا رہا ہے

اب آئیے دوبارہ نقطہ نظر کو تبدیل کریں اور دیکھیں کہ سیج میکر کنسول پر نتائج کیسا نظر آتا ہے۔ پھر ہم اپنے حسب ضرورت تصورات کو دیکھیں گے۔

اسی صفحے پر، ہمارے انتخاب bayesian-221102-2053 ٹیوننگ جاب ہمیں ٹرائلز کی فہرست فراہم کرتا ہے جو ہماری ٹیوننگ جاب کے لیے چلائے گئے تھے۔ یہاں ہر HPO ٹرائل سیج میکر ٹریننگ کا کام ہے۔ یاد کریں پہلے جب ہم نے اپنے سنگل XGBoost ماڈل کو تربیت دی اور SageMaker کنسول میں تربیتی کام کی چھان بین کی۔ ہم یہاں اپنی آزمائشوں کے لیے بھی ایسا ہی کر سکتے ہیں۔

جیسا کہ ہم اپنے آزمائشوں کی تحقیقات کرتے ہیں، ہم دیکھتے ہیں کہ bayesian-221102-2053-048-b59ec7b4 تقریباً 89.815% کی توثیق کی درستگی کے ساتھ بہترین کارکردگی کا مظاہرہ کرنے والا ماڈل بنایا۔ آئیے دریافت کرتے ہیں کہ کون سے ہائپر پیرامیٹر اس کارکردگی کا باعث بنے۔ بہترین تربیتی کام ٹیب.

ایک واحد ٹیوننگ جاب کا کنسول ویو، ٹریننگ کی نوکریوں کی فہرست دکھا رہا ہے۔

ہم جانچے گئے بہترین ہائپرپرامیٹرز کا تفصیلی نظارہ دیکھ سکتے ہیں۔

بہترین تربیتی جاب کی تفصیلات دکھاتے ہوئے سنگل ٹیوننگ جاب کا کنسول ویو

ہم فوری طور پر دیکھ سکتے ہیں کہ کون سی ہائپر پیرامیٹر اقدار اس اعلی کارکردگی کا باعث بنی ہیں۔ تاہم، ہم مزید جاننا چاہتے ہیں۔ کیا آپ اندازہ لگا سکتے ہیں؟ ہم دیکھتے ہیں کہ alpha 0.052456 کی تخمینی قیمت لیتا ہے اور اسی طرح، eta 0.433495 پر سیٹ ہے۔ یہ ہمیں بتاتا ہے کہ ان اقدار نے اچھی طرح کام کیا، لیکن یہ ہمیں ہائپر پیرامیٹر کی جگہ کے بارے میں بہت کم بتاتا ہے۔ مثال کے طور پر، ہم سوچ سکتے ہیں کہ آیا 0.433495 کے لیے eta سب سے زیادہ قدر کا تجربہ کیا گیا تھا، یا آیا اعلی اقدار کو منتخب کرکے ترقی اور ماڈل میں بہتری کی گنجائش موجود ہے۔

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

ہماری آزمائشوں کا تصور کریں۔

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

from amtviz import visualize_tuning_job
visualize_tuning_job(tuner, trials_only=True)

وقت کے ساتھ ساتھ ہمارے ٹرائلز کی درستگی (y-axis) (x-axis) کی منصوبہ بندی کرتے وقت ان تصورات کی طاقت فوری طور پر ظاہر ہو جاتی ہے۔ بائیں طرف درج ذیل چارٹ وقت کے ساتھ توثیق کی درستگی کو ظاہر کرتا ہے۔ ہم واضح طور پر ماڈل کی کارکردگی کو بہتر ہوتے دیکھ سکتے ہیں کیونکہ ہم وقت کے ساتھ ساتھ مزید ٹرائلز چلاتے ہیں۔ یہ Bayesian حکمت عملی کے ساتھ HPO چلانے کا براہ راست اور متوقع نتیجہ ہے۔ ہماری اگلی پوسٹ میں، ہم دیکھتے ہیں کہ یہ دوسری حکمت عملیوں سے کس طرح موازنہ کرتا ہے اور مشاہدہ کرتے ہیں کہ تمام حکمت عملیوں کے لیے ایسا ہونا ضروری نہیں ہے۔

دو چارٹس جو HPO ٹریلز دکھا رہے ہیں۔ بائیں چارٹ وقت کے ساتھ توثیق کی درستگی کو ظاہر کرتا ہے۔ درست چارٹ توثیق کی درستگی کی اقدار کے لیے کثافت کا چارٹ دکھاتا ہے۔

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

مندرجہ ذیل چارٹس y-axis پر توثیق کی درستگی کو ظاہر کرتے ہیں، ہر چارٹ کے ساتھ max_depth, alpha, eta، اور min_child_weight ایکس محور پر بالترتیب۔ ہم نے اپنی پوری HPO جاب کو ہر چارٹ میں پلاٹ کیا ہے۔ ہر نقطہ ایک واحد آزمائش ہے، اور ہر چارٹ میں تمام 50 ٹرائلز شامل ہیں، لیکن ہر ایک ہائپر پیرامیٹر کے لیے الگ کیا گیا ہے۔ اس کا مطلب ہے کہ ہماری بہترین کارکردگی کا مظاہرہ کرنے والا ٹرائل، #48، ان چارٹ میں سے ہر ایک میں بالکل ایک نیلے نقطے سے ظاہر ہوتا ہے (جسے ہم نے آپ کے لیے درج ذیل تصویر میں نمایاں کیا ہے)۔ ہم دیگر تمام 49 آزمائشوں کے تناظر میں اس کی کارکردگی کا بصری طور پر موازنہ کر سکتے ہیں۔ تو، آئیے قریب سے دیکھیں۔

دلچسپ! ہم فوری طور پر دیکھتے ہیں کہ ہمارے ہائپر پیرامیٹر اسپیس میں ہماری متعین حدود کے کون سے علاقے سب سے زیادہ پرفارمنس ہیں! ہماری طرف واپس سوچنا eta قدر، اب یہ واضح ہے کہ 0 کے قریب نمونے لینے کی قدروں نے بدتر کارکردگی کا مظاہرہ کیا، جب کہ ہماری سرحد، 0.5 کے قریب جانے سے بہتر نتائج برآمد ہوتے ہیں۔ الٹ کے لیے سچ معلوم ہوتا ہے۔ alpha، اور max_depth ایسا لگتا ہے کہ ترجیحی اقدار کا زیادہ محدود سیٹ ہے۔ کی طرف دیکھ max_depth، آپ یہ بھی دیکھ سکتے ہیں کہ کس طرح Bayesian حکمت عملی کا استعمال کرتے ہوئے SageMaker AMT کو زیادہ کثرت سے ان اقدار کا نمونہ لینے کی ہدایت کرتا ہے جو اس نے ماضی میں اچھی طرح سے سیکھی تھیں۔

y-axis پر توثیق کی درستگی ظاہر کرنے والے چار چارٹ، ہر چارٹ کے ساتھ بالترتیب x-axis پر max_depth، alpha، eta، min_child_weight دکھاتا ہے۔ ہر ڈیٹا پوائنٹ ایک ہی HPO ٹرائل کی نمائندگی کرتا ہے۔

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

اگر آپ مزید جاننے کے خواہشمند ہیں، اور موضوع کے اس تعارف سے ہم اتنے ہی پرجوش ہیں، تو ہماری اگلی پوسٹ کے لیے دیکھتے رہیں، جہاں ہم HPO کی مختلف حکمت عملیوں کے بارے میں مزید بات کریں گے، ان کا ایک دوسرے سے موازنہ کریں گے، اور ہماری اپنی Python اسکرپٹ کے ساتھ تربیت کی مشق کریں۔

صاف کرو

جب آپ HPO کے ساتھ تجربہ کر چکے ہیں تو ناپسندیدہ اخراجات سے بچنے کے لیے، آپ کو اپنی S3 بالٹی میں موجود تمام فائلوں کو سابقہ ​​کے ساتھ ہٹا دینا چاہیے۔ amt-visualize-demo اور اسٹوڈیو کے وسائل کو بند کریں۔.

اس پوسٹ سے تمام S3 فائلوں کو ہٹانے کے لیے اپنی نوٹ بک میں درج ذیل کوڈ کو چلائیں۔

!aws s3 rm s3://{BUCKET}/amt-visualize-demo --recursive

اگر آپ ڈیٹاسیٹس یا نمونے کے نمونے رکھنا چاہتے ہیں، تو آپ کوڈ میں سابقہ ​​کو تبدیل کر سکتے ہیں amt-visualize-demo/data صرف ڈیٹا کو حذف کرنے کے لیے یا amt-visualize-demo/output صرف ماڈل نمونے کو حذف کرنے کے لیے۔

نتیجہ

اس پوسٹ میں، ہم نے XGBoost الگورتھم کے بلٹ ان ورژن SageMaker کا استعمال کرتے ہوئے ایک ماڈل کو تربیت اور ٹیون کیا ہے۔ SageMaker AMT کے ساتھ HPO کا استعمال کرکے، ہم نے ان ہائپر پیرامیٹرس کے بارے میں سیکھا جو اس مخصوص الگورتھم اور ڈیٹاسیٹ کے لیے اچھی طرح کام کرتے ہیں۔

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

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

اس کے بعد ہم نے اپنے تمام ٹرائلز کو ایک ساتھ دیکھنے کے لیے زوم آؤٹ کیا، اور دیگر ٹرائلز اور ہائپر پیرامیٹرس کے سلسلے میں ان کی کارکردگی کا جائزہ لیا۔

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

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

تب تک، ہم آپ کو اور آپ کے ماڈلز کو سیکھنے اور ٹیوننگ میں خوش رہنے کی خواہش کرتے ہیں!

حوالہ جات

حوالہ جات:

[1] دعا، ڈی. اور گراف، سی. (2019)۔ UCI مشین لرننگ ریپوزٹری [http://archive.ics.uci.edu/ml]۔ اروائن، CA: یونیورسٹی آف کیلیفورنیا، سکول آف انفارمیشن اینڈ کمپیوٹر سائنس۔


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

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

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

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

ٹائم اسٹیمپ:

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