تجزیه و تحلیل هزینه آمازون SageMaker و تعیین فرصت های بهینه سازی هزینه بر اساس استفاده، قسمت 3: پردازش و مشاغل Wrangler داده | خدمات وب آمازون

تجزیه و تحلیل هزینه آمازون SageMaker و تعیین فرصت های بهینه سازی هزینه بر اساس استفاده، قسمت 3: پردازش و مشاغل Wrangler داده | خدمات وب آمازون

در سال 2021 راه اندازی کردیم AWS از خدمات پیشگیرانه پشتیبانی می کند به عنوان بخشی از پشتیبانی سازمانی AWS طرح. از زمان معرفی، ما به صدها مشتری کمک کرده‌ایم تا حجم کاری خود را بهینه کنند، نرده‌های محافظ را تنظیم کنند و دید هزینه و استفاده بارهای کاری یادگیری ماشینی (ML) خود را بهبود بخشند.

در این سری از پست‌ها، درس‌های آموخته شده در مورد بهینه‌سازی هزینه‌ها را به اشتراک می‌گذاریم آمازون SageMaker. در این پست، ما بر روی پیش پردازش داده ها با استفاده از آن تمرکز می کنیم پردازش آمازون SageMaker و Amazon SageMaker Data Rangler شغل ها.

پیش پردازش داده ها نقشی اساسی در رویکرد هوش مصنوعی داده محور دارد. با این حال، آماده‌سازی داده‌های خام برای آموزش و ارزیابی ML اغلب از نظر منابع محاسباتی، زمان و تلاش انسانی یک کار خسته‌کننده و طاقت‌فرسا است. آماده‌سازی داده‌ها معمولاً باید از منابع مختلف ادغام شود و با مقادیر گمشده یا پر سر و صدا، نقاط پرت و غیره سروکار داشته باشد.

علاوه بر این، علاوه بر وظایف رایج استخراج، تبدیل و بارگذاری (ETL)، تیم‌های ML گاهی به قابلیت‌های پیشرفته‌تری مانند ایجاد مدل‌های سریع برای ارزیابی داده‌ها و تولید امتیازهای اهمیت ویژگی یا ارزیابی مدل پس از آموزش به عنوان بخشی از خط لوله MLOps نیاز دارند.

SageMaker دو ویژگی را ارائه می دهد که به طور خاص برای کمک به این مشکلات طراحی شده اند: SageMaker Processing و Data Wrangler. SageMaker Processing شما را قادر می سازد تا به راحتی پیش پردازش، پس پردازش و ارزیابی مدل را بر روی یک زیرساخت کاملاً مدیریت شده اجرا کنید. Data Wrangler زمان جمع‌آوری و آماده‌سازی داده‌ها را با ساده‌سازی فرآیند یکپارچه‌سازی منبع داده و مهندسی ویژگی‌ها با استفاده از یک رابط بصری واحد و یک محیط پردازش داده کاملاً توزیع شده کاهش می‌دهد.

هر دو ویژگی SageMaker با چندین گزینه برای I/O، ذخیره سازی و محاسبات، انعطاف پذیری زیادی را ارائه می دهند. با این حال، تنظیم نادرست آن گزینه‌ها ممکن است منجر به هزینه‌های غیرضروری شود، به‌ویژه زمانی که با مجموعه داده‌های بزرگ سروکار داریم.

در این پست، ما عوامل قیمت گذاری را تجزیه و تحلیل می کنیم و راهنمایی بهینه سازی هزینه را برای مشاغل SageMaker Processing و Data Wrangler ارائه می دهیم.

پردازش SageMaker

