آمازون SageMaker اکنون به شما این امکان را میدهد که عملکرد نسخه جدیدی از پشته سرویسدهی مدل را با نسخه مستقر در حال حاضر قبل از عرضه کامل تولید با استفاده از یک روش ایمنی استقرار به نام مقایسه کنید. تست سایه. آزمایش سایه می تواند به شما کمک کند تا خطاهای بالقوه پیکربندی و مشکلات عملکرد را قبل از تأثیرگذاری بر کاربران نهایی شناسایی کنید. با SageMaker، نیازی به سرمایه گذاری در ساخت زیرساخت آزمایش سایه خود ندارید، که به شما امکان می دهد بر توسعه مدل تمرکز کنید. SageMaker مراقب استقرار نسخه جدید در کنار نسخه فعلی درخواستهای تولید است و بخشی از درخواستها را به نسخه سایه هدایت میکند. سپس می توانید عملکرد دو نسخه را با استفاده از معیارهایی مانند تأخیر و میزان خطا مقایسه کنید. این به شما اطمینان بیشتری میدهد که عرضههای تولید در نقاط پایانی استنتاج SageMaker باعث رگرسیون عملکرد نمیشود و به شما کمک میکند از قطعیهای ناشی از پیکربندی اشتباه تصادفی جلوگیری کنید.
در این پست، ما این قابلیت جدید SageMaker را نشان می دهیم. نمونه نوت بوک مربوطه در این GitHub موجود است مخزن.
بررسی اجمالی راه حل
زیرساخت ارائه مدل شما شامل مدل یادگیری ماشین (ML)، ظرف سرویس یا نمونه محاسباتی است. بیایید سناریوهای زیر را در نظر بگیریم:
- شما در نظر دارید مدل جدیدی را معرفی کنید که به صورت آفلاین تأیید شده است، اما می خواهید معیارهای عملکرد عملیاتی مانند تأخیر، نرخ خطا و غیره را قبل از تصمیم گیری ارزیابی کنید.
- شما در حال بررسی تغییراتی در کانتینر زیرساخت خدمات خود هستید، مانند اصلاح آسیبپذیریها یا ارتقاء به نسخههای جدیدتر، و میخواهید تأثیر این تغییرات را قبل از ارتقا به تولید ارزیابی کنید.
- شما در حال بررسی تغییر نمونه ML خود هستید و می خواهید نحوه عملکرد نمونه جدید را با درخواست های استنتاج زنده ارزیابی کنید.
نمودار زیر معماری راه حل ما را نشان می دهد.
برای هر یک از این سناریوها، یک نوع تولیدی را انتخاب کنید که میخواهید با آن آزمایش کنید و SageMaker به طور خودکار نوع جدید را در حالت سایه اجرا میکند و یک کپی از درخواستهای استنتاج را در زمان واقعی در همان نقطه پایانی به آن هدایت میکند. فقط پاسخ های نوع تولید به برنامه فراخوانی بازگردانده می شود. برای مقایسه آفلاین میتوانید پاسخهای نوع سایه را کنار بگذارید یا ثبت کنید. به صورت اختیاری، میتوانید انواع را از طریق داشبورد داخلی با مقایسهی کنار هم از معیارهای عملکرد نظارت کنید. میتوانید از این قابلیت از طریق APIهای بهروزرسانی استنتاج SageMaker یا از طریق کنسول SageMaker استفاده کنید.
انواع سایه بر روی قابلیت نوع تولید در نقاط پایانی استنتاج SageMaker ساخته می شوند. برای تکرار، الف نوع تولید شامل مدل ML، ظرف سرو و نمونه ML است. از آنجا که هر گونه مستقل از انواع دیگر است، می توانید مدل ها، کانتینرها یا انواع نمونه های مختلفی را در بین انواع مختلف داشته باشید. SageMaker به شما امکان می دهد سیاست های مقیاس بندی خودکار را بر اساس هر متغیر مشخص کنید تا بتوانند به طور مستقل بر اساس بار ورودی مقیاس شوند. SageMaker از 10 نوع تولید در هر نقطه پایانی پشتیبانی می کند. شما می توانید یک نوع را برای دریافت بخشی از ترافیک ورودی با تنظیم وزن های مختلف پیکربندی کنید، یا نوع هدف را در درخواست ورودی مشخص کنید. پاسخ از نوع تولید به فراخوان بازگردانده می شود.
A نوع سایه (جدید) دارای همان اجزای یک نوع تولیدی است. بخشی از درخواستها که توسط کاربر مشخص شده است، به نام درصد نمونه گیری ترافیک، به نوع سایه ارسال می شود. می توانید انتخاب کنید که پاسخ نوع سایه را وارد کنید سرویس ذخیره سازی ساده آمازون (Amazon S3) یا آن را دور بریزید.
توجه داشته باشید که SageMaker حداکثر از یک نوع سایه در هر نقطه پایانی پشتیبانی می کند. برای نقطه پایانی با یک نوع سایه، حداکثر یک نوع تولید می تواند وجود داشته باشد.
پس از تنظیم انواع تولید و سایه، می توانید بر روی آن نظارت کنید معیارهای فراخوانی برای هر دو نوع تولید و سایه در CloudWatch آمازون تحت AWS/SageMaker
فضای نام همه بهروزرسانیهای نقطه پایانی SageMaker با استفاده از آن تنظیم میشوند استقرار آبی/سبز و بدون از دست دادن در دسترس بودن رخ می دهد. با افزودن، اصلاح یا حذف انواع سایه، نقاط پایانی شما به درخواستهای تولید پاسخ خواهند داد.
شما می توانید از این قابلیت به یکی از دو روش زیر استفاده کنید:
- آزمایش سایه مدیریت شده با استفاده از کنسول SageMaker - می توانید از کنسول برای یک تجربه هدایت شده برای مدیریت سفر انتها به انتها آزمایش سایه استفاده کنید. این به شما امکان میدهد تستهای سایه را برای مدت زمان از پیش تعریفشده تنظیم کنید، پیشرفت را از طریق داشبورد زنده نظارت کنید، پس از اتمام آن را تمیز کنید و بر اساس نتایج عمل کنید.
- تست سایه سلف سرویس با استفاده از SageMaker Inference API - اگر گردش کار استقرار شما از قبل از ایجاد/بهروزرسانی/حذف APIهای نقطه پایانی استفاده میکند، میتوانید به استفاده از آنها برای مدیریت انواع سایهها ادامه دهید.
در بخش های بعدی به بررسی هر یک از این سناریوها می پردازیم.
سناریو 1 - آزمایش سایه مدیریت شده با استفاده از کنسول SageMaker
اگر میخواهید SageMaker را برای مدیریت گردش کار سرتاسر ایجاد، مدیریت و عمل بر روی نتایج آزمایشهای سایه انتخاب کنید، از قابلیت Shadow tests در بخش Inference در کنسول SageMaker استفاده کنید. همانطور که قبلاً گفته شد، این به شما امکان میدهد تا تستهای سایه را برای مدت زمان از پیش تعریفشده تنظیم کنید، پیشرفت را از طریق داشبورد زنده نظارت کنید، گزینههای پاکسازی را پس از تکمیل ارائه دهید و بر اساس نتایج عمل کنید. برای کسب اطلاعات بیشتر، لطفا به تست های سایه مراجعه کنید بخش از مستندات ما برای بررسی گام به گام این قابلیت.
پیش نیازها
مدل های تولید و سایه باید در SageMaker ایجاد شوند. لطفا به CreateModel
API اینجا کلیک نمایید.
مرحله 1 - یک تست سایه ایجاد کنید
حرکت به استنباط بخش سمت چپ پنل ناوبری کنسول SageMaker و سپس Shadow tests را انتخاب کنید. این شما را به یک داشبورد با تمام تست های سایه برنامه ریزی شده، در حال اجرا و تکمیل شده می برد. کلیک 'ایجاد یک آزمون سایه. یک نام برای آزمون وارد کنید و گزینه بعدی را انتخاب کنید.
این شما را به صفحه تنظیمات تست سایه می برد. شما می توانید یک نقش IAM موجود را انتخاب کنید یا یک نقش ایجاد کنید که دارای آن باشد AmazonSageMakerFullAccess
خط مشی IAM پیوست شده است. بعد، 'یک نقطه پایانی جدید ایجاد کنید و یک نام (xgb-prod-shadow-1) وارد کنید. شما می توانید با کلیک بر روی "یک تولید و یک نوع سایه مرتبط با این نقطه پایانی اضافه کنید.اضافه کردن' در بخش Variants می توانید مدل هایی را که ایجاد کرده اید در ' انتخاب کنیداضافه کردن مدل کادر محاوره ای. این یک تولید یا نوع ایجاد می کند. به صورت اختیاری، می توانید نوع نمونه و تعداد مربوط به هر نوع را تغییر دهید.
تمام ترافیک به نوع تولید می رود و به درخواست های فراخوانی پاسخ می دهد. میتوانید بخشی از درخواستها را که به متغیر سایه هدایت میشوند، با تغییر آن کنترل کنید Traffic Sampling Percentage
.
شما می توانید مدت زمان آزمون را از یک ساعت تا 30 روز کنترل کنید. اگر مشخص نباشد، به طور پیشفرض 7 روز است. پس از این مدت، آزمون کامل علامت گذاری می شود. اگر آزمایشی را روی یک نقطه پایانی فعلی اجرا میکنید، پس از اتمام به حالت قبل از شروع آزمایش برگردانده میشود.
میتوانید بهصورت اختیاری درخواستها و پاسخهای نوع Shadow را با استفاده از ضبط داده ها گزینه ها. اگر نامشخص باقی بماند، پاسخ های نوع سایه کنار گذاشته می شوند.
مرحله 2 - یک آزمایش سایه را نظارت کنید
شما می توانید لیستی از تست های سایه را با رفتن به آن مشاهده کنید Shadow Tests
بخش تحت استنتاج روی تست سایه ایجاد شده در مرحله قبل کلیک کنید تا جزئیات یک تست سایه را مشاهده کنید و در حین انجام یا پس از اتمام آن، آن را نظارت کنید.
بخش متریک مقایسه ای از معیارهای کلیدی را ارائه می دهد و نمودارهای همپوشانی بین انواع تولید و سایه را به همراه آمار توصیفی ارائه می دهد. می توانید معیارهای فراخوانی را با هم مقایسه کنید ModelLatency
و Invocation4xxErrors
و همچنین معیارهای نمونه مانند CPUUtilization
و DiskUtilization
.
مرحله 3 - نوع Shadow را به نوع تولیدی جدید ارتقا دهید
پس از مقایسه، می توانید انتخاب کنید که نوع سایه را به عنوان نوع تولید جدید تبلیغ کنید یا نوع سایه را حذف کنید. برای هر دو این گزینه، ' را انتخاب کنیدعلامت گذاری کامل در بالای صفحه این گزینه ای را به شما ارائه می دهد که می توانید نوع سایه را تبلیغ یا حذف کنید.
اگر تبلیغ را انتخاب کنید، به صفحه استقرار هدایت می شوید، جایی که می توانید تنظیمات نوع را قبل از استقرار تأیید کنید. قبل از استقرار، توصیه میکنیم انواع سایههای خود را اندازه بگیرید تا بتوانید 100٪ ترافیک فراخوانی را مدیریت کنید. اگر از آزمایش سایه برای ارزیابی انواع یا اندازههای نمونه جایگزین استفاده نمیکنید، میتوانید از «انتخاب» استفاده کنید.تنظیمات نوع تولید را حفظ کنید. در غیر این صورت، می توانید انتخاب کنیدتنظیمات نوع سایه را حفظ کنید. اگر این گزینه را انتخاب کردید، لطفاً اطمینان حاصل کنید که نمونه ترافیک شما روی 100٪ تنظیم شده است. یا اگر میخواهید این تنظیمات را لغو کنید، میتوانید نوع نمونه و تعداد آن را مشخص کنید.
هنگامی که استقرار را تأیید کردید، SageMaker به روز رسانی را برای نقطه پایانی شما آغاز می کند تا نوع سایه را به نوع تولید جدید ارتقا دهد. همانند تمام بهروزرسانیهای SageMaker، نقطه پایانی شما همچنان در طول بهروزرسانی فعال خواهد بود.
سناریو 2: آزمایش سایه با استفاده از APIهای استنتاج SageMaker
این بخش نحوه استفاده از APIهای ایجاد/بهروزرسانی/حذف نقطه پایانی SageMaker موجود برای استقرار انواع سایه را پوشش میدهد.
برای این مثال، ما دو مدل XGBoost داریم که نشان دهنده دو نسخه متفاوت از مدل هایی است که از قبل آموزش دیده اند. model.tar.gz
مدلی است که در حال حاضر در تولید مستقر شده است. model2
مدل جدیدتر است، و ما می خواهیم قبل از تصمیم به استفاده از آن در تولید، عملکرد آن را از نظر معیارهای عملیاتی مانند تأخیر آزمایش کنیم. مستقر می کنیم model2
به عنوان یک نوع سایه از model.tar.gz
. هر دو مدل از پیش آموزش دیده در سطل عمومی S3 ذخیره می شوند s3://sagemaker-sample-files
. ابتدا نمونه محاسباتی محلی مدل خود را دانلود می کنیم و سپس در S3 آپلود می کنیم.
مدلهای این مثال برای پیشبینی احتمال خروج یک مشتری تلفن همراه از اپراتور تلفن همراه فعلی خود استفاده میشوند. مجموعه داده ای که ما استفاده می کنیم در دسترس عموم است و در کتاب ذکر شده است کشف دانش در داده ها توسط Daniel T. Larose. این مدل ها با استفاده از نوت بوک XGB Churn Prediction در SageMaker. شما همچنین می توانید از مدل های از قبل آموزش دیده خود استفاده کنید، در این صورت می توانید از دانلود صرف نظر کنید s3://sagemaker-sample-files
و مدل های خود را مستقیماً در مدل/پوشه کپی کنید.
مرحله 1 - ایجاد مدل
ما فایل های مدل را در سطل S3 خود آپلود می کنیم و دو مدل SageMaker ایجاد می کنیم. کد زیر را ببینید:
مرحله 2 - دو مدل را به عنوان انواع تولید و سایه در یک نقطه پایانی استنتاج بلادرنگ مستقر کنید
ما یک پیکربندی نقطه پایانی با انواع تولید و سایه ایجاد می کنیم. این ProductionVariants
و ShadowProductionVariants
مورد توجه خاص هستند. هر دوی این انواع دارای نمونه های ml.m5.xlarge با 4 vCPU و 16 گیگابایت حافظه هستند و تعداد نمونه اولیه روی 1 تنظیم شده است. کد زیر را ببینید:
در نهایت، ما نوع تولید و سایه را ایجاد می کنیم:
مرحله 3 - نقطه پایانی را برای آزمایش فراخوانی کنید
پس از اینکه نقطه پایانی با موفقیت ایجاد شد، می توانید فراخوانی آن را آغاز کنید. ما حدود 3,000 درخواست را به صورت متوالی ارسال می کنیم:
مرحله 4 - مقایسه معیارها
اکنون که هر دو مدل تولید و سایه را به کار گرفته ایم، بیایید معیارهای فراخوانی را با هم مقایسه کنیم. برای فهرستی از معیارهای فراخوانی که برای مقایسه در دسترس هستند، به Amazon SageMaker را با Amazon CloudWatch مانیتور کنید. بیایید با مقایسه فراخوانها بین انواع تولید و سایه شروع کنیم.
La InvocationsPerInstance
متریک به تعداد فراخوان های ارسال شده به نوع تولید اشاره دارد. کسری از این فراخوانها، که در وزن متغیر مشخص شدهاند، به نوع سایه ارسال میشوند. فراخوانی در هر نمونه با تقسیم تعداد کل فراخوان ها بر تعداد نمونه های یک نوع محاسبه می شود. همانطور که در نمودارهای زیر نشان داده شده است، میتوانیم تأیید کنیم که هر دو نوع تولید و سایه، درخواستهای فراخوانی را با توجه به وزنهای مشخصشده در پیکربندی نقطه پایانی دریافت میکنند.
در مرحله بعد، اجازه دهید تاخیر مدل را با هم مقایسه کنیم (ModelLatency
متریک) بین انواع تولید و سایه. تأخیر مدل مدت زمانی است که یک مدل برای پاسخگویی به شکل مشاهده شده از SageMaker صرف می کند. ما میتوانیم مشاهده کنیم که چگونه تأخیر مدل نوع سایه با نوع تولیدی مقایسه میشود بدون اینکه کاربران نهایی را در معرض نوع سایه قرار دهیم.
ما انتظار داریم تاخیر سربار (OverheadLatency
متریک) در بین انواع تولید و سایه قابل مقایسه باشد. تأخیر سربار فاصله ای است که از زمانی که SageMaker درخواست را دریافت می کند تا زمانی که پاسخی را به مشتری برمی گرداند اندازه گیری می شود، منهای تأخیر مدل.
مرحله 5- نوع سایه خود را تبلیغ کنید
برای ارتقای مدل سایه به تولید، یک پیکربندی نقطه پایانی جدید با جریان ایجاد کنید ShadowProductionVariant
به عنوان جدید ProductionVariant
و حذف کنید ShadowProductionVariant
. این جریان را حذف می کند ProductionVariant
و نوع سایه را برای تبدیل شدن به نوع تولید جدید تبلیغ کنید. مثل همیشه، همه بهروزرسانیهای SageMaker به صورت پیادهسازیهای آبی/سبز در زیر کاپوت تنظیم شدهاند و در حین انجام بهروزرسانی، دسترسی به آن از دست نمیرود.
به صورت اختیاری، می توانید از اهرم استفاده کنید گاردیل های استقرار اگر می خواهید در طول به روز رسانی خود از جابجایی ترافیک و بازگشت خودکار به یکباره استفاده کنید.
مرحله 6 - پاکسازی
اگر قصد ندارید از این نقطه پایانی بیشتر استفاده کنید، باید نقطه پایانی را حذف کنید تا از تحمیل هزینه های اضافی جلوگیری کنید و سایر منابع ایجاد شده در این وبلاگ را پاکسازی کنید.
نتیجه
در این پست، ما یک قابلیت جدید از استنتاج SageMaker را برای مقایسه عملکرد نسخه جدید یک پشته سرویس مدل با نسخه فعلی مستقر قبل از عرضه کامل تولید با استفاده از یک روش ایمنی استقرار معروف به آزمایش سایه معرفی کردیم. ما شما را با مزایای استفاده از انواع سایه و روشهای پیکربندی انواع با یک آشنا کردیم مثال انتها به انتها. برای کسب اطلاعات بیشتر در مورد انواع سایه، به تست های سایه مراجعه کنید مستندات.
درباره نویسنده
راغو رامشا یک معمار راه حل های یادگیری ماشین با تیم خدمات آمازون SageMaker است. او بر کمک به مشتریان در ساخت، استقرار و انتقال بارهای کاری تولید ML به SageMaker در مقیاس متمرکز است. او در زمینه های یادگیری ماشین، هوش مصنوعی و بینایی کامپیوتر تخصص دارد و دارای مدرک کارشناسی ارشد در علوم کامپیوتر از UT Dallas است. در اوقات فراغت از مسافرت و عکاسی لذت می برد.
کینگوی لی یک متخصص یادگیری ماشین در خدمات وب آمازون است. او دکترای خود را دریافت کرد. در تحقیقات عملیات پس از اینکه حساب کمک هزینه تحقیقاتی مشاورش را شکست و نتوانست جایزه نوبل را که وعده داده بود تحویل دهد. در حال حاضر او به مشتریان در صنعت خدمات مالی و بیمه کمک می کند تا راه حل های یادگیری ماشینی را در AWS بسازند. در اوقات فراغت به مطالعه و تدریس علاقه دارد.
کیون ژائو یک مهندس ارشد توسعه نرم افزار با تیم پلتفرم استنتاج Amazon SageMaker است. او توسعهدهنده اصلی Deployment Guardrails و Shadow Deployments است و بر کمک به مشتریان برای مدیریت حجم کاری و استقرار ML در مقیاس با در دسترس بودن بالا تمرکز میکند. او همچنین بر روی تحولات معماری پلتفرم برای استقرار سریع و ایمن مشاغل ML و اجرای آزمایشات آنلاین ML به راحتی کار می کند. در اوقات فراغت از مطالعه، بازی و مسافرت لذت می برد.
تارون سائرم مدیر محصول ارشد Amazon SageMaker Inference است. او علاقه مند است در مورد آخرین روندهای یادگیری ماشینی بیاموزد و به مشتریان کمک کند تا از آنها استفاده کنند. او در اوقات فراغت خود از دوچرخه سواری، اسکی و تنیس لذت می برد.
- AI
- آی هنر
- مولد هنر ai
- ربات ai
- آموزش ماشین آمازون
- آمازون SageMaker
- Amazon SageMaker Autopilot
- هوش مصنوعی
- گواهی هوش مصنوعی
- هوش مصنوعی در بانکداری
- ربات هوش مصنوعی
- ربات های هوش مصنوعی
- نرم افزار هوش مصنوعی
- آموزش ماشین AWS
- بلاکچین
- کنفرانس بلاک چین ai
- coingenius
- هوش مصنوعی محاوره ای
- کنفرانس کریپتو ai
- دل-ه
- یادگیری عمیق
- گوگل ai
- فراگیری ماشین
- افلاطون
- افلاطون آی
- هوش داده افلاطون
- بازی افلاطون
- PlatoData
- بازی پلاتو
- مقیاس Ai
- تست سایه
- نحو
- زفیرنت