آمازون SageMaker نقاط پایانی چند مدلی (MME) یک راه مقیاس پذیر و مقرون به صرفه برای استقرار تعداد زیادی از مدل های یادگیری ماشین (ML) ارائه می کنند. این قابلیت به شما امکان استقرار چندین مدل ML را در یک ظرف سرو پشت یک نقطه پایانی واحد می دهد. از آنجا، SageMaker بارگیری و بارگیری مدل ها و مقیاس بندی منابع را از طرف شما بر اساس الگوهای ترافیکی شما مدیریت می کند. شما از اشتراک گذاری و استفاده مجدد از منابع میزبانی و کاهش بار عملیاتی مدیریت تعداد زیادی مدل سود خواهید برد.
در نوامبر 2022، MME ها پشتیبانی از GPU را اضافه کردندs، که به شما امکان می دهد چندین مدل را روی یک دستگاه GPU اجرا کنید و نمونه های GPU را در پشت یک نقطه پایانی واحد مقیاس کنید. این تقاضای قوی MME برای مدلهای شبکه عصبی عمیق (DNN) را برآورده میکند که از محاسبات تسریع شده با پردازندههای گرافیکی بهره میبرند. اینها شامل بینایی کامپیوتری (CV)، پردازش زبان طبیعی (NLP) و مدلهای هوش مصنوعی مولد هستند. دلایل تقاضا شامل موارد زیر است:
- مدلهای DNN معمولاً از نظر اندازه و پیچیدگی بزرگ هستند و با سرعت زیادی در حال رشد هستند. با در نظر گرفتن مدل های NLP به عنوان مثال، بسیاری از آنها بیش از میلیاردها پارامتر هستند، که نیاز به GPU برای برآوردن نیازهای تاخیر کم و توان عملیاتی بالا دارد.
- ما نیاز فزایندهای به سفارشیسازی این مدلها برای ارائه تجربیات فوقشخصیشده به کاربران مشاهده کردهایم. با افزایش تعداد این مدل ها، نیاز به راه حل آسان تری برای استقرار و عملیاتی کردن بسیاری از مدل ها در مقیاس وجود دارد.
- نمونههای GPU گران هستند و میخواهید تا حد امکان از این نمونهها استفاده مجدد کنید تا استفاده از GPU را به حداکثر برسانید و هزینه عملیاتی را کاهش دهید.
اگرچه همه این دلایل به MME با GPU به عنوان یک گزینه ایدهآل برای مدلهای DNN اشاره میکنند، توصیه میشود برای یافتن پیکربندی نقطه پایانی مناسبی که نیازهای مورد استفاده شما را برآورده میکند، آزمایش بار انجام دهید. عوامل زیادی می توانند بر نتایج آزمایش بار تأثیر بگذارند، مانند نوع نمونه، تعداد نمونه ها، اندازه مدل و معماری مدل. علاوه بر این، آزمایش بار میتواند به هدایت استراتژیهای مقیاس خودکار با استفاده از معیارهای مناسب به جای روشهای آزمون و خطای تکراری کمک کند.
به همین دلایل، ما این پست را گردآوری کرده ایم تا به شما کمک کنیم تست بارگذاری مناسب را روی MME با GPU انجام دهید و بهترین پیکربندی را برای مورد استفاده ML خود پیدا کنید. ما نتایج آزمایش بار خود را برای برخی از محبوبترین مدلهای DNN در NLP و CV که با استفاده از MME در انواع نمونههای مختلف میزبانی میشوند، به اشتراک میگذاریم. ما بینش و نتیجه گیری از نتایج آزمایش خود را خلاصه می کنیم تا به شما در تصمیم گیری آگاهانه در مورد پیکربندی استقرارهای خود کمک کنید. در طول مسیر، ما همچنین رویکرد پیشنهادی خود را برای انجام آزمایش بار برای MMEها در GPU به اشتراک می گذاریم. ابزارها و تکنیکهای توصیهشده، تعداد بهینه مدلهایی را که میتوان در هر نوع نمونه بارگیری کرد، تعیین میکند و به شما کمک میکند تا به بهترین قیمت و کارایی دست یابید.
بررسی اجمالی راه حل
برای آشنایی با MME و MME با GPU، مراجعه کنید یک نقطه پایانی چند مدلی ایجاد کنید و چندین مدل یادگیری عمیق را روی GPU با نقاط پایانی چند مدل Amazon SageMaker اجرا کنید. برای زمینه تست بار در این پست می توانید کد نمونه ما را از سایت دانلود کنید GitHub repo برای بازتولید نتایج یا استفاده از آن به عنوان یک الگو برای محک زدن مدل های خود. دو نوت بوک در مخزن ارائه شده است: یکی برای تست بار مدل های CV و دیگری برای NLP. چندین مدل با اندازهها و معماریهای مختلف بر روی انواع مختلف نمونههای GPU محک زده شدند: ml.g4dn.2xlarge، ml.g5.2xlarge و ml.p3.2xlarge. این باید یک مقطع معقول از عملکرد در معیارهای زیر برای هر نمونه و نوع مدل ارائه دهد:
- حداکثر تعداد مدل هایی که می توانند در حافظه GPU بارگذاری شوند
- تأخیر پاسخ انتها به انتها در سمت مشتری برای هر جستار استنتاج مشاهده شده است
- حداکثر توان عملیاتی درخواست ها در ثانیه که نقطه پایانی می تواند بدون خطا پردازش کند
- حداکثر کاربران فعلی در هر نمونه قبل از مشاهده درخواست ناموفق
جدول زیر مدل های آزمایش شده را فهرست می کند.
استفاده از مورد | نام مدل | اندازه روی دیسک | تعداد پارامترها |
CV | resnet50 |
100Mb | 25M |
CV | convnext_base |
352Mb | 88M |
CV | vit_large_patch16_224 |
1.2Gb | 304M |
NLP | bert-base-uncased |
436Mb | 109M |
NLP | roberta-large |
1.3Gb | 335M |
جدول زیر نمونه های GPU آزمایش شده را فهرست می کند.
نوع نمونه | نوع GPU | تعداد پردازنده های گرافیکی | حافظه GPU (GiB) |
ml.g4dn.2xlarge | پردازنده های گرافیکی NVIDIA T4 | 1 | 16 |
ml.g5.2xlarge | پردازنده گرافیکی NVIDIA A10G Tensor Core | 1 | 24 |
ml.p3.2xlarge | پردازنده گرافیکی NVIDIA® V100 Tensor Core | 1 | 16 |
همانطور که قبلا ذکر شد، نمونه کد را می توان به مدل ها و انواع نمونه های دیگر اقتباس کرد.
توجه داشته باشید که MME ها در حال حاضر فقط از نمونه های واحد گرافیکی پشتیبانی می کنند. برای لیست انواع نمونه های پشتیبانی شده، مراجعه کنید الگوریتم ها، چارچوب ها و نمونه های پشتیبانی شده.
روش ارزیابی از مراحل زیر تشکیل شده است:
- یک مدل از پیش آموزش دیده را از یک مرکز مدل بازیابی کنید.
- آرتیفکت مدل را برای ارائه در MMEهای SageMaker آماده کنید (نگاه کنید به چندین مدل یادگیری عمیق را روی GPU با نقاط پایانی چند مدل Amazon SageMaker اجرا کنید برای جزئیات بیشتر)
- یک SageMaker MME را در یک نمونه GPU مستقر کنید.
- حداکثر تعداد مدل هایی را که می توان در یک آستانه مشخص در حافظه GPU بارگذاری کرد، تعیین کنید.
- از Locust Load Testing Framework برای شبیه سازی ترافیکی استفاده کنید که به طور تصادفی مدل های بارگذاری شده روی نمونه را فراخوانی می کند.
- جمع آوری داده ها و تجزیه و تحلیل نتایج.
- در صورت تمایل، مراحل 2-6 را پس از کامپایل کردن مدل در TensorRT تکرار کنید.
مراحل 4 و 5 نگاهی عمیق تر را تضمین می کند. مدلهای موجود در SageMaker GPU MME به صورت پویا در حافظه بارگذاری میشوند. بنابراین، در مرحله 4، یک آرتیفکت مدل اولیه را در آن آپلود می کنیم سرویس ذخیره سازی ساده آمازون (Amazon S3) و مدل را فراخوانی کنید تا آن را در حافظه بارگذاری کنید. پس از فراخوانی اولیه، مقدار حافظه GPU مصرف شده را اندازه گیری می کنیم، از مدل اولیه کپی می کنیم، کپی مدل را فراخوانی می کنیم تا آن را در حافظه بارگذاری کنیم و مجدداً مقدار کل حافظه GPU مصرف شده را اندازه گیری می کنیم. این فرآیند تا رسیدن به آستانه درصد مشخصی از استفاده از حافظه GPU تکرار می شود. برای معیار، ما آستانه را روی 90٪ تنظیم کردیم تا یک بافر حافظه مناسب برای استنباط در دسته های بزرگتر یا گذاشتن فضایی برای بارگذاری سایر مدل های کمتر استفاده شده فراهم کنیم.
شبیه سازی ترافیک کاربران
پس از تعیین تعداد مدلها، میتوانیم با استفاده از آن تست بارگذاری را اجرا کنیم چارچوب تست بار ملخ. تست بارگذاری درخواستهای کاربر را به مدلهای تصادفی شبیهسازی میکند و به طور خودکار معیارهایی مانند تأخیر پاسخ و توان عملیاتی را اندازهگیری میکند.
Locust از اشکال تست بار سفارشی پشتیبانی می کند که به شما امکان می دهد الگوهای ترافیکی سفارشی را تعریف کنید. شکل استفاده شده در این معیار در نمودار زیر نشان داده شده است. در 30 ثانیه اول، نقطه پایانی با 10 کاربر همزمان گرم می شود. پس از 30 ثانیه، کاربران جدید با سرعت 20 در ثانیه تولید می شوند و در 40 ثانیه به 20 کاربر همزمان می رسند. سپس نقطه پایانی به طور پیوسته با 60 کاربر همزمان تا مرز 40 ثانیه محک زده می شود، در این مرحله Locust دوباره شروع به افزایش کاربران با سرعت دو در ثانیه تا 200 کاربر همزمان می کند. این الگوی افزایش سرعت و آزمایش ثابت تا زمانی که نقطه پایانی به 200 کاربر همزمان افزایش یابد، تکرار می شود. بسته به مورد استفاده شما، ممکن است بخواهید شکل آزمایش بار را در locust_benchmark_sm.py تنظیم کنید تا الگوهای ترافیک مورد انتظار شما را با دقت بیشتری منعکس کند. به عنوان مثال، اگر قصد دارید مدلهای زبان بزرگتری را میزبانی کنید، آزمایش بارگذاری با XNUMX کاربر همزمان ممکن است برای مدلی که روی یک نمونه میزبانی میشود امکانپذیر نباشد، و بنابراین ممکن است بخواهید تعداد کاربران را کاهش دهید یا تعداد نمونهها را افزایش دهید. همچنین ممکن است بخواهید مدت زمان آزمایش بار را افزایش دهید تا پایداری نقطه پایانی را با دقت بیشتری در مدت زمان طولانی تری اندازه گیری کنید.
stages = [
{"duration": 30, "users": 10, "spawn_rate": 5},
{"duration": 60, "users": 20, "spawn_rate": 1},
{"duration": 90, "users": 40, "spawn_rate": 2},
…
]
توجه داشته باشید که ما فقط نقطه پایانی را با مدلهای همگن محک زدهایم که همگی بر روی یک پایگاه سرویس دهی ثابت با استفاده از PyTorch یا TensorRT اجرا میشوند. این به این دلیل است که MME ها برای میزبانی بسیاری از مدل ها با ویژگی های مشابه، مانند مصرف حافظه و زمان پاسخ، مناسب هستند. الگوهای محک ارائه شده در GitHub repo هنوز هم می توان برای تعیین اینکه آیا ارائه مدل های ناهمگن در MME ها عملکرد و ثبات مطلوب را به همراه دارد یا خیر، استفاده کرد.
نتایج محک برای مدلهای CV
از نوت بوک cv-benchmark.ipynb برای اجرای تست بار برای مدل های بینایی کامپیوتری استفاده کنید. میتوانید نام مدل و پارامترهای نوع نمونه از پیش آموزشدیدهشده را برای آزمایش بار عملکرد در ترکیبهای مختلف مدل و نوع نمونه تنظیم کنید. ما به طور عمدی سه مدل CV را در محدوده اندازههای مختلف از کوچکترین تا بزرگترین آزمایش کردیم: resnet50
(25M) convnext_base
(88M)، و vit_large_patch16_224
(304M). اگر مدلی خارج از این لیست انتخاب می کنید، ممکن است نیاز به تنظیم کد داشته باشید. علاوه بر این، نوت بوک شکل تصویر ورودی را به یک تانسور تصویر 224x224x3 به طور پیش فرض تنظیم می کند. به یاد داشته باشید که اگر نیاز به محک زدن مدل هایی دارید که تصویری با اندازه های متفاوت می گیرند، شکل ورودی را مطابق با آن تنظیم کنید.
پس از اجرای کل نوت بوک، چندین تجسم تحلیل عملکرد را دریافت خواهید کرد. دو مورد اول عملکرد مدل را با توجه به افزایش کاربران همزمان شرح می دهند. شکل های زیر نمونه های تجسمی تولید شده برای ResNet50
مدلی که روی ml.g4dn.2xlarge اجرا میشود، PyTorch (چپ) با TensorRT (راست) مقایسه میشود. نمودارهای خط بالایی، تأخیر و توان عملیاتی مدل را در محور y با افزایش تعداد کارکنان مشتری همزمان که روی محور x منعکس میشوند، نشان میدهند. نمودارهای میله ای پایین تعداد درخواست های موفق و ناموفق را نشان می دهد.
با نگاهی به تمام مدلهای بینایی کامپیوتری که آزمایش کردیم، موارد زیر را مشاهده کردیم:
- تأخیر (بر حسب میلی ثانیه) بیشتر است و توان عملیاتی (درخواست در ثانیه) برای مدل های بزرگتر کمتر است (
resnet50 > convnext_base > vit_large_patch16_224
). - افزایش تاخیر متناسب با تعداد کاربران است زیرا درخواست های بیشتری در سرور استنتاج در صف قرار می گیرند.
- مدلهای بزرگ منابع محاسباتی بیشتری مصرف میکنند و میتوانند با کاربران کمتری نسبت به مدلهای کوچکتر به حداکثر محدودیتهای توان خود برسند. این امر با مشاهده می شود
vit_large_patch16_224
مدل، که اولین درخواست ناموفق را در 140 کاربر همزمان ثبت کرد. بهطور قابلتوجهی بزرگتر از دو مدل دیگر آزمایششده، بیشترین درخواستهای ناموفق را در همزمانی بالاتر نیز داشت. این یک سیگنال واضح است که اگر قصد پشتیبانی از بیش از 140 کاربر همزمان باشد، نقطه پایانی باید فراتر از یک نمونه واحد باشد.
در پایان اجرای نوتبوک، مقایسه خلاصهای از مدلهای PyTorch در مقابل TensorRT برای هر یک از چهار معیار کلیدی دریافت میکنید. از تست معیار ما، همه مدلهای CV بعد از تدوین TensorRT شاهد افزایش عملکرد مدل بودند. گرفتن ما ResNet50
به عنوان مثال مجدداً تأخیر 32 درصد کاهش یافت در حالی که توان عملیاتی 18 درصد افزایش یافت. اگرچه حداکثر تعداد کاربران همزمان برای آن ثابت ماند ResNet50
، دو مدل دیگر هر دو شاهد بهبود 14 درصدی در تعداد کاربران همزمانی بودند که می توانند پشتیبانی کنند. با این حال، بهبود عملکرد TensorRT به قیمت استفاده بیشتر از حافظه تمام شد و در نتیجه مدلهای کمتری توسط MME بارگیری شدند. این تاثیر بیشتر برای مدلهایی است که از شبکه عصبی کانولوشنال (CNN) استفاده میکنند. در واقع، مدل ResNet50 ما تقریباً دو برابر حافظه GPU مصرف میکرد که از PyTorch به TensorRT میرفت، و در نتیجه 50٪ مدلهای کمتری بارگذاری شدند (46 در مقابل 23). در بخش زیر این رفتار را بیشتر تشخیص می دهیم.
نتایج محک برای مدلهای NLP
برای مدل های NLP، از نوت بوک nlp-benchmark.ipynb برای اجرای تست بار استفاده کنید. تنظیمات نوت بوک باید بسیار شبیه به هم باشد. ما دو مدل NLP را آزمایش کردیم: bert-base-uncased (109M) و roberta-large (335M). مدل از پیش آموزش دیده و توکنایزر هر دو از هاب Hugging Face دانلود می شوند و محموله آزمایشی با استفاده از یک رشته نمونه از توکنایزر تولید می شود. حداکثر طول توالی 128 پیشفرض است. اگر نیاز به آزمایش رشتههای طولانیتر دارید، به یاد داشته باشید که آن پارامتر را تنظیم کنید. در حال اجرا در نوت بوک NLP مجموعه ای از تجسم ها ایجاد می شود: Pytorch (چپ) در مقابل TensorRT (راست).
از این موارد، ما مزایای عملکردی بیشتری را از TensorRT برای مدلهای NLP مشاهده کردیم. گرفتن roberta-large
به عنوان مثال، مدل در یک نمونه ml.g4dn.2xlarge، تأخیر استنتاج به طور چشمگیری از 180 میلی ثانیه به 56 میلی ثانیه کاهش یافت (70٪ بهبود)، در حالی که توان عملیاتی 406٪ از 33 درخواست در ثانیه به 167 افزایش یافت. علاوه بر این، حداکثر تعداد همزمان کاربران 50% افزایش یافتند. درخواست های ناموفق مشاهده نشد تا زمانی که به 180 کاربر همزمان رسیدیم، در مقایسه با 120 کاربر برای مدل اصلی PyTorch. از نظر استفاده از حافظه، شاهد بارگذاری یک مدل کمتر برای TensorRT بودیم (از نه مدل به هشت مدل). با این حال، تأثیر منفی در مقایسه با آنچه که در مدلهای مبتنی بر CNN مشاهده کردیم، بسیار کمتر است.
تجزیه و تحلیل استفاده از حافظه
جدول زیر تجزیه و تحلیل کامل تأثیر استفاده از حافظه از PyTorch به TensorRT را نشان می دهد. قبلاً اشاره کردیم که مدل های مبتنی بر CNN تأثیر منفی بیشتری دارند. را ResNet50
مدل بیش از 50٪ کاهش در تعداد مدل های بارگذاری شده در هر سه نوع نمونه GPU داشت. Convnext_base
کاهش حتی بیشتر در حدود 70٪ در سراسر هیئت مدیره داشت. از طرف دیگر، ضربه به مدل های ترانسفورماتور کوچک یا مخلوط است. vit_large_patch16_224
و roberta-large
به ترتیب به طور متوسط حدود 20% و 3% کاهش داشته است، در حالی که bert-base-uncased
تقریباً 40 درصد بهبود داشته است.
با نگاهی به تمام نقاط داده به عنوان یک کل در رابطه با عملکرد برتر در تأخیر، توان عملیاتی و قابلیت اطمینان، و تأثیر جزئی بر حداکثر تعداد مدلهای بارگذاری شده، مدل TensorRT را برای معماریهای مدل مبتنی بر ترانسفورماتور توصیه میکنیم. برای CNN ها، ما معتقدیم که تجزیه و تحلیل عملکرد هزینه بیشتر مورد نیاز است تا مطمئن شویم سود عملکرد بیشتر از هزینه زیرساخت میزبانی اضافی است.
مورد استفاده ML | معماری | نام مدل | نوع نمونه | چارچوب | حداکثر مدل بارگذاری شده است | تفاوت (%) | میانگین تفاوت (%) |
CV | CNN | Resnet50 |
ml.g4dn.2xlarge | PyTorch | 46 | -50٪ | -50٪ |
تنفر | 23 | ||||||
ml.g5.2xlarge | PyTorch | 70 | -51٪ | ||||
تنفر | 34 | ||||||
ml.p3.2xlarge | PyTorch | 49 | -51٪ | ||||
تنفر | 24 | ||||||
Convnext_base |
ml.g4dn.2xlarge | PyTorch | 33 | -50٪ | -70٪ | ||
تنفر | 10 | ||||||
ml.g5.2xlarge | PyTorch | 50 | -70٪ | ||||
تنفر | 16 | ||||||
ml.p3.2xlarge | PyTorch | 35 | -69٪ | ||||
تنفر | 11 | ||||||
تبدیل کننده | vit_large_patch16_224 |
ml.g4dn.2xlarge | PyTorch | 10 | -30٪ | -20٪ | |
تنفر | 7 | ||||||
ml.g5.2xlarge | PyTorch | 15 | -13٪ | ||||
تنفر | 13 | ||||||
ml.p3.2xlarge | PyTorch | 11 | -18٪ | ||||
تنفر | 9 | ||||||
NLP | Roberta-large |
ml.g4dn.2xlarge | PyTorch | 9 | -11٪ | -3٪ | |
تنفر | 8 | ||||||
ml.g5.2xlarge | PyTorch | 13 | 0% | ||||
تنفر | 13 | ||||||
ml.p3.2xlarge | PyTorch | 9 | 0% | ||||
تنفر | 9 | ||||||
Bert-base-uncased |
ml.g4dn.2xlarge | PyTorch | 26 | ٪۱۰۰ | ٪۱۰۰ | ||
تنفر | 42 | ||||||
ml.g5.2xlarge | PyTorch | 39 | ٪۱۰۰ | ||||
تنفر | 50 | ||||||
ml.p3.2xlarge | PyTorch | 28 | ٪۱۰۰ | ||||
تنفر | 36 |
جداول زیر نتایج محک کامل ما را برای همه معیارها در هر سه نوع نمونه GPU فهرست میکنند.
ml.g4dn.2xlarge |
||||||||||||
استفاده از مورد | معماری | نام مدل | تعداد پارامترها | چارچوب | حداکثر مدل بارگذاری شده است | تفاوت (%) | تأخیر (ms) | تفاوت (%) | توان عملیاتی (qps) | تفاوت (%) | حداکثر کاربران همزمان | تفاوت (%) |
CV | CNN | resnet50 |
25M | PyTorch | 46 | -50٪ | 164 | -32٪ | 120 | ٪۱۰۰ | 180 | NA |
تنفر | 23 | . | 111 | . | 142 | . | 180 | . | ||||
convnext_base |
88M | PyTorch | 33 | -70٪ | 154 | -22٪ | 64 | ٪۱۰۰ | 140 | ٪۱۰۰ | ||
تنفر | 10 | . | 120 | . | 129 | . | 160 | . | ||||
تبدیل کننده | vit_large_patch16_224 |
304M | PyTorch | 10 | -30٪ | 425 | -69٪ | 26 | ٪۱۰۰ | 140 | ٪۱۰۰ | |
تنفر | 7 | . | 131 | . | 105 | . | 160 | . | ||||
NLP | bert-base-uncased |
109M | PyTorch | 26 | ٪۱۰۰ | 70 | -39٪ | 105 | ٪۱۰۰ | 140 | ٪۱۰۰ | |
تنفر | 42 | . | 43 | . | 254 | . | 180 | . | ||||
roberta-large |
335M | PyTorch | 9 | -11٪ | 187 | -70٪ | 33 | ٪۱۰۰ | 120 | ٪۱۰۰ | ||
تنفر | 8 | . | 56 | . | 167 | . | 180 | . |
ml.g5.2xlarge |
||||||||||||
استفاده از مورد | معماری | نام مدل | تعداد پارامترها | چارچوب | حداکثر مدل بارگذاری شده است | تفاوت (%) | تأخیر (ms) | تفاوت (%) | توان عملیاتی (qps) | تفاوت (%) | حداکثر کاربران همزمان | تفاوت (%) |
CV | CNN | resnet50 |
25M | PyTorch | 70 | -51٪ | 159 | -31٪ | 146 | ٪۱۰۰ | 180 | ٪۱۰۰ |
تنفر | 34 | . | 110 | . | 166 | . | 200 | . | ||||
convnext_base |
88M | PyTorch | 50 | -68٪ | 149 | -23٪ | 134 | ٪۱۰۰ | 180 | 0% | ||
تنفر | 16 | . | 115 | . | 152 | . | 180 | . | ||||
تبدیل کننده | vit_large_patch16_224 |
304M | PyTorch | 15 | -13٪ | 149 | -22٪ | 105 | ٪۱۰۰ | 160 | ٪۱۰۰ | |
تنفر | 13 | . | 116 | . | 142 | . | 200 | . | ||||
NLP | bert-base-uncased |
109M | PyTorch | 39 | ٪۱۰۰ | 65 | -29٪ | 183 | ٪۱۰۰ | 180 | ٪۱۰۰ | |
تنفر | 50 | . | 46 | . | 253 | . | 200 | . | ||||
roberta-large |
335M | PyTorch | 13 | 0% | 97 | -38٪ | 121 | ٪۱۰۰ | 140 | ٪۱۰۰ | ||
تنفر | 13 | . | 60 | . | 177 | . | 160 | . |
ml.p3.2xlarge |
||||||||||||
استفاده از مورد | معماری | نام مدل | تعداد پارامترها | چارچوب | حداکثر مدل بارگذاری شده است | تفاوت (%) | تأخیر (ms) | تفاوت (%) | توان عملیاتی (qps) | تفاوت (%) | حداکثر کاربران همزمان | تفاوت (%) |
CV | CNN | resnet50 |
25M | PyTorch | 49 | -51٪ | 197 | -41٪ | 94 | ٪۱۰۰ | 160 | -12٪ |
تنفر | 24 | . | 117 | . | 111 | . | 140 | . | ||||
convnext_base |
88M | PyTorch | 35 | -69٪ | 178 | -23٪ | 89 | ٪۱۰۰ | 140 | ٪۱۰۰ | ||
تنفر | 11 | .137 | 137 | . | 99 | . | 160 | . | ||||
تبدیل کننده | vit_large_patch16_224 |
304M | PyTorch | 11 | -18٪ | 186 | -28٪ | 83 | ٪۱۰۰ | 140 | ٪۱۰۰ | |
تنفر | 9 | . | 134 | . | 102 | . | 180 | . | ||||
NLP | bert-base-uncased |
109M | PyTorch | 28 | ٪۱۰۰ | 77 | -40٪ | 133 | ٪۱۰۰ | 140 | ٪۱۰۰ | |
تنفر | 36 | . | 46 | . | 212 | . | 200 | . | ||||
roberta-large |
335M | PyTorch | 9 | 0% | 108 | -44٪ | 88 | ٪۱۰۰ | 160 | 0% | ||
تنفر | 9 | . | 61 | . | 141 | . | 160 | . |
جدول زیر نتایج را در تمام انواع نمونه ها خلاصه می کند. نمونه ml.g5.2xlarge بهترین عملکرد را ارائه میکند، در حالی که نمونه ml.p3.2xlarge علیرغم اینکه گرانترین نمونه از این سه است، عموماً عملکرد ضعیفی دارد. نمونههای g5 و g4dn بهترین مقدار را برای بارهای کاری استنتاج نشان میدهند.
استفاده از مورد | معماری | نام مدل | تعداد پارامترها | چارچوب | نوع نمونه | حداکثر مدل بارگذاری شده است | تفاوت (%) | تأخیر (ms) | تفاوت (%) | توان عملیاتی (qps) | تفاوت (%) | حداکثر کاربران همزمان |
CV | CNN | resnet50 |
25M | PyTorch | ml.g5.2xlarge | 70 | . | 159 | . | 146 | . | 180 |
. | . | . | . | . | ml.p3.2xlarge | 49 | . | 197 | . | 94 | . | 160 |
. | . | . | . | . | ml.g4dn.2xlarge | 46 | . | 164 | . | 120 | . | 180 |
CV | CN | resnet50 |
25M | تنفر | ml.g5.2xlarge | 34 | -51٪ | 110 | -31٪ | 166 | ٪۱۰۰ | 200 |
. | . | . | . | . | ml.p3.2xlarge | 24 | -51٪ | 117 | -41٪ | 111 | ٪۱۰۰ | 200 |
. | . | . | . | . | ml.g4dn.2xlarge | 23 | -50٪ | 111 | -32٪ | 142 | ٪۱۰۰ | 180 |
NLP | تبدیل کننده | bert-base-uncased |
109M | پایتورچ | ml.g5.2xlarge | 39 | . | 65 | . | 183 | . | 180 |
. | . | . | . | . | ml.p3.2xlarge | 28 | . | 77 | . | 133 | . | 140 |
. | . | . | . | . | ml.g4dn.2xlarge | 26 | . | 70 | . | 105 | . | 140 |
NLP | تبدیل کننده | bert-base-uncased |
109M | تنفر | ml.g5.2xlarge | 50 | ٪۱۰۰ | 46 | -29٪ | 253 | ٪۱۰۰ | 200 |
. | . | . | . | . | ml.p3.2xlarge | 36 | ٪۱۰۰ | 46 | -40٪ | 212 | ٪۱۰۰ | 200 |
. | . | . | . | . | ml.g4dn.2xlarge | 42 | ٪۱۰۰ | 43 | -39٪ | 254 | ٪۱۰۰ | 180 |
پاک کردن
پس از اتمام تست بارگیری، منابع تولید شده را تمیز کنید تا از تحمیل هزینه های اضافی جلوگیری کنید. منابع اصلی، نقاط پایانی SageMaker و فایلهای مصنوع مدل در آمازون S3 هستند. برای اینکه کار را برای شما آسان کند، فایل های نوت بوک دارای کد پاکسازی زیر هستند تا به شما در حذف آنها کمک کند:
نتیجه
در این پست، نتایج آزمایش و تجزیه و تحلیل خود را برای مدلهای مختلف شبکه عصبی عمیق در حال اجرا بر روی نقاط پایانی چند مدل SageMaker با GPU به اشتراک گذاشتیم. نتایج و بینشهایی که به اشتراک گذاشتیم باید یک مقطع معقول از عملکرد در مقیاسها و انواع نمونههای مختلف ارائه دهند. در این فرآیند، ما همچنین رویکرد پیشنهادی خود را برای اجرای تست معیار برای MMEهای SageMaker با GPU معرفی کردیم. ابزارها و کد نمونه ای که ارائه کردیم می تواند به شما کمک کند تست معیار خود را سریع شروع کنید و تصمیم آگاهانه تری در مورد نحوه میزبانی مقرون به صرفه صدها مدل DNN بر روی سخت افزار محاسباتی شتاب بگیرید. برای شروع بنچمارک کردن مدل های خود با پشتیبانی از MME برای GPU، به ادامه مطلب مراجعه کنید الگوریتم ها، چارچوب ها و نمونه های پشتیبانی شده و GitHub repo برای مثال ها و مستندات اضافی
درباره نویسندگان
جیمز وو یک معمار ارشد راه حل متخصص AI/ML در AWS است. کمک به مشتریان در طراحی و ساخت راه حل های AI/ML. کار جیمز طیف گستردهای از موارد استفاده از ML را پوشش میدهد، با علاقه اولیه به بینایی رایانه، یادگیری عمیق، و مقیاسبندی ML در سراسر سازمان. قبل از پیوستن به AWS، جیمز بیش از 10 سال معمار، توسعهدهنده و رهبر فناوری بود، از جمله 6 سال در مهندسی و 4 سال در صنایع بازاریابی و تبلیغات.
ویکرام الانگو یک معمار راه حل های تخصصی AI/ML در خدمات وب آمازون، مستقر در ویرجینیا ایالات متحده آمریکا است. Vikram به مشتریان صنعت مالی و بیمه با طراحی و رهبری فکری کمک میکند تا برنامههای یادگیری ماشین را در مقیاس بسازند و به کار گیرند. او در حال حاضر روی پردازش زبان طبیعی، هوش مصنوعی مسئول، بهینهسازی استنتاج و مقیاسبندی ML در سراسر سازمان متمرکز است. او در اوقات فراغت خود از مسافرت، پیاده روی، آشپزی و کمپینگ با خانواده لذت می برد.
سیمون زامارین یک معمار راه حل های AI/ML است که تمرکز اصلی آن کمک به مشتریان برای استخراج ارزش از دارایی های داده خود است. سایمون در اوقات فراغت خود از گذراندن وقت با خانواده، خواندن علمی تخیلی و کار بر روی پروژه های مختلف خانه DIY لذت می برد.
ساوراب تریکاند مدیر محصول ارشد Amazon SageMaker Inference است. او مشتاق کار با مشتریان است و هدفش دموکراتیک کردن یادگیری ماشین است. او بر چالشهای اصلی مربوط به استقرار برنامههای کاربردی پیچیده ML، مدلهای ML چند مستاجر، بهینهسازی هزینهها و در دسترستر کردن استقرار مدلهای یادگیری عمیق تمرکز میکند. Saurabh در اوقات فراغت خود از پیاده روی، یادگیری در مورد فن آوری های نوآورانه، دنبال کردن TechCrunch و گذراندن وقت با خانواده خود لذت می برد.
- محتوای مبتنی بر SEO و توزیع روابط عمومی. امروز تقویت شوید.
- پلاتوبلاک چین. Web3 Metaverse Intelligence. دانش تقویت شده دسترسی به اینجا.
- منبع: https://aws.amazon.com/blogs/machine-learning/achieve-high-performance-at-scale-for-model-serving-using-amazon-sagemaker-multi-model-endpoints-with-gpu/
- 10
- 100
- 11
- 2022
- 7
- a
- توانایی
- درباره ما
- تسریع شد
- در دسترس
- بر این اساس
- به درستی
- رسیدن
- در میان
- اضافه
- اضافه
- اضافی
- علاوه بر این
- به تصویب رسید
- تبلیغات
- پس از
- AI
- AI / ML
- الگوریتم
- معرفی
- اجازه می دهد تا
- هر چند
- آمازون
- آمازون SageMaker
- آمازون خدمات وب
- مقدار
- تحلیل
- تحلیل
- و
- دیگر
- برنامه های کاربردی
- روش
- تقریبا
- معماری
- دارایی
- خودکار
- بطور خودکار
- میانگین
- AWS
- بار
- مستقر
- زیرا
- قبل از
- پشت سر
- بودن
- باور
- محک
- معیار
- معیار
- سود
- بهترین
- خارج از
- بزرگتر
- میلیاردها
- تخته
- بالا بردن
- پایین
- بافر
- ساختن
- بار
- مورد
- موارد
- چالش ها
- مشخصات
- بار
- چارت سازمانی
- نمودار
- واضح
- مشتری
- CNN
- رمز
- ترکیب
- مقایسه
- مقایسه
- مقایسه
- کامل
- پیچیده
- پیچیدگی
- شامل
- محاسبه
- کامپیوتر
- چشم انداز کامپیوتر
- نتیجه
- رقیب
- پیکر بندی
- استوار
- مصرف
- مصرف
- مصرف
- ظرف
- زمینه
- ادامه دادن
- هسته
- هزینه
- مقرون به صرفه
- را پوشش می دهد
- صلیب
- جاری
- در حال حاضر
- سفارشی
- مشتریان
- داده ها
- نقاط داده
- تصمیم
- عمیق
- یادگیری عمیق
- عمیق تر
- پیش فرض
- ارائه
- تقاضا
- دموکراتیک کردن
- نشان دادن
- بستگی دارد
- گسترش
- استقرار
- گسترش
- اعزام ها
- طرح
- مطلوب
- با وجود
- جزئیات
- جزئیات
- مشخص کردن
- مشخص
- توسعه دهنده
- دستگاه
- مختلف
- DIY
- مستندات
- دانلود
- به طور چشمگیری
- پویا
- هر
- پیش از آن
- آسان تر
- هر دو
- نقطه پایانی
- مهندسی
- سرمایه گذاری
- تمام
- خطا
- حتی
- مثال
- مثال ها
- تجاوز
- انتظار می رود
- گران
- تجارب
- گسترش
- عصاره
- چهره
- عوامل
- ناموفق
- خانواده
- روش
- امکان پذیر است
- آمار و ارقام
- فایل ها
- مالی
- پیدا کردن
- نام خانوادگی
- تمرکز
- متمرکز شده است
- تمرکز
- پیروی
- چارچوب
- چارچوب
- از جانب
- کامل
- بیشتر
- عموما
- تولید
- تولید می کند
- مولد
- هوش مصنوعی مولد
- دریافت کنید
- می دهد
- هدف
- رفتن
- GPU
- GPU ها
- نمودار ها
- در حال رشد
- راهنمایی
- دست
- سخت افزار
- کمک
- کمک
- کمک می کند
- زیاد
- بالاتر
- میزبان
- میزبانی
- میزبانی وب
- خانه
- چگونه
- چگونه
- اما
- HTML
- HTTPS
- قطب
- صدها نفر
- دلخواه
- تصویر
- تأثیر
- نهفته
- بهبود یافته
- بهبود
- in
- شامل
- از جمله
- افزایش
- افزایش
- افزایش
- افزایش
- فرد
- لوازم
- صنعت
- نفوذ
- اطلاع
- شالوده
- اول
- ابتکاری
- فن آوری های نوآورانه
- ورودی
- بینش
- نمونه
- بیمه
- قصد
- علاقه
- معرفی
- معرفی
- فراخوانی میکند
- IT
- پیوستن
- کلید
- زبان
- بزرگ
- بزرگتر
- بزرگترین
- تاخیر
- رهبر
- رهبری
- یادگیری
- ترک
- طول
- محدودیت
- لاین
- فهرست
- لیست
- بار
- بارگیری
- دیگر
- نگاه کنيد
- کم
- دستگاه
- فراگیری ماشین
- اصلی
- ساخت
- ساخت
- مدیر
- مدیریت می کند
- مدیریت
- بسیاری
- علامت
- بازار یابی (Marketing)
- بازاریابی و تبلیغات
- حداکثر
- بیشینه ساختن
- بیشترین
- اندازه
- معیارهای
- حافظه
- ذکر شده
- روش
- متریک
- خردسال
- مخلوط
- ML
- مدل
- مدل
- بیش
- اکثر
- محبوبترین
- انگیزه
- MS
- چندگانه
- نام
- طبیعی
- پردازش زبان طبیعی
- نیاز
- منفی
- منفی است
- شبکه
- شبکه های عصبی
- جدید
- nlp
- دفتر یادداشت
- نوامبر
- عدد
- تعداد
- ONE
- عملیاتی
- قابل استفاده
- بهینه سازی
- بهینه
- گزینه
- اصلی
- دیگر
- خارج از
- به طور کلی
- خود
- سرعت
- پارامتر
- پارامترهای
- احساساتی
- الگو
- الگوهای
- در صد
- انجام
- کارایی
- انجام
- دوره
- انتخاب کنید
- افلاطون
- هوش داده افلاطون
- PlatoData
- نقطه
- نقطه
- محبوب
- ممکن
- پست
- قبلا
- اصلی
- قبلا
- روند
- در حال پردازش
- محصول
- مدیر تولید
- پروژه ها
- مناسب
- ارائه
- ارائه
- فراهم می کند
- قرار دادن
- مارماهی
- مقدار
- رمپ
- رمپینگ
- تصادفی
- محدوده
- سریع
- نرخ
- رسیدن به
- رسیده
- رسیدن به
- مطالعه
- معقول
- دلایل
- توصیه
- توصیه می شود
- ثبت
- كاهش دادن
- کاهش
- بازتاب
- منعکس شده
- با احترام
- مربوط
- قابلیت اطمینان
- به یاد داشته باشید
- تکرار
- مکرر
- درخواست
- درخواست
- مورد نیاز
- نیاز
- منابع
- پاسخ
- مسئوليت
- نتیجه
- نتایج
- دویدن
- در حال اجرا
- حکیم ساز
- استنباط SageMaker
- همان
- مقیاس پذیر
- مقیاس
- مقیاس گذاری
- Sci-Fi حجم
- دوم
- ثانیه
- بخش
- ارشد
- دنباله
- خدمات
- خدمت
- تنظیم
- برپایی
- چند
- شکل
- اشکال
- اشتراک گذاری
- به اشتراک گذاشته شده
- اشتراک
- باید
- نشان
- نشان داده شده
- نشان می دهد
- طرف
- سیگنال
- به طور قابل توجهی
- مشابه
- شمعون
- ساده
- تنها
- اندازه
- اندازه
- کوچک
- کوچکتر
- راه حل
- مزایا
- برخی از
- فضا
- متخصص
- مشخص شده
- هزینه
- ثبات
- آغاز شده
- ماند
- ثابت
- گام
- مراحل
- هنوز
- ذخیره سازی
- استراتژی ها
- قوی
- موفق
- چنین
- خلاصه کردن
- خلاصه
- برتر
- پشتیبانی
- پشتیبانی
- پشتیبانی از
- جدول
- گرفتن
- مصرف
- TechCrunch
- فن آوری
- پیشرفته
- قالب
- قالب
- قوانین و مقررات
- آزمون
- تست
- La
- شان
- از این رو
- فکر
- رهبری فکر
- سه
- آستانه
- از طریق
- توان
- زمان
- به
- با هم
- ابزار
- بالا
- جمع
- ترافیک
- سفر
- محاکمه
- دو برابر
- انواع
- به طور معمول
- ایالات متحده
- استفاده کنید
- مورد استفاده
- کاربر
- کاربران
- ارزش
- مختلف
- ویرجینیا
- دید
- حکم
- وب
- خدمات وب
- چی
- چه
- که
- در حین
- تمام
- وسیع
- دامنه گسترده
- اراده
- در داخل
- بدون
- مهاجرت کاری
- کارگران
- کارگر
- خواهد بود
- سال
- بازده
- شما
- شما
- زفیرنت