Amazon SageMaker স্বয়ংক্রিয় মডেল টিউনিং PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে হাইপারপ্যারামিটারগুলি অপ্টিমাইজ করুন। উল্লম্ব অনুসন্ধান. আ.

Amazon SageMaker স্বয়ংক্রিয় মডেল টিউনিংয়ের সাথে হাইপারপ্যারামিটারগুলি অপ্টিমাইজ করুন

মেশিন লার্নিং (এমএল) মডেলগুলি বিশ্বকে ঝড় তুলেছে। তাদের কর্মক্ষমতা সঠিক প্রশিক্ষণ ডেটা ব্যবহার এবং সঠিক মডেল এবং অ্যালগরিদম বেছে নেওয়ার উপর নির্ভর করে। কিন্তু এখানেই শেষ নয়। সাধারণত, অ্যালগরিদমগুলি এমএল অনুশীলনকারীকে তাদের নির্দিষ্ট ডেটা এবং কাজের জন্য গ্রহণ করার জন্য কিছু নকশা সিদ্ধান্ত পিছিয়ে দেয়। এই বিলম্বিত নকশা সিদ্ধান্ত নিজেদেরকে হিসাবে উদ্ভাসিত হাইপারপ্যারামিটার.

যে নামের মানে কি? এমএল প্রশিক্ষণের ফলাফল, মডেল, মূলত প্রশিক্ষণের সময় শেখা পরামিতিগুলির একটি সংগ্রহ হিসাবে দেখা যেতে পারে। অতএব, ML প্রশিক্ষণ প্রক্রিয়া কনফিগার করার জন্য যে পরামিতিগুলি ব্যবহার করা হয় সেগুলিকে হাইপারপ্যারামিটার বলা হয় — পরামিতিগুলি তৈরির বর্ণনা দেয়। যেকোনও হারে, এগুলি খুব ব্যবহারিক কাজে লাগে, যেমন প্রশিক্ষনের জন্য যুগের সংখ্যা, শেখার হার, সিদ্ধান্ত গাছের সর্বোচ্চ গভীরতা এবং আরও অনেক কিছু। এবং আমরা তাদের প্রতি অনেক মনোযোগ দিই কারণ তারা আপনার মডেলের চূড়ান্ত কর্মক্ষমতার উপর একটি বড় প্রভাব ফেলে।

ঠিক যেমন সঠিক ফ্রিকোয়েন্সি খুঁজে পেতে একটি রেডিও রিসিভারে একটি গাঁট ঘুরিয়ে দেওয়া হয়, তেমনি প্রতিটি হাইপারপ্যারামিটারকে পারফরম্যান্স অপ্টিমাইজ করার জন্য সাবধানে টিউন করা উচিত। সর্বোত্তম মানগুলির জন্য হাইপারপ্যারামিটার স্থান অনুসন্ধান করাকে বলা হয় হাইপারপ্যারামিটার টিউনিং or হাইপারপ্যারামিটার অপ্টিমাইজেশান (HPO), এবং সঠিক ভবিষ্যদ্বাণী দেয় এমন একটি মডেলের ফলাফল হওয়া উচিত।

এই পোস্টে, আমরা ব্যবহার করে আমাদের প্রথম HPO কাজ সেট আপ এবং চালাই অ্যামাজন সেজমেকার স্বয়ংক্রিয় মডেল টিউনিং (AMT)। আমরা ফলাফলগুলি অন্বেষণ করার জন্য উপলব্ধ পদ্ধতিগুলি সম্পর্কে শিখি এবং আমাদের HPO ট্রায়ালগুলির কিছু অন্তর্দৃষ্টিপূর্ণ ভিজ্যুয়ালাইজেশন এবং হাইপারপ্যারামিটার স্থানের অন্বেষণ তৈরি করি!

অ্যামাজন সেজমেকার স্বয়ংক্রিয় মডেল টিউনিং

ব্যবহার করে একটি ML অনুশীলনকারী হিসাবে সেজমেকার এএমটি, আপনি নিম্নলিখিত ফোকাস করতে পারেন:

  • একটি প্রশিক্ষণ কাজ প্রদান
  • আপনার টাস্কের সাথে মেলে সঠিক উদ্দেশ্য মেট্রিক সংজ্ঞায়িত করা
  • হাইপারপ্যারামিটার অনুসন্ধান স্থান স্কোপিং

সেজমেকার এএমটি বাকিদের যত্ন নেয়, এবং আপনাকে অবকাঠামো, অর্কেস্ট্রেটিং প্রশিক্ষণের কাজ এবং হাইপারপ্যারামিটার নির্বাচনের উন্নতি সম্পর্কে চিন্তা করতে হবে না।

একটি XGBoost অ্যালগরিদমকে প্রশিক্ষণ এবং টিউন করার জন্য আমাদের প্রথম সাধারণ HPO কাজের জন্য SageMaker AMT ব্যবহার করে শুরু করা যাক। আমরা চাই আপনার AMT যাত্রা হ্যান্ডস-অন এবং ব্যবহারিক হোক, তাই আমরা নিম্নলিখিত উদাহরণটি শেয়ার করেছি GitHub সংগ্রহস্থল. এই পোস্ট কভার 1_tuning_of_builtin_xgboost.ipynb নোটবই.

