سرویس sageMaker آمازون در استقرار مدل های ML

سرویس sagemaker شرکت آمازون، سرویسی است که با هدف فائق آمدن بر چالش های استقرار مدل های یادگیری ماشین در محیط عملیاتی است. این سرویس به همراه سرویس های دیگر آمازون به صورت یک پلتفرم یکپارچه یادگیری ماشین، امکان سازماندهی، دنبال کردن، قیاس، و ارزیابی آزمایشات یادگیری ماشین را از طریق سازماندهی نتایج در یک اسکیمای یکنواخت فراهم می کند.

یک Experiment در این سرویس، مجموعه ای از آزمایشات(trial) است که به صورت یک گروه، مشاهده، مقایسه، و ارزیابی شده­ اند.

یک trail نیز مجموعه ای از گام هاست که به آنها مولفه­ ی یک آزمایش گفته می شود. هر مولفه می تواند ترکیبی از ورودی ها مثل مجموعه آموزشی، الگوریتم ها، و پارامترها بوده و یک خروجی خاص مثل مدل ها، متریک ها، مجموعه ­های آموزشی، و check pointها ایجاد کند.

Sagemaker debugger امکان بررسی مدل آموزشی را با مانیتور کردن مدل، ثبت و آنالیز داده و درنتیجه ثبت وضیعت job آموزشی فراهم می سازد. این برنامه هشدارهایی دارد که وقتی خطاهای معمول حین آموزش مدل رخ دهد (مانند وقتی که مقادیر گرادیان خیلی کم یا خیلی زیاد می شود) هشدارها فعال شده و امکان تست کردن تعاملی کد را به کاربر می دهد.

خطاها توسط ruleها (قوانین) شناسایی می شوند. یک قانون یک کد پایتون است که شرایط خاص حین آموزش را شناسایی می کند (مثلا مجموعه های آموزشی غیر متعادل، رشد خیلی زیاد گرادیان، یا overfitting). دیباگر sagemaker مجموعه قوانینی دارد که با فریم ورک های معمول مانند tensorflow، pytorch و xgboost کار می کند. همچنین می توان قوانین سفارشی را نیز در این برنامه پیکربندی و ایجاد نمود.

Amazon Sagemaker
سرویس sagemaker آمازون برای استقرار مدل های یادگیری ماشین در محیط عملیاتی

از طرفی دو نوع پیش بینی در محیط عملیاتی داریم:

  • استنتاج Batch: امکان پیش بینی روی یک دسته از نمونه ها را معمولا به صورت دوره ای فراهم می کند.
  • استنتاج آنلاین: برای زمانی که نیاز است پیش بینی ها سنکرون باشند.

sagemaker برای انجام استنتاج آنلاین یک https endpoint به هر مدل ارائه می دهد و تمامی عملیات موردنیاز برای بالا آوردن آن endpoint و نیازهای شبکه ای آن را تامین می کند. همچنین برای حالت دسته ای (Batch)، یک job توسط یک مدل آموزش دیده و یک مجموعه آموزشی ذخیره شده روی s3 ایجاد می شود. این برنامه منابع کامپیوتر مانند لانچ شدن ماشین مجازی و حذف آن بعد از اتمام job را برای انجام پیش بینی مدیریت کرده و پس از انجام پیش بینی دسته ای، نتیجه روی باکت های s3 ذخیره می شود.

مقیاس پذیری خودکار در sagemaker بر اساس مانیتور کردن متریک هایی مانند مصرف cpu، و مقایسه آن با متریک های هدف انجام می شود. همچنین میتوان حداقل و حداکثر گنجایش مقیاس را تنظیم کرده و زمان های  cool down برای کنترل رقتار مقیاس پذیری و قیمت مشخص کرد.

مراحل استفاده از بخش مانیتور sagemaker عبارتند از

ایجاد baseline از مجموعه آموزشی: Sagemaker از کتابخانه متن باز Deequ که روی اسپارک ساخته شده است برای محاسبه محدودیت های اسیکمای baseline و آمار هر فیچر استفاده می کند.

پیکربندی endpoint برای دریافت داده از درخواست های ورودی

زمان بندی مانیتورینگ که مشخص می کند چه داده ای، با چه نرخی جمع آوری شود، چگونه تحلیل شود، و چه گزارش هایی تولید شود.

بررسی گزارش ها که در آنها baseline با آخرین داده دریافتی مقایسه شده و تفاوت های احتمالی چک شده و متریک ها و هشدارها نیز در Amazon CloudWatch کنترل می شود.

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