ایجاد یک پلت فرم عملیات یادگیری ماشین (MLOps) در چشم انداز به سرعت در حال تکامل هوش مصنوعی (AI) و یادگیری ماشین (ML) برای سازمان ها برای پر کردن یکپارچه شکاف بین آزمایش علم داده و استقرار در حالی که الزامات مربوط به عملکرد مدل را برآورده می کند، ضروری است. امنیت و انطباق
به منظور تحقق الزامات مقرراتی و انطباق، الزامات کلیدی هنگام طراحی چنین پلت فرمی عبارتند از:
- انحراف داده آدرس
- نظارت بر عملکرد مدل
- تسهیل آموزش مجدد مدل خودکار
- یک فرآیند برای تایید مدل ارائه کنید
- مدل ها را در یک محیط امن نگه دارید
در این پست، نحوه ایجاد یک چارچوب MLOps برای رفع این نیازها در حین استفاده از ترکیبی از خدمات AWS و مجموعه ابزارهای شخص ثالث را نشان می دهیم. راه حل مستلزم یک راه اندازی چند محیطی با بازآموزی خودکار مدل، استنتاج دسته ای و نظارت با مانیتور مدل آمازون SageMaker، نسخه سازی مدل با رجیستری مدل SageMakerو یک خط لوله CI/CD برای تسهیل ترویج کد ML و خطوط لوله در سراسر محیط ها با استفاده از آمازون SageMaker, پل رویداد آمازون, سرویس اطلاع رسانی ساده آمازون (Amazon S3) HashiCorp Terraform, GitHubو جنکینز CI/CD. ما مدلی برای پیش بینی شدت (خوش خیم یا بدخیم) ضایعه توده ای ماموگرافی آموزش داده شده با الگوریتم XGBoost با استفاده از در دسترس عموم توده ماموگرافی UCI مجموعه داده و استقرار آن با استفاده از چارچوب MLOps. دستورالعمل کامل با کد در دسترس است مخزن GitHub.
بررسی اجمالی راه حل
نمودار معماری زیر نمای کلی چارچوب MLOps را با اجزای کلیدی زیر نشان می دهد:
- استراتژی چند حساب - دو محیط مختلف (dev و prod) در دو حساب مختلف AWS با پیروی از بهترین روشهای AWS Well-Architected راهاندازی میشوند و حساب سوم در رجیستری مدل مرکزی راهاندازی میشود:
- محیط توسعه دهنده - جایی که یک دامنه Amazon SageMaker Studio برای اجازه دادن به توسعه مدل، آموزش مدل، و آزمایش خطوط لوله ML (قطار و استنتاج)، قبل از اینکه یک مدل آماده ارتقاء به محیطهای بالاتر باشد، تنظیم شده است.
- محیط تولید - جایی که خطوط لوله ML از توسعه دهنده به عنوان اولین گام ارتقا یافته و در طول زمان برنامه ریزی و نظارت می شود.
- رجیستری مدل مرکزی - رجیستری مدل آمازون SageMaker در یک حساب جداگانه AWS برای ردیابی نسخههای مدل تولید شده در محیطهای توسعهدهنده و پرود تنظیم شده است.
- CI/CD و کنترل منبع - استقرار خطوط لوله ML در سراسر محیط ها از طریق CI/CD تنظیم شده با Jenkins، همراه با کنترل نسخه که از طریق GitHub انجام می شود، انجام می شود. تغییرات کد ادغام شده با شاخه git محیط مربوطه، یک گردش کار CI/CD را برای ایجاد تغییرات مناسب در محیط هدف داده شده راه اندازی می کند.
- پیش بینی های دسته ای با مانیتورینگ مدل - خط لوله استنتاج ساخته شده با خطوط لوله آمازون SageMaker برای ایجاد پیشبینیها همراه با پایش مدل با استفاده از SageMaker Model Monitor برای تشخیص انحراف دادهها، بر اساس برنامهریزیشده اجرا میشود.
- مکانیزم بازآموزی خودکار - خط لوله آموزشی ساخته شده با SageMaker Pipelines هر زمان که یک رانش داده در خط لوله استنتاج شناسایی شود فعال می شود. پس از آموزش، مدل در رجیستری مدل مرکزی ثبت می شود تا توسط تایید کننده مدل تایید شود. هنگامی که تایید شد، از نسخه مدل به روز شده برای ایجاد پیش بینی از طریق خط لوله استنتاج استفاده می شود.
- زیرساخت به عنوان کد - زیرساخت به عنوان کد (IaC)، ایجاد شده با استفاده از HashiCorp Terraform، از برنامه ریزی خط لوله استنتاج با EventBridge پشتیبانی می کند، راه اندازی خط لوله قطار بر اساس قانون EventBridge و ارسال نوتیفیکیشن با استفاده از سرویس اطلاع رسانی ساده آمازون (Amazon SNS) موضوعات.
گردش کار MLOps شامل مراحل زیر است:
- به دامنه SageMaker Studio در حساب توسعه دسترسی پیدا کنید، مخزن GitHub را شبیه سازی کنید، با استفاده از مدل نمونه ارائه شده، فرآیند توسعه مدل را طی کنید و خطوط لوله قطار و استنتاج را ایجاد کنید.
- خط لوله قطار را در حساب توسعه اجرا کنید، که مصنوعات مدل را برای نسخه مدل آموزش دیده تولید می کند و مدل را در SageMaker Model Registry در حساب رجیستری مدل مرکزی ثبت می کند.
- مدل را در SageMaker Model Registry در حساب مرکزی رجیستری مدل تایید کنید.
- کد (خطوط قطار و استنتاج، و کد Terraform IaC را برای ایجاد زمانبندی EventBridge، قانون EventBridge و موضوع SNS) به شاخه ویژگی مخزن GitHub فشار دهید. یک درخواست کشش ایجاد کنید تا کد را در شاخه اصلی مخزن GitHub ادغام کنید.
- خط لوله Jenkins CI/CD را که با مخزن GitHub راه اندازی شده است، راه اندازی کنید. خط لوله CI/CD کد را در حساب prod مستقر می کند تا خطوط لوله قطار و استنتاج را به همراه کد Terraform ایجاد کند تا برنامه EventBridge، قانون EventBridge و موضوع SNS را ارائه کند.
- خط لوله استنتاج برنامه ریزی شده است که به صورت روزانه اجرا شود، در حالی که خط لوله قطار طوری تنظیم می شود که هر زمان که انحراف داده از خط لوله استنتاج تشخیص داده شود، اجرا شود.
- اعلانها از طریق موضوع SNS ارسال میشوند هر زمان که خط لوله یا خط لوله استنتاج خرابی داشته باشد.
پیش نیازها
برای این راه حل، شما باید پیش نیازهای زیر را داشته باشید:
- سه حساب AWS (حسابهای رجیستری توسعهدهنده، پرود و مرکزی)
- یک دامنه SageMaker Studio در هر یک از سه حساب AWS تنظیم شده است (نگاه کنید به ورود به Amazon SageMaker Studio یا ویدیو را تماشا کنید به سرعت وارد Amazon SageMaker Studio شوید برای دستورالعمل های راه اندازی)
- جنکینز (ما از Jenkins 2.401.1 استفاده می کنیم) با امتیازات مدیریتی نصب شده در AWS
- Terraform نسخه 1.5.5 یا بالاتر روی سرور جنکینز نصب شده است
برای این پست، ما در us-east-1
منطقه برای استقرار راه حل.
ارائه کلیدهای KMS در حساب های توسعه دهنده و تولیدی
اولین قدم ما ایجاد است سرویس مدیریت کلید AWS کلیدهای (AWS KMS) در حساب های توسعه دهنده و پرود.
یک کلید KMS در حساب توسعه دهنده ایجاد کنید و به حساب prod دسترسی پیدا کنید
مراحل زیر را برای ایجاد یک کلید KMS در حساب توسعه دهنده انجام دهید:
- در کنسول AWS KMS، را انتخاب کنید کلیدهای مدیریت شده توسط مشتری در صفحه ناوبری
- را انتخاب کنید کلید ایجاد کنید.
- برای نوع کلید، انتخاب کنید متقارن.
- برای استفاده از کلید، انتخاب کنید رمزگذاری و رمزگشایی.
- را انتخاب کنید بعدی.
- شماره حساب تولید را وارد کنید تا حساب تولید به کلید KMS ارائه شده در حساب توسعه دهنده دسترسی پیدا کند. این یک مرحله ضروری است زیرا اولین باری که مدل در حساب توسعه آموزش داده می شود، مصنوعات مدل قبل از اینکه در سطل S3 در حساب رجیستری مدل مرکزی نوشته شوند با کلید KMS رمزگذاری می شوند. حساب تولید به منظور رمزگشایی مصنوعات مدل و اجرای خط لوله استنتاج به کلید KMS نیاز دارد.
- را انتخاب کنید بعدی و ایجاد کلید خود را به پایان برسانید.
پس از تهیه کلید، باید در کنسول AWS KMS قابل مشاهده باشد.
یک کلید KMS در حساب prod ایجاد کنید
مراحل مشابه در بخش قبل را برای ایجاد یک کلید KMS مدیریت شده توسط مشتری در حساب prod طی کنید. میتوانید از مرحله اشتراکگذاری کلید KMS با حساب دیگری صرفنظر کنید.
یک سطل S3 مصنوعات مدل را در حساب مرکزی رجیستری مدل تنظیم کنید
یک سطل S3 به انتخاب خود با رشته ایجاد کنید sagemaker
در کنوانسیون نامگذاری به عنوان بخشی از نام سطل در حساب رجیستری مدل مرکزی، و سیاست سطل را در سطل S3 به روز کنید تا از هر دو حساب توسعه و تولید مجوز برای خواندن و نوشتن مصنوعات مدل در سطل S3 داده شود.
کد زیر خط مشی سطلی است که باید در سطل S3 به روز شود:
نقش های IAM را در حساب های AWS خود تنظیم کنید
مرحله بعدی راه اندازی است هویت AWS و مدیریت دسترسی نقشهای (IAM) در حسابهای AWS شما با مجوز برای AWS لامبدا، SageMaker و Jenkins.
نقش اجرای لامبدا
راه اندازی نقش های اجرایی لامبدا در حسابهای dev و prod، که توسط تابع Lambda اجرا میشود به عنوان بخشی از SageMaker Pipelines گام لامبدا. این مرحله از خط لوله استنتاج اجرا می شود تا آخرین مدل تایید شده را که با استفاده از آن استنتاج تولید می شود، دریافت کند. نقشهای IAM را در حسابهای توسعهدهنده و پرود با قرارداد نامگذاری ایجاد کنید arn:aws:iam::<account-id>:role/lambda-sagemaker-role
و سیاست های IAM زیر را پیوست کنید:
- سیاست 1 - یک خط مشی درون خطی با نام ایجاد کنید
cross-account-model-registry-access
، که به بسته مدل تنظیم شده در رجیستری مدل در حساب مرکزی دسترسی پیدا می کند: - سیاست 2 - ضمیمه کنید AmazonSageMakerFullAccess، که یک است خط مشی مدیریت شده AWS که دسترسی کامل به SageMaker را می دهد. همچنین دسترسی انتخابی به خدمات مرتبط، مانند مقیاس خودکار برنامه AWSآمازون اس 3، رجیستری ظروف الاستیک آمازون (Amazon ECR)، و گزارشهای آمازون CloudWatch.
- سیاست 3 - ضمیمه کنید AWSLambda_FullAccess، که یک خط مشی مدیریت شده AWS است که دسترسی کامل به Lambda، ویژگی های کنسول Lambda و سایر سرویس های مرتبط AWS را می دهد.
- سیاست 4 - از خط مشی اعتماد IAM زیر برای نقش IAM استفاده کنید:
نقش اجرای SageMaker
دامنههای SageMaker Studio که در حسابهای توسعهدهنده و پرود راهاندازی شدهاند، باید هر کدام یک نقش اجرایی مرتبط داشته باشند که میتوان آن را در تنظیمات دامنه همانطور که در تصویر زیر نشان داده شده است، در صفحه جزئیات دامنه، برگه را انتخاب کنید. این نقش برای اجرای مشاغل آموزشی، کارهای پردازشی و موارد دیگر در دامنه SageMaker Studio استفاده می شود.
سیاست های زیر را به نقش اجرای SageMaker در هر دو حساب اضافه کنید:
- سیاست 1 - یک خط مشی درون خطی با نام ایجاد کنید
cross-account-model-artifacts-s3-bucket-access
، که به سطل S3 در حساب مرکزی رجیستری مدل دسترسی پیدا می کند، که مصنوعات مدل را ذخیره می کند: - سیاست 2 - یک خط مشی درون خطی با نام ایجاد کنید
cross-account-model-registry-access
، که به بسته مدل در رجیستری مدل در حساب رجیستری مدل مرکزی دسترسی پیدا می کند: - سیاست 3 - یک خط مشی درون خطی با نام ایجاد کنید
kms-key-access-policy
، که به کلید KMS ایجاد شده در مرحله قبل دسترسی پیدا می کند. شناسه حسابی که خطمشی در آن ایجاد میشود و شناسه کلید KMS ایجاد شده در آن حساب را ارائه کنید. - سیاست 4 - ضمیمه کنید AmazonSageMakerFullAccess، که یک است خط مشی مدیریت شده AWS که دسترسی کامل به SageMaker و انتخاب دسترسی به خدمات مرتبط را اعطا می کند.
- سیاست 5 - ضمیمه کنید AWSLambda_FullAccess، که یک خط مشی مدیریت شده AWS است که دسترسی کامل به Lambda، ویژگی های کنسول Lambda و سایر سرویس های مرتبط AWS را می دهد.
- سیاست 6 - ضمیمه کنید CloudWatchEventsFullAccess، که یک خط مشی مدیریت شده AWS است که به رویدادهای CloudWatch دسترسی کامل می دهد.
- سیاست 7 - سیاست اعتماد IAM زیر را برای نقش IAM اجرای SageMaker اضافه کنید:
- خط مشی 8 (مخصوص نقش اجرای SageMaker در حساب prod) - یک خط مشی درون خطی با نام ایجاد کنید
cross-account-kms-key-access-policy
، که به کلید KMS ایجاد شده در حساب توسعه دهنده دسترسی پیدا می کند. این برای خط لوله استنتاج برای خواندن مصنوعات مدل ذخیره شده در حساب رجیستری مدل مرکزی، جایی که مصنوعات مدل با استفاده از کلید KMS از حساب توسعهدهنده رمزگذاری میشوند، زمانی که اولین نسخه مدل از حساب توسعهدهنده ایجاد میشود، لازم است.
نقش جنکینز متقابل
یک نقش IAM به نام تنظیم کنید cross-account-jenkins-role
در حساب prod، که جنکینز فرض می کند خطوط لوله ML و زیرساخت مربوطه را در حساب prod مستقر می کند.
سیاست های مدیریت شده IAM زیر را به نقش اضافه کنید:
CloudWatchFullAccess
AmazonS3FullAccess
AmazonSNSFullAccess
AmazonSageMakerFullAccess
AmazonEventBridgeFullAccess
AWSLambda_FullAccess
برای دادن مجوز به حساب AWS میزبان سرور جنکینز، رابطه اعتماد را در نقش بهروزرسانی کنید:
مجوزهای نقش IAM مرتبط با سرور جنکینز را به روز کنید
با فرض اینکه Jenkins روی AWS راهاندازی شده است، نقش IAM مرتبط با Jenkins را بهروزرسانی کنید تا خطمشیهای زیر را اضافه کنید، که به Jenkins برای استقرار منابع در حساب prod دسترسی خواهد داشت:
- سیاست 1 – خط مشی زیر را با نام ایجاد کنید
assume-production-role-policy
: - سیاست 2 - را ضمیمه کنید
CloudWatchFullAccess
سیاست IAM مدیریت شده
گروه بسته مدل را در حساب رجیستری مدل مرکزی راه اندازی کنید
از دامنه SageMaker Studio در حساب رجیستری مدل مرکزی، یک گروه بسته مدل به نام ایجاد کنید mammo-severity-model-package
با استفاده از قطعه کد زیر (که می توانید با استفاده از یک نوت بوک Jupyter اجرا کنید):
دسترسی به بسته مدل را برای نقشهای IAM در حسابهای توسعهدهنده و پرود تنظیم کنید
دسترسی به نقشهای اجرایی SageMaker ایجاد شده در حسابهای توسعه و تولید را فراهم کنید تا بتوانید نسخههای مدل را در بسته مدل ثبت کنید. mammo-severity-model-package
در رجیستری مدل مرکزی از هر دو حساب. از دامنه SageMaker Studio در حساب رجیستری مدل مرکزی، کد زیر را در یک نوت بوک Jupyter اجرا کنید:
جنکینز را راه اندازی کنید
در این بخش، جنکینز را برای ایجاد خطوط لوله ML و زیرساخت Terraform مربوطه در حساب تولیدی از طریق خط لوله Jenkins CI/CD پیکربندی میکنیم.
- در کنسول CloudWatch، یک گروه گزارش به نام ایجاد کنید
jenkins-log
در حساب تولیدی که جنکینز لاگها را از خط لوله CI/CD به آن فشار میدهد. گروه گزارش باید در همان منطقه ای ایجاد شود که سرور جنکینز در آن راه اندازی شده است. - پلاگین های زیر را نصب کنید در سرور جنکینز شما:
- با استفاده از نقش IAM بین حسابی، اعتبار AWS را در جنکینز تنظیم کنید (
cross-account-jenkins-role
) ذخیره شده در حساب تولید. - برای پیکربندی سیستم، انتخاب کنید AWS.
- اطلاعات کاربری و گروه گزارش CloudWatch را که قبلاً ایجاد کرده اید، ارائه دهید.
- اعتبارنامه GitHub را در Jenkins تنظیم کنید.
- یک پروژه جدید در جنکینز ایجاد کنید.
- نام پروژه را وارد کرده و انتخاب کنید خط لوله.
- بر سوالات عمومی تب، انتخاب کنید پروژه GitHub و وارد انشعابات شوید مخزن GitHub URL.
- انتخاب کنید این پروژه پارامتری است.
- بر اضافه کردن پارامتر منو ، انتخاب کنید پارامتر رشته.
- برای نام، وارد
prodAccount
. - برای مقدار پیش فرض، شناسه اکانت پرود را وارد کنید.
- تحت گزینه های پروژه پیشرفته، برای تعریف، انتخاب کنید اسکریپت خط لوله از SCM.
- برای SCM، انتخاب کنید رفتن.
- برای URL مخزن، وارد انشعابات شوید مخزن GitHub URL.
- برای مجوزها و اعتبارات، اطلاعات کاربری GitHub ذخیره شده در جنکینز را وارد کنید.
- وارد
main
در شعبه برای ساخت بخشی که بر اساس آن خط لوله CI/CD راه اندازی می شود. - برای مسیر اسکریپت، وارد
Jenkinsfile
. - را انتخاب کنید ذخیره.
خط لوله جنکینز باید ایجاد شده و در داشبورد شما قابل مشاهده باشد.
سطل های S3 را تهیه کنید، داده ها را جمع آوری و آماده کنید
مراحل زیر را برای تنظیم سطل ها و داده های S3 خود انجام دهید:
- یک سطل S3 به انتخاب خود با رشته ایجاد کنید
sagemaker
در قرارداد نامگذاری به عنوان بخشی از نام سطل در هر دو حساب توسعه و تولید برای ذخیره مجموعه داده ها و مدل سازی مصنوعات. - یک سطل S3 برای حفظ وضعیت Terraform در حساب تولیدی تنظیم کنید.
- در دسترس عموم را دانلود و ذخیره کنید توده ماموگرافی UCI مجموعه داده به سطل S3 که قبلاً در حساب توسعهدهنده ایجاد کردید.
- چنگال و کلون مخزن GitHub در دامنه SageMaker Studio در حساب توسعه دهنده. مخزن دارای ساختار پوشه زیر است:
- /environments – اسکریپت پیکربندی برای محیط prod
- /mlops-infra – کد برای استقرار خدمات AWS با استفاده از کد Terraform
- / خطوط لوله – کد برای اجزای خط لوله SageMaker
- جنکینزفایل - اسکریپت برای استقرار از طریق خط لوله Jenkins CI/CD
- setup.py – برای نصب ماژول های پایتون مورد نیاز و ایجاد دستور run-pipeline لازم است
- mammography-severity-modeling.ipynb – به شما امکان می دهد گردش کار ML را ایجاد و اجرا کنید
- پوشه ای به نام داده در پوشه مخزن کلون شده GitHub ایجاد کنید و یک کپی از آن را در دسترس عموم ذخیره کنید. توده ماموگرافی UCI مجموعه داده
- دفترچه یادداشت Jupyter را دنبال کنید
mammography-severity-modeling.ipynb
. - کد زیر را در نوت بوک اجرا کنید تا مجموعه داده را از قبل پردازش کنید و آن را در سطل S3 در حساب توسعه دهنده آپلود کنید:
کد مجموعه داده های زیر را ایجاد می کند:
-
- data/ mammo-train-dataset-part1.csv – برای آموزش نسخه اول مدل استفاده خواهد شد.
- data/ mammo-train-dataset-part2.csv – برای آموزش نسخه دوم مدل به همراه مجموعه داده mammo-train-dataset-part1.csv استفاده خواهد شد.
- data/mammo-batch-dataset.csv - برای تولید استنتاج استفاده خواهد شد.
- data/mammo-batch-dataset-outliers.csv - مقادیر پرت را به مجموعه داده وارد می کند تا خط لوله استنتاج را خراب کند. این ما را قادر میسازد تا الگو را برای شروع آموزش مجدد خودکار مدل آزمایش کنیم.
- مجموعه داده را آپلود کنید
mammo-train-dataset-part1.csv
زیر پیشوندmammography-severity-model/train-dataset
، و مجموعه داده ها را آپلود کنیدmammo-batch-dataset.csv
وmammo-batch-dataset-outliers.csv
به پیشوندmammography-severity-model/batch-dataset
از سطل S3 ایجاد شده در حساب توسعه دهنده: - مجموعه داده ها را آپلود کنید
mammo-train-dataset-part1.csv
وmammo-train-dataset-part2.csv
زیر پیشوندmammography-severity-model/train-dataset
در سطل S3 ایجاد شده در حساب پرود از طریق کنسول آمازون S3. - مجموعه داده ها را آپلود کنید
mammo-batch-dataset.csv
وmammo-batch-dataset-outliers.csv
به پیشوندmammography-severity-model/batch-dataset
از سطل S3 در حساب تولید.
خط لوله قطار را اجرا کنید
تحت <project-name>/pipelines/train
، می توانید اسکریپت های پایتون زیر را ببینید:
- scripts/raw_preprocess.py - با SageMaker Processing برای مهندسی ویژگی ادغام می شود
- scripts/evaluate_model.py - در این مورد به محاسبه معیارهای مدل اجازه می دهد
auc_score
- train_pipeline.py – حاوی کد خط لوله آموزش مدل است
مراحل زیر را انجام دهید:
- اسکریپت ها را در آمازون S3 آپلود کنید:
- نمونه خط لوله قطار را دریافت کنید:
- خط لوله قطار را ارسال کنید و آن را اجرا کنید:
شکل زیر اجرای موفقیت آمیز خط لوله آموزشی را نشان می دهد. مرحله نهایی در خط لوله، مدل را در حساب رجیستری مدل مرکزی ثبت می کند.
مدل را در رجیستری مدل مرکزی تأیید کنید
به حساب رجیستری مدل مرکزی وارد شوید و به رجیستری مدل SageMaker در دامنه SageMaker Studio دسترسی پیدا کنید. وضعیت نسخه مدل را به تایید شده تغییر دهید.
پس از تایید، وضعیت باید در نسخه مدل تغییر کند.
اجرای خط لوله استنتاج (اختیاری)
این مرحله لازم نیست، اما همچنان میتوانید خط لوله استنتاج را برای ایجاد پیشبینی در حساب توسعهدهنده اجرا کنید.
تحت <project-name>/pipelines/inference
، می توانید اسکریپت های پایتون زیر را ببینید:
- scripts/lambda_helper.py - آخرین نسخه مدل تایید شده را از حساب رجیستری مدل مرکزی با استفاده از یک مرحله SageMaker Pipelines Lambda می کشد
- inference_pipeline.py – حاوی کد خط لوله استنتاج مدل است
مراحل زیر را انجام دهید:
- اسکریپت را در سطل S3 آپلود کنید:
- نمونه خط لوله استنتاج را با استفاده از مجموعه داده دسته ای معمولی دریافت کنید:
- خط لوله استنتاج را ارسال کنید و آن را اجرا کنید:
شکل زیر اجرای موفقیت آمیز خط لوله استنتاج را نشان می دهد. مرحله نهایی در خط لوله، پیش بینی ها را تولید می کند و آنها را در سطل S3 ذخیره می کند. ما استفاده می کنیم MonitorBatchTransformStep برای نظارت بر ورودی ها در کار تبدیل دسته ای. اگر موارد پرت وجود داشته باشد، خط لوله استنتاج به حالت شکست خورده می رود.
خط لوله جنکینز را اجرا کنید
La environment/
پوشه موجود در مخزن GitHub حاوی اسکریپت پیکربندی برای حساب prod است. مراحل زیر را برای راه اندازی خط لوله جنکینز تکمیل کنید:
- اسکریپت پیکربندی را به روز کنید
prod.tfvars.json
بر اساس منابع ایجاد شده در مراحل قبل: - پس از به روز رسانی، کد را به مخزن گیت هاب فورکی فشار دهید و کد را در شاخه اصلی ادغام کنید.
- به رابط کاربری جنکینز بروید، انتخاب کنید ساخت با پارامترهاو خط لوله CI/CD ایجاد شده در مراحل قبل را فعال کنید.
هنگامی که ساخت کامل و موفقیت آمیز شد، می توانید به حساب prod وارد شوید و خطوط لوله قطار و استنتاج را در دامنه SageMaker Studio مشاهده کنید.
علاوه بر این، سه قانون EventBridge را در کنسول EventBridge در حساب prod مشاهده خواهید کرد:
- خط لوله استنتاج را برنامه ریزی کنید
- یک اعلان خرابی در خط لوله قطار ارسال کنید
- هنگامی که خط لوله استنتاج نمی تواند خط لوله قطار را راه اندازی کند، یک اعلان ارسال کنید
در نهایت، یک موضوع اعلان SNS را در کنسول آمازون SNS خواهید دید که اعلان ها را از طریق ایمیل ارسال می کند. ایمیلی دریافت خواهید کرد که از شما میخواهد پذیرش این ایمیلهای اعلان را تأیید کنید.
خط لوله استنتاج را با استفاده از مجموعه داده دسته ای بدون نقاط پرت آزمایش کنید
برای آزمایش اینکه آیا خط لوله استنتاج همانطور که در حساب prod انتظار می رود کار می کند یا خیر، می توانیم به حساب prod وارد شده و خط لوله استنتاج را با استفاده از مجموعه داده دسته ای بدون موارد پرت راه اندازی کنیم.
خط لوله را از طریق کنسول SageMaker Pipelines در دامنه SageMaker Studio حساب prod اجرا کنید، جایی که transform_input
S3 URI مجموعه داده بدون نقاط پرت خواهد بود (s3://<s3-bucket-in-prod-account>/mammography-severity-model/data/mammo-batch-dataset.csv
).
خط لوله استنتاج موفق می شود و پیش بینی ها را به سطل S3 می نویسد.
خط لوله استنتاج را با استفاده از مجموعه داده های دسته ای با مقادیر پرت آزمایش کنید
میتوانید خط لوله استنتاج را با استفاده از مجموعه داده دستهای با مقادیر پرت اجرا کنید تا بررسی کنید که آیا مکانیسم بازآموزی خودکار همانطور که انتظار میرود کار میکند یا خیر.
خط لوله را از طریق کنسول SageMaker Pipelines در دامنه SageMaker Studio حساب prod اجرا کنید، جایی که transform_input
S3 URI مجموعه داده با مقادیر پرت خواهد بود (s3://<s3-bucket-in-prod-account>/mammography-severity-model/data/mammo-batch-dataset-outliers.csv
).
خط لوله استنتاج همانطور که انتظار می رود از کار می افتد، که قانون EventBridge را راه اندازی می کند، که به نوبه خود خط لوله قطار را راه اندازی می کند.
پس از چند لحظه، باید اجرای جدیدی از خط لوله قطار را در کنسول SageMaker Pipelines مشاهده کنید که دو مجموعه داده قطار متفاوت را انتخاب می کند (mammo-train-dataset-part1.csv
و mammo-train-dataset-part2.csv
) برای آموزش مجدد مدل در سطل S3 آپلود شد.
همچنین اعلانی را مشاهده خواهید کرد که به ایمیل مشترک در موضوع SNS ارسال شده است.
برای استفاده از نسخه مدل به روز شده، وارد حساب رجیستری مدل مرکزی شوید و نسخه مدل را تأیید کنید، که در اجرای بعدی خط لوله استنتاج که از طریق قانون برنامه ریزی شده EventBridge راه اندازی می شود، انتخاب می شود.
اگرچه خطوط لوله قطار و استنتاج از URL مجموعه داده ایستا استفاده می کنند، می توانید URL مجموعه داده را به عنوان متغیرهای پویا به خطوط لوله قطار و استنتاج ارسال کنید تا از مجموعه داده های به روز شده برای آموزش مجدد مدل و ایجاد پیش بینی در یک سناریوی واقعی استفاده کنید.
پاک کردن
برای جلوگیری از تحمیل هزینه در آینده، مراحل زیر را انجام دهید:
- دامنه SageMaker Studio را در تمام حسابهای AWS حذف کنید.
- تمام منابع ایجاد شده خارج از SageMaker را حذف کنید، از جمله سطل های S3، نقش های IAM، قوانین EventBridge، و موضوع SNS که از طریق Terraform در حساب prod تنظیم شده است.
- حذف خطوط لوله SageMaker ایجاد شده در بین حساب ها با استفاده از رابط خط فرمان AWS (AWS CLI).
نتیجه
سازمانها اغلب نیاز دارند تا با مجموعه ابزارهای سازمانی همسو شوند تا همکاری در مناطق و تیمهای مختلف عملکردی را فراهم کنند. این همکاری تضمین میکند که پلتفرم MLOps شما میتواند با نیازهای تجاری در حال تحول سازگار شود و پذیرش ML در بین تیمها را تسریع میکند. این پست نحوه ایجاد یک چارچوب MLOps را در یک راهاندازی چند محیطی برای فعال کردن بازآموزی خودکار مدل، استنتاج دستهای و نظارت با Amazon SageMaker Model Monitor، نسخهسازی مدل با SageMaker Model Registry و ترویج کد ML و خطوط لوله در محیطهای دارای خط لوله CI/CD. ما این راه حل را با استفاده از ترکیبی از خدمات AWS و مجموعه ابزارهای شخص ثالث به نمایش گذاشتیم. برای دستورالعملهای اجرای این راهحل، به قسمت زیر مراجعه کنید مخزن GitHub. شما همچنین می توانید این راه حل را با آوردن منابع داده و چارچوب های مدل سازی خود گسترش دهید.
درباره نویسنده
گایاتری گاناکوتا یک مهندس یادگیری ماشین پدر با خدمات حرفه ای AWS است. او مشتاق توسعه، استقرار و توضیح راهحلهای AI/ML در حوزههای مختلف است. قبل از این نقش، او به عنوان یک دانشمند داده و مهندس ML با شرکت های برتر جهانی در فضای مالی و خرده فروشی، ابتکارات متعددی را رهبری کرد. او دارای مدرک کارشناسی ارشد در علوم کامپیوتر با تخصص در علوم داده از دانشگاه کلرادو، بولدر است.
سونیتا کوپپار یک معمار دریاچه داده Sr. با خدمات حرفه ای AWS است. او مشتاق حل نقاط درد مشتری با پردازش داده های بزرگ و ارائه راه حل های مقیاس پذیر بلند مدت است. قبل از این نقش، او محصولاتی را در حوزه های اینترنت، مخابرات و خودرو توسعه داده است و مشتری AWS بوده است. او دارای مدرک کارشناسی ارشد در علوم داده از دانشگاه کالیفرنیا، ریورساید است.
ساسواتا داش یک مشاور DevOps با خدمات حرفه ای AWS است. او با مشتریانی در زمینه مراقبت های بهداشتی و علوم زیستی، هوانوردی و تولید کار کرده است. او علاقه زیادی به اتوماسیون همه چیز دارد و تجربه جامعی در طراحی و ساخت راه حل های مشتری در مقیاس سازمانی در AWS دارد. خارج از محل کار، او به دنبال علاقه اش به عکاسی و گرفتن طلوع خورشید است.
- محتوای مبتنی بر SEO و توزیع روابط عمومی. امروز تقویت شوید.
- PlatoData.Network Vertical Generative Ai. به خودت قدرت بده دسترسی به اینجا.
- PlatoAiStream. هوش وب 3 دانش تقویت شده دسترسی به اینجا.
- PlatoESG. کربن ، CleanTech، انرژی، محیط، خورشیدی، مدیریت پسماند دسترسی به اینجا.
- PlatoHealth. هوش بیوتکنولوژی و آزمایشات بالینی. دسترسی به اینجا.
- منبع: https://aws.amazon.com/blogs/machine-learning/promote-pipelines-in-a-multi-environment-setup-using-amazon-sagemaker-model-registry-hashicorp-terraform-github-and-jenkins-ci-cd/
- : دارد
- :است
- :نه
- :جایی که
- $UP
- 1
- 10
- 100
- 12
- 13
- 14
- 16
- 17
- 19
- 23
- 27
- 31
- 320
- 7
- 8
- 9
- a
- درباره ما
- تسریع می شود
- پذیرش
- دسترسی
- حساب
- حساب ها
- در میان
- عمل
- وفق دادن
- اضافه کردن
- نشانی
- اداری
- اتخاذ
- پس از
- سن
- AI
- تراز
- معرفی
- اجازه دادن
- اجازه می دهد تا
- در امتداد
- همچنین
- آمازون
- آمازون SageMaker
- آمازون خدمات وب
- an
- و
- دیگر
- هر
- کاربرد
- مناسب
- تصویب
- تایید کرد
- معماری
- هستند
- مناطق
- دور و بر
- مصنوعی
- هوش مصنوعی
- هوش مصنوعی (AI)
- AS
- خواهان
- مرتبط است
- فرض
- ضمیمه کردن
- خودکار
- خودکار
- اتوماتیک
- اتوماسیون
- خودرو
- در دسترس
- هوانوردی
- اجتناب از
- AWS
- مشتری AWS
- خدمات حرفه ای AWS
- به عقب
- مستقر
- اساس
- BE
- زیرا
- بوده
- قبل از
- بودن
- بهترین
- بهترین شیوه
- میان
- بزرگ
- بزرگ داده
- هر دو
- شاخه
- پل زدن
- آوردن
- ساختن
- بنا
- ساخته
- کسب و کار
- اما
- by
- محاسبه
- کالیفرنیا
- نام
- CAN
- مورد
- مرکزی
- تغییر دادن
- تغییر
- تبادل
- بار
- بررسی
- انتخاب
- را انتخاب کنید
- رمز
- همکاری
- جمع آوری
- کلرادو
- ستون
- ستون ها
- COM
- ترکیب
- کامل
- انطباق
- اجزاء
- جامع
- کامپیوتر
- علم کامپیوتر
- شرط
- پیکر بندی
- تکرار
- کنسول
- مشاور
- ظرف
- شامل
- کنترل
- قرارداد
- تبدیل
- متناظر
- ایجاد
- ایجاد شده
- ایجاد
- مجوزها و اعتبارات
- صلیب
- مشتری
- راه حل های مشتری
- مشتریان
- روزانه
- داشبورد
- داده ها
- دریاچه دریاچه
- علم اطلاعات
- دانشمند داده
- مجموعه داده ها
- رمزگشایی کنید
- به طور پیش فرض
- درجه
- گسترش
- استقرار
- گسترش
- مستقر می کند
- طراحی
- جزئیات
- تشخیص
- شناسایی شده
- برنامه نویس
- توسعه
- در حال توسعه
- پروژه
- DICT
- مختلف
- دامنه
- حوزه
- در طی
- پویا
- هر
- پیش از آن
- اثر
- هر دو
- پست الکترونیک
- ایمیل
- قادر ساختن
- رمزگذاری
- مهندس
- تضمین می کند
- وارد
- محیط
- محیط
- ضروری است
- حوادث
- در حال تحول
- اعدام
- انتظار می رود
- تجربه
- توضیح داده شده
- توضیح دادن
- گسترش
- تسهیل کردن
- FAIL
- ناموفق
- نتواند
- شکست
- ویژگی
- امکانات
- کمی از
- شکل
- پرونده
- نهایی
- مالی
- پایان
- شرکت ها
- نام خانوادگی
- بار اول
- پیروی
- برای
- یافت
- چارچوب
- چارچوب
- از جانب
- تکمیل کنید
- کامل
- تابع
- تابعی
- آینده
- شکاف
- تولید می کنند
- تولید
- تولید می کند
- دریافت کنید
- رفتن
- GitHub
- دادن
- داده
- می دهد
- جهانی
- Go
- می رود
- کمک های مالی
- گروه
- آیا
- بهداشت و درمان
- او
- بالاتر
- دارای
- میزبانی وب
- چگونه
- چگونه
- HTML
- HTTP
- HTTPS
- ID
- هویت
- if
- اجرای
- واردات
- in
- شامل
- از جمله
- شاخص
- شالوده
- در ابتدا
- ابتکارات
- ورودی
- نصب
- نصب شده
- نمونه
- دستورالعمل
- ادغام
- اطلاعات
- اینترنت
- به
- معرفی
- IT
- کار
- شغل ها
- JPG
- json
- کلید
- کلید
- برچسب
- دریاچه
- چشم انداز
- بعد
- آخرین
- یادگیری
- رهبری
- اهرم
- زندگی
- علوم زندگی
- لاین
- ورود به سیستم
- دراز مدت
- دستگاه
- فراگیری ماشین
- اصلی
- حفظ
- ساخت
- اداره می شود
- مدیریت
- تولید
- حاشیه
- توده
- کارشناسی ارشد
- مکانیزم
- نشست
- فهرست
- ادغام کردن
- متریک
- گم
- ML
- MLO ها
- مدل
- مدل سازی
- مدل
- تغییر
- ماژول ها
- لحظه
- مانیتور
- نظارت
- نظارت بر
- بیش
- چندگانه
- نام
- تحت عنوان
- نامگذاری
- جهت یابی
- نیاز
- ضروری
- نیازهای
- جدید
- بعد
- طبیعی
- دفتر یادداشت
- اخطار
- اطلاعیه ها
- عدد
- بی حس
- of
- غالبا
- on
- ONE
- عملیات
- or
- سفارش
- سازمان های
- دیگر
- خارج
- خارج از
- روی
- مروری
- خود
- بسته
- با ما
- درد
- پانداها
- قطعه
- بخش
- بخش
- گذشت
- شور
- احساساتی
- الگو
- کارایی
- مجوز
- عکاسی
- برگزیده
- کلاهبرداری
- خط لوله
- سکو
- افلاطون
- هوش داده افلاطون
- PlatoData
- نقطه
- سیاست
- سیاست
- پست
- شیوه های
- پیش بینی
- پیش بینی
- آماده
- پیش نیازها
- قبلی
- اصلی
- قبلا
- امتیازات
- روند
- در حال پردازش
- تولید
- محصولات
- حرفه ای
- پروژه
- ترویج
- ترویج
- ترویج
- ارائه
- ارائه
- فراهم می کند
- ارائه
- تدارک
- عمومی
- کشد
- تعقیب می کند
- فشار
- پــایتــون
- به سرعت
- سریعا
- خام
- خواندن
- اماده
- دنیای واقعی
- منطقه
- ثبت نام
- ثبت نام
- ثبت
- رجیستری
- تنظیم کننده
- مربوط
- ارتباط
- برداشتن
- مخزن
- درخواست
- ضروری
- مورد نیاز
- منابع
- منابع
- پاسخ
- خرده فروشی
- برگشت
- کنار رودخانه
- نقش
- نقش
- ریشه
- قانون
- قوانین
- دویدن
- اجرا می شود
- حکیم ساز
- خطوط لوله SageMaker
- همان
- ذخیره
- نگهداری می شود
- مقیاس پذیر
- سناریو
- برنامه
- برنامه ریزی
- زمان بندی
- علم
- علوم
- دانشمند
- خط
- اسکریپت
- یکپارچه
- دوم
- بخش
- امن
- تیم امنیت لاتاری
- دیدن
- ارسال
- در حال ارسال
- می فرستد
- فرستاده
- جداگانه
- سرور
- سرویس
- خدمات
- تنظیم
- تنظیمات
- برپایی
- شکل
- اشتراک گذاری
- او
- باید
- نشان
- نمایش داده شده
- نشان داده شده
- نشان می دهد
- ساده
- قطعه
- So
- راه حل
- مزایا
- حل کردن
- منبع
- منابع
- فضا
- تخصصی
- خاص
- انشعاب
- دولت
- بیانیه
- ایستا
- وضعیت
- گام
- مراحل
- هنوز
- opbevare
- ذخیره شده
- پرده
- رشته
- ساختار
- استودیو
- موفق
- چنین
- پشتیبانی از
- هدف
- تیم ها
- مخابراتی
- Terraform
- آزمون
- تست
- که
- La
- آنها
- سپس
- آنجا.
- اینها
- اشیاء
- سوم
- شخص ثالث
- این
- سه
- از طریق
- زمان
- به
- مجموعه ابزار
- بالا
- موضوع
- مسیر
- قطار
- آموزش دیده
- آموزش
- دگرگون کردن
- ماشه
- باعث شد
- راه اندازی
- درست
- اعتماد
- دور زدن
- دو
- ui
- زیر
- دانشگاه
- دانشگاه کالیفرنیا
- بروزرسانی
- به روز شده
- آپلود شده
- URL
- us
- استفاده کنید
- استفاده
- با استفاده از
- سودمندی
- ارزشها
- مختلف
- نسخه
- نسخه
- از طريق
- تصویری
- قابل رویت
- تماشا کردن
- we
- وب
- خدمات وب
- چه زمانی
- هر زمان که
- در حالیکه
- که
- در حین
- اراده
- با
- در داخل
- بدون
- مهاجرت کاری
- مشغول به کار
- گردش کار
- کارگر
- با این نسخهها کار
- نوشتن
- کتبی
- شما
- شما
- یوتیوب
- زفیرنت