একটি আসন্ন পোস্টে, আমরা শুধুমাত্র সেরা হাইপারপ্যারামিটার খোঁজার ধারণাটি প্রসারিত করব এবং অনুসন্ধানের স্থান এবং কোন মডেলটি সংবেদনশীল হাইপারপ্যারামিটার রেঞ্জ সম্পর্কে শেখার অন্তর্ভুক্ত করব। আমরা আরও দেখাব কিভাবে এক-শট টিউনিং কার্যকলাপকে একত্রে শিখতে ML অনুশীলনকারীর সাথে একটি বহু-পদক্ষেপ কথোপকথনে পরিণত করা যায়। সাথে থাকুন (শ্লেষের উদ্দেশ্যে)!

পূর্বশর্ত

এই পোস্টটি এইচপিও সম্পর্কে শিখতে আগ্রহী এমন কারও জন্য এবং বিষয়টি সম্পর্কে পূর্ব জ্ঞানের প্রয়োজন নেই। যদিও এমএল ধারণা এবং পাইথন প্রোগ্রামিংয়ের সাথে প্রাথমিক পরিচিতি সহায়ক। শেখার সর্বোত্তম অভিজ্ঞতার জন্য, আমরা অনুসরণ করার সুপারিশ করছি নোটবুকের প্রতিটি ধাপ চলমান এই পোস্ট পড়ার সমান্তরালে. এবং নোটবুকের শেষে, আপনি একটি ইন্টারেক্টিভ ভিজ্যুয়ালাইজেশন চেষ্টা করতে পারেন যা টিউনিং ফলাফলগুলিকে জীবন্ত করে তোলে।

সমাধান ওভারভিউ

SageMaker AMT ব্যবহার করে আমাদের প্রথম HPO কাজ চালানোর জন্য আমরা একটি এন্ড-টু-এন্ড সেটআপ তৈরি করতে যাচ্ছি। যখন আমাদের টিউনিং কাজ সম্পূর্ণ হয়, আমরা ফলাফলগুলি অন্বেষণ করার জন্য উপলব্ধ কিছু পদ্ধতি দেখি, উভয় মাধ্যমে এডাব্লুএস ম্যানেজমেন্ট কনসোল এবং প্রোগ্রাম্যাটিকভাবে AWS SDK এবং API-এর মাধ্যমে।

প্রথমত, আমরা আপাতত কোনো টিউনিং ছাড়াই একটি স্বতন্ত্র প্রশিক্ষণের কাজ চালিয়ে পরিবেশ এবং সেজমেকার প্রশিক্ষণের সাথে নিজেদের পরিচিত করি। আমরা XGBoost অ্যালগরিদম ব্যবহার করি, একটি হিসাবে প্রদত্ত অনেক অ্যালগরিদমের মধ্যে একটি সেজমেকার বিল্ট-ইন অ্যালগরিদম (কোন প্রশিক্ষণ স্ক্রিপ্ট প্রয়োজন নেই!)

আমরা দেখি কিভাবে সেজমেকার প্রশিক্ষণ নিম্নলিখিত উপায়ে কাজ করে:

  • একটি দৃষ্টান্ত শুরু এবং বন্ধ করে
  • প্রয়োজনীয় পাত্রের ব্যবস্থা করে
  • উদাহরণে প্রশিক্ষণ এবং বৈধতা ডেটা অনুলিপি করে
  • প্রশিক্ষণ পরিচালনা করেন
  • মেট্রিক্স এবং লগ সংগ্রহ করে
  • প্রশিক্ষিত মডেল সংগ্রহ করে সংরক্ষণ করে

তারপরে আমরা AMT এ চলে যাই এবং একটি HPO কাজ চালাই:

  • আমরা AMT এর সাথে আমাদের টিউনিং কাজ সেট আপ এবং চালু করি
  • আমরা প্রতিটি প্রশিক্ষণ কাজের জন্য বিস্তারিত কর্মক্ষমতা মেট্রিক্স এবং মেটাডেটা বের করার জন্য উপলব্ধ পদ্ধতিগুলিতে ডুব দিই, যা আমাদের হাইপারপ্যারামিটার স্পেসের সর্বোত্তম মান সম্পর্কে আরও জানতে সক্ষম করে।
  • ট্রায়ালের ফলাফল কিভাবে দেখতে হয় তা আমরা আপনাকে দেখাই
  • আমাদের হাইপারপ্যারামিটার স্পেসের মূল্যবান অন্তর্দৃষ্টি প্রকাশ করে এমন একটি তালিকায় ডেটা ভিজ্যুয়ালাইজ করার জন্য আমরা আপনাকে টুল সরবরাহ করি

একটি SageMaker অন্তর্নির্মিত XGBoost অ্যালগরিদম প্রশিক্ষণ দিন

এটি সব একটি মডেল প্রশিক্ষণ দিয়ে শুরু হয়. এটি করার মাধ্যমে, আমরা সেজমেকার ট্রেনিং কীভাবে কাজ করে তার একটি ধারণা পাই।

আমরা SageMaker দ্বারা অফার করা গতি এবং ব্যবহারের সহজতার সুবিধা নিতে চাই অন্তর্নির্মিত অ্যালগরিদম. প্রশিক্ষণ শুরু করার জন্য আমাদের যা দরকার তা হল কয়েকটি পদক্ষেপ:

  1. ডেটা প্রস্তুত করুন এবং লোড করুন - আমরা XGBoost-এর জন্য ইনপুট হিসাবে আমাদের ডেটাসেট ডাউনলোড এবং প্রস্তুত করি এবং এটি আমাদের আপলোড করি আমাজন সিম্পল স্টোরেজ সার্ভিস (অ্যামাজন এস 3) বালতি।
  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 এ আমাদের প্রশিক্ষণ এবং বৈধতা ডেটা আপলোড করি। পরে, আমরা সেজমেকার ট্রেনিং-এ পাস করার জন্য এই অবস্থানগুলির পয়েন্টারগুলিকেও সংজ্ঞায়িত করি।

