یک راه حل MLOps را که میزبان نقاط پایانی مدل شما در AWS Lambda PlatoBlockchain Data Intelligence است، مستقر کنید. جستجوی عمودی Ai.

یک راه‌حل MLOps را مستقر کنید که نقاط پایانی مدل شما را در AWS Lambda میزبانی می‌کند

در سال 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. شما از این فایل برای استقرار منابع در حساب خود استفاده می کنید. قبل از اینکه بتوانیم اسکریپت پوسته را اجرا کنیم، مراحل زیر را انجام دهیم:

  1. باز کردن deployment/app.py و bucket_name را در زیر تغییر دهید SageMakerPipelineSourceCodeStack. bucket_name باید در سطح جهانی منحصر به فرد باشد (به عنوان مثال، نام کامل خود را اضافه کنید).
  2. In deployment/pipeline/assets/modelbuild/pipelines/energy_management/pipeline.py، تغییر دادن default_bucket زیر get_pipeline به همان نامی که در مرحله 1 مشخص شده است.

راه حل را با CDK AWS مستقر کنید

اول، AWS CLI خود را پیکربندی کنید با حساب و منطقه ای که می خواهید در آن مستقر شوید. سپس دستورات زیر را برای تغییر به دایرکتوری استقرار اجرا کنید، یک محیط مجازی ایجاد کنید، آن را فعال کنید، بسته های پیپ مورد نیاز را که در آن مشخص شده است را نصب کنید. setup.py، و اجرا کنید deploy.sh:

cd deployment
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pre-commit install
chmod u+x deploy.sh
./deploy.sh

deploy.sh اقدامات زیر را انجام می دهد:

  1. یک محیط مجازی در پایتون ایجاد می کند.
  2. منبع اسکریپت فعال سازی محیط مجازی.
  3. AWS CDK و الزامات ذکر شده در آن را نصب می کند setup.py.
  4. بوت استرپ ها محیط زیست.
  5. فایل های ضروری را که ایجاد کرده اید، مانند فایل های خود، فشرده و کپی می کند mllib فایل‌ها را در پوشه‌های مربوطه که در آن این دارایی‌ها مورد نیاز است، قرار دهید.
  6. اجرا می شود cdk deploy —require-approval never.
  7. ایجاد می کند AWS CloudFormation از طریق AWS CDK پشته کنید.

مرحله اولیه استقرار باید کمتر از 5 دقیقه طول بکشد. اکنون باید چهار مخزن در CodeCommit در منطقه ای که از طریق AWS CLI مشخص کرده اید، همانطور که در نمودار معماری مشخص شده است، داشته باشید. این AWS CodePipeline خطوط لوله به طور همزمان اجرا می شوند. این modelbuild و modeldeploy خطوط لوله به اجرای موفق پردازش و ساخت تصویر آموزشی بستگی دارد. این modeldeploy خط لوله بستگی به ساخت مدل موفق دارد. استقرار مدل باید در کمتر از 1.5 ساعت کامل شود.

مخازن مدل را در استودیو کلون کنید

برای سفارشی کردن خطوط لوله SageMaker ایجاد شده از طریق استقرار AWS CDK در استودیو UI، ابتدا باید مخازن را در استودیو کلون کنید. ترمینال سیستم را در استودیو راه اندازی کنید و پس از ارائه نام و شناسه پروژه، دستورات زیر را اجرا کنید:

git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-modelbuild
git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-modeldeploy
git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-processing-imagebuild
git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-training-imagebuild

پس از شبیه سازی مخازن، می توانید یک 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 ساعت طول بکشد. خط لوله باید مانند تصویر زیر باشد.

خط لوله آمازون SageMaker

پس از استقرار پشته 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 فایل. بیایید ابتدا به این نگاه کنیم:

version: 0.2

env:
  shell: bash

phases:
  install:
    runtime_versions:
      python: 3.8
    commands:
      - python3 -m ensurepip --upgrade
      - python3 -m pip install --upgrade pip
      - python3 -m pip install --upgrade virtualenv
      - python3 -m venv .venv
      - source .venv/bin/activate
      - npm install -g aws-cdk@2.26.0
      - pip install -r requirements.txt
      - cdk bootstrap
  build:
    commands:
      - python build.py --model-package-group-name "$SOURCE_MODEL_PACKAGE_GROUP_NAME"
      - tar -xf model.tar.gz
      - cp model.joblib lambda/digital_twin
      - rm model.tar.gz
      - rm model.joblib
      - cdk deploy --require-approval never

