ما هیجان زده هستیم که دو قابلیت جدید را در این کشور معرفی کنیم Amazon SageMaker Studio که توسعه تکراری را برای شاغلین یادگیری ماشین (ML) تسریع میکند: حالت محلی و پشتیبانی Docker. توسعه مدل ML اغلب شامل چرخه های تکرار آهسته است زیرا توسعه دهندگان بین کدگذاری، آموزش و استقرار جابجا می شوند. هر مرحله نیاز به انتظار برای راه اندازی منابع محاسباتی از راه دور دارد که اعتبار پیاده سازی ها و دریافت بازخورد در مورد تغییرات را به تاخیر می اندازد.
با حالت محلی، توسعهدهندگان اکنون میتوانند مدلها را آموزش و آزمایش کنند، کد اشکالزدایی و اعتبار خطوط لوله سرتاسر را مستقیماً در نمونه نوتبوک SageMaker Studio خود بدون نیاز به چرخش منابع محاسباتی از راه دور تأیید کنند. این چرخه تکرار را از دقیقه به ثانیه کاهش می دهد و بهره وری توسعه دهنده را افزایش می دهد. پشتیبانی از Docker در نوتبوکهای SageMaker Studio به توسعهدهندگان امکان میدهد بدون زحمت کانتینرهای Docker را بسازند و به کانتینرهای از پیش ساخته شده دسترسی داشته باشند، یک محیط توسعه پایدار در سراسر تیم فراهم میکند و از راهاندازی وقتگیر و مدیریت وابستگی اجتناب میکند.
Local Mode و پشتیبانی Docker یک گردش کار ساده را برای تأیید تغییرات کد و نمونهسازی مدلها با استفاده از کانتینرهای محلی که روی نوتبوک SageMaker Studio اجرا میشوند، ارائه میدهند.
نمونه، مثال. در این پست، شما را از طریق راهاندازی حالت محلی در SageMaker Studio، اجرای یک نمونه کار آموزشی و استقرار مدل بر روی آمازون SageMaker نقطه پایانی از یک نوت بوک SageMaker Studio.
حالت محلی SageMaker Studio
SageMaker Studio حالت محلی را معرفی میکند و به شما امکان میدهد تا بدون نیاز به منابع محاسباتی از راه دور، آموزش، استنتاج، تبدیل دستهای و پردازش کارهای SageMaker را مستقیماً در نمونههای نوتبوک JupyterLab، Code Editor یا SageMaker Studio اجرا کنید. مزایای استفاده از حالت محلی عبارتند از:
- اعتبارسنجی و آزمایش فوری گردشهای کاری درست در محیطهای توسعه یکپارچه (IDE)
- تکرار سریعتر از طریق اجرای محلی برای مشاغل در مقیاس کوچکتر برای بازرسی خروجی ها و شناسایی زودهنگام مسائل
- بهبود کارایی توسعه و اشکال زدایی با حذف انتظار برای مشاغل آموزشی از راه دور
- بازخورد فوری در مورد تغییرات کد قبل از اجرای کارهای کامل در فضای ابری
شکل زیر گردش کار با استفاده از حالت محلی در SageMaker را نشان می دهد.
برای استفاده از حالت محلی، تنظیم کنید instance_type='local'
هنگام اجرای کارهای SageMaker Python SDK مانند آموزش و استنتاج. این کار آنها را به جای تامین منابع ابری، روی نمونه هایی اجرا می کند که توسط SageMaker Studio IDE های شما استفاده می شود.
اگرچه قابلیتهای خاصی مانند آموزش توزیعشده فقط در فضای ابری موجود است، حالت محلی نیاز به تغییر زمینه برای تکرارهای سریع را از بین میبرد. هنگامی که آماده استفاده از قدرت و مقیاس کامل SageMaker هستید، می توانید گردش کار خود را به صورت یکپارچه در فضای ابری اجرا کنید.
پشتیبانی از Docker در SageMaker Studio
SageMaker Studio اکنون همچنین ساخت و اجرای کانتینرهای Docker را به صورت محلی در نمونه نوت بوک SageMaker Studio شما فعال می کند. این ویژگی جدید به شما این امکان را میدهد که تصاویر Docker را قبل از استفاده برای آموزش و استنباط SageMaker در استودیو SageMaker بسازید و اعتبارسنجی کنید.
نمودار زیر معماری سطح بالای ارکستراسیون Docker را در استودیو SageMaker نشان می دهد.
با پشتیبانی Docker در SageMaker Studio، می توانید:
- کانتینرهای Docker را با مدل ها و وابستگی های یکپارچه به طور مستقیم در SageMaker Studio بسازید
- برای ساده سازی ایجاد تصویر، نیاز به فرآیندهای ساخت داکر خارجی را از بین ببرید
- قبل از استقرار مدلها در تولید، کانتینرها را به صورت محلی اجرا کنید تا عملکرد را تأیید کنید
- هنگام استقرار در SageMaker برای آموزش و میزبانی مجدد از کانتینرهای محلی استفاده کنید
اگرچه برخی از قابلیتهای پیشرفته Docker مانند شبکههای چند کانتینری و سفارشی تا زمان نگارش این مقاله پشتیبانی نمیشوند، عملکرد اصلی ساخت و اجرا برای تسریع در توسعه کانتینرها برای آوردن گردشهای کاری کانتینر خود (BYOC) در دسترس است.
پیش نیازها
برای استفاده از حالت محلی در برنامه های SageMaker Studio، باید پیش نیازهای زیر را تکمیل کنید:
- برای کشیدن تصاویر از رجیستری ظروف الاستیک آمازون (Amazon ECR)، حساب میزبان تصویر ECR باید اجازه دسترسی به کاربر را ارائه دهد هویت و مدیریت دسترسی نقش (IAM). نقش دامنه همچنین باید به آمازون ECR دسترسی داشته باشد.
- برای فعال کردن قابلیت های Local Mode و Docker، باید آن را تنظیم کنید
EnableDockerAccess
پارامتر به true برای دامنهDockerSettings
با استفاده از رابط خط فرمان AWS (AWS CLI). این به کاربران دامنه اجازه می دهد تا از ویژگی های Local Mode و Docker استفاده کنند. به طور پیش فرض، Local Mode و Docker در SageMaker Studio غیرفعال هستند. برای اعمال بهروزرسانی سرویس Docker، همه برنامههای موجود SageMaker Studio باید دوباره راهاندازی شوند. در زیر نمونه ای از دستورات AWS CLI برای به روز رسانی دامنه SageMaker Studio است:
- شما باید نقش SageMaker IAM را به روز کنید تا بتوانید تصاویر push Docker به Amazon ECR:
فایل های پایتون را در فضاهای SageMaker Studio با استفاده از حالت محلی اجرا کنید
SageMaker Studio JupyterLab و Code Editor (بر اساس Code-OSS، کد ویژوال استودیو – متن باز)، SageMaker Studio را گسترش می دهد تا بتوانید با استفاده از IDE سبک وزن محبوب بنویسید، آزمایش کنید، اشکال زدایی کنید و کدهای ML و تجزیه و تحلیل خود را اجرا کنید. برای جزئیات بیشتر در مورد نحوه شروع به کار با SageMaker Studio IDE ها، مراجعه کنید افزایش بهره وری در Amazon SageMaker Studio: معرفی JupyterLab Spaces و ابزارهای هوش مصنوعی مولد و جدید – ویرایشگر کد، مبتنی بر کد-OSS در مقابل کد منبع باز اکنون در Amazon SageMaker Studio در دسترس است. مراحل زیر را کامل کنید:
- یک ترمینال جدید ایجاد کنید.
- افزونه Docker CLI و Docker Compose را طبق دستورالعملهای زیر نصب کنید GitHub repo. اگر دستورات زنجیره ای شکست خوردند، دستورات را یکی یکی اجرا کنید.
شما باید SageMaker SDK را به آخرین نسخه به روز کنید.
- دویدن
pip install sagemaker -Uq
در ترمینال
فقط برای ویرایشگر کد، باید محیط پایتون را طوری تنظیم کنید که در ترمینال فعلی اجرا شود.
- در ویرایشگر کد، در منوی پروندهانتخاب کنید تنظیمات و تنظیمات.
- جستجو و انتخاب کنید ترمینال: اجرا در فایل Dir.
- در Code Editor یا JupyterLab، آن را باز کنید
scikit_learn_script_mode_local_training_and_serving
پوشه و اجرا کنیدscikit_learn_script_mode_local_training_and_serving.py
فایل.
با انتخاب می توانید اسکریپت را اجرا کنید دویدن در ویرایشگر کد یا با استفاده از CLI در ترمینال JupyterLab. شما می توانید ببینید که چگونه مدل به صورت محلی آموزش داده می شود. سپس مدل را در نقطه پایانی SageMaker به صورت محلی مستقر می کنید و ریشه میانگین مربع خطا را محاسبه می کنید (RMSE
).
شبیه سازی آموزش و استنتاج در SageMaker Studio Classic با استفاده از حالت محلی
همچنین می توانید از یک نوت بوک در SageMaker Studio Classic برای اجرای یک کار آموزشی در مقیاس کوچک استفاده کنید CIFAR10
با استفاده از حالت محلی، مدل را به صورت محلی اجرا کنید و استنتاج را انجام دهید.
دفترچه یادداشت خود را تنظیم کنید
برای راه اندازی نوت بوک مراحل زیر را انجام دهید:
- SageMaker Studio Classic را باز کنید و موارد زیر را شبیه سازی کنید GitHub repo.
- باز کردن
pytorch_local_mode_cifar10.ipynb notebook in blog/pytorch_cnn_cifar10
.
- برای تصویر، انتخاب کنید
PyTorch 2.1.0 Python 3.10 CPU Optimized
.
اطمینان حاصل کنید که نوت بوک شما نمونه و انتخاب هسته درست را نشان می دهد.
- با انتخاب یک ترمینال باز کنید ترمینال را راه اندازی کنید در تصویر فعلی SageMaker.
- افزونه Docker CLI و Docker Compose را طبق دستورالعملهای زیر نصب کنید GitHub repo.
از آنجایی که از Docker از SageMaker Studio Classic استفاده می کنید، هنگام اجرای دستورات، sudo را حذف کنید زیرا ترمینال از قبل تحت superuser اجرا می شود. برای SageMaker Studio Classic، دستورات نصب به سیستم عامل تصویر برنامه SageMaker Studio بستگی دارد. به عنوان مثال، تصاویر فریمورک مبتنی بر DLC مبتنی بر اوبونتو هستند که دستورالعملهای زیر در آنها کار میکنند. با این حال، برای یک تصویر مبتنی بر دبیان مانند DataScience Images، باید دستورالعملهای زیر را دنبال کنید GitHub repo. اگر دستورات زنجیره ای شکست خوردند، دستورات را یکی یکی اجرا کنید. شما باید نسخه Docker نمایش داده شده را ببینید.
- پنجره ترمینال را باز بگذارید، به نوت بوک برگردید و سلول به سلول آن را اجرا کنید.
مطمئن شوید که سلول را با pip install -U sagemaker
بنابراین شما از آخرین نسخه SageMaker Python SDK استفاده می کنید.
آموزش محلی
هنگامی که کار آموزش محلی SageMaker را شروع می کنید، خطوط ثبت زیر را خواهید دید:
این نشان می دهد که آموزش به صورت محلی با استفاده از Docker اجرا می شد.
صبور باشید در حالی که pytorch-training:2.1-cpu-py310
تصویر داکر کشیده شده است. به دلیل حجم بزرگ آن (5.2 گیگابایت)، ممکن است چند دقیقه طول بکشد.
تصاویر Docker در حجم اصلی برنامه SageMaker Studio ذخیره میشوند که برای کاربران نهایی قابل دسترسی نیست. تنها راه دسترسی و تعامل با تصاویر Docker از طریق عملیات API در معرض Docker است.
از نقطه نظر محرمانه بودن کاربر، پلتفرم SageMaker Studio هرگز به تصاویر خاص کاربر دسترسی یا ذخیره نمی کند.
وقتی آموزش کامل شد، میتوانید خطوط ثبت موفقیت زیر را ببینید:
استنتاج محلی
مراحل زیر را انجام دهید:
- نقطه پایانی SageMaker را با استفاده از حالت محلی SageMaker مستقر کنید.
صبور باشید در حالی که pytorch-inference:2.1-cpu-py310
تصویر داکر کشیده شده است. به دلیل حجم بزرگ آن (4.32 گیگابایت)، ممکن است چند دقیقه طول بکشد.
- با استفاده از تصاویر آزمایشی، نقطه پایانی SageMaker را که به صورت محلی مستقر شده است، فراخوانی کنید.
شما می توانید کلاس های پیش بینی شده را ببینید: قورباغه، کشتی، ماشین و هواپیما:
- از آنجایی که نقطه پایانی SageMaker Local هنوز فعال است، به پنجره باز ترمینال بازگردید و کانتینرهای در حال اجرا را فهرست کنید:
docker ps
شما می توانید دویدن را ببینید pytorch-inference:2.1-cpu-py310
ظرفی که از نقطه پایانی SageMaker پشتیبانی می کند.
- برای خاموش کردن نقطه پایانی محلی SageMaker و توقف کانتینر در حال اجرا، زیرا می توانید هر بار فقط یک نقطه پایان محلی را اجرا کنید، کد پاکسازی را اجرا کنید.
- برای اطمینان از خراب بودن کانتینر Docker، می توانید به پنجره ترمینال باز شده بروید، docker ps را اجرا کنید و مطمئن شوید که کانتینرهای در حال اجرا وجود ندارد.
- اگر کانتینری در حال اجرا دیدید، اجرا کنید
docker stop <CONTAINER_ID>
متوقف کردنش
نکاتی برای استفاده از حالت محلی SageMaker
اگر برای اولین بار است که از SageMaker استفاده می کنید، به آموزش مدل های یادگیری ماشینی. برای کسب اطلاعات بیشتر در مورد استقرار مدلها برای استنباط با SageMaker، مراجعه کنید استقرار مدل ها برای استنتاج.
توصیه های زیر را در نظر داشته باشید:
- فایل ها و پوشه های ورودی و خروجی را برای درک بارگذاری مجموعه داده و مدل چاپ کنید
- از 1-2 دوره و مجموعه داده های کوچک برای آزمایش سریع استفاده کنید
- برای بهینهسازی تنظیمات محیط، وابستگیها را از قبل در Dockerfile نصب کنید
- کد سریال سازی را در نقاط پایانی برای اشکال زدایی جدا کنید
نصب Docker را به عنوان پیکربندی چرخه حیات پیکربندی کنید
میتوانید فرآیند نصب Docker را بهعنوان یک اسکریپت پیکربندی چرخه حیات (LCC) تعریف کنید تا هر بار که فضای SageMaker Studio جدید شروع میشود، راهاندازی را ساده کنید. LCC ها اسکریپت هایی هستند که SageMaker در طول رویدادهایی مانند ایجاد فضا اجرا می کند. رجوع به آزمایشگاه ژوپیتر, ویرایشگر کد، یا SageMaker Studio Classic راه اندازی LCC (با استفاده از docker install cli به عنوان مرجع) برای کسب اطلاعات بیشتر.
تصاویر سفارشی Docker را در فضاهای SageMaker Studio بسازید و آزمایش کنید
در این مرحله، Docker را در فضای برنامه JupyterLab (یا Code Editor) نصب میکنید و از Docker برای ساخت، آزمایش و انتشار تصاویر Docker سفارشی با فضاهای SageMaker Studio استفاده میکنید. Spaces برای مدیریت ذخیره سازی و نیازهای منابع برخی از برنامه های SageMaker Studio استفاده می شود. هر فضا یک رابطه 1:1 با یک نمونه از یک برنامه دارد. هر برنامه پشتیبانی شده ای که ایجاد می شود فضای مخصوص به خود را دارد. برای کسب اطلاعات بیشتر در مورد فضاهای SageMaker به افزایش بهره وری در Amazon SageMaker Studio: معرفی JupyterLab Spaces و ابزارهای هوش مصنوعی مولد. اطمینان حاصل کنید که فضای جدیدی با حداقل 30 گیگابایت فضای ذخیره سازی فراهم کرده اید تا امکان ذخیره سازی کافی برای تصاویر و مصنوعات Docker فراهم شود.
Docker را داخل یک فضا نصب کنید
برای نصب افزونه Docker CLI و Docker Compose در فضای JupyterLab، دستورات زیر را اجرا کنید. GitHub repo. SageMaker Studio فقط از Docker نسخه 20.10.X پشتیبانی می کند.
ساخت تصاویر داکر
برای تأیید اینکه Docker در فضای JupyterLab شما نصب شده و کار می کند، کد زیر را اجرا کنید:
برای ساختن یک تصویر داکر سفارشی در فضای JupyterLab (یا ویرایشگر کد)، مراحل زیر را انجام دهید:
- یک Dockerfile خالی بسازید:
touch Dockerfile
- Dockerfile را با دستورات زیر ویرایش کنید، که یک تصویر وب سرور فلاسک ساده از تصویر پایه python:3.10.13-bullseye که در میزبانی شده است ایجاد می کند. مرکز داکر:
کد زیر محتویات یک نمونه فایل کاربردی فلاسک را نشان می دهد app.py
:
علاوه بر این، میتوانید دستورات Dockerfile مرجع را بهروزرسانی کنید تا بستهها و مصنوعات مورد نظر خود را در بر بگیرد.
- یک تصویر Docker با استفاده از Dockerfile مرجع بسازید:
docker build --network sagemaker --tag myflaskapp:v1 --file ./Dockerfile .
شامل --network
sagemaker در دستور ساخت docker شما، در غیر این صورت ساخت شکست خواهد خورد. کانتینرها را نمیتوان در پل پیشفرض Docker یا شبکههای Docker سفارشی اجرا کرد. کانتینرها در همان شبکه کانتینر برنامه SageMaker Studio اجرا می شوند. کاربران فقط می توانند از Sagemaker برای نام شبکه استفاده کنند.
- هنگامی که ساخت شما کامل شد، در صورت وجود تصویر اعتبار سنجی کنید. بیلد را دوباره به عنوان تصویر ECR تگ کنید و فشار دهید. اگر با مشکلات مجوز مواجه شدید، دستور aws ecr get-login-password… را اجرا کنید و سعی کنید push/pull Docker را دوباره اجرا کنید:
تست تصاویر داکر
نصب Docker در فضای JupyterLab (یا ویرایشگر کد) SageMaker Studio به شما امکان می دهد تصاویر از پیش ساخته شده یا سفارشی Docker را به عنوان کانتینر (یا برنامه های کاربردی کانتینری) آزمایش کنید. در این بخش، ما از دستور docker run برای ارائه کانتینرهای Docker در فضای SageMaker Studio برای آزمایش بارهای کاری کانتینری مانند سرویس های وب REST و اسکریپت های Python استفاده می کنیم. مراحل زیر را کامل کنید:
- اگر تصویر آزمایشی وجود نداشت، Docker pull را اجرا کنید تا تصویر را به دستگاه محلی خود بکشید:
sagemaker-user@default:~$ docker pull 123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:v1
- اگر با مشکل احراز هویت مواجه شدید، دستورات زیر را اجرا کنید:
aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com
- یک ظرف برای آزمایش حجم کاری خود ایجاد کنید:
docker run --network sagemaker 123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:v1
این یک نمونه کانتینر جدید را می چرخاند و برنامه تعریف شده با استفاده از ENTRYPOINT Docker را اجرا می کند:
- برای آزمایش اینکه آیا نقطه پایانی وب شما فعال است، به URL بروید
https://<sagemaker-space-id>.studio.us-east-2.sagemaker.aws/jupyterlab/default/proxy/6006/
.
شما باید یک پاسخ JSON مشابه تصویر زیر را ببینید.
پاک کردن
برای جلوگیری از تحمیل هزینههای غیر ضروری، منابعی را که هنگام اجرای نمونههای این پست ایجاد کردهاید حذف کنید:
- در دامنه SageMaker Studio خود، انتخاب کنید استودیو کلاسیک در صفحه پیمایش، سپس انتخاب کنید توقف.
- در دامنه SageMaker Studio خود، انتخاب کنید آزمایشگاه ژوپیتر or ویرایشگر کد در صفحه پیمایش، برنامه خود را انتخاب کنید و سپس انتخاب کنید توقف.
نتیجه
SageMaker Studio Local Mode و Docker به توسعهدهندگان این امکان را میدهد تا سریعتر بدون ترک فضای کاری، پیادهسازیهای ML را بسازند، آزمایش کنند و تکرار کنند. این قابلیت ها با ارائه دسترسی فوری به محیط های آزمایشی و خروجی ها، گردش کار را بهینه کرده و بهره وری را بهبود می بخشد. SageMaker Studio Local Model و پشتیبانی Docker را با استفاده از ما امتحان کنید قابلیت سوار شدن سریع، که به شما امکان می دهد در عرض چند دقیقه یک دامنه جدید را برای کاربران تک بچرخانید. نظرات خود را در بخش نظرات به اشتراک بگذارید!
درباره نویسنده
شوتا سینگ یک مدیر محصول ارشد در تیم پلتفرم یادگیری ماشین آمازون SageMaker (ML) در AWS، پیشرو SageMaker Python SDK است. او بیش از 5 سال در چندین نقش محصول در آمازون کار کرده است. او دارای مدرک لیسانس علوم در مهندسی کامپیوتر و کارشناسی ارشد در مهندسی مالی، هر دو از دانشگاه نیویورک است.
ایتان سلا یک معمار راه حل های تخصصی هوش مصنوعی و یادگیری ماشین مولد در AWS است. او با مشتریان AWS برای ارائه راهنمایی و کمک فنی کار می کند و به آنها کمک می کند تا راه حل های هوش مصنوعی و یادگیری ماشینی را در AWS بسازند و به کار گیرند. ایتان در اوقات فراغت خود از دویدن و خواندن جدیدترین مقالات یادگیری ماشین لذت می برد.
پراناو مورتی یک معمار راه حل های تخصصی AI/ML در AWS است. او بر کمک به مشتریان در ساخت، آموزش، استقرار و انتقال بارهای کاری یادگیری ماشینی (ML) به SageMaker تمرکز دارد. او قبلاً در صنعت نیمهرسانا کار میکرد و مدلهای بینایی کامپیوتری بزرگ (CV) و پردازش زبان طبیعی (NLP) را برای بهبود فرآیندهای نیمهرسانا با استفاده از تکنیکهای پیشرفته ML توسعه داد. در اوقات فراغت از بازی شطرنج و مسافرت لذت می برد. می توانید پراناو را در آن پیدا کنید لینک.
مفضل روهاوالا مهندس نرم افزار در AWS است. او روی کتابخانه SageMaker Python SDK برای Amazon SageMaker کار می کند. او در اوقات فراغت خود از سفر، فعالیت های بیرون از خانه لذت می برد و از طرفداران فوتبال است.
- محتوای مبتنی بر SEO و توزیع روابط عمومی. امروز تقویت شوید.
- PlatoData.Network Vertical Generative Ai. به خودت قدرت بده دسترسی به اینجا.
- PlatoAiStream. هوش وب 3 دانش تقویت شده دسترسی به اینجا.
- PlatoESG. کربن ، CleanTech، انرژی، محیط، خورشیدی، مدیریت پسماند دسترسی به اینجا.
- PlatoHealth. هوش بیوتکنولوژی و آزمایشات بالینی. دسترسی به اینجا.
- منبع: https://aws.amazon.com/blogs/machine-learning/accelerate-ml-workflows-with-amazon-sagemaker-studio-local-mode-and-docker-support/