# 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')

এই পোস্টে, আমরা এইচপিও প্রবর্তনের দিকে মনোনিবেশ করি। দৃষ্টান্তের জন্য, আমরা একটি নির্দিষ্ট ডেটাসেট এবং টাস্ক ব্যবহার করি, যাতে আমরা বস্তুনিষ্ঠ মেট্রিক্সের পরিমাপ পেতে পারি যা আমরা হাইপারপ্যারামিটার নির্বাচনকে অপ্টিমাইজ করতে ব্যবহার করি। যাইহোক, সামগ্রিক পোস্টের জন্য ডেটা বা টাস্ক কোনটাই গুরুত্বপূর্ণ নয়। আপনাকে একটি সম্পূর্ণ ছবি উপস্থাপন করতে, আসুন আমরা যা করি তা সংক্ষেপে বর্ণনা করি: আমরা একটি XGBoost মডেলকে প্রশিক্ষণ দিই যা থেকে হাতে লেখা অঙ্কগুলিকে শ্রেণীবদ্ধ করা উচিত
হাতের লেখা ডিজিট ডেটা সেটের অপটিক্যাল স্বীকৃতি স্কিট-লার্নের মাধ্যমে। XGBoost হল স্ট্রাকচার্ড ডেটার জন্য একটি চমৎকার অ্যালগরিদম এবং এমনকি ডিজিট ডেটাসেটে প্রয়োগ করা যেতে পারে। মানগুলি হল 1×8 চিত্র, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে
0 a
5 এবং একটি
4.

Amazon SageMaker স্বয়ংক্রিয় মডেল টিউনিং PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে হাইপারপ্যারামিটারগুলি অপ্টিমাইজ করুন। উল্লম্ব অনুসন্ধান. আ.

XGBoost ইমেজ URI নির্বাচন করুন

আমাদের অন্তর্নির্মিত অ্যালগরিদম (XGBoost) বেছে নেওয়ার পরে, আমাদের অবশ্যই ইমেজ URI পুনরুদ্ধার করতে হবে এবং আমাদের প্রশিক্ষণের উদাহরণে লোড করার জন্য এটি SageMaker-এ পাঠাতে হবে। এই পদক্ষেপের জন্য, আমরা পর্যালোচনা করি উপলব্ধ সংস্করণ. এখানে আমরা 1.5.1 সংস্করণ ব্যবহার করার সিদ্ধান্ত নিয়েছি, যা অ্যালগরিদমের সর্বশেষ সংস্করণ অফার করে। টাস্কের উপর নির্ভর করে, ML অনুশীলনকারীরা তাদের নিজস্ব প্রশিক্ষণ স্ক্রিপ্ট লিখতে পারে যা, উদাহরণস্বরূপ, ডেটা প্রস্তুতির পদক্ষেপগুলি অন্তর্ভুক্ত করে। কিন্তু আমাদের ক্ষেত্রে এটি প্রয়োজনীয় নয়।

আপনি যদি নিজের প্রশিক্ষণ স্ক্রিপ্ট লিখতে চান, তাহলে সাথে থাকুন, আমরা আমাদের পরবর্তী পোস্টে আপনাকে কভার করেছি! আমরা আপনাকে দেখাব কিভাবে আপনার নিজস্ব কাস্টম ট্রেনিং স্ক্রিপ্ট দিয়ে সেজমেকার ট্রেনিং কাজ চালাতে হয়।

আপাতত, অ্যালগরিদম, AWS অঞ্চল এবং সংস্করণ নম্বর উল্লেখ করে আমাদের সঠিক চিত্র URI প্রয়োজন:

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

এটাই. এখন আমাদের কাছে XGBoost অ্যালগরিদমের একটি রেফারেন্স আছে।

হাইপারপ্যারামিটার সংজ্ঞায়িত করুন

এখন আমরা আমাদের হাইপারপ্যারামিটার সংজ্ঞায়িত করি। এই মানগুলি কনফিগার করে যে কীভাবে আমাদের মডেলকে প্রশিক্ষিত করা হবে এবং শেষ পর্যন্ত মডেলটি কীভাবে আমাদের ক্ষেত্রে নির্ভুলতার বিরুদ্ধে আমরা পরিমাপ করছি সেই উদ্দেশ্য মেট্রিকের বিপরীতে কীভাবে কাজ করে তা প্রভাবিত করে। নোট করুন যে কোডের নিম্নলিখিত ব্লক সম্পর্কে কিছুই সেজমেকারের জন্য নির্দিষ্ট নয়। আমরা আসলে ব্যবহার করছি মুক্ত উত্স সংস্করণ 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
}

অন্যান্য হাইপারপ্যারামিটার সম্পর্কে আরও তথ্যের জন্য, পড়ুন এক্সজিবিস্ট হাইপারপ্যারামিটার.

অনুমানক তৈরি করুন

আমরা একটি অনুমানকারী বস্তুতে প্রশিক্ষণ কনফিগার করি, যা সেজমেকার প্রশিক্ষণের জন্য একটি উচ্চ-স্তরের ইন্টারফেস।