در مرحله نصب، اطمینان حاصل می کنیم که کتابخانه های پایتون به روز هستند، یک محیط مجازی ایجاد می کنیم، 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*. تابع را باز کنید و به قسمت بروید تست برگه می توانید از رویداد زیر برای اجرای یک تماس آزمایشی استفاده کنید:

{
  "flow": "[280, 300]",
  "pressure": "[69, 70]",
  "simulations": "10",
  "no_of_trials": "10",
  "train_error_weight": "1.0"
}

پس از اجرای رویداد آزمایشی، پاسخی مشابه آنچه در تصویر زیر نشان داده شده است دریافت می کنید.

عملکرد AWS Lambda را تست کنید

اگر می‌خواهید شبیه‌سازی‌ها یا آزمایش‌های بیشتری انجام دهید، می‌توانید محدودیت زمانی لامبدا را افزایش دهید و کد را آزمایش کنید! یا ممکن است بخواهید داده های تولید شده را بردارید و همان را در آن تجسم کنید آمازون QuickSight. در زیر یک نمونه آورده شده است. حالا نوبت شماست!

آمازون QuickSight

پاک کردن

برای جلوگیری از هزینه های بیشتر، مراحل زیر را انجام دهید:

  • در کنسول AWS CloudFormation، آن را حذف کنید EnergyOptimization پشته.
    این کل راه حل را حذف می کند.
  • پشته را حذف کنید DigitalTwinStack، که تابع Lambda شما را مستقر کرد.

نتیجه

در این پست، ما یک خط لوله MLOps مبتنی بر CI/CD از یک راه حل مدیریت انرژی را به شما نشان دادیم که در آن هر مرحله را جدا نگه می داریم. می‌توانید خطوط لوله و آزمایش‌های ML خود را در رابط کاربری Studio دنبال کنید. ما همچنین یک رویکرد استقرار متفاوت را نشان دادیم: پس از تأیید یک مدل در رجیستری مدل، یک تابع Lambda میزبان مدل تأیید شده به طور خودکار از طریق CodePipeline ساخته می‌شود.

اگر علاقه مند به کاوش در خط لوله MLOps در AWS یا راه حل مدیریت انرژی پایدار هستید، مخزن GitHub و پشته را در محیط AWS خود مستقر کنید!


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

یک راه حل MLOps را که میزبان نقاط پایانی مدل شما در AWS Lambda PlatoBlockchain Data Intelligence است، مستقر کنید. جستجوی عمودی Ai.لورن ون در ماس دانشمند داده در AWS Professional Services است. او از نزدیک با مشتریانی که راه‌حل‌های یادگیری ماشینی خود را بر روی AWS می‌سازند، کار می‌کند و مشتاق است که چگونه یادگیری ماشین جهان را آنطور که می‌شناسیم تغییر می‌دهد.

یک راه حل MLOps را که میزبان نقاط پایانی مدل شما در AWS Lambda PlatoBlockchain Data Intelligence است، مستقر کنید. جستجوی عمودی Ai.کانگ کانگ وانگ مشاور AI/ML با خدمات حرفه ای AWS است. او تجربه گسترده ای در به کارگیری راه حل های AI/ML در مراقبت های بهداشتی و علوم زیستی عمودی دارد. او همچنین از کمک به مشتریان سازمانی برای ایجاد پلتفرم های مقیاس پذیر AI/ML برای تسریع سفر ابری دانشمندان داده خود لذت می برد.

یک راه حل MLOps را که میزبان نقاط پایانی مدل شما در AWS Lambda PlatoBlockchain Data Intelligence است، مستقر کنید. جستجوی عمودی Ai.سلنا تابارا دانشمند داده در AWS Professional Services است. او هر روز با مشتریانش کار می کند تا با نوآوری در پلتفرم های AWS به نتایج تجاری خود دست یابد. سلنا در اوقات فراغت خود از نواختن پیانو، پیاده روی و تماشای بسکتبال لذت می برد.

مایکل والنر مایکل والنر یک مشاور ارشد با تمرکز بر AI/ML با خدمات حرفه ای AWS است. مایکل مشتاق است که مشتریان را در سفر ابری خود قادر سازد تا AWSome شوند. او در مورد تولید هیجان زده است و از کمک به تغییر فضای تولید از طریق داده ها لذت می برد.

تمبر زمان:

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