تنظیم خودکار مدل را با Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence اجرا کنید. جستجوی عمودی Ai.

تنظیم خودکار مدل را با Amazon SageMaker JumpStart اجرا کنید

در دسامبر 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 ارائه می‌کند.

تنظیم خودکار مدل را با Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence اجرا کنید. جستجوی عمودی Ai.

در بخش‌های بعدی، نحوه اجرای تنظیم خودکار مدل با JumpStart با استفاده از الگوریتم LightGBM را به صورت گام به گام ارائه می‌کنیم. ما یک همراه ارائه می دهیم دفتر یادداشت برای این راهپیمایی

ما مراحل سطح بالا زیر را طی می کنیم:

  1. مدل و محفظه تصاویر از پیش آموزش دیده JumpStart را بازیابی کنید.
  2. تنظیم فراپارامترهای استاتیک
  3. محدوده هایپرپارامتر قابل تنظیم را تعریف کنید.
  4. تنظیم خودکار مدل را راه اندازی کنید.
  5. کار تنظیم را اجرا کنید.
  6. بهترین مدل را در نقطه پایانی مستقر کنید.

مدل و محفظه تصاویر از پیش آموزش دیده 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 با تنظیم خودکار مدل، به مثال ما مراجعه کنید دفتر یادداشت.


درباره نویسنده

تنظیم خودکار مدل را با Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence اجرا کنید. جستجوی عمودی Ai.داگ امبایا یک معمار راه حل شریک ارشد با تمرکز بر داده ها و تجزیه و تحلیل است. داگ همکاری نزدیکی با شرکای AWS دارد و به آنها کمک می کند تا داده ها و راه حل های تحلیلی را در فضای ابری ادغام کنند.

تنظیم خودکار مدل را با Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence اجرا کنید. جستجوی عمودی Ai.کروتی جایاسیمها رائو یک معمار راه حل شریک در تیم Scale-PSA است. Kruthi اعتبار سنجی فنی را برای شرکا انجام می دهد تا آنها را قادر می سازد در مسیر شریک پیشرفت کنند.

تنظیم خودکار مدل را با Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence اجرا کنید. جستجوی عمودی Ai.یانیس میتروپولوس یک مهندس توسعه نرم افزار برای SageMaker است تنظیم خودکار مدل.

تنظیم خودکار مدل را با Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence اجرا کنید. جستجوی عمودی Ai.دکتر آشیش ختان دانشمند ارشد کاربردی با Amazon SageMaker JumpStart و الگوریتم های داخلی آمازون SageMaker و به توسعه الگوریتم های یادگیری ماشین کمک می کند. او یک محقق فعال در یادگیری ماشین و استنتاج آماری است و مقالات زیادی در کنفرانس های NeurIPS، ICML، ICLR، JMLR و ACL منتشر کرده است.

تمبر زمان:

بیشتر از آموزش ماشین AWS