এরপরে, আমরা প্রশিক্ষণের জন্য দৃষ্টান্তের সংখ্যা, দৃষ্টান্তের ধরন (CPU-ভিত্তিক বা GPU-ভিত্তিক), এবং সংযুক্ত স্টোরেজের আকার নির্ধারণ করি:

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() আমাদের প্রশিক্ষণ চালু করে। আমরা আমাদের প্রশিক্ষণ এবং বৈধতা ডেটাতে সেজমেকার ট্রেনিং নির্দেশ করার জন্য তৈরি করা প্রশিক্ষণ ডেটার রেফারেন্সগুলি পাস করি:

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

মনে রাখবেন যে পরে HPO চালানোর জন্য, আমাদের আসলে কল করার দরকার নেই fit() এখানে. আমাদের শুধু HPO এর জন্য পরবর্তীতে অনুমানকারী বস্তুর প্রয়োজন, এবং শুধু আমাদের HPO কাজ তৈরি করতে ঝাঁপ দিতে পারে। কিন্তু যেহেতু আমরা সেজমেকার ট্রেনিং সম্পর্কে জানতে চাই এবং একটি একক প্রশিক্ষণের কাজ কীভাবে চালাতে হয় তা দেখতে চাই, আমরা এটিকে এখানে কল করি এবং আউটপুট পর্যালোচনা করি।

প্রশিক্ষণ শুরু হওয়ার পরে, আমরা নীচের স্ক্রিনশটে দেখানো হিসাবে ঘরের নীচে আউটপুট দেখতে শুরু করি। আউটপুট পাওয়া যায় অ্যামাজন ক্লাউডওয়াচ সেইসাথে এই নোটবুকে।

কালো টেক্সটটি সেজমেকার থেকেই লগ আউটপুট, যা প্রশিক্ষণ অর্কেস্ট্রেশনের সাথে জড়িত পদক্ষেপগুলি দেখায়, যেমন উদাহরণ শুরু করা এবং প্রশিক্ষণের চিত্র লোড করা। নীল পাঠ্যটি সরাসরি প্রশিক্ষণের উদাহরণ থেকে আউটপুট। আমরা প্রশিক্ষণের ডেটা লোড এবং পার্স করার প্রক্রিয়াটি পর্যবেক্ষণ করতে পারি এবং দৃষ্টান্তে চলমান প্রশিক্ষণ স্ক্রিপ্ট থেকে সরাসরি প্রশিক্ষণের অগ্রগতি এবং উদ্দেশ্য মেট্রিকের উন্নতি দেখতে পারি।

জুপিটার নোটবুকে fit() ফাংশন থেকে আউটপুট

এছাড়াও লক্ষ্য করুন যে আউটপুট কাজের শেষে, প্রশিক্ষণের সময়কাল সেকেন্ডে এবং বিলযোগ্য সেকেন্ডে দেখানো হয়।

অবশেষে, আমরা দেখতে পাচ্ছি যে সেজমেকার আমাদের প্রশিক্ষণ মডেলটিকে অনুমানকারী বস্তুতে সংজ্ঞায়িত S3 আউটপুট পাথে আপলোড করে। মডেলটি অনুমানের জন্য স্থাপনের জন্য প্রস্তুত।

ভবিষ্যতের পোস্টে, আমরা আমাদের নিজস্ব প্রশিক্ষণ পাত্র তৈরি করব এবং নির্গত করার জন্য আমাদের প্রশিক্ষণের মেট্রিকগুলি সংজ্ঞায়িত করব। আপনি প্রশিক্ষণের জন্য কোন ধারকটি পাস করেন সে সম্পর্কে সেজমেকার কীভাবে অজ্ঞেয়বাদী তা আপনি দেখতে পাবেন। আপনি যখন একটি অন্তর্নির্মিত অ্যালগরিদম দিয়ে দ্রুত শুরু করতে চান তখন এটি খুব সহজ, কিন্তু তারপরে আপনার নিজস্ব কাস্টম প্রশিক্ষণ স্ক্রিপ্ট পাস করার সিদ্ধান্ত নিন!

বর্তমান এবং পূর্ববর্তী প্রশিক্ষণ কাজ পরিদর্শন

এখন পর্যন্ত, আমরা আমাদের কোড সহ আমাদের নোটবুক থেকে কাজ করেছি এবং সেজমেকারে প্রশিক্ষণের কাজ জমা দিয়েছি। আসুন দৃষ্টিভঙ্গি স্যুইচ করি এবং সেজমেকার কনসোলে এটি কেমন দেখাচ্ছে তা পরীক্ষা করার জন্য একটি মুহুর্তের জন্য নোটবুকটি ছেড়ে দিন।

সেজমেকার ট্রেনিং চাকরির কনসোল ভিউ

সেজমেকার এটি চালানো প্রশিক্ষণের কাজগুলির একটি ঐতিহাসিক রেকর্ড রাখে, তাদের কনফিগারেশন যেমন হাইপারপ্যারামিটার, অ্যালগরিদম, ডেটা ইনপুট, বিলযোগ্য সময় এবং ফলাফল। পূর্ববর্তী স্ক্রিনশটের তালিকায়, আপনি XGBoost-এর জন্য ফিল্টার করা সাম্প্রতিকতম প্রশিক্ষণের কাজগুলি দেখতে পাচ্ছেন। হাইলাইট করা প্রশিক্ষণের কাজ হল সেই কাজ যা আমরা এইমাত্র নোটবুকে প্রশিক্ষণ দিয়েছি, যার আউটপুট আপনি আগে দেখেছেন। আসুন আরও তথ্য পেতে এই স্বতন্ত্র প্রশিক্ষণ কাজের মধ্যে ডুব দেওয়া যাক।

