مشتریان AWS برای طراحی، توسعه و مدیریت زیرساخت ابری خود به Infrastructure as Code (IaC) متکی هستند. IaC تضمین میکند که زیرساختها و خدمات مشتری سازگار، مقیاسپذیر و قابل تکرار هستند، در حالی که میتوانند بهترین شیوهها را در حوزه عملیات توسعه (DevOps) دنبال کنند.
یکی از رویکردهای ممکن برای مدیریت زیرساخت و خدمات AWS با IaC است Terraform، که به توسعه دهندگان اجازه می دهد تا زیرساخت های خود را در ماژول های کد قابل استفاده مجدد سازماندهی کنند. این جنبه به طور فزاینده ای در حوزه یادگیری ماشینی (ML) اهمیت پیدا می کند. توسعه و مدیریت خطوط لوله ML، از جمله آموزش و استنباط با Terraform به عنوان IaC، به شما این امکان را می دهد که به راحتی برای موارد یا مناطق مختلف ML مقیاس بندی کنید بدون اینکه نیاز به توسعه زیرساخت از ابتدا داشته باشید. علاوه بر این، برای زیرساخت (به عنوان مثال، نوع و اندازه نمونه) برای آموزش و استنتاج در پیاده سازی های مختلف خط لوله ML سازگاری دارد. این به شما امکان می دهد درخواست ها و ترافیک ورودی را به مسیرهای مختلف هدایت کنید آمازون SageMaker نقاط انتهایی
در این پست، نحوه استقرار و مدیریت خطوط لوله ML را با استفاده از Terraform و Amazon SageMaker به شما نشان می دهیم.
بررسی اجمالی راه حل
این پست کد ارائه میکند و شما را در مراحل لازم برای استقرار زیرساخت AWS برای خطوط لوله ML با Terraform برای آموزش مدل و استنتاج با استفاده از Amazon SageMaker راهنمایی میکند. خط لوله ML از طریق مدیریت می شود توابع مرحله AWS برای هماهنگ کردن مراحل مختلف اجرا شده در خط لوله ML، همانطور که در شکل زیر نشان داده شده است.
توابع مرحله شروع می شود AWS لامبدا تابع، ایجاد یک شناسه شغلی منحصر به فرد، که سپس هنگام شروع کار آموزشی SageMaker استفاده می شود. توابع Step همچنین یک مدل، پیکربندی نقطه پایانی و نقطه پایانی را ایجاد می کند که برای استنتاج استفاده می شود. منابع اضافی شامل موارد زیر است:
- هویت AWS و مدیریت دسترسی (IAM) نقشها و سیاستهای مرتبط با منابع به منظور ایجاد تعامل با منابع دیگر
- سرویس ذخیره سازی ساده آمازون سطل (Amazon S3) برای داده های آموزشی و خروجی مدل
- An رجیستری ظروف الاستیک آمازون مخزن (Amazon ECR) برای کارگر بارانداز تصویر حاوی منطق آموزش و استنتاج
کد مربوط به ML برای آموزش و استنباط با یک تصویر داکر عمدتاً به کارهای موجود در زیر متکی است مخزن GitHub.
نمودار زیر معماری راه حل را نشان می دهد:
ما شما را از طریق مراحل سطح بالا زیر راهنمایی می کنیم:
- زیرساخت AWS خود را با Terraform مستقر کنید.
- تصویر Docker خود را به Amazon ECR فشار دهید.
- خط لوله ML را اجرا کنید.
- نقطه پایانی خود را فراخوانی کنید.
ساختار مخزن
می توانید مخزن حاوی کد و داده های استفاده شده برای این پست را در ادامه مطلب بیابید مخزن GitHub.
مخزن شامل دایرکتوری های زیر است:
/terraform
- شامل زیر پوشه های زیر است:./infrastructure
– حاوی فایل main.tf است که ماژول خط لوله ML را فراخوانی می کند، به اضافه اعلان های متغیری که برای استقرار زیرساخت استفاده می کنیم../ml-pipeline-module
- حاوی ماژول خط لوله Terraform ML است که می توانیم دوباره از آن استفاده کنیم
/src
- شامل زیر پوشه های زیر است:./container
- شامل کد نمونه برای آموزش و استنتاج با تعاریف تصویر داکر است./lambda_function
- حاوی کد پایتون برای پیکربندیهای تولید تابع Lambda، مانند شناسه شغلی منحصر به فرد برای کار آموزشی SageMaker
/data
– حاوی فایل زیر است:./iris.csv
- حاوی داده هایی برای آموزش مدل ML است
پیش نیازها
برای این راهنما، شما باید پیش نیازهای زیر را داشته باشید:
- یک حساب AWS
- Terraform نسخه 0.13.5 یا بالاتر
- رابط خط فرمان AWS (AWS CLI) نسخه 2
- پــایتــون 3.7 یا بیشتر
- کارگر بارانداز
زیرساخت AWS خود را با Terraform مستقر کنید
برای استقرار خط لوله ML، باید چند متغیر و نام را بر اساس نیاز خود تنظیم کنید. کد این مرحله در /terraform
دایرکتوری.
هنگامی که برای اولین بار مقداردهی اولیه می کنید، فایل را باز کنید terraform/infrastructure/terraform.tfvars
و متغیر را تنظیم کنید نام پروژه به نام پروژه شما، علاوه بر متغیر منطقه اگر می خواهید در منطقه دیگری مستقر شوید. همچنین میتوانید متغیرهای اضافی مانند انواع نمونهها را برای آموزش و استنتاج تغییر دهید.
سپس از دستورات زیر برای استقرار زیرساخت با Terraform استفاده کنید:
خروجی را بررسی کنید و مطمئن شوید که منابع برنامه ریزی شده به درستی ظاهر می شوند و اگر همه چیز درست است در مرحله اعمال با بله تایید کنید. سپس به کنسول آمازون ECR بروید (یا خروجی Terraform را در ترمینال بررسی کنید) و URL مخزن ECR خود را که از طریق Terraform ایجاد کرده اید، دریافت کنید.
خروجی باید شبیه به خروجی نمایش داده شده زیر باشد، از جمله URL مخزن ECR:
تصویر Docker خود را به Amazon ECR فشار دهید
برای اینکه خط لوله ML و SageMaker بتوانند یک نقطه پایانی SageMaker را برای استنتاج آموزش دهند و ارائه دهند، باید یک تصویر Docker تهیه کرده و آن را در Amazon ECR ذخیره کنید. می توانید یک نمونه را در دایرکتوری پیدا کنید src/container
. اگر قبلاً زیرساخت AWS را از مرحله قبل اعمال کرده اید، می توانید تصویر Docker را همانطور که توضیح داده شد فشار دهید. پس از توسعه تصویر Docker، می توانید اقدامات زیر را انجام دهید و آن را به Amazon ECR فشار دهید (URL آمازون ECR را بر اساس نیاز خود تنظیم کنید):
اگر قبلاً زیرساخت AWS را با Terraform اعمال کرده اید، می توانید تغییرات کد و تصویر Docker خود را مستقیماً بدون استقرار مجدد از طریق Terraform به Amazon ECR فشار دهید.
خط لوله ML را اجرا کنید
برای آموزش و اجرای خط لوله ML، به کنسول Step Functions رفته و اجرا را شروع کنید. می توانید پیشرفت هر مرحله را در تجسم ماشین حالت بررسی کنید. همچنین می توانید پیشرفت کار آموزش SageMaker و وضعیت نقطه پایانی SageMaker خود را بررسی کنید.
پس از اجرای موفقیت آمیز ماشین حالت در توابع Step، می توانید ببینید که نقطه پایانی SageMaker ایجاد شده است. در کنسول SageMaker، را انتخاب کنید استنباط سپس در قسمت ناوبری نقاط پایان. مطمئن شوید که منتظر تغییر وضعیت به InService باشید.
نقطه پایانی خود را فراخوانی کنید
برای فراخوانی نقطه پایانی خود (در این مثال، برای مجموعه داده iris)، می توانید از اسکریپت پایتون زیر با AWS SDK برای پایتون (Boto3). می توانید این کار را از یک نوت بوک SageMaker انجام دهید، یا قطعه کد زیر را در یک تابع Lambda جاسازی کنید:
پاک کردن
شما می توانید زیرساخت ایجاد شده توسط Terraform را با دستور terraform kill نابود کنید، اما ابتدا باید داده ها و فایل های موجود در سطل های S3 را حذف کنید. علاوه بر این، نقطه پایانی SageMaker (یا چندین نقطه پایانی SageMaker اگر چندین بار اجرا شود) از طریق توابع Step ایجاد می شود و از طریق Terraform مدیریت نمی شود. این بدان معنی است که استقرار هنگام اجرای خط لوله ML با توابع Step اتفاق می افتد. بنابراین، مطمئن شوید که نقطه پایانی SageMaker یا نقاط پایانی ایجاد شده از طریق خط لوله Step Functions ML را نیز حذف کرده اید تا از هزینه های غیر ضروری جلوگیری کنید. مراحل زیر را کامل کنید:
- در کنسول آمازون S3، مجموعه داده را در سطل آموزشی S3 حذف کنید.
- تمام مدل هایی را که از طریق خط لوله ML در سطل مدل های S3 آموزش داده اید، از طریق کنسول آمازون S3 یا AWS CLI حذف کنید.
- زیرساخت ایجاد شده از طریق Terraform را نابود کنید:
- نقاط پایانی SageMaker، پیکربندی نقطه پایانی و مدلهای ایجاد شده از طریق توابع Step، یا در کنسول SageMaker یا از طریق AWS CLI را حذف کنید.
نتیجه
تبریک می گویم! شما یک خط لوله ML با استفاده از SageMaker با Terraform مستقر کرده اید. این راه حل مثال نشان می دهد که چگونه می توانید به راحتی زیرساخت و خدمات AWS را برای خطوط لوله ML به روشی قابل استفاده مجدد مستقر کنید. این به شما امکان می دهد برای موارد یا مناطق چندگانه استفاده کنید و آموزش و استقرار مدل های ML را با یک کلیک به روشی ثابت امکان پذیر می کند. علاوه بر این، می توانید خط لوله ML را چندین بار اجرا کنید، به عنوان مثال، زمانی که داده های جدید در دسترس هستند یا می خواهید کد الگوریتم را تغییر دهید. همچنین میتوانید مسیریابی درخواستها یا ترافیک به نقاط پایانی مختلف SageMaker را انتخاب کنید.
من شما را تشویق میکنم تا افزودن ویژگیهای امنیتی و اتخاذ بهترین شیوههای امنیتی را با توجه به نیازهای خود و استانداردهای شرکت بالقوه بررسی کنید. علاوه بر این، تعبیه این راه حل در خطوط لوله CI/CD به شما قابلیت های بیشتری در اتخاذ و ایجاد بهترین شیوه ها و استانداردهای DevOps با توجه به نیازهای شما می دهد.
درباره نویسنده
الیور زولیکوفر دانشمند داده در خدمات وب آمازون است. او مشتریان سازمانی جهانی را قادر میسازد تا مدلهای یادگیری ماشینی را بسازند، آموزش دهند و به کار گیرند، و همچنین چرخه عمر مدل ML را با MLOs مدیریت کنند. علاوه بر این، او راه حل های ابری مرتبط را می سازد و معمار می کند.
- Coinsmart. بهترین صرافی بیت کوین و کریپتو اروپا.
- پلاتوبلاک چین. Web3 Metaverse Intelligence. دانش تقویت شده دسترسی رایگان.
- CryptoHawk. رادار آلت کوین امتحان رایگان.
- منبع: https://aws.amazon.com/blogs/machine-learning/deploy-and-manage-machine-learning-pipelines-with-terraform-using-amazon-sagemaker/
- "
- 100
- 7
- دسترسی
- مطابق
- در میان
- اقدامات
- اضافه
- اضافی
- الگوریتم
- معرفی
- قبلا
- آمازون
- آمازون خدمات وب
- دیگر
- روش
- معماری
- محدوده
- در دسترس
- AWS
- بودن
- بهترین
- بهترین شیوه
- بدن
- مرز
- ساختن
- می سازد
- قابلیت های
- موارد
- CD
- تغییر دادن
- را انتخاب کنید
- ابر
- زیرساخت های ابری
- رمز
- شرکت
- پیکر بندی
- کنسول
- ظرف
- شامل
- هزینه
- ایجاد شده
- ایجاد
- مشتری
- مشتریان
- داده ها
- دانشمند داده
- گسترش
- مستقر
- استقرار
- گسترش
- شرح داده شده
- طرح
- از بین بردن
- نابود شده
- توسعه
- توسعه
- توسعه دهندگان
- در حال توسعه
- پروژه
- مختلف
- مستقیما
- کارگر بارانداز
- به آسانی
- قادر ساختن
- تشویق
- نقطه پایانی
- سرمایه گذاری
- همه چیز
- مثال
- موجود
- اکتشاف
- روش
- امکانات
- شکل
- نام خانوادگی
- بار اول
- به دنبال
- پیروی
- تابع
- بیشتر
- مولد
- جهانی
- داشتن
- چگونه
- چگونه
- HTTPS
- هویت
- تصویر
- پیاده سازی
- اجرا
- اهمیت
- شامل
- شامل
- از جمله
- به طور فزاینده
- شالوده
- ورودی
- اثر متقابل
- IT
- کار
- آخرین
- یادگیری
- لاین
- دستگاه
- فراگیری ماشین
- مدیریت
- اداره می شود
- مدیریت
- ML
- مدل
- مدل
- چندگانه
- نام
- جهت یابی
- لازم
- دفتر یادداشت
- باز کن
- عملیات
- سفارش
- دیگر
- سیاست
- ممکن
- پتانسیل
- پروژه
- ارائه
- فراهم می کند
- مخزن
- درخواست
- درخواست
- مورد نیاز
- منابع
- پاسخ
- مسیر
- دویدن
- در حال اجرا
- مقیاس پذیر
- مقیاس
- دانشمند
- sdk
- تیم امنیت لاتاری
- خدمات
- مشابه
- ساده
- اندازه
- جامد
- راه حل
- مزایا
- صحنه
- استانداردهای
- شروع
- شروع می شود
- دولت
- وضعیت
- ذخیره سازی
- opbevare
- موفقیت
- پایانه
- از این رو
- از طریق
- زمان
- ترافیک
- آموزش
- منحصر به فرد
- استفاده کنید
- تجسم
- صبر کنيد
- وب
- خدمات وب
- در حین
- بدون
- مهاجرت کاری