SageMaker Processing یک راه حل مدیریت شده برای اجرای پردازش داده و بارهای کاری ارزیابی مدل است. می‌توانید از آن در مراحل پردازش داده‌ها مانند مهندسی ویژگی، اعتبارسنجی داده‌ها، ارزیابی مدل و تفسیر مدل در گردش‌های کاری ML استفاده کنید. با SageMaker Processing، می توانید اسکریپت های پردازش سفارشی خود را بیاورید و انتخاب کنید که یک ظرف سفارشی بسازید یا از یک ظرف مدیریت شده SageMaker با چارچوب های رایج مانند scikit-learn، Lime، Spark و موارد دیگر استفاده کنید.

SageMaker Processing برای نوع نمونه‌ای که انتخاب می‌کنید، هزینه‌ای از شما دریافت می‌کند، بر اساس مدت زمان استفاده و ذخیره‌سازی تدارکاتی که به آن نمونه متصل است. در قسمت 1، نحوه شروع استفاده را نشان دادیم AWS Cost Explorer برای شناسایی فرصت های بهینه سازی هزینه در SageMaker.

می توانید هزینه های پردازش را با اعمال فیلتر بر روی نوع استفاده فیلتر کنید. نام این نوع کاربردها به شرح زیر است:

  • REGION-Processing:instanceType (مثلا، USE1-Processing:ml.m5.large)
  • REGION-Processing:VolumeUsage.gp2 (مثلا، USE1-Processing:VolumeUsage.gp2)

برای بررسی هزینه پردازش SageMaker خود در Cost Explorer، با فیلتر کردن با SageMaker برای شروع کنید محصولات، و برای نوع استفاده، می توانید تمام نمونه های پردازشی را که در حال اجرا هستند با وارد کردن گزینه انتخاب کنید processing:ml پیشوند و انتخاب لیست در منو.

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 3: Processing and Data Wrangler jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

اجتناب از هزینه در پردازش و توسعه خط لوله

قبل از اندازه مناسب و بهینه سازی مدت زمان اجرای یک کار SageMaker Processing، ما معیارهای سطح بالا را در مورد اجرای کارهای تاریخی بررسی می کنیم. برای انجام این کار می توانید از بین دو روش انتخاب کنید.

ابتدا می توانید به پردازش صفحه در کنسول SageMaker.

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 3: Processing and Data Wrangler jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

به طور خلاصه، شما می توانید از list_processing_jobs API.

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 3: Processing and Data Wrangler jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

وضعیت شغلی پردازش می تواند باشد InProgress, Completed, Failed, Stopping، یا Stopped.

هنگام توسعه خطوط لوله MLOs جدید، تعداد زیادی از مشاغل شکست خورده رایج است. با این حال، همیشه باید قبل از راه‌اندازی مشاغل در SageMaker، آن‌ها را آزمایش کنید و تمام تلاش خود را برای اعتبارسنجی آنها انجام دهید، زیرا برای منابع استفاده شده هزینه‌هایی وجود دارد. برای این منظور می توانید از SageMaker Processing در آن استفاده کنید حالت محلی. حالت محلی یک ویژگی SageMaker SDK است که به شما امکان می‌دهد برآوردگرها، پردازنده‌ها و خطوط لوله ایجاد کنید و آنها را در محیط توسعه محلی خود مستقر کنید. این یک راه عالی برای آزمایش اسکریپت های خود قبل از اجرای آنها در یک محیط مدیریت شده SageMaker است. حالت محلی توسط ظروف مدیریت شده SageMaker و مواردی که خودتان تهیه می کنید پشتیبانی می شود. برای کسب اطلاعات بیشتر در مورد نحوه استفاده از حالت محلی با خطوط لوله آمازون SageMaker، رجوع شود به حالت محلی.

بهینه سازی هزینه های مربوط به I/O

مشاغل پردازش SageMaker دسترسی به سه منبع داده را به عنوان بخشی از مدیریت شده ارائه می دهند ورودی پردازش: سرویس ذخیره سازی ساده آمازون (Amazon S3) آمازون آتناو آمازون Redshift. برای اطلاعات بیشتر مراجعه کنید ProcessingS3Input, تعریف AthenaDatasetو RedshiftDatasetDefinitionبود.