নিম্নলিখিত স্ক্রিনশটটি আমাদের প্রশিক্ষণ কাজের কনসোল ভিউ দেখায়।

একটি একক SageMaker প্রশিক্ষণ কাজের কনসোল দৃশ্য

আমরা আমাদের সেল আউটপুট হিসাবে আমরা প্রাপ্ত তথ্য পর্যালোচনা করতে পারেন fit() সেজমেকার কনসোলের মধ্যে স্বতন্ত্র প্রশিক্ষণের কাজ, আমরা আমাদের অনুমানকারীতে সংজ্ঞায়িত প্যারামিটার এবং মেটাডেটা সহ।

আমরা আগে দেখেছি প্রশিক্ষণের উদাহরণ থেকে লগ আউটপুট স্মরণ করুন। আমরা এখানে স্ক্রোল করে আমাদের প্রশিক্ষণ কাজের লগগুলি অ্যাক্সেস করতে পারি মনিটর বিভাগ এবং নির্বাচন লগ দেখুন.

প্রশিক্ষণের কাজে মনিটরিং ট্যাবের কনসোল ভিউ

এটি আমাদের ক্লাউডওয়াচের ভিতরে ইনস্ট্যান্স লগ দেখায়।

CloudWatch-এ ট্রেনিং ইনস্ট্যান্স লগের কনসোল ভিউ

এছাড়াও প্রশিক্ষণ কাজের জন্য আমরা আমাদের নোটবুকে নির্দিষ্ট হাইপারপ্যারামিটারগুলি মনে রাখবেন। আমরা তাদের এখানে প্রশিক্ষণ কাজের একই UI এ দেখতে পাই।

সেজমেকার ট্রেনিং কাজের হাইপারপ্যারামিটারের কনসোল ভিউ

প্রকৃতপক্ষে, আমাদের প্রশিক্ষণের কাজ এবং অনুমানকারীর জন্য আমরা আগে যে বিবরণ এবং মেটাডেটা নির্দিষ্ট করেছি তা SageMaker কনসোলে এই পৃষ্ঠায় পাওয়া যাবে। আমাদের কাছে প্রশিক্ষণের জন্য ব্যবহৃত সেটিংসের একটি সহায়ক রেকর্ড রয়েছে, যেমন কোন প্রশিক্ষণের ধারক ব্যবহার করা হয়েছিল এবং প্রশিক্ষণের অবস্থান এবং বৈধতা ডেটাসেট।

আপনি এই মুহুর্তে জিজ্ঞাসা করতে পারেন, হাইপারপ্যারামিটার অপ্টিমাইজেশানের জন্য এটি ঠিক কেন প্রাসঙ্গিক? এটি কারণ আপনি অনুসন্ধান করতে পারেন, পরিদর্শন করতে পারেন এবং সেই 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 এর সাথে SageMaker প্রশিক্ষণ এবং হাইপারপ্যারামিটার অপ্টিমাইজেশানের ওভারভিউ

আমরা দেখি যে আমাদের HPO চাকরি জমা দেওয়া হয়েছে। ট্রায়াল সংখ্যা উপর নির্ভর করে, দ্বারা সংজ্ঞায়িত n_jobs এবং সমান্তরালকরণের স্তর, এটি কিছু সময় নিতে পারে। আমাদের উদাহরণের জন্য, 30টি ট্রায়ালের জন্য এটি 50 মিনিট পর্যন্ত সময় লাগতে পারে এবং শুধুমাত্র 3 এর সমান্তরাল স্তরের সাথে।

tuning job submitted: bayesian-221102-2053.

এই টিউনিং কাজটি শেষ হলে, SageMaker কনসোলে আমাদের কাছে উপলব্ধ তথ্যগুলি অন্বেষণ করা যাক৷

কনসোলে AMT কাজগুলি তদন্ত করুন

আসুন বেছে নেওয়ার মাধ্যমে সেজমেকার কনসোলে আমাদের টিউনিং কাজটি খুঁজে বের করি প্রশিক্ষণ নেভিগেশন ফলকে এবং তারপর হাইপারপ্যারামিটার টিউনিং কাজ. এটি আমাদের AMT কাজের একটি তালিকা দেয়, যেমনটি নিম্নলিখিত স্ক্রিনশটে দেখানো হয়েছে। এখানে আমরা আমাদের সনাক্ত bayesian-221102-2053 টিউনিং কাজ এবং এটি এখন সম্পূর্ণ হয়েছে.

হাইপারপ্যারামিটার টিউনিং কাজের পৃষ্ঠার কনসোল ভিউ। আমাদের 1 টিউনিং এন্ট্রি সহ চিত্রটি টিউনিং কাজের তালিকার দৃশ্য দেখায়

আসুন এই HPO কাজের ফলাফলগুলি ঘনিষ্ঠভাবে দেখে নেই।

আমরা প্রোগ্রামগতভাবে ফলাফল নিষ্কাশন অন্বেষণ করেছি নোটবই. প্রথম মাধ্যমে সেজমেকার পাইথন এসডিকে, যা একটি উচ্চ স্তরের ওপেন সোর্স পাইথন লাইব্রেরি, সেজমেকারকে একটি ডেডিকেটেড API প্রদান করে। তারপর মাধ্যমে বোটো৩, যা আমাদের সেজমেকার এবং অন্যান্য AWS পরিষেবাগুলিতে নিম্ন-স্তরের API সরবরাহ করে।

