ساخته شده در آمازون SageMaker الگوریتم XGBoost یک محفظه مدیریت شده برای اجرای محبوب فراهم می کند XGBoost چارچوب یادگیری ماشینی (ML)، با راحتی بیشتر پشتیبانی از آموزش پیشرفته یا ویژگیهای استنتاج مانند آموزش توزیعشده، اشتراکگذاری مجموعه دادهها برای مجموعههای داده در مقیاس بزرگ، تست مدل A/B، یا استنتاج چند مدلی نقاط پایانی شما همچنین می توانید این الگوریتم قدرتمند را برای تطبیق با نیازهای مختلف گسترش دهید.
بستهبندی کد و وابستگیها در یک ظرف منفرد یک رویکرد راحت و قوی برای نگهداری طولانیمدت کد، تکرارپذیری و اهداف ممیزی است. اصلاح کانتینر مستقیماً از کانتینر پایه پیروی می کند و از تکرار توابع موجود که قبلاً توسط کانتینر پایه پشتیبانی شده است جلوگیری می کند. در این پست، عملکرد داخلی محفظه الگوریتم SageMaker XGBoost را بررسی میکنیم و اسکریپتهای عملی را برای سفارشیسازی مستقیم ظرف ارائه میکنیم.
ساختار ظرف SageMaker XGBoost
الگوریتم XGBoost داخلی SageMaker به عنوان یک ظرف مستقل بسته بندی شده است. در GitHub موجود است، و می تواند تحت مجوز توسعه دهنده آپاچی 2.0 منبع باز گسترش یابد. ظرف بسته بندی می شود الگوریتم منبع باز XGBoost و ابزارهای جانبی برای اجرای الگوریتم در محیط SageMaker یکپارچه با سایر خدمات AWS Cloud. این به شما امکان می دهد مدل های XGBoost را بر روی انواع مختلفی آموزش دهید منابع داده، ایجاد کنید پیش بینی های دسته ای روی داده های آفلاین، یا میزبان یک نقطه پایان استنتاج در زمان واقعی خط لوله.
کانتینر از عملیات آموزشی و استنباط با نقاط ورودی مختلف پشتیبانی می کند. برای حالت استنتاج، ورودی را می توان در تابع اصلی در پیدا کرد اسکریپت serving.py. برای ارائه استنتاج بلادرنگ، کانتینر a را اجرا می کند فلاسکبر اساس وب سرور که وقتی استناد کرد، یک درخواست کدگذاری شده با HTTP حاوی داده ها را دریافت می کند، داده ها را در XGBoost رمزگشایی می کند. دی ماتریکس قالب ، مدل را بارگذاری می کند، و an را برمی گرداند پاسخ کدگذاری شده با HTTP برگشت. این روش ها در زیر کپسوله می شوند Scoring Service کلاس، که همچنین می تواند از طریق حالت اسکریپت تا حد زیادی سفارشی شود (پیوست زیر را ببینید).
نقطه ورود برای حالت آموزش (حالت الگوریتم) تابع اصلی در است training.py. تابع اصلی محیط آموزشی را تنظیم می کند و تابع شغل آموزشی را فرا می خواند. این به اندازه کافی انعطاف پذیر است که امکان آموزش توزیع شده یا تک گره یا ابزارهایی مانند اعتبار سنجی متقاطع را فراهم کند. قلب فرآیند آموزش را می توان در قطار_شغل تابع.
فایل های Docker بسته بندی کانتینر را می توان در GitHub repo. توجه داشته باشید که ظرف در دو مرحله ساخته می شود: الف پایه کانتینر ابتدا ساخته می شود و به دنبال آن نهایی ظرف در بالا
بررسی اجمالی راه حل
شما می توانید ظرف را از طریق کد منبع تغییر دهید و دوباره بسازید. با این حال، این شامل جمع آوری و بازسازی تمام وابستگی ها و بسته ها از ابتدا است. در این پست، ما یک رویکرد سادهتر را مورد بحث قرار میدهیم که محفظه را مستقیماً در بالای تصویر ظرف الگوریتم SageMaker XGBoost ساختهشده و در دسترس عموم تغییر میدهد.
در این رویکرد، ما کشیدن یک کپی از تصویر عمومی SageMaker XGBoost، اسکریپت ها را تغییر دهید یا بسته ها را اضافه کنید و ظرف را در بالا بازسازی کنید. ظرف اصلاح شده را می توان در یک مخزن خصوصی ذخیره کرد. به این ترتیب، از بازسازی وابستگیهای واسطه اجتناب میکنیم و در عوض مستقیماً در بالای کتابخانههای ساختهشده از قبل بستهبندی شده در کانتینر رسمی ایجاد میکنیم.
شکل زیر نمای کلی از اسکریپت مورد استفاده برای کشیدن تصویر پایه عمومی، اصلاح و بازسازی تصویر و آپلود آن در یک خصوصی را نشان می دهد. رجیستری ظروف الاستیک آمازون مخزن (Amazon ECR). را اسکریپت bash در کد همراه این پست تمامی مراحل گردش کار نشان داده شده در نمودار را انجام می دهد. همراه دفتر یادداشت مثالی را نشان می دهد که در آن URI یک نسخه خاص از الگوریتم SageMaker XGBoost ابتدا بازیابی شده و به اسکریپت bash، که جایگزین دو اسکریپت پایتون در تصویر می شود، آن را بازسازی می کند و تصویر اصلاح شده را به یک مخزن خصوصی آمازون ECR می فرستد. شما می توانید کد همراه را مطابق با نیاز خود تغییر دهید.
پیش نیازها
La مخزن GitHub حاوی کد همراه این پست است. می توانید اجرا کنید نمونه دفترچه یادداشت در حساب AWS خود یا از موارد ارائه شده استفاده کنید AWS CloudFormation پشته برای استقرار نوت بوک با استفاده از نوت بوک SageMaker. شما به پیش نیازهای زیر نیاز دارید:
- یک حساب AWS
- مجوزهای لازم برای اجرای کارهای تبدیل دسته ای SageMaker و آموزش، و امتیازات Amazon ECR. الگوی CloudFormation نمونه ایجاد می کند هویت AWS و مدیریت دسترسی نقش های (IAM).
راه حل را مستقر کنید
برای ایجاد منابع راه حل خود با استفاده از AWS CloudFormation، را انتخاب کنید Stack را راه اندازی کنید:
پشته یک نوت بوک SageMaker را که از قبل برای شبیه سازی مخزن GitHub تنظیم شده است، مستقر می کند. راهپیمایی دفتر یادداشت شامل مراحل کشیدن تصویر عمومی SageMaker XGBoost برای یک نسخه معین، تغییر آن، و فشار دادن ظرف سفارشی به مخزن خصوصی Amazon ECR است. نوت بوک از عموم استفاده می کند مجموعه داده آبالون به عنوان نمونه، یک مدل را با استفاده از حالت آموزشی داخلی SageMaker XGBoost آموزش میدهد و از این مدل در تصویر سفارشی برای انجام کارهای تبدیل دستهای استفاده میکند که استنتاج همراه با مقادیر SHAP ایجاد میکنند.
نتیجه
الگوریتمهای داخلی SageMaker ویژگیها و عملکردهای مختلفی را ارائه میکنند و میتوانند تحت مجوز منبع باز Apache 2.0 گسترش بیشتری پیدا کنند. در این پست، نحوه گسترش کانتینر داخلی برای الگوریتم SageMaker XGBoost را بررسی کردیم تا نیازهای تولید مانند کدهای عقبافتاده و سازگاری API را برآورده کنیم.
نمونه دفترچه یادداشت و کمکی اسکریپت یک نقطه شروع مناسب برای سفارشی کردن تصویر محفظه SageMaker XGBoost به روشی که دوست دارید فراهم کنید. آن را امتحان کنید!
ضمیمه: حالت اسکریپت
حالت اسکریپت راهی برای اصلاح بسیاری از الگوریتم های داخلی SageMaker با ارائه یک رابط برای جایگزینی توابع مسئول تبدیل ورودی ها و بارگذاری مدل ارائه می دهد. حالت اسکریپت به اندازه تغییر مستقیم کانتینر انعطافپذیر نیست، اما یک مسیر کاملاً مبتنی بر پایتون برای سفارشی کردن الگوریتم داخلی بدون نیاز به کار مستقیم با آن ارائه میکند. کارگر بارانداز.
در حالت اسکریپت، الف user-module
برای سفارشی کردن رمزگشایی داده ها، بارگذاری مدل و انجام پیش بینی ها ارائه شده است. ماژول کاربر می تواند a را تعریف کند transformer_fn
که تمام جنبه های پردازش درخواست تا آماده سازی پاسخ را انجام می دهد. یا به جای تعریف کردن transformer_fn
، می توانید روش های سفارشی ارائه دهید model_fn
, input_fn
, predict_fn
و output_fn
به صورت جداگانه برای سفارشی کردن بارگذاری مدل و رمزگشایی و آماده سازی ورودی برای پیش بینی. برای یک نمای کلی بیشتر از حالت اسکریپت، نگاه کنید مدل خود را با حالت SageMaker Script Mode بیاورید.
درباره نویسنده
پیمان رزاقی دانشمند داده در AWS است. او دارای مدرک دکترای تئوری اطلاعات از دانشگاه تورنتو و دانشمند پژوهشی پسا دکتری در دانشگاه کالیفرنیای جنوبی (USC)، لس آنجلس بود. پیمان قبل از پیوستن به AWS، یک مهندس سیستم کارکنان در کوالکام بود که در تعدادی از استانداردهای بینالمللی مخابراتی مهم مشارکت داشت. او چندین مقاله علمی تحقیقاتی را در زمینه آمار و مهندسی سیستمها تألیف کرده است و از والدین و دوچرخهسواری جاده در خارج از محل کار لذت میبرد.
- "
- 100
- دسترسی
- تطبیق
- حساب
- پیشرفته
- الگوریتم
- الگوریتم
- معرفی
- قبلا
- آمازون
- API
- روش
- محدوده
- مقالات
- AWS
- ساختن
- ساخته شده در
- کالیفرنیا
- را انتخاب کنید
- کلاس
- ابر
- خدمات ابر
- رمز
- جمع آوری
- به طور کامل
- ظرف
- شامل
- راحتی
- مناسب
- ایجاد
- سفارشی
- داده ها
- دانشمند داده
- گسترش
- مستقر می کند
- مختلف
- مستقیما
- بحث و تبادل نظر
- توزیع شده
- کارگر بارانداز
- مهندس
- محیط
- مثال
- گسترش
- امکانات
- شکل
- نام خانوادگی
- قابل انعطاف
- پیروی
- قالب
- یافت
- چارچوب
- تابع
- بیشتر
- GitHub
- بزرگ
- دارای
- چگونه
- چگونه
- HTTPS
- هویت
- تصویر
- اطلاعات
- ورودی
- یکپارچه
- رابط
- بین المللی
- IT
- کار
- شغل ها
- یادگیری
- مجوز
- دراز مدت
- لس آنجلس
- دستگاه
- فراگیری ماشین
- باعث می شود
- ساخت
- اداره می شود
- ML
- مدل
- مدل
- بیش
- دفتر یادداشت
- عدد
- رسمی
- آنلاین نیست.
- عملیات
- دیگر
- خود
- نقطه
- محبوب
- قوی
- پیش گویی
- پیش بینی
- خصوصی
- روند
- تولید کردن
- تولید
- ارائه
- فراهم می کند
- ارائه
- عمومی
- اهداف
- زمان واقعی
- مخزن
- درخواست
- مورد نیاز
- تحقیق
- منابع
- پاسخ
- مسئوليت
- بازده
- این فایل نقد می نویسید:
- مسیر
- دویدن
- دانشمند
- خدمات
- خدمت
- sharding
- نرم افزار
- راه حل
- کد منبع
- جنوبی
- پشته
- استانداردهای
- ارقام
- پشتیبانی
- حمایت از
- پشتیبانی از
- سیستم های
- منبع
- از طریق
- با هم
- ابزار
- بالا
- تورنتو
- آموزش
- قطار
- دگرگون کردن
- تبدیل شدن
- دانشگاه
- استفاده کنید
- تنوع
- ویکیپدیا
- مهاجرت کاری
- خواهد بود