قبل از بررسی بهینه سازی، توجه به این نکته مهم است که اگرچه کارهای پردازش SageMaker از این منابع داده پشتیبانی می کنند، اما اجباری نیستند. در کد پردازش خود، می توانید هر روشی را برای دانلود داده های دسترسی از هر منبعی (به شرطی که نمونه پردازشی بتواند به آن دسترسی داشته باشد) پیاده سازی کنید.

برای به دست آوردن بینش بهتر در مورد عملکرد پردازش و شناسایی فرصت های بهینه سازی، توصیه می کنیم موارد زیر را دنبال کنید بهترین شیوه های ثبت گزارش در اسکریپت پردازش شما SageMaker گزارش های پردازش شما را منتشر می کند CloudWatch آمازون.

در گزارش کار مثال زیر، می بینیم که پردازش اسکریپت 15 دقیقه (بین Start custom script و End custom script).

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 3: Processing and Data Wrangler jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

با این حال، در کنسول SageMaker، می بینیم که کار 4 دقیقه اضافی (تقریباً 25٪ از کل زمان اجرای کار) طول کشید.

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 3: Processing and Data Wrangler jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

این به این دلیل است که علاوه بر مدت زمانی که اسکریپت پردازش ما طول کشید، دانلود و آپلود داده های مدیریت شده توسط SageMaker نیز زمان برد (4 دقیقه). اگر ثابت شد که این بخش بزرگی از هزینه است، راه‌های دیگری را برای افزایش سرعت دانلود در نظر بگیرید، مانند استفاده از Boto3 API با پردازش چندگانه برای دانلود همزمان فایل‌ها، یا استفاده از کتابخانه‌های شخص ثالث به عنوان WebDataset یا s5cmd برای دانلود سریع‌تر از Amazon S3. . برای اطلاعات بیشتر مراجعه کنید موازی کردن بارهای کاری S3 با s5cmd. توجه داشته باشید که چنین روش هایی ممکن است هزینه هایی را در آمازون S3 ایجاد کنند انتقال اطلاعات.

مشاغل پردازش نیز پشتیبانی می کنند حالت لوله. با این روش، SageMaker داده‌های ورودی را از منبع مستقیماً به ظرف پردازش شما بدون استفاده از حجم ذخیره‌سازی ML به لوله‌های نام‌گذاری شده استریم می‌کند، در نتیجه زمان دانلود داده و حجم دیسک کوچک‌تر را حذف می‌کند. با این حال، این نیاز به یک مدل برنامه‌نویسی پیچیده‌تر از خواندن ساده از فایل‌های روی دیسک دارد.

همانطور که قبلا ذکر شد، SageMaker Processing همچنین از Athena و Amazon Redshift به عنوان منابع داده پشتیبانی می کند. هنگام تنظیم یک کار پردازش با این منابع، SageMaker به طور خودکار داده ها را در Amazon S3 کپی می کند و نمونه پردازش داده ها را از مکان Amazon S3 واکشی می کند. با این حال، هنگامی که کار به پایان رسید، هیچ فرآیند پاکسازی مدیریتی وجود ندارد و داده های کپی شده همچنان در Amazon S3 باقی می مانند و ممکن است هزینه های ذخیره سازی ناخواسته ای را متحمل شوند. بنابراین، هنگام استفاده از منابع داده Athena و Amazon Redshift، مطمئن شوید که یک روش پاکسازی را اجرا کنید، مانند یک تابع Lambda که طبق برنامه اجرا می شود یا در یک لامبدا استپ به عنوان بخشی از خط لوله SageMaker.

