در سال 2019، آمازون یکی از بنیانگذاران آن بود تعهد آب و هوا. هدف این تعهد دستیابی به کربن خالص صفر تا سال 2040 است. این 10 سال زودتر از آنچه در توافقنامه پاریس آمده است. شرکتهایی که ثبتنام میکنند متعهد به گزارشدهی منظم، حذف کربن و جبرانهای معتبر هستند. در زمان نگارش این مقاله، 377 شرکت پیمان آب و هوا را امضا کرده اند و تعداد آنها همچنان در حال افزایش است.
از آنجایی که AWS متعهد است از طریق راهحلهای ابری و یادگیری ماشین (ML) به شما کمک کند تا به هدف خالص خود دست یابید، پروژههای بسیاری در حال حاضر توسعه یافته و به کار گرفته شدهاند که انتشار کربن را کاهش میدهند. صنایع تولیدی یکی از صنایعی است که می تواند از چنین پروژه هایی بهره فراوان برد. از طریق مدیریت بهینه انرژی ماشینها در کارخانههای تولیدی، مانند کمپرسورها یا چیلرها، شرکتها میتوانند ردپای کربن خود را با ML کاهش دهند.
انتقال موثر از مرحله آزمایش ML به تولید چالش برانگیز است. خودکارسازی آموزش و بازآموزی مدل، داشتن یک رجیستری مدل، و ردیابی آزمایشها و استقرار برخی از چالشهای کلیدی هستند. برای شرکت های تولیدی، لایه دیگری از پیچیدگی وجود دارد، یعنی اینکه چگونه این مدل های مستقر شده می توانند در لبه کار کنند.
در این پست، با ارائه یک الگوی عملیات یادگیری ماشین (MLOps) که میزبان راه حل مدیریت انرژی پایدار است، به این چالش ها می پردازیم. راه حل برای موارد استفاده آگنوستیک است، به این معنی که می توانید با تغییر مدل و داده ها، آن را برای موارد استفاده خود تطبیق دهید. ما به شما نشان می دهیم که چگونه مدل ها را در آن ادغام کنید خطوط لوله آمازون SageMakerیک ابزار هماهنگسازی جریان کار بومی برای ساخت خطوط لوله ML، که یک کار آموزشی و به صورت اختیاری یک کار پردازش را با شبیهسازی مونت کارلو اجرا میکند. آزمایش ها در ردیابی می شوند آزمایشات آمازون SageMaker. مدل ها در ردیابی و ثبت می شوند رجیستری مدل آمازون SageMaker. در نهایت، ما کدی را برای استقرار مدل نهایی شما در یک ارائه می دهیم AWS لامبدا تابع.
Lambda یک سرویس محاسباتی است که به شما امکان می دهد کد را بدون مدیریت یا تهیه سرور اجرا کنید. مقیاسبندی خودکار لامبدا، صورتحساب پرداخت به ازای درخواست و سهولت استفاده، آن را به یک انتخاب رایج برای استقرار تیمهای علم داده تبدیل کرده است. با این پست، دانشمندان داده می توانند مدل خود را به یک تابع لامبدا مقرون به صرفه و مقیاس پذیر تبدیل کنند. علاوه بر این، لامبدا امکان ادغام با AWS IoT Greengrassکه به شما کمک میکند نرمافزاری بسازید که دستگاههای شما را قادر میسازد تا در لبه دادههایی که تولید میکنند عمل کنند، همانطور که برای یک راهحل مدیریت انرژی پایدار است.
بررسی اجمالی راه حل
معماری ما (شکل زیر را ببینید) یک رویکرد کاملاً مبتنی بر CI/CD برای یادگیری ماشین است. برای جلوگیری از داشتن یک راه حل یکپارچه، عناصر جدا می شوند.
بیایید با بالا سمت چپ نمودار شروع کنیم. این پردازش - ساخت تصویر جزء یک CI/CD محور است AWS CodeCommit مخزنی که به ساخت و فشار دادن a کمک می کند کارگر بارانداز ظرف به رجیستری ظروف الاستیک آمازون (Amazon ECR). این ظرف پردازش به عنوان اولین مرحله در خط لوله ML ما عمل می کند، اما همچنین برای مراحل پس از پردازش مجددا استفاده می شود. در مورد ما، شبیه سازی مونت کارلو را به عنوان پس پردازش اعمال می کنیم. این آموزش – ساخت تصویر مخزن مشخص شده در پایین سمت چپ مکانیسم مشابهی دارد پردازش بلوک بالای آن تفاوت اصلی این است که ظرف را برای آموزش مدل می سازد.
خط لوله اصلی، ساختمان نمونه (خط لوله)، یکی دیگر از مخزن های CodeCommit است که اجرای خطوط لوله SageMaker شما را خودکار می کند. این خط لوله، پیش پردازش داده ها، آموزش مدل، ردیابی معیارهای مدل در آزمایش های SageMaker، پس پردازش داده ها، و فهرست نویسی مدل در رجیستری مدل SageMaker را خودکار و متصل می کند.
مولفه نهایی در پایین سمت راست است: استقرار مدل. اگر از مثال های موجود در پروژه های آمازون SageMaker، الگویی دریافت می کنید که مدل شما را با استفاده از نقطه پایانی SageMaker میزبانی می کند. مخزن استقرار ما در عوض مدل را در تابع Lambda میزبانی می کند. ما رویکردی را برای استقرار تابع Lambda نشان میدهیم که میتواند پیشبینیهای بلادرنگ را اجرا کند.
پیش نیازها
برای استقرار راه حل ما با موفقیت، به موارد زیر نیاز دارید:
مخزن GitHub را دانلود کنید
به عنوان اولین قدم، شبیه سازی را انجام دهید مخزن GitHub به ماشین محلی شما این شامل ساختار پوشه زیر است:
- گسترش - حاوی کد مربوط به استقرار است
- mllib - حاوی کد ML برای پیش پردازش، آموزش، سرویس دهی و شبیه سازی است
- تست - شامل تست های واحد و یکپارچه سازی است
فایل کلیدی برای استقرار اسکریپت پوسته است deployment/deploy.sh
. شما از این فایل برای استقرار منابع در حساب خود استفاده می کنید. قبل از اینکه بتوانیم اسکریپت پوسته را اجرا کنیم، مراحل زیر را انجام دهیم:
- باز کردن
deployment/app.py
و bucket_name را در زیر تغییر دهیدSageMakerPipelineSourceCodeStack
.bucket_name
باید در سطح جهانی منحصر به فرد باشد (به عنوان مثال، نام کامل خود را اضافه کنید). - In
deployment/pipeline/assets/modelbuild/pipelines/energy_management/pipeline.py
، تغییر دادنdefault_bucket
زیرget_pipeline
به همان نامی که در مرحله 1 مشخص شده است.
راه حل را با CDK AWS مستقر کنید
اول، AWS CLI خود را پیکربندی کنید با حساب و منطقه ای که می خواهید در آن مستقر شوید. سپس دستورات زیر را برای تغییر به دایرکتوری استقرار اجرا کنید، یک محیط مجازی ایجاد کنید، آن را فعال کنید، بسته های پیپ مورد نیاز را که در آن مشخص شده است را نصب کنید. setup.py
، و اجرا کنید deploy.sh
:
deploy.sh
اقدامات زیر را انجام می دهد:
- یک محیط مجازی در پایتون ایجاد می کند.
- منبع اسکریپت فعال سازی محیط مجازی.
- AWS CDK و الزامات ذکر شده در آن را نصب می کند
setup.py
. - بوت استرپ ها محیط زیست.
- فایل های ضروری را که ایجاد کرده اید، مانند فایل های خود، فشرده و کپی می کند
mllib
فایلها را در پوشههای مربوطه که در آن این داراییها مورد نیاز است، قرار دهید. - اجرا می شود
cdk deploy —require-approval never
. - ایجاد می کند AWS CloudFormation از طریق AWS CDK پشته کنید.
مرحله اولیه استقرار باید کمتر از 5 دقیقه طول بکشد. اکنون باید چهار مخزن در CodeCommit در منطقه ای که از طریق AWS CLI مشخص کرده اید، همانطور که در نمودار معماری مشخص شده است، داشته باشید. این AWS CodePipeline خطوط لوله به طور همزمان اجرا می شوند. این modelbuild
و modeldeploy
خطوط لوله به اجرای موفق پردازش و ساخت تصویر آموزشی بستگی دارد. این modeldeploy
خط لوله بستگی به ساخت مدل موفق دارد. استقرار مدل باید در کمتر از 1.5 ساعت کامل شود.
مخازن مدل را در استودیو کلون کنید
برای سفارشی کردن خطوط لوله SageMaker ایجاد شده از طریق استقرار AWS CDK در استودیو UI، ابتدا باید مخازن را در استودیو کلون کنید. ترمینال سیستم را در استودیو راه اندازی کنید و پس از ارائه نام و شناسه پروژه، دستورات زیر را اجرا کنید:
پس از شبیه سازی مخازن، می توانید یک commit را به مخازن فشار دهید. این commit ها اجرای CodePipeline را برای خطوط لوله مرتبط راه اندازی می کنند.
شما همچنین می توانید راه حل را در دستگاه محلی خود تطبیق دهید و روی IDE مورد نظر خود کار کنید.
در SageMaker Pipelines و SageMaker Experiments UI حرکت کنید
خط لوله SageMaker مجموعه ای از مراحل به هم پیوسته است که با استفاده از آن تعریف می شوند Amazon SageMaker Python SDK. این تعریف خط لوله یک خط لوله را با استفاده از یک گراف غیر چرخه مستقیم (DAG) که می تواند به عنوان یک تعریف JSON صادر شود، رمزگذاری می کند. برای آشنایی بیشتر با ساختار اینگونه خطوط لوله به ادامه مطلب مراجعه کنید بررسی اجمالی خطوط لوله SageMaker.
هدایت به منابع SageMaker صفحه را باز کرده و منبع Pipelines را برای مشاهده انتخاب کنید. زیر نام، باید ببینی PROJECT_NAME-PROJECT_ID
. در Run UI، باید اجرای موفقیت آمیزی وجود داشته باشد که انتظار می رود کمی بیش از 1 ساعت طول بکشد. خط لوله باید مانند تصویر زیر باشد.
پس از استقرار پشته CDK AWS، اجرا به طور خودکار آغاز شد. با انتخاب می توانید به صورت دستی یک اجرا را فراخوانی کنید ساختن اعدام. از آنجا می توانید پارامترهای خط لوله خود را مانند نوع نمونه و تعداد نمونه ها برای مراحل پردازش و آموزش انتخاب کنید. علاوه بر این، می توانید نام و توضیحاتی را به اجرا بدهید. خط لوله از طریق پارامترهای خط لوله بسیار قابل تنظیم است که می توانید در سراسر تعریف خط لوله خود به آنها اشاره و تعریف کنید.
به راحتی می توانید خط لوله دیگری را با پارامترهای مورد نظر خود شروع کنید. پس از آن، به مسیر بروید منابع SageMaker دوباره پنجره را انتخاب کنید آزمایشات و آزمایشات. در آنجا باید دوباره خطی با نامی مانند PROJECT_NAME-PROJECT_ID
. به آزمایش بروید و تنها اجرای با شناسه تصادفی را انتخاب کنید. از آنجا، شغل آموزشی SageMaker را انتخاب کنید تا معیارهای مربوط به شغل آموزشی را بررسی کنید.
هدف SageMaker Experiments این است که ایجاد آزمایشها، پر کردن آنها با آزمایشها و اجرای تجزیه و تحلیلها در آزمایشها و آزمایشها را تا حد امکان ساده کند. SageMaker Pipelines نزدیک به SageMaker Experiments ادغام شده است و به طور پیش فرض برای هر اجرا یک آزمایش، آزمایش و مؤلفه های آزمایشی در صورت عدم وجود آنها ایجاد می کند.
استقرار لامبدا را در رجیستری مدل تأیید کنید
در مرحله بعدی، به رجیستری مدل زیر بروید منابع SageMaker. در اینجا می توانید دوباره خطی با نامی مانند PROJECT_NAME-PROJECT_ID
. به تنها مدلی که وجود دارد بروید و آن را تأیید کنید. این به طور خودکار آرتیفکت مدل را در یک ظرف در لامبدا مستقر می کند.
پس از اینکه مدل خود را در رجیستری مدل تأیید کردید، یک پل رویداد آمازون قانون رویداد فعال می شود. این قانون خط لوله CodePipeline را با انتهای آن اجرا می کند *-modeldeploy
. در این بخش، نحوه استفاده این راه حل از مدل تایید شده و میزبانی آن در تابع لامبدا بحث می کنیم. CodePipeline مخزن CodeCommit موجود را می گیرد که به آن نیز ختم می شود *-modeldeploy
و از آن کد برای اجرا در CodeBuild استفاده می کند. ورودی اصلی برای CodeBuild است buildspec.yml
فایل. بیایید ابتدا به این نگاه کنیم:
در مرحله نصب، اطمینان حاصل می کنیم که کتابخانه های پایتون به روز هستند، یک محیط مجازی ایجاد می کنیم، AWS CDK v2.26.0 را نصب می کنیم و aws-cdk
کتابخانه پایتون به همراه سایرین با استفاده از فایل نیازمندی ها. ما همچنین اکانت AWS را بوت استرپ کنید. در مرحله ساخت، اجرا می کنیم build.py
، که در ادامه به آن می پردازیم. آن فایل جدیدترین مصنوع مدل SageMaker مورد تایید را از آن دانلود می کند سرویس ذخیره سازی ساده آمازون (Amazon S3) به نمونه CodeBuild محلی شما. این .tar.gz
فایل از حالت فشرده خارج می شود و محتویات آن در پوشه ای کپی می شود که حاوی کد Lambda اصلی ما نیز می باشد. تابع Lambda با استفاده از CDK AWS مستقر می شود و کد از یک ظرف Docker از Amazon ECR خارج می شود. این به طور خودکار توسط AWS CDK انجام می شود.
La build.py
فایل یک فایل پایتون است که بیشتر از آن استفاده می کند AWS SDK برای پایتون (Boto3) برای لیست کردن بسته های مدل موجود
تابع get_approved_package
همانطور که قبلاً توضیح داده شد، URI آمازون S3 مصنوع را که سپس دانلود می شود، برمی گرداند.
پس از استقرار موفقیت آمیز مدل خود، می توانید آزمون آن را مستقیماً در کنسول Lambda در منطقه ای که برای استقرار در آن انتخاب کردید. نام تابع باید حاوی DigitalTwinStack-DigitalTwin*
. تابع را باز کنید و به قسمت بروید تست برگه می توانید از رویداد زیر برای اجرای یک تماس آزمایشی استفاده کنید:
پس از اجرای رویداد آزمایشی، پاسخی مشابه آنچه در تصویر زیر نشان داده شده است دریافت می کنید.
اگر میخواهید شبیهسازیها یا آزمایشهای بیشتری انجام دهید، میتوانید محدودیت زمانی لامبدا را افزایش دهید و کد را آزمایش کنید! یا ممکن است بخواهید داده های تولید شده را بردارید و همان را در آن تجسم کنید آمازون QuickSight. در زیر یک نمونه آورده شده است. حالا نوبت شماست!
پاک کردن
برای جلوگیری از هزینه های بیشتر، مراحل زیر را انجام دهید:
- در کنسول AWS CloudFormation، آن را حذف کنید
EnergyOptimization
پشته.
این کل راه حل را حذف می کند. - پشته را حذف کنید
DigitalTwinStack
، که تابع Lambda شما را مستقر کرد.
نتیجه
در این پست، ما یک خط لوله MLOps مبتنی بر CI/CD از یک راه حل مدیریت انرژی را به شما نشان دادیم که در آن هر مرحله را جدا نگه می داریم. میتوانید خطوط لوله و آزمایشهای ML خود را در رابط کاربری Studio دنبال کنید. ما همچنین یک رویکرد استقرار متفاوت را نشان دادیم: پس از تأیید یک مدل در رجیستری مدل، یک تابع Lambda میزبان مدل تأیید شده به طور خودکار از طریق CodePipeline ساخته میشود.
اگر علاقه مند به کاوش در خط لوله MLOps در AWS یا راه حل مدیریت انرژی پایدار هستید، مخزن GitHub و پشته را در محیط AWS خود مستقر کنید!
درباره نویسنده
لورن ون در ماس دانشمند داده در AWS Professional Services است. او از نزدیک با مشتریانی که راهحلهای یادگیری ماشینی خود را بر روی AWS میسازند، کار میکند و مشتاق است که چگونه یادگیری ماشین جهان را آنطور که میشناسیم تغییر میدهد.
کانگ کانگ وانگ مشاور AI/ML با خدمات حرفه ای AWS است. او تجربه گسترده ای در به کارگیری راه حل های AI/ML در مراقبت های بهداشتی و علوم زیستی عمودی دارد. او همچنین از کمک به مشتریان سازمانی برای ایجاد پلتفرم های مقیاس پذیر AI/ML برای تسریع سفر ابری دانشمندان داده خود لذت می برد.
سلنا تابارا دانشمند داده در AWS Professional Services است. او هر روز با مشتریانش کار می کند تا با نوآوری در پلتفرم های AWS به نتایج تجاری خود دست یابد. سلنا در اوقات فراغت خود از نواختن پیانو، پیاده روی و تماشای بسکتبال لذت می برد.
مایکل والنر یک مشاور ارشد با تمرکز بر AI/ML با خدمات حرفه ای AWS است. مایکل مشتاق است که مشتریان را در سفر ابری خود قادر سازد تا AWSome شوند. او در مورد تولید هیجان زده است و از کمک به تغییر فضای تولید از طریق داده ها لذت می برد.
- AI
- آی هنر
- مولد هنر ai
- ربات ai
- آموزش ماشین آمازون
- آمازون SageMaker
- Amazon SageMaker Autopilot
- هوش مصنوعی
- گواهی هوش مصنوعی
- هوش مصنوعی در بانکداری
- ربات هوش مصنوعی
- ربات های هوش مصنوعی
- نرم افزار هوش مصنوعی
- آموزش ماشین AWS
- بلاکچین
- کنفرانس بلاک چین ai
- coingenius
- هوش مصنوعی محاوره ای
- کنفرانس کریپتو ai
- دل-ه
- یادگیری عمیق
- گوگل ai
- فراگیری ماشین
- تولید
- افلاطون
- افلاطون آی
- هوش داده افلاطون
- بازی افلاطون
- PlatoData
- بازی پلاتو
- مقیاس Ai
- پایداری
- نحو
- زفیرنت