برنامه نویسی

خط لوله MLOps کاملاً خودکار – قسمت 1

Summarize this content to 400 words in Persian Lang
هدفدر پست وبلاگ قبلی، ما معماری و نسخه ی نمایشی یک خط لوله انتقال داده در زمان واقعی را در فروشگاه ویژگی آمازون SageMaker معرفی کردیم. در این پست و پست بعدی، خط لوله MLOps کاملاً خودکار را ارائه خواهیم داد.

این پست اول بر دو هدف اول تمرکز خواهد کرد.کل کد منبع نسخه آزمایشی در مخزن پروژه در GitHub در دسترس عموم است.

مدلاز آنجایی که خط لوله جذب در معیارهای تراکنش بلاک چین تقریباً بلادرنگ در فروشگاه ویژگی آمازون SageMaker جمع می‌شود، ما تصمیم گرفتیم میانگین کارمزد تراکنش را پیش‌بینی کنیم. به منظور آموزش یک مدل پیش بینی، تصمیم گرفتیم از الگوریتم پیش بینی آمازون DeepAR استفاده کنیم. این الگوریتم برای سری‌های زمانی چند بعدی (مثلاً مصرف انرژی چند خانوار) ​​مناسب‌تر است. با این حال، در مورد ما یک سری زمانی تک بعدی (متوسط ​​کارمزد تراکنش) داریم (یک جریان از تراکنش های بلاک چین). اما طبق مستندات AWS، DeepAR همچنان می‌تواند برای سری‌های زمانی منفرد استفاده شود، و بر اساس آزمایش سریعی که ما انجام دادیم، این مدل بهترین عملکرد را داشت. مهمتر از آن، هدف اصلی این نسخه ی نمایشی – نه – آموزش دقیق ترین مدل است. ما فقط به یک مدل نیاز داریم تا چرخه عمر MLOps کاملاً خودکار را آزمایش کنیم و با استفاده از یک مدل AWS از پیش بسته بندی شده، خط لوله و توسعه نسخه ی نمایشی ما را بسیار ساده کرد.این مدل برای پیش‌بینی 30 میانگین کارمزد تراکنش بعدی آموزش داده شده است. همانطور که داده‌ها را در دقیقه جمع‌آوری می‌کنیم، میانگین کارمزد تراکنش در بلاک چین را 30 دقیقه در آینده پیش‌بینی می‌کند.برای ارزیابی دقت مدل، این نسخه آزمایشی از متریک میانگین از دست دادن چندک استفاده می‌کند.

معماربرای دیدن معماری خط لوله انتقال داده در زمان واقعی، لطفاً به پست وبلاگ قبلی در اینجا مراجعه کنید. این معماری خط لوله انتقال داده را انتزاع می کند تا بر معماری MLOps برای آموزش و کارکرد مدل تمرکز کند.

این معماری بر اساس پروژه SageMaker ارائه شده توسط AWS برای MLOps (تهیه شده از طریق کاتالوگ خدمات AWS) است که ما با پروژه خود سازگار کردیم. پروژه SageMaker موارد زیر را ارائه می دهد:

یک مخزن AWS CodeCommit و خط لوله AWS CodePipepline برای

ساختمان نمونه
استقرار مدل
نظارت بر مدل

یک سطل آمازون S3 برای ذخیره تمام مصنوعات تولید شده در طول چرخه حیات MLOps.

مخزن و خط لوله “Model Build” یک خط لوله SageMaker را برای آموزش مدل پیش بینی مستقر می کند. فاز ساخت آن خط لوله همچنین پارامترهای SSM را ایجاد می کند (اگر وجود نداشته باشد) که ابرپارامترها را برای آموزش مدل و ارزیابی دقت مدل نگه می دارد.
تأیید دستی یک مدل آموزش دیده به طور خودکار خط لوله “مدل استقرار” را راه اندازی می کند.
خط لوله “Model Deploy” در محیط مرحله بندی (و بعداً در محیط تولید در صورت تایید) مدل پشت نقطه پایانی API Amazon SageMaker مستقر می شود.
هنگامی که نقطه پایانی در خدمت است، این به طور خودکار استقرار خط لوله “نظارت مدل” را برای نظارت بر مدل جدید آغاز می کند.
در یک برنامه ساعتی، خط لوله SageMaker دیگری برای مقایسه نتایج پیش‌بینی مدل با آخرین داده‌ها فعال می‌شود.
اگر دقت پیش‌بینی مدل زیر آستانه قابل قبول باشد، خط لوله «مدل ساخت» به‌طور خودکار دوباره راه‌اندازی می‌شود تا مدل جدیدی بر اساس آخرین داده‌ها آموزش داده شود.

