نظارت بر پیشبینیهای یادگیری ماشین (ML) میتواند به بهبود کیفیت مدلهای مستقر کمک کند. گرفتن داده ها از استنباط های انجام شده در تولید می تواند شما را قادر سازد مدل های مستقر شده خود را نظارت کرده و انحرافات در کیفیت مدل را تشخیص دهید. تشخیص زودهنگام و فعال این انحرافات شما را قادر می سازد تا اقدامات اصلاحی مانند بازآموزی مدل ها، ممیزی سیستم های بالادستی یا رفع مشکلات کیفیت را انجام دهید.
AWS لامبدا یک سرویس محاسباتی بدون سرور است که می تواند استنتاج ML بلادرنگ را در مقیاس ارائه دهد. در این پست، ما یک ویژگی جمعآوری داده نمونه را نشان میدهیم که میتواند در حجم کاری استنتاج Lambda ML به کار گرفته شود.
در دسامبر 2020، لامبدا پشتیبانی از تصاویر ظرف را به عنوان یک قالب بسته بندی معرفی کرد. این ویژگی محدودیت اندازه بسته استقرار را از 500 مگابایت به 10 گیگابایت افزایش داد. قبل از راهاندازی این ویژگی، محدودیت اندازه بسته، استقرار چارچوبهای ML مانند TensorFlow یا PyTorch را در توابع Lambda دشوار میکرد. پس از راهاندازی، افزایش محدودیت اندازه بسته، ML را به حجم کاری مناسب و جذاب برای استقرار در لامبدا تبدیل کرد. در سال 2021، استنتاج ML یکی از سریعترین انواع بار کاری در حال رشد در سرویس لامبدا بود.
آمازون SageMaker، سرویس ML کاملاً مدیریت شده آمازون، دارای ویژگی نظارت بر مدل خود است. با این حال، پروژه نمونه در این پست نشان می دهد که چگونه می توان داده ها را برای استفاده در نظارت مدل برای مشتریانی که از Lambda برای استنتاج ML استفاده می کنند، انجام داد. این پروژه از پسوندهای لامبدا برای گرفتن داده های استنتاج استفاده می کند تا تأثیر بر عملکرد و تأخیر تابع استنتاج را به حداقل برساند. استفاده از پسوندهای لامبدا نیز تأثیر روی توسعه دهندگان عملکرد را به حداقل می رساند. با ادغام از طریق یک برنامه افزودنی، ویژگی نظارت می تواند برای چندین عملکرد اعمال شود و توسط یک تیم متمرکز نگهداری شود.
بررسی اجمالی راه حل
این پروژه حاوی کد منبع و فایلهای پشتیبانی برای یک برنامه کاربردی بدون سرور است که استنتاج بلادرنگ را با استفاده از یک مدل پاسخدهی به سؤال مبتنی بر دیستیلبرت ارائه میکند. این پروژه از مدل پردازش زبان طبیعی (NLP) پرسش و پاسخ صورت در آغوش گرفته است PyTorch برای انجام وظایف استنتاج زبان طبیعی این پروژه همچنین حاوی راه حلی برای انجام گرفتن داده های استنتاج برای پیش بینی های مدل است. نویسنده تابع Lambda می تواند دقیقاً تعیین کند که کدام داده از ورودی درخواست استنتاج و نتیجه پیش بینی به برنامه افزودنی ارسال شود. در این راه حل ورودی و پاسخ را از مدل به پسوند ارسال می کنیم. سپس برنامه افزودنی به صورت دوره ای داده ها را به یک می فرستد سرویس ذخیره سازی ساده آمازون سطل (Amazon S3). پسوند ضبط داده را به عنوان یک تصویر ظرف با استفاده از a می سازیم makefile
. سپس تابع استنتاج لامبدا را به عنوان یک تصویر ظرف می سازیم و تصویر کانتینر افزونه را به عنوان لایه تصویر ظرف اضافه می کنیم. نمودار زیر نمای کلی از معماری را نشان می دهد.
پسوندهای Lambda راهی برای تقویت عملکردهای Lambda هستند. در این پروژه، ما از یک پسوند Lambda خارجی برای ثبت درخواست استنتاج و پیشبینی از استنتاج استفاده میکنیم. برنامه افزودنی خارجی به عنوان یک فرآیند مجزا در محیط زمان اجرا Lambda اجرا می شود و تأثیر آن بر تابع استنتاج را کاهش می دهد. با این حال، این تابع منابعی مانند CPU، حافظه و حافظه را با تابع Lambda به اشتراک می گذارد. توصیه می کنیم حافظه کافی را به عملکرد لامبدا اختصاص دهید تا از دسترسی بهینه منابع اطمینان حاصل شود. (در آزمایش خود، 5 گیگابایت حافظه را به تابع لامبدا استنتاج اختصاص دادیم و در دسترس بودن منابع و تأخیر استنتاج بهینه را مشاهده کردیم). هنگامی که یک استنتاج کامل شد، سرویس Lambda بلافاصله پاسخ را برمیگرداند و منتظر نمی ماند تا برنامه افزودنی ثبت درخواست و پاسخ به سطل S3 را به پایان برساند. با این الگو، پسوند نظارت بر تأخیر استنتاج تأثیر نمی گذارد. برای کسب اطلاعات بیشتر در مورد پسوندهای Lambda این مجموعه ویدیویی را ببینید.
محتویات پروژه
این پروژه از مدل برنامه بدون سرور AWS (AWS SAM) رابط خط فرمان (CLI). این ابزار خط فرمان به توسعه دهندگان اجازه می دهد تا برنامه ها را مقداردهی اولیه و پیکربندی کنند. بسته بندی، ساخت و آزمایش به صورت محلی؛ و در AWS Cloud مستقر شوید.
می توانید کد منبع این پروژه را از اینجا دانلود کنید مخزن GitHub.
این پروژه شامل فایل ها و پوشه های زیر می باشد:
- app/app.py - کد برای تابع Lambda برنامه، از جمله کد برای استنتاج ML.
- برنامه/Dockerfile – Dockerfile برای ساخت تصویر محفظه ای که تابع استنتاج را بسته بندی می کند، مدل دانلود شده از Hugging Face و پسوند Lambda که به صورت لایه ساخته شده است. برخلاف توابع zip.، لایهها را نمیتوان در زمان ایجاد عملکرد به توابع لامبدا بستهبندی شده متصل کرد. در عوض، لایه را می سازیم و محتوای آن را در تصویر ظرف کپی می کنیم.
- گسترش دهنده ها – فایل های پسوند مانیتور مدل. این پسوند Lambda برای ثبت ورودی تابع استنتاج و پیشبینی مربوطه به یک سطل S3 استفاده میشود.
- برنامه/مدل – مدل دانلود شده از Hugging Face.
- app/requirements.txt – وابستگی های پایتون در کانتینر نصب می شوند.
- حوادث - رویدادهای فراخوانی که می توانید از آنها برای آزمایش عملکرد استفاده کنید.
- template.yaml – یک فایل توصیفی که منابع AWS برنامه را تعریف می کند.
این برنامه از چندین منبع AWS از جمله توابع Lambda و an استفاده می کند دروازه API آمازون API. این منابع در تعریف شده است template.yaml
فایل در این پروژه میتوانید برای افزودن منابع AWS از طریق همان فرآیند استقرار که کد برنامه شما را بهروزرسانی میکند، الگو را بهروزرسانی کنید.
پیش نیازها
برای این راهنما، شما باید پیش نیازهای زیر را داشته باشید:
برنامه نمونه را مستقر کنید
برای ساخت اپلیکیشن خود برای اولین بار مراحل زیر را انجام دهید:
- کد زیر را در پوسته خود اجرا کنید. (این افزونه را نیز ایجاد می کند):
- یک تصویر داکر از برنامه مانیتور مدل بسازید. محتویات ساخت در
.aws-sam
فهرست راهنما
- ورود به Amazon ECR:
- یک مخزن در آمازون ECR ایجاد کنید:
aws ecr create-repository
repository-name serverless-ml-model-monitor
--image-scanning-configuration scanOnPush=true
--region us-east-1
- تصویر ظرف را به Amazon ECR فشار دهید:
- لغو نظر خط شماره 1 اینچ برنامه/Dockerfile و آن را ویرایش کنید تا به تصویر مخزن صحیح ECR اشاره کند، سپس خطوط #6 و #7 را در آن حذف کنید. برنامه/Dockerfile:
- دوباره برنامه را بسازید:
ما دوباره می سازیم زیرا Lambda لایه های Lambda را مستقیماً برای نوع بسته بندی تصویر ظرف پشتیبانی نمی کند. ابتدا باید مولفه مانیتورینگ مدل را به عنوان یک تصویر ظرف بسازیم، آن را در Amazon ECR آپلود کنیم و سپس از آن تصویر در برنامه مانیتورینگ مدل به عنوان لایه کانتینر استفاده کنیم.
- در نهایت، تابع Lambda، API Gateway و افزونه را اجرا کنید:
این دستور برنامه شما را با یک سری دستورات در AWS بسته بندی و مستقر می کند:
- نام پشته : نام اعزام شدگان AWS CloudFormation پشته. این باید برای حساب و منطقه شما منحصر به فرد باشد و یک نقطه شروع خوب چیزی است که با نام پروژه شما مطابقت داشته باشد.
- منطقه AWS : منطقه AWS که برنامه خود را در آن مستقر می کنید.
- قبل از استقرار تغییرات را تأیید کنید : اگر روی تنظیم شود
yes
، قبل از اجرای بازبینی دستی، هر مجموعه تغییری به شما نشان داده می شود. اگر روی No تنظیم شود، AWS SAM CLI به طور خودکار تغییرات برنامه را اجرا می کند. - اجازه ایجاد نقش AWS SAM CLI IAM : بسیاری از قالب های AWS SAM، از جمله این مثال، ایجاد می کنند هویت AWS و مدیریت دسترسی نقشهای (IAM) مورد نیاز برای عملکرد(های) Lambda برای دسترسی به خدمات AWS. بهطور پیشفرض، این موارد به حداقل مجوزهای مورد نیاز محدود میشوند. برای استقرار یک پشته CloudFormation که نقشهای IAM را ایجاد یا تغییر میدهد،
CAPABILITY_IAM
ارزش برایcapabilities
باید فراهم شود. اگر مجوز از طریق این اعلان ارائه نشده است، برای استقرار این مثال باید صریحاً عبور کنید--capabilities CAPABILITY_IAM
بهsam deploy
فرمان - آرگومان ها را در samconfig.toml ذخیره کنید : اگر روی تنظیم شود
yes
، انتخاب های شما در یک فایل پیکربندی داخل پروژه ذخیره می شود تا در آینده فقط بتوانید اجرا کنیدsam deploy
بدون پارامتر برای اعمال تغییرات در برنامه شما.
می توانید URL نقطه پایانی API Gateway خود را در مقادیر خروجی نمایش داده شده پس از استقرار پیدا کنید.
برنامه را تست کنید
برای آزمایش برنامه، از Postman یا curl برای ارسال درخواست به نقطه پایانی API Gateway استفاده کنید. مثلا:
شما باید خروجی را مانند کد زیر ببینید. مدل ML از زمینه استنباط کرد و پاسخ سوال ما را برگرداند.
پس از چند دقیقه، باید فایلی را در سطل S3 مشاهده کنید nlp-qamodel-model-monitoring-modelmonitorbucket-
با ورودی و استنتاج ثبت شده است.
پاک کردن
برای حذف برنامه نمونه ای که ایجاد کرده اید، از AWS CLI استفاده کنید:
نتیجه
در این پست، ما یک ویژگی مانیتورینگ مدل را به عنوان یک پسوند Lambda پیاده سازی کردیم و آن را در یک بار کاری استنتاج Lambda ML مستقر کردیم. ما نحوه ساخت و استقرار این راه حل را در حساب AWS خود نشان دادیم. در نهایت، نحوه اجرای یک آزمایش برای تأیید عملکرد مانیتور را نشان دادیم.
لطفا هر گونه نظر یا سوالی را در قسمت نظرات مطرح کنید. برای اطلاعات بیشتر از منابع آموزشی بدون سرور، مراجعه کنید سرزمین بدون سرور.
درباره نویسنده
دن فاکس یک معمار راه حل متخصص اصلی در سازمان تخصصی جهانی برای سرورهای بدون سرور است. Dan با مشتریان همکاری می کند تا به آنها کمک کند تا از خدمات بدون سرور برای ساخت برنامه های کاربردی مقیاس پذیر، مقاوم در برابر خطا، با کارایی بالا و مقرون به صرفه استفاده کنند. دن سپاسگزار است که می تواند در بولدر دوست داشتنی، کلرادو زندگی و کار کند.
نیوتن جین یک مدیر محصول ارشد است که مسئول ایجاد تجربیات جدید برای یادگیری ماشین، محاسبات با کارایی بالا (HPC) و مشتریان پردازش رسانه در AWS Lambda است. او توسعه قابلیتهای جدید را برای افزایش عملکرد، کاهش تأخیر، بهبود مقیاسپذیری، افزایش قابلیت اطمینان و کاهش هزینه هدایت میکند. او همچنین به مشتریان AWS در تعریف یک استراتژی موثر بدون سرور برای برنامه های کاربردی محاسباتی خود کمک می کند.
دیکشا شارما معمار راه حل ها و متخصص یادگیری ماشین در AWS است. او به مشتریان کمک می کند تا پذیرش ابر خود را تسریع کنند، به ویژه در زمینه های یادگیری ماشین و فناوری های بدون سرور. Diksha از شواهد مفهومی سفارشی استفاده می کند که ارزش AWS را در مواجهه با چالش های تجاری و فناوری اطلاعات به مشتریان نشان می دهد. او مشتریان را قادر می سازد تا دانش خود را از AWS داشته باشند و در کنار مشتریان برای ایجاد راه حل مورد نظر خود کار می کند.
ودا رامان یک معمار ارشد راه حل متخصص برای یادگیری ماشین مستقر در مریلند است. ودا با مشتریان همکاری می کند تا به آنها کمک کند تا برنامه های یادگیری ماشینی کارآمد، ایمن و مقیاس پذیر را طراحی کنند. ودا علاقه مند است به مشتریان در استفاده از فناوری های بدون سرور برای یادگیری ماشین کمک کند.
جاش کان رهبر فناوری در سراسر جهان برای سرورهای بدون سرور و یک معمار اصلی راه حل است. او رهبری یک جامعه جهانی از کارشناسان بدون سرور در AWS را بر عهده دارد که به مشتریان در هر اندازهای، از شرکتهای نوپا گرفته تا بزرگترین شرکتهای جهان، کمک میکنند تا به طور موثر از فناوریهای بدون سرور AWS استفاده کنند.
- AI
- آی هنر
- مولد هنر ai
- ربات ai
- هوش مصنوعی
- گواهی هوش مصنوعی
- هوش مصنوعی در بانکداری
- ربات هوش مصنوعی
- ربات های هوش مصنوعی
- نرم افزار هوش مصنوعی
- AWS لامبدا
- آموزش ماشین AWS
- بلاکچین
- کنفرانس بلاک چین ai
- coingenius
- هوش مصنوعی محاوره ای
- کنفرانس کریپتو ai
- دل-ه
- یادگیری عمیق
- گوگل ai
- فراگیری ماشین
- افلاطون
- افلاطون آی
- هوش داده افلاطون
- بازی افلاطون
- PlatoData
- بازی پلاتو
- مقیاس Ai
- نحو
- نحوه فنی
- زفیرنت