امروز در حال راه اندازی هستیم آمازون SageMaker استنباط بر AWS Graviton به شما امکان می دهد از مزایای قیمت، عملکرد و کارایی که از تراشه های Graviton به دست می آید، استفاده کنید.
نمونههای مبتنی بر Graviton برای استنتاج مدل در SageMaker در دسترس هستند. این پست به شما کمک میکند تا بار کار استنتاج یادگیری ماشین (ML) را از x86 به نمونههای مبتنی بر Graviton در SageMaker منتقل کنید. ما یک راهنمای گام به گام برای استقرار مدل آموزشدیده SageMaker شما در نمونههای مبتنی بر Graviton، پوشش بهترین شیوهها هنگام کار با Graviton، بحث در مورد مزایای عملکرد قیمت، و نحوه استقرار یک مدل TensorFlow در نمونه SageMaker Graviton ارائه میکنیم.
مروری کوتاه بر گراویتون
AWS Graviton خانوادهای از پردازندههایی است که توسط AWS طراحی شدهاند که بهترین عملکرد قیمتی را ارائه میکنند و نسبت به همتایان x86 خود در مصرف انرژی کارآمدتر هستند. پردازندههای AWS Graviton 3 جدیدترین در خانواده پردازندههای Graviton هستند و برای بارهای کاری ML، از جمله پشتیبانی از bfloat16 و دو برابر پهنای باند Single Instruction Multiple Data (SIMD) بهینهسازی شدهاند. وقتی این دو ویژگی با هم ترکیب شوند، Graviton 3 می تواند تا سه برابر عملکرد بهتری نسبت به نمونه های Graviton 2 ارائه دهد. Graviton 3 همچنین برای عملکرد مشابه تا 60٪ انرژی کمتری مصرف می کند ابر محاسبه الاستیک آمازون نمونه های (Amazon EC2). اگر می خواهید ردپای کربن خود را کاهش دهید و به اهداف پایداری خود برسید، این یک ویژگی عالی است.
بررسی اجمالی راه حل
برای استقرار مدلهای خود در نمونههای گراویتون، از هر دو استفاده کنید ظروف یادگیری عمیق AWS or ظروف خود را بیاورید سازگار با معماری Arm v8.2.
انتقال (یا استقرار جدید) مدلهای شما از نمونههای مجهز به x86 به نمونههای Graviton ساده است، زیرا AWS کانتینرهایی را برای میزبانی مدلها با PyTorch، TensorFlow، Scikit-learn، و XGBoost فراهم میکند، و مدلها دارای معماری ناشناس هستند. با این وجود، اگر میخواهید کتابخانههای خود را بیاورید، میتوانید این کار را نیز انجام دهید، فقط مطمئن شوید که کانتینر شما با محیطی ساخته شده است که از معماری Arm64 پشتیبانی میکند. برای اطلاعات بیشتر ببین کانتینر الگوریتم خود را بسازید.
برای استقرار مدل خود باید سه مرحله را طی کنید:
- ایجاد یک مدل SageMaker: در میان پارامترهای دیگر، اطلاعات مربوط به مکان فایل مدل، محفظه ای که برای استقرار استفاده خواهد شد و مکان اسکریپت استنتاج را شامل می شود. (اگر یک مدل موجود دارید که قبلاً در یک نمونه استنتاج مبتنی بر x86 مستقر شده است، می توانید از این مرحله رد شوید.)
- ایجاد یک پیکربندی نقطه پایانی: این شامل اطلاعاتی در مورد نوع نمونه مورد نظر شما برای نقطه پایانی است (به عنوان مثال، ml.c7g.xlarge برای Graviton3)، نام مدلی که در مرحله 1 ایجاد کردید، و تعداد نمونهها در هر نقطه پایانی
- نقطه پایانی را با پیکربندی نقطه پایانی ایجاد شده در مرحله 2 راه اندازی کنید.
پیش نیازها
قبل از شروع، پیش نیازهای زیر را در نظر بگیرید:
- پیش نیازهای ذکر شده را تکمیل کنید پیش نیازها.
- مدل شما باید یک مدل PyTorch، TensorFlow، XGBoost یا Scikit-learn باشد. جدول زیر خلاصه ای از نسخه هایی است که در حال حاضر تا زمان نگارش این مقاله پشتیبانی می شوند. برای اطلاع از آخرین به روز رسانی ها، مراجعه کنید SageMaker Framework Containers (فقط پشتیبانی SM).
. پــایتــون TensorFlow PyTorch Scikit یاد بگیر XGBoost نسخه های پشتیبانی شده 3.8 2.9.1 1.12.1 1.0-1 1.3-1 تا 1.5-1 - اسکریپت استنتاج در آن ذخیره می شود سرویس ذخیره سازی ساده آمازون (Amazon S3).
در بخشهای بعدی، شما را با مراحل استقرار آشنا میکنیم.
یک مدل SageMaker ایجاد کنید
اگر یک مدل موجود دارید که قبلاً در یک نمونه استنتاج مبتنی بر x86 مستقر شده است، می توانید این مرحله را نادیده بگیرید. در غیر این صورت، مراحل زیر را برای ایجاد یک مدل SageMaker انجام دهید:
- مدلی را که در یک سطل S3 ذخیره کرده اید پیدا کنید. URI را کپی کنید.
شما از مدل URI در آینده استفاده می کنیدMODEL_S3_LOCATION
. - نسخه فریمورک و نسخه پایتون که در آموزش مدل استفاده شده را شناسایی کنید.
شما باید یک محفظه از لیست ظروف یادگیری عمیق AWS در چارچوب و نسخه پایتون خود انتخاب کنید. برای اطلاعات بیشتر مراجعه کنید معرفی تصاویر کانتینر چند معماری برای Amazon ECR. - URI اسکریپت پایتون استنتاج را در سطل S3 بیابید (نام فایل رایج است
inference.py
).
URI اسکریپت استنتاج در مورد نیاز استINFERENCE_SCRIPT_S3_LOCATION
. - با این متغیرها، می توانید با دستور زیر SageMaker API را فراخوانی کنید:
شما همچنین می توانید تصاویر چند معماری ایجاد کنید و از همان تصویر اما با برچسب های مختلف استفاده کنید. شما می توانید مشخص کنید که نمونه شما در کدام معماری مستقر خواهد شد. برای اطلاعات بیشتر مراجعه کنید معرفی تصاویر کانتینر چند معماری برای Amazon ECR.
یک پیکربندی نقطه پایانی ایجاد کنید
پس از ایجاد مدل، باید با اجرای دستور زیر یک پیکربندی نقطه پایانی ایجاد کنید (به نوع نمونه ای که استفاده می کنیم توجه کنید):
تصویر زیر جزئیات پیکربندی نقطه پایانی را در کنسول SageMaker نشان می دهد.
نقطه پایانی را راه اندازی کنید
با پیکربندی نقطه پایانی ایجاد شده در مرحله قبل، می توانید نقطه پایانی را مستقر کنید:
صبر کنید تا نقطه پایانی مدل شما مستقر شود. پیشبینیها را میتوان به همان روشی که برای نقاط پایانی خود در موارد مبتنی بر x86 پیشبینی میکنید درخواست کرد.
اسکرین شات زیر نقطه پایانی شما را در کنسول SageMaker نشان می دهد.
آنچه پشتیبانی می شود
SageMaker ظروف عمیق Graviton با عملکرد بهینه شده را برای چارچوب های TensorFlow و PyTorch ارائه می دهد. این کانتینرها از دید کامپیوتر، پردازش زبان طبیعی، توصیهها و موارد استفاده استنتاج مبتنی بر مدل عمیق و گسترده پشتیبانی میکنند. علاوه بر کانتینرهای یادگیری عمیق، SageMaker همچنین کانتینرهایی را برای چارچوب های کلاسیک ML مانند XGBoost و Scikit-learn ارائه می دهد. کانتینرها با نمونه های c6g/m6g و c7g باینری سازگار هستند، بنابراین انتقال برنامه استنتاج از نسلی به نسل دیگر بدون درز است.
C6g/m6g از fp16 (شناور نیمه دقیق) پشتیبانی می کند و برای مدل های سازگار عملکردی معادل یا بهتر در مقایسه با نمونه های c5 ارائه می دهد. C7g با دوبرابر کردن عرض SIMD و پشتیبانی از bfloat-16 (bf16)، که مقرون به صرفه ترین پلت فرم برای اجرای مدل های شما است، عملکرد ML را به طور قابل ملاحظه ای افزایش می دهد.
هر دو c6g/m6g و c7g عملکرد خوبی را برای ML کلاسیک (مثلا XGBoost) در مقایسه با سایر نمونههای CPU در SageMaker ارائه میکنند. پشتیبانی از Bfloat-16 در c7g امکان استقرار کارآمد مدل های آموزش دیده bf16 یا AMP (Automatic Mixed Precision) را فراهم می کند. کتابخانه محاسباتی Arm (ACL) در Graviton هستههای bfloat-16 را فراهم میکند که میتوانند حتی عملگرهای fp32 را از طریق حالت ریاضی سریع، بدون کوانتیزهسازی مدل، شتاب دهند.
بهترین شیوه های توصیه شده
در نمونه های Graviton، هر vCPU یک هسته فیزیکی است. هیچ مناقشه ای برای منابع رایج CPU وجود ندارد (برخلاف SMT)، و مقیاس عملکرد بار کاری با هر افزودن vCPU خطی است. بنابراین، توصیه می شود هر زمان که مورد استفاده اجازه می دهد از استنباط دسته ای استفاده کنید. این امکان استفاده موثر از vCPU ها را با پردازش موازی دسته در هر هسته فیزیکی فراهم می کند. اگر استنباط دستهای ممکن نباشد، اندازه نمونه بهینه برای بار معین مورد نیاز است تا اطمینان حاصل شود که سربار زمانبندی رشتههای سیستمعامل از توان محاسباتی همراه با vCPUهای اضافی بیشتر نیست.
TensorFlow به طور پیشفرض دارای هستههای Eigen است و توصیه میشود برای دریافت بهینهترین باطن استنتاج به OneDNN با ACL بروید. پشتیبانی OneDNN و حالت ریاضی سریع bfloat-16 را می توان هنگام راه اندازی سرویس کانتینر فعال کرد:
دستور سرویس قبلی میزبان یک مدل استاندارد resnet50 با دو پیکربندی مهم است:
اینها را می توان به روش زیر به محفظه استنتاج منتقل کرد:
نمونه استقرار
در این پست، ما به شما نشان میدهیم که چگونه یک مدل TensorFlow را که در SageMaker آموزش دیده است، بر روی یک نمونه استنتاج SageMaker مبتنی بر Graviton اجرا کنید.
شما می توانید نمونه کد را در یک نمونه نوت بوک SageMaker اجرا کنید Amazon SageMaker Studio نوت بوک یا یک نوت بوک Jupyter در حالت محلی. اگر از نوت بوک Jupyter در حالت محلی استفاده می کنید، باید نقش اجرای SageMaker را بازیابی کنید.
مثال زیر مجموعه داده CIFAR-10 را در نظر می گیرد. شما می توانید نمونه نوت بوک را از نمونه های SageMaker دنبال کنید GitHub repo برای بازتولید مدلی که در این پست استفاده شده است. ما از مدل آموزش دیده و cifar10_keras_main.py اسکریپت پایتون برای استنتاج
مدل در یک سطل S3 ذخیره می شود: s3://aws-ml-blog/artifacts/run-ml-inference-on-graviton-based-instances-with-amazon-sagemaker/model.tar.gz
La cifar10_keras_main.py
اسکریپت، که می تواند برای استنتاج استفاده شود، در زیر ذخیره می شود:s3://aws-ml-blog/artifacts/run-ml-inference-on-graviton-based-instances-with-amazon-sagemaker/script/cifar10_keras_main.py
ما با استفاده از us-east-1
منطقه و استقرار مدل در یک نمونه مبتنی بر گراویتون ml.c7g.xlarge. بر این اساس، URI کانتینر یادگیری عمیق AWS ما است 763104351884.dkr.ecr.us-east-1.amazonaws.com/tensorflow-inference-graviton:2.9.1-cpu-py38-ubuntu20.04-sagemaker
- با کد زیر راه اندازی کنید:
- مجموعه داده را برای آزمایش نقطه پایانی دانلود کنید:
- پیکربندی مدل و نقطه پایانی را ایجاد کنید و نقطه پایانی را مستقر کنید:
- به صورت اختیاری، می توانید اسکریپت استنتاج خود را به آن اضافه کنید
Environment
increate_model
اگر در ابتدا آن را به عنوان یک مصنوع به مدل SageMaker خود در طول آموزش اضافه نکردید:شما باید چند دقیقه صبر کنید تا استقرار انجام شود.
- وضعیت نقطه پایانی را با کد زیر تأیید کنید:
شما همچنین می توانید چک کنید کنسول مدیریت AWS برای اینکه ببینید چه زمانی مدل شما مستقر شده است.
- محیط زمان اجرا را برای فراخوانی نقاط پایانی تنظیم کنید:
اکنون payload را برای فراخوانی نقطه پایانی آماده می کنیم. ما از همان نوع تصاویر استفاده شده برای آموزش مدل استفاده می کنیم. این ها در مراحل قبلی دانلود شدند.
- محموله را روی تانسورها ریخته و قالب درستی را که مدل انتظار دارد تنظیم کنید. برای این مثال، ما فقط یک پیشبینی درخواست میکنیم.
خروجی مدل را به صورت آرایه می گیریم.
- ما می توانیم این خروجی را به احتمالات تبدیل کنیم اگر یک softmax برای آن اعمال کنیم:
منابع را پاکسازی کنید
خدمات مربوط به این راه حل متحمل هزینه است. وقتی استفاده از این راه حل را تمام کردید، منابع زیر را پاک کنید:
مقایسه قیمت و عملکرد
نمونههای مبتنی بر گراویتون در مقایسه با نمونههای مبتنی بر x86، کمترین قیمت و بهترین عملکرد را ارائه میدهند. مشابه نمونههای EC2، نقاط پایانی استنباط SageMaker با نمونههای ml.c6g (Graviton 2) 20٪ قیمت کمتری در مقایسه با ml.c5 ارائه میکند و نمونههای Graviton 3 ml.c7g 15٪ ارزانتر از نمونههای ml.c6 هستند. برای اطلاعات بیشتر مراجعه کنید قیمت گذاری آمازون SageMaker.
نتیجه
در این پست، قابلیت جدید SageMaker را برای استقرار مدلها در نمونههای استنتاج مبتنی بر Graviton به نمایش گذاشتیم. ما به شما راهنمایی هایی در مورد بهترین شیوه ها ارائه کردیم و به طور خلاصه در مورد مزایای قیمت-عملکرد نوع جدید نمونه های استنتاج بحث کردیم.
برای آشنایی بیشتر با گراویتون به ادامه مطلب مراجعه کنید پردازنده گراویتون AWS. می توانید با نمونه های EC2 مبتنی بر AWS Graviton در کنسول EC2 آمازون و با مراجعه به راهنمای فنی AWS Graviton. شما می توانید یک نقطه پایانی مدل Sagemaker را برای استنتاج در Graviton با کد نمونه در این پست وبلاگ مستقر کنید.
درباره نویسندگان
ویکتور جارامیلو، دکترا، مهندس ارشد یادگیری ماشین در خدمات حرفه ای AWS است. قبل از AWS، او یک استاد دانشگاه و دانشمند پژوهشی در زمینه تعمیر و نگهداری پیشبینی بود. او در اوقات فراغت از موتور سواری و مکانیک موتور سیکلت خود لذت می برد.
زمناکو اوراحمن، دکترا، یکی از اعضای Practice Manager، ML SME، و Machine Learning Technical Field Community (TFC) در خدمات وب آمازون است. او به مشتریان کمک می کند تا با استفاده از تجزیه و تحلیل داده ها و یادگیری ماشین، از قدرت ابر برای استخراج ارزش از داده های خود استفاده کنند.
سونیتا نادامپالی مدیر توسعه نرم افزار در AWS است. او بهینه سازی عملکرد نرم افزار Graviton را برای تکیه ماشین، HPC و بارهای کاری چندرسانه ای هدایت می کند. او مشتاق توسعه منبع باز و ارائه راه حل های نرم افزاری مقرون به صرفه با Arm SoC است.
جانا لیو یک مهندس توسعه نرم افزار در تیم آمازون SageMaker است. کار فعلی او بر کمک به توسعه دهندگان متمرکز است که به طور موثر مدل های یادگیری ماشین را میزبانی کنند و عملکرد استنتاج را بهبود بخشند. او مشتاق تجزیه و تحلیل داده های مکانی و استفاده از هوش مصنوعی برای حل مشکلات اجتماعی است.
آلن تان یک مدیر ارشد محصول با SageMaker است که تلاشها را برای استنتاج مدلهای بزرگ رهبری میکند. او علاقه زیادی به استفاده از یادگیری ماشینی در حوزه تجزیه و تحلیل دارد. خارج از محل کار، او از فضای باز لذت می برد.
- AI
- آی هنر
- مولد هنر ai
- ربات ai
- آمازون SageMaker
- هوش مصنوعی
- گواهی هوش مصنوعی
- هوش مصنوعی در بانکداری
- ربات هوش مصنوعی
- ربات های هوش مصنوعی
- نرم افزار هوش مصنوعی
- AMI های یادگیری عمیق AWS
- آموزش ماشین AWS
- بهترین شیوه
- بلاکچین
- کنفرانس بلاک چین ai
- coingenius
- هوش مصنوعی محاوره ای
- کنفرانس کریپتو ai
- دل-ه
- یادگیری عمیق
- گوگل ai
- فراگیری ماشین
- افلاطون
- افلاطون آی
- هوش داده افلاطون
- بازی افلاطون
- PlatoData
- بازی پلاتو
- مقیاس Ai
- نحو
- نحوه فنی
- Tensorflow در AWS
- زفیرنت