SageMaker Python SDK ব্যবহার করে, আমরা আমাদের HPO কাজের ফলাফল পেতে পারি:

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

এটি আমাদের একটি পান্ডাস ডেটাফ্রেমে আমাদের প্রতিটি ট্রায়ালের ফলাফল বিশ্লেষণ করার অনুমতি দিয়েছে, যেমনটি নিম্নলিখিত স্ক্রিনশটে দেখা গেছে।

জুপিটার নোটবুকে পান্ডাস টেবিল আমাদের HPO চাকরির জন্য ছুটে চলা ট্রেল থেকে ফলাফল এবং মেটাডেটা দেখাচ্ছে

এখন আবার দৃষ্টিকোণ পরিবর্তন করা যাক এবং সেজমেকার কনসোলে ফলাফলগুলি কেমন দেখায় তা দেখুন। তারপর আমরা আমাদের কাস্টম ভিজ্যুয়ালাইজেশন দেখব।

একই পৃষ্ঠায়, আমাদের নির্বাচন bayesian-221102-2053 টিউনিং জব আমাদের টিউনিং কাজের জন্য চালানো ট্রায়ালগুলির একটি তালিকা প্রদান করে। এখানে প্রতিটি HPO ট্রায়াল একটি SageMaker প্রশিক্ষণের কাজ। এর আগে স্মরণ করুন যখন আমরা আমাদের একক XGBoost মডেলকে প্রশিক্ষণ দিয়েছিলাম এবং SageMaker কনসোলে প্রশিক্ষণের কাজটি তদন্ত করেছিলাম। আমরা এখানে আমাদের ট্রায়ালের জন্য একই জিনিস করতে পারি।

আমরা আমাদের ট্রায়ালগুলি তদন্ত করার সময়, আমরা তা দেখতে পাই bayesian-221102-2053-048-b59ec7b4 আনুমানিক 89.815% এর বৈধতা নির্ভুলতার সাথে সেরা পারফরম্যান্স মডেল তৈরি করেছে। চলুন অন্বেষণ করা যাক কি হাইপারপ্যারামিটারগুলি বেছে নিয়ে এই পারফরম্যান্সে নেতৃত্ব দিয়েছে৷ সেরা প্রশিক্ষণের কাজ ট্যাব।

একটি একক টিউনিং কাজের কনসোল ভিউ, প্রশিক্ষণের কাজের একটি তালিকা দেখানো হয়েছে

আমরা মূল্যায়ন করা সেরা হাইপারপ্যারামিটারগুলির একটি বিশদ দৃশ্য দেখতে পারি।

একটি একক টিউনিং কাজের কনসোল ভিউ, সেরা প্রশিক্ষণের কাজের বিবরণ দেখাচ্ছে

আমরা অবিলম্বে দেখতে পারি কি হাইপারপ্যারামিটার মান এই উচ্চতর কর্মক্ষমতা নেতৃত্বে. যাইহোক, আমরা আরো জানতে চাই. আপনি কি অনুমান করতে পারেন? আমরা যে দেখতে alpha 0.052456 এর আনুমানিক মান গ্রহণ করে এবং একইভাবে, eta 0.433495 এ সেট করা হয়েছে। এটি আমাদের বলে যে এই মানগুলি ভাল কাজ করেছে, তবে এটি হাইপারপ্যারামিটার স্থান সম্পর্কে আমাদের খুব কমই বলে। উদাহরণস্বরূপ, আমরা ভাবতে পারি যে 0.433495 এর জন্য কিনা eta সর্বোচ্চ মান পরীক্ষা করা হয়েছে, বা উচ্চতর মান নির্বাচন করে বৃদ্ধি এবং মডেল উন্নতির জন্য জায়গা আছে কিনা।

এর জন্য, আমাদের জুম আউট করতে হবে, এবং আমাদের হাইপারপ্যারামিটারের জন্য অন্যান্য মানগুলি কীভাবে সঞ্চালিত হয়েছে তা দেখতে আরও বিস্তৃত দৃষ্টিভঙ্গি নিতে হবে। একবারে প্রচুর ডেটা দেখার একটি উপায় হল আমাদের HPO ট্রায়ালগুলি থেকে আমাদের হাইপারপ্যারামিটার মানগুলি একটি চার্টে প্লট করা। এইভাবে আমরা দেখি কিভাবে এই মানগুলি তুলনামূলকভাবে পারফর্ম করেছে। পরবর্তী বিভাগে, আমরা সেজমেকার থেকে এই ডেটাটি টেনে নিয়েছি এবং এটিকে কল্পনা করি।

আমাদের ট্রায়াল কল্পনা করুন

SageMaker SDK আমাদের অন্বেষণের জন্য ডেটা সরবরাহ করে, এবং নোটবুকগুলি আপনাকে এটির মধ্যে উঁকি দেয়৷ কিন্তু এটি ব্যবহার এবং কল্পনা করার অনেক উপায় আছে। এই পোস্টে, আমরা ব্যবহার করে একটি নমুনা ভাগ অল্টেয়ার পরিসংখ্যানগত ভিজ্যুয়ালাইজেশন লাইব্রেরি, যা আমরা আমাদের ট্রায়ালগুলির আরও ভিজ্যুয়াল ওভারভিউ তৈরি করতে ব্যবহার করি। এগুলি পাওয়া যায় amtviz প্যাকেজ, যা আমরা নমুনার অংশ হিসাবে প্রদান করছি:

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