نیمه دوم این معماری در ادامه پست وبلاگ توضیح داده خواهد شد.

ساخت مدل با خط لوله SAGEMAKERاین خط لوله با نوع خط لوله CodePipeline که برای استقرار زیرساخت ها و برنامه ها استفاده می شود متفاوت است. این خط لوله ای است که به انجام عملیات یادگیری ماشینی مانند آموزش یک مدل اختصاص داده شده است.

پروژه SageMaker با یک کد خط لوله داخلی SageMaker ارائه می شود که ما مجبور بودیم برای مطابقت با مورد استفاده خود آن را اصلاح کنیم. خط لوله ما شامل مراحل زیر است:

داده ها را از فروشگاه ویژگی SageMaker بخوانید، آخرین 30 نقطه داده را به عنوان مجموعه داده آزمایشی استخراج کنید تا مدل را ارزیابی کنید و داده ها را برای الگوریتم DeepAR قالب بندی کنید.
مدل را آموزش دهید.
مدل آموزش دیده را ایجاد کنید.
یک پیش بینی دسته ای از 30 نقطه داده بعدی را بر اساس داده های آموزشی انجام دهید.
دقت پیش‌بینی را با محاسبه میانگین تلفات چندک مدل بین نقاط داده پیش‌بینی و آزمایش ارزیابی کنید.
دقت مدل را در مقایسه با آستانه ذخیره شده در پارامتر SSM (استقرار شده توسط خط لوله “Model Build”) بررسی کنید.
اگر دقت آن از آستانه عبور کرد، مدل آموزش دیده را ثبت کنید.

استقرار مدلهنگامی که مدل در SageMaker ثبت شد، باید به صورت دستی تأیید شود تا ابتدا در محیط مرحله‌بندی مستقر شود. تأیید مدل به طور خودکار خط لوله «استقرار مدل» را راه اندازی می کند. این خط لوله 3 عمل اصلی را انجام می دهد.

همانطور که مدل تایید شده است، ما این دقت مدل جدید را به عنوان آستانه مدل جدید در نظر می گیریم – اگر بهتر باشد (برای متریک ما کمتر است) از نمونه موجود – و پارامتر SSM را به روز می کنیم. ممکن است نخواهید این کار را برای مورد استفاده خود انجام دهید، زیرا ممکن است معیارهای تجاری/قانونی ثابتی داشته باشید که باید مطابقت داشته باشید. اما برای این نسخه ی نمایشی، ما تصمیم گرفتیم که دقت مدل را با بازآموزی مدل های جدید به روز کنیم، امیدواریم با گذشت زمان، مدل های دقیق تر بسازیم.
اولین مرحله AWS CodeDeploy مدل جدید را در پشت نقطه پایانی Amazon SageMaker مستقر می کند که سپس می تواند برای پیش بینی 30 نقطه داده در آینده استفاده شود.
هنگامی که مدل در پشت نقطه پایانی مستقر شد، خط لوله قبل از استقرار مدل جدید در تولید، یک مرحله تأیید دستی دارد. در صورت تایید، مرحله دوم AWS CodeDeploy مدل جدید را در پشت نقطه پایانی دوم Amazon SageMaker برای تولید مستقر می کند.

چالش هااستفاده از پروژه SageMaker ارائه شده از طریق کاتالوگ خدمات AWS، کمک قابل توجهی برای ساخت سریع چارچوب کلی برای خط لوله MLOps کاملاً خودکار ما بود. با این حال، با یک محدودیت همراه است: خطوط لوله ساخت، استقرار و نظارت بر مدل توسط آن محصول کاتالوگ خدمات AWS ثابت شده است و ممکن است دقیقاً مطابق با نیاز شما نباشد. به عنوان مثال، در این نسخه نمایشی، به منظور تنظیم و به روز رسانی آستانه دقت مدل ذخیره شده در پارامترهای SSM، از مرحله CodeBuild خطوط لوله مختلف برای به روز رسانی آن آستانه (فاز ساخت خط لوله “Model Deploy”) استفاده می کنیم یا آن را برای ایجاد معیارهای آلارم این لزوما بهترین راه و مکان برای انجام آن نیست، اما بهترین راه حلی است که با توجه به آن چارچوب ثابت پیدا کردیم.

مانند هر چارچوب داخلی، می‌توانید با بهره‌مندی از راه‌حل‌های از پیش ساخته شده در زمان صرفه‌جویی کنید و سریع‌تر حرکت کنید، اما انعطاف‌پذیری خود را از دست می‌دهید.