مانند دانلود، آپلود مصنوعات پردازشی نیز می تواند فرصتی برای بهینه سازی باشد. هنگامی که خروجی یک کار پردازش با استفاده از پیکربندی می شود ProcessingS3Output پارامتر، شما می توانید مشخص کنید که کدام S3UploadMode برای استفاده. S3UploadMode مقدار پیش فرض پارامتر است EndOfJob، که باعث می شود SageMaker پس از اتمام کار نتایج را آپلود کند. با این حال، اگر کار پردازش شما چندین فایل تولید می کند، می توانید تنظیم کنید S3UploadMode به Continuous، در نتیجه آپلود مصنوعات را همزمان با ادامه پردازش فعال می کند و زمان اجرای کار را کاهش می دهد.

نمونه های کار پردازش با اندازه مناسب

انتخاب نوع نمونه و اندازه مناسب عامل اصلی در بهینه‌سازی هزینه کارهای SageMaker Processing است. می‌توانید با مهاجرت به نسخه‌ای دیگر در همان خانواده نمونه یا با مهاجرت به خانواده نمونه دیگری، یک نمونه را اندازه درست کنید. هنگام مهاجرت به یک خانواده نمونه، فقط باید CPU/GPU و حافظه را در نظر بگیرید. برای اطلاعات بیشتر و راهنمایی کلی در مورد انتخاب منابع پردازش مناسب به ادامه مطلب مراجعه کنید از منابع محاسباتی کارآمد در Amazon SageMaker اطمینان حاصل کنید.

برای تنظیم دقیق انتخاب نمونه، با تجزیه و تحلیل معیارهای کار پردازش در CloudWatch شروع می کنیم. برای اطلاعات بیشتر مراجعه کنید Amazon SageMaker را با Amazon CloudWatch مانیتور کنید.

CloudWatch داده‌های خام را از SageMaker جمع‌آوری می‌کند و آن‌ها را به معیارهای خوانا و تقریباً هم‌زمان پردازش می‌کند. اگرچه این آمار به مدت 15 ماه نگهداری می شود، کنسول CloudWatch جستجو را به معیارهایی که در 2 هفته گذشته به روز شده اند محدود می کند (این تضمین می کند که فقط مشاغل فعلی نشان داده شوند). معیارهای مشاغل پردازش را می توان در فضای نام /aws/sagemaker/ProcessingJobs یافت و معیارهای جمع آوری شده عبارتند از CPUUtilization, MemoryUtilization, GPUUtilization, GPUMemoryUtilizationو DiskUtilization.

اسکرین شات زیر نمونه ای از کار پردازش را در CloudWatch نشان می دهد که قبلا دیدیم.

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 3: Processing and Data Wrangler jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

در این مثال، مقادیر متوسط ​​CPU و حافظه را می بینیم (که پیش فرض در CloudWatch است): میانگین استفاده از CPU 0.04٪، حافظه 1.84٪، و استفاده از دیسک 13.7٪ است. به منظور اندازه مناسب، همیشه حداکثر استفاده از CPU و حافظه را در نظر بگیرید (در این مثال، حداکثر استفاده از CPU در 98 دقیقه اول 3٪ بود). به عنوان یک قاعده کلی، اگر حداکثر استفاده از CPU و حافظه شما به طور مداوم کمتر از 40٪ باشد، می توانید با خیال راحت دستگاه را به نصف ببرید. برای مثال، اگر از یک نمونه ml.c5.4xlarge استفاده می‌کردید، می‌توانید به ml.c5.2xlarge بروید که می‌تواند هزینه شما را تا 50% کاهش دهد.

مشاغل Data Rangler

Data Wrangler یکی از ویژگی های آن است Amazon SageMaker Studio که راه حلی قابل تکرار و مقیاس پذیر برای کاوش و پردازش داده ها ارائه می دهد. شما از رابط Data Wrangler برای وارد کردن، تجزیه و تحلیل، تبدیل و برجسته کردن داده های خود به صورت تعاملی استفاده می کنید. این مراحل در یک دستور (فایل جریان .) ثبت می شوند که می توانید از آن در کار Data Wrangler استفاده کنید. این به شما کمک می کند تا همان تبدیل داده ها را مجدداً روی داده های خود اعمال کنید و همچنین در یک کار پردازش دسته ای داده توزیع شده، چه به عنوان بخشی از خط لوله ML یا به طور مستقل، مقیاس بندی کنید.

برای راهنمایی در مورد بهینه سازی برنامه Data Wrangler در استودیو، به قسمت 2 این مجموعه مراجعه کنید.

در این بخش، ما بر روی بهینه سازی مشاغل Data Wrangler تمرکز می کنیم.

Data Wrangler استفاده می کند مشاغل پردازش SageMaker Spark با یک محفظه مدیریت شده توسط Data Wrangler. این کانتینر دستورالعمل های فایل .flow را در کار اجرا می کند. مانند هر کار پردازشی، Data Wrangler برای نمونه‌هایی که انتخاب می‌کنید، هزینه‌ای از شما دریافت می‌کند، بر اساس مدت زمان استفاده و ذخیره‌سازی ارائه شده که به آن نمونه متصل است.

در Cost Explorer، می‌توانید با اعمال فیلتر بر روی نوع استفاده، هزینه‌های داده‌های Wrangler را فیلتر کنید. نام این انواع کاربرد عبارتند از:

  • REGION-processing_DW:instanceType (مثلا، USE1-processing_DW:ml.m5.large)
  • REGION-processing_DW:VolumeUsage.gp2 (مثلا، USE1-processing_DW:VolumeUsage.gp2)

برای مشاهده هزینه Data Wrangler خود در Cost Explorer، سرویس را برای استفاده از SageMaker فیلتر کنید نوع استفاده، انتخاب processing_DW پیشوند را وارد کرده و لیست موجود در منو را انتخاب کنید. این به شما هزینه های مربوط به استفاده از نمونه (ساعت) و حجم ذخیره سازی (GB) را نشان می دهد. (اگر می خواهید هزینه های Studio Data Wrangler را ببینید، می توانید نوع استفاده را بر اساس فیلتر کنید Studio_DW پیشوند.)

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 3: Processing and Data Wrangler jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

اندازه مناسب و زمان‌بندی نمونه‌های کار Data Wrangler

در حال حاضر، Data Wrangler فقط نمونه‌های m5 را با اندازه‌های نمونه زیر پشتیبانی می‌کند: ml.m5.4xlarge، ml.m5.12xlarge و ml.m5.24xlarge. می‌توانید از ویژگی شغلی توزیع‌شده برای تنظیم دقیق هزینه کار خود استفاده کنید. به عنوان مثال، فرض کنید باید مجموعه داده ای را پردازش کنید که به 350 گیگابایت حافظه RAM نیاز دارد. 4xlarge (128 گیگابایت) و 12xlarge (256 گیگابایت) ممکن است قادر به پردازش نباشند و شما را به استفاده از نمونه m5.24xlarge (768 گیگابایت) سوق دهند. با این حال، می توانید از دو نمونه m5.12xlarge (2 * 256 GiB = 512 GiB) استفاده کنید و هزینه را تا 40٪ یا سه نمونه m5.4xlarge (3 * 128 GiB = 384 GiB) کاهش دهید و 50٪ از m5.24xlarge صرفه جویی کنید. هزینه نمونه باید توجه داشته باشید که اینها برآورد هستند و پردازش توزیع شده ممکن است مقداری سربار ایجاد کند که بر زمان اجرا کلی تأثیر بگذارد.

هنگام تغییر نوع نمونه، مطمئن شوید که آن را به‌روزرسانی کرده‌اید پیکربندی جرقه بر این اساس. برای مثال، اگر یک کار نمونه اولیه ml.m5.4xlarge دارید که با ویژگی ها پیکربندی شده است spark.driver.memory روی 2048 تنظیم کنید و spark.executor.memory روی 55742 تنظیم کنید، و بعداً به ml.m5.12xlarge تغییر دهید، این مقادیر پیکربندی باید افزایش یابد، در غیر این صورت آنها گلوگاه در کار پردازش خواهند بود. می توانید این متغیرها را در رابط کاربری گرافیکی Data Wrangler یا در یک فایل پیکربندی که به مسیر پیکربندی ضمیمه شده است به روز کنید (نمونه های زیر را ببینید).

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 3: Processing and Data Wrangler jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 3: Processing and Data Wrangler jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

یکی دیگر از ویژگی های قانع کننده در Data Wrangler توانایی آن است یک کار برنامه ریزی شده تنظیم کنید. اگر به صورت دوره‌ای داده‌ها را پردازش می‌کنید، می‌توانید برنامه‌ای برای اجرای خودکار کار پردازش ایجاد کنید. برای مثال، می‌توانید برنامه‌ای ایجاد کنید که یک کار پردازشی را به‌طور خودکار هنگام دریافت داده‌های جدید اجرا کند (برای مثال، نگاه کنید به صادرات به آمازون S3 or صادرات به فروشگاه ویژگی آمازون SageMaker). با این حال، باید توجه داشته باشید که هنگام ایجاد یک زمان بندی، Data Wrangler یک آن را ایجاد می کند eventRule در EventBridge. این بدان معناست که برای قوانین رویدادی که ایجاد می‌کنید (و همچنین نمونه‌هایی که برای اجرای کار پردازش استفاده می‌شوند) هزینه دریافت می‌کنید. برای اطلاعات بیشتر ببین قیمت گذاری Amazon EventBridge.

نتیجه

در این پست، ما راهنمایی هایی در مورد تجزیه و تحلیل هزینه و بهترین روش ها در هنگام پیش پردازش ارائه کردیم

داده ها با استفاده از کارهای SageMaker Processing و Data Wrangler. مانند پیش پردازش، گزینه ها و تنظیمات پیکربندی زیادی در ساخت، آموزش و اجرای مدل های ML وجود دارد که ممکن است منجر به هزینه های غیر ضروری شود. بنابراین، از آنجایی که یادگیری ماشین خود را به عنوان یک ابزار قدرتمند در سراسر صنایع تثبیت می کند، حجم کاری ML باید مقرون به صرفه بماند.

SageMaker مجموعه ای از ویژگی های گسترده و عمیق را برای تسهیل هر مرحله در خط لوله ML ارائه می دهد.

این استحکام همچنین فرصت های بهینه سازی مداوم هزینه را بدون به خطر انداختن عملکرد یا چابکی فراهم می کند.


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

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 3: Processing and Data Wrangler jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.دیپلی راجال یک متخصص ارشد AI/ML در AWS است. او با مشتریان سازمانی کار می کند و راهنمایی های فنی با بهترین شیوه ها برای استقرار و حفظ راه حل های AI/ML در اکوسیستم AWS ارائه می کند. او با طیف وسیعی از سازمان‌ها در موارد مختلف استفاده از یادگیری عمیق شامل NLP و بینایی کامپیوتری کار کرده است. او علاقه زیادی به توانمندسازی سازمان‌ها برای استفاده از هوش مصنوعی مولد برای افزایش تجربه استفاده از آنها دارد. او در اوقات فراغت خود از فیلم، موسیقی و ادبیات لذت می برد.

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 3: Processing and Data Wrangler jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.اوری روزنبرگ مدیر فنی متخصص AI و ML برای اروپا، خاورمیانه و آفریقا است. Uri در خارج از اسرائیل کار می کند تا مشتریان سازمانی را در همه چیزهای ML برای طراحی، ساخت و کار در مقیاس توانمند کند. او در اوقات فراغت خود از دوچرخه سواری، پیاده روی و تماشای غروب آفتاب لذت می برد (حداقل یک بار در روز).

تمبر زمان:

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