সময়ের সাথে সাথে (x-অক্ষ) আমাদের ট্রায়ালের বৈধতা নির্ভুলতা (y-অক্ষ) পরিকল্পনা করার সময় এই ভিজ্যুয়ালাইজেশনের শক্তি অবিলম্বে স্পষ্ট হয়ে ওঠে। বাম দিকের নিম্নলিখিত চার্টটি সময়ের সাথে বৈধতা নির্ভুলতা দেখায়। সময়ের সাথে সাথে আমরা আরও ট্রায়াল চালানোর সাথে সাথে মডেলের কার্যক্ষমতার উন্নতি দেখতে পাচ্ছি। এটি একটি Bayesian কৌশল সহ HPO চালানোর একটি প্রত্যক্ষ এবং প্রত্যাশিত ফলাফল। আমাদের পরবর্তী পোস্টে, আমরা দেখব যে এটি কীভাবে অন্যান্য কৌশলগুলির সাথে তুলনা করে এবং পর্যবেক্ষণ করি যে সমস্ত কৌশলগুলির ক্ষেত্রে এটির প্রয়োজন নেই৷

HPO ট্রেল দেখানো দুটি চার্ট। বাম চার্ট সময়ের সাথে যাচাইকরণের সঠিকতা দেখায়। ডান চার্ট বৈধতা নির্ভুলতা মান জন্য ঘনত্ব চার্ট দেখায়

সময়ের সাথে সামগ্রিক অগ্রগতি পর্যালোচনা করার পর, এখন আমাদের হাইপারপ্যারামিটার স্থানটি দেখুন।

নিম্নলিখিত চার্টগুলি y-অক্ষে বৈধতা নির্ভুলতা দেখায়, প্রতিটি চার্ট দেখানোর সাথে max_depth, alpha, eta, এবং min_child_weight যথাক্রমে x-অক্ষে। আমরা প্রতিটি চার্টে আমাদের সম্পূর্ণ HPO কাজ প্লট করেছি। প্রতিটি পয়েন্ট একটি একক ট্রায়াল, এবং প্রতিটি চার্টে 50টি ট্রায়াল রয়েছে, তবে প্রতিটি হাইপারপ্যারামিটারের জন্য আলাদা করা হয়েছে। এর মানে হল যে আমাদের সেরা পারফর্মিং ট্রায়াল, #48, এই চার্টগুলির প্রতিটিতে ঠিক একটি নীল বিন্দু দ্বারা প্রতিনিধিত্ব করা হয়েছে (যা আমরা নিম্নলিখিত চিত্রে আপনার জন্য হাইলাইট করেছি)৷ আমরা অন্যান্য সমস্ত 49 ট্রায়ালের প্রেক্ষাপটে এর কার্যকারিতা দৃশ্যত তুলনা করতে পারি। সুতরাং, আসুন ঘনিষ্ঠভাবে তাকান.

চটুল! আমরা অবিলম্বে দেখতে পাই যে আমাদের হাইপারপ্যারামিটার স্পেসে আমাদের সংজ্ঞায়িত রেঞ্জের কোন অঞ্চলগুলি সবচেয়ে কার্যকর! আমাদের ফিরে চিন্তা eta মান, এটা এখন স্পষ্ট যে 0 এর কাছাকাছি নমুনা মান খারাপ কর্মক্ষমতা দিয়েছে, যেখানে আমাদের সীমানা, 0.5 এর কাছাকাছি যাওয়া ভাল ফলাফল দেয়। বিপরীতটি সত্য বলে মনে হচ্ছে alpha, এবং max_depth পছন্দের মানগুলির আরও সীমিত সেট আছে বলে মনে হচ্ছে। দিকে তাকাও max_depth, আপনি এটাও দেখতে পারেন যে কিভাবে একটি Bayesian কৌশল ব্যবহার করে SageMaker AMT কে আরও ঘন ঘন নমুনা দেওয়ার জন্য নির্দেশ দেয় যে এটি অতীতে ভালভাবে কাজ করেছে।

y-অক্ষে বৈধতা নির্ভুলতা দেখানো চারটি চার্ট, প্রতিটি চার্ট যথাক্রমে x-অক্ষে সর্বাধিক_গভীরতা, আলফা, ইটা, মিন_চাইল্ড_ওয়েট দেখাচ্ছে। প্রতিটি ডেটা পয়েন্ট একটি একক HPO ট্রায়াল প্রতিনিধিত্ব করে

আমাদের দিকে তাকিয়ে eta মান, আমরা ভাবতে পারি যে এটি ডানদিকে আরও অন্বেষণ করা মূল্যবান কিনা, সম্ভবত 0.45 এর বাইরে? এটা কি কম নির্ভুলতার দিকে এগিয়ে যাচ্ছে, নাকি আমাদের এখানে আরও ডেটা দরকার? এই বিস্ময় আমাদের প্রথম HPO কাজ চালানোর উদ্দেশ্য অংশ. হাইপারপ্যারামিটার স্পেসের কোন এলাকায় আমাদের আরও অন্বেষণ করা উচিত সে সম্পর্কে এটি আমাদের অন্তর্দৃষ্টি প্রদান করে।

আপনি যদি আরও জানতে আগ্রহী হন, এবং বিষয়টির সাথে এই ভূমিকা নিয়ে আমাদের মতোই উত্তেজিত হন, তাহলে আমাদের পরবর্তী পোস্টের জন্য সাথে থাকুন, যেখানে আমরা বিভিন্ন HPO কৌশল সম্পর্কে আরও কথা বলব, একে অপরের সাথে তাদের তুলনা করব এবং আমাদের নিজস্ব পাইথন স্ক্রিপ্ট দিয়ে প্রশিক্ষণ অনুশীলন করুন।

পরিষ্কার কর

আপনি 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-এর সাথে, আমরা দক্ষতার সাথে ভাল হাইপারপ্যারামিটার মান খুঁজে পেতে এবং মডেলের কর্মক্ষমতা সর্বাধিক করতে হাইপারপ্যারামিটার অপ্টিমাইজেশান চালাতে পারি।

ভবিষ্যতে, আমরা সেজমেকার এএমটি দ্বারা অফার করা বিভিন্ন এইচপিও কৌশল এবং কীভাবে আমাদের নিজস্ব কাস্টম প্রশিক্ষণ কোড ব্যবহার করব তা দেখব। আপনার যদি কোনো প্রশ্ন থাকে বা আমাদের আসন্ন পোস্টগুলিতে কভার করা উচিত এমন একটি এলাকা প্রস্তাব করতে চান তাহলে মন্তব্যে আমাদের জানান।

ততক্ষণ পর্যন্ত, আমরা আপনাকে এবং আপনার মডেলদের শেখার এবং টিউনিং সুখী কামনা করি!

তথ্যসূত্র

উদ্ধৃতিসমূহ:

[১] দুয়া, ডি. এবং গ্রাফ, সি. (1)। UCI মেশিন লার্নিং রিপোজিটরি [http://archive.ics.uci.edu/ml]। আরভিন, সিএ: ক্যালিফোর্নিয়া বিশ্ববিদ্যালয়, তথ্য ও কম্পিউটার বিজ্ঞান স্কুল।


লেখক সম্পর্কে

Amazon SageMaker স্বয়ংক্রিয় মডেল টিউনিং PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে হাইপারপ্যারামিটারগুলি অপ্টিমাইজ করুন। উল্লম্ব অনুসন্ধান. আ.অ্যান্ড্রু এলুল অ্যামাজন ওয়েব পরিষেবাগুলির সাথে একজন সমাধান স্থপতি৷ তিনি জার্মানিতে ছোট এবং মাঝারি আকারের ব্যবসার সাথে কাজ করেন। কাজের বাইরে, অ্যান্ড্রু পায়ে হেঁটে বা বাইকে করে প্রকৃতি অন্বেষণ উপভোগ করেন।

Amazon SageMaker স্বয়ংক্রিয় মডেল টিউনিং PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে হাইপারপ্যারামিটারগুলি অপ্টিমাইজ করুন। উল্লম্ব অনুসন্ধান. আ.এলিনা লেসিক মিউনিখে অবস্থিত একজন সমাধান স্থপতি। তার ফোকাস আর্থিক পরিষেবা শিল্প থেকে এন্টারপ্রাইজ গ্রাহকদের উপর. তার অবসর সময়ে, এলিনা স্প্যানিশ ভাষায় গিটার থিওরি শেখা পছন্দ করে ক্রস-শিখতে এবং দৌড়াতে যেতে।

Amazon SageMaker স্বয়ংক্রিয় মডেল টিউনিং PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে হাইপারপ্যারামিটারগুলি অপ্টিমাইজ করুন। উল্লম্ব অনুসন্ধান. আ.মারিয়ানো কাম্প আমাজন ওয়েব পরিষেবাগুলির সাথে একজন প্রধান সমাধান স্থপতি৷ তিনি জার্মানিতে আর্থিক পরিষেবা গ্রাহকদের সাথে মেশিন লার্নিং নিয়ে কাজ করেন৷ তার অবসর সময়ে, মারিয়ানো তার স্ত্রীর সাথে হাইকিং উপভোগ করেন।

সময় স্ট্যাম্প:

থেকে আরো এডাব্লুএস মেশিন লার্নিং

Amazon SageMaker খরচ বিশ্লেষণ করুন এবং ব্যবহারের উপর ভিত্তি করে খরচ অপ্টিমাইজেশান সুযোগ নির্ধারণ করুন, পার্ট 3: প্রসেসিং এবং ডেটা র্যাংলার চাকরি | আমাজন ওয়েব সার্ভিসেস

উত্স নোড: 1843425
সময় স্ট্যাম্প: 30 পারে, 2023

পুনরুদ্ধার অগমেন্টেড জেনারেশনের সাথে আপনার স্থিতিশীল ডিফিউশন প্রম্পটগুলিকে উন্নত করুন | আমাজন ওয়েব সার্ভিসেস

উত্স নোড: 1925041
সময় স্ট্যাম্প: ডিসেম্বর 14, 2023

স্ল্যাক অ্যামাজন সেজমেকার জাম্পস্টার্ট দ্বারা চালিত নেটিভ এবং সুরক্ষিত জেনারেটিভ এআই সরবরাহ করে | আমাজন ওয়েব সার্ভিসেস

উত্স নোড: 1965894
সময় স্ট্যাম্প: এপ্রিল 18, 2024

আপনার নিজস্ব প্রশিক্ষণ স্ক্রিপ্ট ব্যবহার করুন এবং Amazon SageMaker-এ হাইপারপ্যারামিটার অপ্টিমাইজেশন ব্যবহার করে স্বয়ংক্রিয়ভাবে সেরা মডেল নির্বাচন করুন

উত্স নোড: 1770213
সময় স্ট্যাম্প: ডিসেম্বর 7, 2022