هدف
در پست وبلاگ قبلی، ما معماری و نسخه ی نمایشی یک خط لوله انتقال داده در زمان واقعی را در فروشگاه ویژگی آمازون SageMaker معرفی کردیم. در این پست و پست بعدی، خط لوله MLOps کاملاً خودکار را ارائه خواهیم داد.

توضیحات تصویر

این پست اول بر دو هدف اول تمرکز خواهد کرد.
کل کد منبع نسخه آزمایشی در مخزن پروژه در GitHub در دسترس عموم است.

مدل
از آنجایی که خط لوله جذب در معیارهای تراکنش بلاک چین تقریباً بلادرنگ در فروشگاه ویژگی آمازون SageMaker جمع می‌شود، ما تصمیم گرفتیم میانگین کارمزد تراکنش را پیش‌بینی کنیم.
به منظور آموزش یک مدل پیش بینی، تصمیم گرفتیم از الگوریتم پیش بینی آمازون DeepAR استفاده کنیم. این الگوریتم برای سری‌های زمانی چند بعدی (مثلاً مصرف انرژی چند خانوار) ​​مناسب‌تر است. با این حال، در مورد ما یک سری زمانی تک بعدی (متوسط ​​کارمزد تراکنش) داریم (یک جریان از تراکنش های بلاک چین). اما طبق مستندات AWS، DeepAR همچنان می‌تواند برای سری‌های زمانی منفرد استفاده شود، و بر اساس آزمایش سریعی که ما انجام دادیم، این مدل بهترین عملکرد را داشت.
مهمتر از آن، هدف اصلی این نسخه ی نمایشی – نه – آموزش دقیق ترین مدل است. ما فقط به یک مدل نیاز داریم تا چرخه عمر MLOps کاملاً خودکار را آزمایش کنیم و با استفاده از یک مدل AWS از پیش بسته بندی شده، خط لوله و توسعه نسخه ی نمایشی ما را بسیار ساده کرد.
این مدل برای پیش‌بینی 30 میانگین کارمزد تراکنش بعدی آموزش داده شده است. همانطور که داده‌ها را در دقیقه جمع‌آوری می‌کنیم، میانگین کارمزد تراکنش در بلاک چین را 30 دقیقه در آینده پیش‌بینی می‌کند.
برای ارزیابی دقت مدل، این نسخه آزمایشی از متریک میانگین از دست دادن چندک استفاده می‌کند.

معمار
برای دیدن معماری خط لوله انتقال داده در زمان واقعی، لطفاً به پست وبلاگ قبلی در اینجا مراجعه کنید. این معماری خط لوله انتقال داده را انتزاع می کند تا بر معماری MLOps برای آموزش و کارکرد مدل تمرکز کند.

این معماری بر اساس پروژه SageMaker ارائه شده توسط AWS برای MLOps (تهیه شده از طریق کاتالوگ خدمات AWS) است که ما با پروژه خود سازگار کردیم. پروژه SageMaker موارد زیر را ارائه می دهد:

  1. یک مخزن AWS CodeCommit و خط لوله AWS CodePipepline برای
    • ساختمان نمونه
    • استقرار مدل
    • نظارت بر مدل
  2. یک سطل آمازون S3 برای ذخیره تمام مصنوعات تولید شده در طول چرخه حیات MLOps.

توضیحات تصویر

  1. مخزن و خط لوله “Model Build” یک خط لوله SageMaker را برای آموزش مدل پیش بینی مستقر می کند. فاز ساخت آن خط لوله همچنین پارامترهای SSM را ایجاد می کند (اگر وجود نداشته باشد) که ابرپارامترها را برای آموزش مدل و ارزیابی دقت مدل نگه می دارد.
  2. تأیید دستی یک مدل آموزش دیده به طور خودکار خط لوله “مدل استقرار” را راه اندازی می کند.
  3. خط لوله “Model Deploy” در محیط مرحله بندی (و بعداً در محیط تولید در صورت تایید) مدل پشت نقطه پایانی API Amazon SageMaker مستقر می شود.
  4. هنگامی که نقطه پایانی در خدمت است، این به طور خودکار استقرار خط لوله “نظارت مدل” را برای نظارت بر مدل جدید آغاز می کند.
  5. در یک برنامه ساعتی، خط لوله SageMaker دیگری برای مقایسه نتایج پیش‌بینی مدل با آخرین داده‌ها فعال می‌شود.
  6. اگر دقت پیش‌بینی مدل زیر آستانه قابل قبول باشد، خط لوله «مدل ساخت» به‌طور خودکار دوباره راه‌اندازی می‌شود تا مدل جدیدی بر اساس آخرین داده‌ها آموزش داده شود.

