در دسامبر 2020، AWS اعلام کرد در دسترس بودن عمومی Amazon SageMaker JumpStart، قابلیتی از آمازون SageMaker که به شما کمک می کند تا به سرعت و به راحتی با یادگیری ماشین (ML) شروع کنید. در مارس 2022، ما نیز اعلام کرد پشتیبانی از APIها در JumpStart JumpStart تنظیم دقیق و استقرار طیف گسترده ای از مدل های از پیش آموزش داده شده را با یک کلیک در سراسر وظایف محبوب ML و همچنین مجموعه ای از راه حل های پایان به انتها که مشکلات رایج تجاری را حل می کند، ارائه می دهد. این ویژگیها بار سنگین را از هر مرحله از فرآیند ML حذف میکنند و توسعه مدلهای با کیفیت بالا را سادهتر میکنند و زمان استقرار را کاهش میدهند.
در این پست نحوه اجرای تنظیم خودکار مدل با JumpStart را نشان می دهیم.
تنظیم خودکار مدل SageMaker
به طور سنتی، مهندسان ML یک روش آزمون و خطا را برای یافتن مجموعه ای از ابرپارامترها پیاده سازی می کنند. آزمون و خطا شامل اجرای چندین کار به صورت متوالی یا موازی در حین تهیه منابع مورد نیاز برای اجرای آزمایش است.
با تنظیم خودکار مدل SageMakerمهندسان ML و دانشمندان داده می توانند وظیفه زمان بر بهینه سازی مدل خود را تخلیه کنند و به SageMaker اجازه دهند آزمایش را اجرا کند. SageMaker از خاصیت ارتجاعی پلت فرم AWS برای اجرای موثر و همزمان چندین شبیه سازی آموزشی بر روی یک مجموعه داده و یافتن بهترین هایپرپارامترها برای یک مدل استفاده می کند.
تنظیم خودکار مدل SageMaker بهترین نسخه یک مدل را با اجرای بسیاری از کارهای آموزشی روی مجموعه داده شما با استفاده از الگوریتم و محدوده ها از هایپرپارامترهایی که شما مشخص می کنید. سپس مقادیر فراپارامتر را انتخاب می کند که منجر به مدلی می شود که بهترین عملکرد را دارد، همانطور که توسط a اندازه گیری می شود متری که شما انتخاب می کنید
تنظیم خودکار مدل از a استفاده می کند بیزی (پیش فرض) یا الف تصادفی استراتژی جستجو برای یافتن بهترین مقادیر برای فراپارامترها. جستجوی بیزی با تنظیم فراپارامتر مانند یک رفتار می کند رگرسیون مسئله. هنگام انتخاب بهترین هایپرپارامترها برای کار آموزشی بعدی، هر آنچه را که تاکنون در مورد مشکل می داند در نظر می گیرد و به الگوریتم اجازه می دهد تا از بهترین نتایج شناخته شده بهره برداری کند.
در این پست، ما از استراتژی جستجوی بیزی پیش فرض برای نشان دادن مراحل مربوط به اجرای تنظیم خودکار مدل با JumpStart با استفاده از LightGBM مدل.
JumpStart در حال حاضر از 10 نمونه نوت بوک با تنظیم خودکار مدل پشتیبانی می کند. همچنین از چهار الگوریتم محبوب برای مدل سازی داده های جدولی پشتیبانی می کند. وظایف و پیوندهای نمونه دفترچه یادداشت آنها در جدول زیر خلاصه شده است.
کار | مدل های از پیش آموزش دیده | از مجموعه داده های سفارشی پشتیبانی می کند | چارچوب های پشتیبانی شده | نمونه دفترچه یادداشت |
طبقه بندی تصویر | بله | بله | PyTorch، TensorFlow | مقدمه ای بر JumpStart – طبقه بندی تصاویر |
تشخیص شی | بله | بله | PyTorch، TensorFlow، MXNet | مقدمه ای بر JumpStart – تشخیص اشیا |
تقسیم بندی معنایی | بله | بله | MXNet | مقدمه ای بر JumpStart – Semantic Segmentation |
طبقه بندی متن | بله | بله | TensorFlow | مقدمه ای بر JumpStart – طبقه بندی متن |
طبقه بندی جفت جملات | بله | بله | تنسورفلو، صورت در آغوش گرفته | مقدمه ای بر JumpStart – دسته بندی جفت جملات |
پاسخ به سوال | بله | بله | PyTorch | مقدمه ای بر جامپ استارت – پاسخ به سوال |
طبقه بندی جدولی | بله | بله | LightGBM، CatBoost، XGBoost، Linear Learner | مقدمه ای بر JumpStart – طبقه بندی جدولی – LightGBM، CatBoost مقدمه ای بر JumpStart – طبقه بندی جدولی – XGBoost, Linear Learner |
رگرسیون جدولی | بله | بله | LightGBM، CatBoost، XGBoost، Linear Learner | مقدمه ای بر JumpStart – رگرسیون جدولی – LightGBM، CatBoost مقدمه ای بر JumpStart – رگرسیون جدولی – XGBoost, Linear Learner |
بررسی اجمالی راه حل
این گردش کار فنی یک نمای کلی از ویژگیهای مختلف Amazon Sagemaker و مراحل مورد نیاز برای تنظیم خودکار یک مدل JumpStart ارائه میکند.
در بخشهای بعدی، نحوه اجرای تنظیم خودکار مدل با JumpStart با استفاده از الگوریتم LightGBM را به صورت گام به گام ارائه میکنیم. ما یک همراه ارائه می دهیم دفتر یادداشت برای این راهپیمایی
ما مراحل سطح بالا زیر را طی می کنیم:
- مدل و محفظه تصاویر از پیش آموزش دیده JumpStart را بازیابی کنید.
- تنظیم فراپارامترهای استاتیک
- محدوده هایپرپارامتر قابل تنظیم را تعریف کنید.
- تنظیم خودکار مدل را راه اندازی کنید.
- کار تنظیم را اجرا کنید.
- بهترین مدل را در نقطه پایانی مستقر کنید.
مدل و محفظه تصاویر از پیش آموزش دیده JumpStart را بازیابی کنید
در این قسمت مدل طبقه بندی LightGBM را برای تنظیم دقیق انتخاب می کنیم. ما از نوع نمونه ml.m5.xlarge استفاده می کنیم که مدل روی آن اجرا می شود. سپس کانتینر Docker آموزشی، منبع الگوریتم آموزشی و مدل از پیش آموزش دیده را بازیابی می کنیم. کد زیر را ببینید:
training_instance_type = "ml.m5.xlarge" # Retrieve the docker image
train_image_uri = image_uris.retrieve(
region=None,
framework=None,
model_id=train_model_id,
model_version=train_model_version,
image_scope=train_scope,
instance_type=training_instance_type,
)
# Retrieve the training script
train_source_uri = script_uris.retrieve(
model_id=train_model_id, model_version=train_model_version, script_scope=train_scope
)
# Retrieve the pre-trained model tarball to further fine-tune
train_model_uri = model_uris.retrieve(
model_id=train_model_id, model_version=train_model_version, model_scope=train_scope
)
تنظیم فراپارامترهای استاتیک
اکنون ماپرپارامترهای پیشفرض را برای این مدل LightGBM، همانطور که توسط JumpStart از قبل تنظیم شده است، بازیابی میکنیم. را نیز نادیده می گیریم num_boost_round
هایپرپارامتر با مقدار سفارشی
# Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(
model_id=train_model_id, model_version=train_model_version
)
# [Optional] Override default hyperparameters with custom values
محدوده هایپرپارامتر قابل تنظیم را تعریف کنید
در مرحله بعد، محدوده هایپرپارامتر را تعریف می کنیم بهینه سازی شده توسط تنظیم خودکار مدل. ما نام هایپرپارامتر را همانطور که مدل انتظار میرود تعریف میکنیم و سپس محدودههای مقادیری را که باید برای این هایپرپارامتر آزمایش شوند، تعریف میکنیم. تنظیم خودکار مدل نمونه ها (برابر با max_jobs
پارامتر) از فضای فراپارامترها، با استفاده از تکنیکی به نام جستجوی بیزی. برای هر نمونه ابرپارامتر ترسیم شده، تیونر یک کار آموزشی برای ارزیابی مدل با آن پیکربندی ایجاد می کند. کد زیر را ببینید:
hyperparameter_ranges = {
"learning_rate": ContinuousParameter(1e-4, 1, scaling_type="Logarithmic"),
"num_boost_round": IntegerParameter(2, 30),
"early_stopping_rounds": IntegerParameter(2, 30),
"num_leaves": IntegerParameter(10, 50),
"feature_fraction": ContinuousParameter(0, 1),
"bagging_fraction": ContinuousParameter(0, 1),
"bagging_freq": IntegerParameter(1, 10),
"max_depth": IntegerParameter(5, 30),
"min_data_in_leaf": IntegerParameter(5, 50),
}
تنظیم خودکار مدل را راه اندازی کنید
ما با ایجاد یک شروع می کنیم برآورد شیء با تمام دارایی های مورد نیاز که کار آموزشی را تعریف می کند، مانند مدل از پیش آموزش دیده، تصویر آموزشی و اسکریپت آموزشی. سپس الف را تعریف می کنیم HyperparameterTuner شی برای تعامل با APIهای تنظیم فراپارامتر SageMaker.
La HyperparameterTuner
شی Estimator را به عنوان پارامتر می پذیرد، متریک هدف که بر اساس آن بهترین مجموعه هایپرپارامترها تعیین می شود، تعداد کل مشاغل آموزشی (max_jobs
(max_parallel_jobs
). کارهای آموزشی با الگوریتم LightGBM اجرا می شوند و مقادیر هایپرپارامتری که دارای حداقل هستند mlogloss
متریک انتخاب شده است. برای اطلاعات بیشتر در مورد پیکربندی تنظیم خودکار مدل، نگاه کنید بهترین روش ها برای تنظیم فراپارامتر.
# Create SageMaker Estimator instance
tabular_estimator = Estimator(
role=aws_role,
image_uri=train_image_uri,
source_dir=train_source_uri,
model_uri=train_model_uri,
entry_point="transfer_learning.py",
instance_count=1,
instance_type=training_instance_type,
max_run=360000,
hyperparameters=hyperparameters,
output_path=s3_output_location,
) tuner = HyperparameterTuner(
estimator=tabular_estimator,
objective_metric_name="multi_logloss",
hyperparameter_ranges=hyperparameter_ranges,
metric_definitions=[{"Name": "multi_logloss", "Regex": "multi_logloss: ([0-9\.]+)"}],
strategy="Bayesian",
max_jobs=10,
max_parallel_jobs=2,
objective_type="Minimize",
base_tuning_job_name=training_job_name,
)
در کد قبلی به تیونر می گوییم حداکثر 10 آزمایش را اجرا کند (max_jobs
) و تنها دو آزمایش همزمان در یک زمان (max_parallel_jobs
). هر دوی این پارامترها هزینه و زمان آموزش شما را تحت کنترل نگه می دارند.
کار تنظیم را اجرا کنید
برای راهاندازی کار تنظیم SageMaker، متد فیت شی تیونر hyperparameter را فراخوانی کرده و آن را پاس میکنیم سرویس ذخیره سازی ساده آمازون (Amazon S3) مسیر داده های آموزشی:
tuner.fit({"training": training_dataset_s3_path}, logs=True)
در حالی که تنظیم خودکار مدل بهترین هایپرپارامترها را جستجو می کند، می توانید پیشرفت آنها را در کنسول SageMaker یا در CloudWatch آمازون. هنگامی که آموزش کامل شد، مصنوعات دقیق تنظیم شده بهترین مدل در محل خروجی آمازون S3 مشخص شده در پیکربندی آموزشی آپلود می شوند.
بهترین مدل را در نقطه پایانی مستقر کنید
پس از اتمام کار تنظیم، بهترین مدل انتخاب شده و در آمازون S3 ذخیره شده است. اکنون میتوانیم آن مدل را با فراخوانی متد deploy به کار ببریم HyperparameterTuner
شی و ارسال پارامترهای مورد نیاز، مانند تعداد نمونه هایی که برای نقطه پایانی ایجاد شده استفاده می شود، نوع آنها، تصویری که قرار است مستقر شود و اسکریپت اجرا شود:
tuner.deploy(
initial_instance_count=1,
instance_type=inference_instance_type,
entry_point="inference.py",
image_uri=deploy_image_uri,
source_dir=deploy_source_uri,
endpoint_name=endpoint_name,
enable_network_isolation=True
)
اکنون می توانیم نقطه پایانی ایجاد شده را با درخواست استنتاج آزمایش کنیم. بقیه مراحل را می توانید در ادامه مطلب دنبال کنید دفتر یادداشت.
نتیجه
با تنظیم خودکار مدل در SageMaker، می توانید بهترین نسخه مدل خود را با اجرای کارهای آموزشی بر روی مجموعه داده ارائه شده با یکی از الگوریتم های پشتیبانی شده بیابید. تنظیم خودکار مدل به شما امکان می دهد با جستجوی خودکار بهترین پیکربندی هایپرپارامتر در محدوده هایپرپارامتری که مشخص کرده اید، زمان تنظیم یک مدل را کاهش دهید.
در این پست، ارزش اجرای تنظیم خودکار مدل را بر روی یک مدل از پیش آموزش دیده JumpStart با استفاده از SageMaker APIها نشان دادیم. ما از الگوریتم LightGBM استفاده کردیم و حداکثر 10 شغل آموزشی تعریف کردیم. همچنین پیوندهایی به نوتبوکهای نمونه ارائه کردهایم که چارچوبهای ML را نشان میدهند که از بهینهسازی مدل JumpStart پشتیبانی میکنند.
برای جزئیات بیشتر در مورد نحوه بهینه سازی یک مدل JumpStart با تنظیم خودکار مدل، به مثال ما مراجعه کنید دفتر یادداشت.
درباره نویسنده
داگ امبایا یک معمار راه حل شریک ارشد با تمرکز بر داده ها و تجزیه و تحلیل است. داگ همکاری نزدیکی با شرکای AWS دارد و به آنها کمک می کند تا داده ها و راه حل های تحلیلی را در فضای ابری ادغام کنند.
کروتی جایاسیمها رائو یک معمار راه حل شریک در تیم Scale-PSA است. Kruthi اعتبار سنجی فنی را برای شرکا انجام می دهد تا آنها را قادر می سازد در مسیر شریک پیشرفت کنند.
یانیس میتروپولوس یک مهندس توسعه نرم افزار برای SageMaker است تنظیم خودکار مدل.
دکتر آشیش ختان دانشمند ارشد کاربردی با Amazon SageMaker JumpStart و الگوریتم های داخلی آمازون SageMaker و به توسعه الگوریتم های یادگیری ماشین کمک می کند. او یک محقق فعال در یادگیری ماشین و استنتاج آماری است و مقالات زیادی در کنفرانس های NeurIPS، ICML، ICLR، JMLR و ACL منتشر کرده است.
- "
- 10
- 100
- 2020
- 2022
- درباره ما
- در میان
- فعال
- مزیت - فایده - سود - منفعت
- الگوریتم
- الگوریتم
- معرفی
- آمازون
- علم تجزیه و تحلیل
- رابط های برنامه کاربردی
- دارایی
- اتوماتیک
- دسترس پذیری
- AWS
- بهترین
- ساخته شده در
- کسب و کار
- صدا
- را انتخاب کنید
- برگزیده
- طبقه بندی
- ابر
- رمز
- مشترک
- همایش ها
- پیکر بندی
- در نظر می گیرد
- کنسول
- ظرف
- کنترل
- ایجاد
- ایجاد شده
- ایجاد
- ایجاد
- در حال حاضر
- سفارشی
- داده ها
- مصمم
- نشان دادن
- گسترش
- مستقر
- گسترش
- جزئیات
- توسعه
- پروژه
- مختلف
- کارگر بارانداز
- به آسانی
- موثر
- را قادر می سازد
- نقطه پایانی
- مهندس
- مورد تأیید
- ارزیابی
- همه چیز
- مثال
- انتظار می رود
- تجربه
- بهره برداری
- امکانات
- پیدا می کند
- مناسب
- تمرکز
- به دنبال
- پیروی
- بیشتر
- سوالات عمومی
- ارتفاع
- کمک
- کمک می کند
- با کیفیت بالا
- چگونه
- چگونه
- HTTPS
- تصویر
- انجام
- اطلاعات
- ادغام
- گرفتار
- IT
- کار
- شغل ها
- راه اندازی
- یادگیری
- بلند کردن اجسام
- لینک ها
- محل
- دستگاه
- فراگیری ماشین
- ساخت
- مارس
- ML
- مدل
- مدل
- مانیتور
- بیش
- اکثر
- چندگانه
- عدد
- بهینه سازی
- بهینه سازی
- بهینه سازی
- شریک
- شرکای
- عبور
- سکو
- محبوب
- مشکل
- مشکلات
- روند
- ارائه
- فراهم می کند
- سوال
- به سرعت
- كاهش دادن
- کاهش
- درخواست
- ضروری
- منابع
- REST
- نتایج
- دویدن
- در حال اجرا
- دانشمند
- دانشمندان
- جستجو
- انتخاب شد
- تنظیم
- نمایشگاه
- ساده
- So
- نرم افزار
- توسعه نرم افزار
- راه حل
- مزایا
- حل
- فضا
- شروع
- آغاز شده
- آماری
- ذخیره سازی
- استراتژی
- پشتیبانی
- پشتیبانی
- پشتیبانی از
- هدف
- وظایف
- تیم
- فنی
- آزمون
- از طریق
- زمان
- زمان بر
- عنوان
- آموزش
- محاکمه
- استفاده کنید
- ارزش
- تنوع
- در حین
- در داخل
- با این نسخهها کار