نیمه دوم این معماری در ادامه پست وبلاگ توضیح داده خواهد شد.

ساخت مدل با خط لوله SAGEMAKER
این خط لوله با نوع خط لوله CodePipeline که برای استقرار زیرساخت ها و برنامه ها استفاده می شود متفاوت است. این خط لوله ای است که به انجام عملیات یادگیری ماشینی مانند آموزش یک مدل اختصاص داده شده است.

توضیحات تصویر

پروژه SageMaker با یک کد خط لوله داخلی SageMaker ارائه می شود که ما مجبور بودیم برای مطابقت با مورد استفاده خود آن را اصلاح کنیم. خط لوله ما شامل مراحل زیر است:

  1. داده ها را از فروشگاه ویژگی SageMaker بخوانید، آخرین 30 نقطه داده را به عنوان مجموعه داده آزمایشی استخراج کنید تا مدل را ارزیابی کنید و داده ها را برای الگوریتم DeepAR قالب بندی کنید.
  2. مدل را آموزش دهید.
  3. مدل آموزش دیده را ایجاد کنید.
  4. یک پیش بینی دسته ای از 30 نقطه داده بعدی را بر اساس داده های آموزشی انجام دهید.
  5. دقت پیش‌بینی را با محاسبه میانگین تلفات چندک مدل بین نقاط داده پیش‌بینی و آزمایش ارزیابی کنید.
  6. دقت مدل را در مقایسه با آستانه ذخیره شده در پارامتر SSM (استقرار شده توسط خط لوله “Model Build”) بررسی کنید.
  7. اگر دقت آن از آستانه عبور کرد، مدل آموزش دیده را ثبت کنید.

استقرار مدل
هنگامی که مدل در SageMaker ثبت شد، باید به صورت دستی تأیید شود تا ابتدا در محیط مرحله‌بندی مستقر شود. تأیید مدل به طور خودکار خط لوله «استقرار مدل» را راه اندازی می کند. این خط لوله 3 عمل اصلی را انجام می دهد.

  1. همانطور که مدل تایید شده است، ما این دقت مدل جدید را به عنوان آستانه مدل جدید در نظر می گیریم – اگر بهتر باشد (برای متریک ما کمتر است) از نمونه موجود – و پارامتر SSM را به روز می کنیم. ممکن است نخواهید این کار را برای مورد استفاده خود انجام دهید، زیرا ممکن است معیارهای تجاری/قانونی ثابتی داشته باشید که باید مطابقت داشته باشید. اما برای این نسخه ی نمایشی، ما تصمیم گرفتیم که دقت مدل را با بازآموزی مدل های جدید به روز کنیم، امیدواریم با گذشت زمان، مدل های دقیق تر بسازیم.
  2. اولین مرحله AWS CodeDeploy مدل جدید را در پشت نقطه پایانی Amazon SageMaker مستقر می کند که سپس می تواند برای پیش بینی 30 نقطه داده در آینده استفاده شود.
  3. هنگامی که مدل در پشت نقطه پایانی مستقر شد، خط لوله قبل از استقرار مدل جدید در تولید، یک مرحله تأیید دستی دارد. در صورت تایید، مرحله دوم AWS CodeDeploy مدل جدید را در پشت نقطه پایانی دوم Amazon SageMaker برای تولید مستقر می کند.

چالش ها
استفاده از پروژه SageMaker ارائه شده از طریق کاتالوگ خدمات AWS، کمک قابل توجهی برای ساخت سریع چارچوب کلی برای خط لوله MLOps کاملاً خودکار ما بود. با این حال، با یک محدودیت همراه است: خطوط لوله ساخت، استقرار و نظارت بر مدل توسط آن محصول کاتالوگ خدمات AWS ثابت شده است و ممکن است دقیقاً مطابق با نیاز شما نباشد. به عنوان مثال، در این نسخه نمایشی، به منظور تنظیم و به روز رسانی آستانه دقت مدل ذخیره شده در پارامترهای SSM، از مرحله CodeBuild خطوط لوله مختلف برای به روز رسانی آن آستانه (فاز ساخت خط لوله “Model Deploy”) استفاده می کنیم یا آن را برای ایجاد معیارهای آلارم این لزوما بهترین راه و مکان برای انجام آن نیست، اما بهترین راه حلی است که با توجه به آن چارچوب ثابت پیدا کردیم.

مانند هر چارچوب داخلی، می‌توانید با بهره‌مندی از راه‌حل‌های از پیش ساخته شده در زمان صرفه‌جویی کنید و سریع‌تر حرکت کنید، اما انعطاف‌پذیری خود را از دست می‌دهید.

نوشته های مشابه

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا