دستیابی به عملکرد بالا در مقیاس برای ارائه مدل با استفاده از نقاط پایانی چند مدل Amazon SageMaker با GPU

دستیابی به عملکرد بالا در مقیاس برای ارائه مدل با استفاده از نقاط پایانی چند مدل Amazon SageMaker با GPU

آمازون 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 ها در حال حاضر فقط از نمونه های واحد گرافیکی پشتیبانی می کنند. برای لیست انواع نمونه های پشتیبانی شده، مراجعه کنید الگوریتم ها، چارچوب ها و نمونه های پشتیبانی شده.

روش ارزیابی از مراحل زیر تشکیل شده است:

  1. یک مدل از پیش آموزش دیده را از یک مرکز مدل بازیابی کنید.
  2. آرتیفکت مدل را برای ارائه در MMEهای SageMaker آماده کنید (نگاه کنید به چندین مدل یادگیری عمیق را روی GPU با نقاط پایانی چند مدل Amazon SageMaker اجرا کنید برای جزئیات بیشتر)
  3. یک SageMaker MME را در یک نمونه GPU مستقر کنید.
  4. حداکثر تعداد مدل هایی را که می توان در یک آستانه مشخص در حافظه GPU بارگذاری کرد، تعیین کنید.
  5. از Locust Load Testing Framework برای شبیه سازی ترافیکی استفاده کنید که به طور تصادفی مدل های بارگذاری شده روی نمونه را فراخوانی می کند.
  6. جمع آوری داده ها و تجزیه و تحلیل نتایج.
  7. در صورت تمایل، مراحل 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},
…
]

با استفاده از نقاط پایانی چند مدل Amazon SageMaker با GPU PlatoBlockchain Data Intelligence به عملکرد بالا در مقیاس برای ارائه مدل دست یابید. جستجوی عمودی Ai.

توجه داشته باشید که ما فقط نقطه پایانی را با مدل‌های همگن محک زده‌ایم که همگی بر روی یک پایگاه سرویس دهی ثابت با استفاده از 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 منعکس می‌شوند، نشان می‌دهند. نمودارهای میله ای پایین تعداد درخواست های موفق و ناموفق را نشان می دهد.

با استفاده از نقاط پایانی چند مدل Amazon SageMaker با GPU PlatoBlockchain Data Intelligence به عملکرد بالا در مقیاس برای ارائه مدل دست یابید. جستجوی عمودی Ai.

با نگاهی به تمام مدل‌های بینایی کامپیوتری که آزمایش کردیم، موارد زیر را مشاهده کردیم:

  • تأخیر (بر حسب میلی ثانیه) بیشتر است و توان عملیاتی (درخواست در ثانیه) برای مدل های بزرگتر کمتر است (resnet50 > convnext_base > vit_large_patch16_224).
  • افزایش تاخیر متناسب با تعداد کاربران است زیرا درخواست های بیشتری در سرور استنتاج در صف قرار می گیرند.
  • مدل‌های بزرگ منابع محاسباتی بیشتری مصرف می‌کنند و می‌توانند با کاربران کمتری نسبت به مدل‌های کوچک‌تر به حداکثر محدودیت‌های توان خود برسند. این امر با مشاهده می شود vit_large_patch16_224 مدل، که اولین درخواست ناموفق را در 140 کاربر همزمان ثبت کرد. به‌طور قابل‌توجهی بزرگ‌تر از دو مدل دیگر آزمایش‌شده، بیشترین درخواست‌های ناموفق را در همزمانی بالاتر نیز داشت. این یک سیگنال واضح است که اگر قصد پشتیبانی از بیش از 140 کاربر همزمان باشد، نقطه پایانی باید فراتر از یک نمونه واحد باشد.

با استفاده از نقاط پایانی چند مدل Amazon SageMaker با GPU PlatoBlockchain Data Intelligence به عملکرد بالا در مقیاس برای ارائه مدل دست یابید. جستجوی عمودی Ai.

در پایان اجرای نوت‌بوک، مقایسه خلاصه‌ای از مدل‌های 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 (راست).

با استفاده از نقاط پایانی چند مدل Amazon SageMaker با GPU PlatoBlockchain Data Intelligence به عملکرد بالا در مقیاس برای ارائه مدل دست یابید. جستجوی عمودی Ai.
با استفاده از نقاط پایانی چند مدل Amazon SageMaker با GPU PlatoBlockchain Data Intelligence به عملکرد بالا در مقیاس برای ارائه مدل دست یابید. جستجوی عمودی Ai.

از این موارد، ما مزایای عملکردی بیشتری را از 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 هستند. برای اینکه کار را برای شما آسان کند، فایل های نوت بوک دارای کد پاکسازی زیر هستند تا به شما در حذف آنها کمک کند:

delete_endpoint(sm_client, sm_model_name, endpoint_config_name, endpoint_name) ! aws s3 rm --recursive {trt_mme_path}

نتیجه

در این پست، نتایج آزمایش و تجزیه و تحلیل خود را برای مدل‌های مختلف شبکه عصبی عمیق در حال اجرا بر روی نقاط پایانی چند مدل SageMaker با GPU به اشتراک گذاشتیم. نتایج و بینش‌هایی که به اشتراک گذاشتیم باید یک مقطع معقول از عملکرد در مقیاس‌ها و انواع نمونه‌های مختلف ارائه دهند. در این فرآیند، ما همچنین رویکرد پیشنهادی خود را برای اجرای تست معیار برای MMEهای SageMaker با GPU معرفی کردیم. ابزارها و کد نمونه ای که ارائه کردیم می تواند به شما کمک کند تست معیار خود را سریع شروع کنید و تصمیم آگاهانه تری در مورد نحوه میزبانی مقرون به صرفه صدها مدل DNN بر روی سخت افزار محاسباتی شتاب بگیرید. برای شروع بنچمارک کردن مدل های خود با پشتیبانی از MME برای GPU، به ادامه مطلب مراجعه کنید الگوریتم ها، چارچوب ها و نمونه های پشتیبانی شده و GitHub repo برای مثال ها و مستندات اضافی


درباره نویسندگان

با استفاده از نقاط پایانی چند مدل Amazon SageMaker با GPU PlatoBlockchain Data Intelligence به عملکرد بالا در مقیاس برای ارائه مدل دست یابید. جستجوی عمودی Ai.جیمز وو یک معمار ارشد راه حل متخصص AI/ML در AWS است. کمک به مشتریان در طراحی و ساخت راه حل های AI/ML. کار جیمز طیف گسترده‌ای از موارد استفاده از ML را پوشش می‌دهد، با علاقه اولیه به بینایی رایانه، یادگیری عمیق، و مقیاس‌بندی ML در سراسر سازمان. قبل از پیوستن به AWS، جیمز بیش از 10 سال معمار، توسعه‌دهنده و رهبر فناوری بود، از جمله 6 سال در مهندسی و 4 سال در صنایع بازاریابی و تبلیغات.

با استفاده از نقاط پایانی چند مدل Amazon SageMaker با GPU PlatoBlockchain Data Intelligence به عملکرد بالا در مقیاس برای ارائه مدل دست یابید. جستجوی عمودی Ai.ویکرام الانگو یک معمار راه حل های تخصصی AI/ML در خدمات وب آمازون، مستقر در ویرجینیا ایالات متحده آمریکا است. Vikram به مشتریان صنعت مالی و بیمه با طراحی و رهبری فکری کمک می‌کند تا برنامه‌های یادگیری ماشین را در مقیاس بسازند و به کار گیرند. او در حال حاضر روی پردازش زبان طبیعی، هوش مصنوعی مسئول، بهینه‌سازی استنتاج و مقیاس‌بندی ML در سراسر سازمان متمرکز است. او در اوقات فراغت خود از مسافرت، پیاده روی، آشپزی و کمپینگ با خانواده لذت می برد.

با استفاده از نقاط پایانی چند مدل Amazon SageMaker با GPU PlatoBlockchain Data Intelligence به عملکرد بالا در مقیاس برای ارائه مدل دست یابید. جستجوی عمودی Ai.سیمون زامارین یک معمار راه حل های AI/ML است که تمرکز اصلی آن کمک به مشتریان برای استخراج ارزش از دارایی های داده خود است. سایمون در اوقات فراغت خود از گذراندن وقت با خانواده، خواندن علمی تخیلی و کار بر روی پروژه های مختلف خانه DIY لذت می برد.

با استفاده از نقاط پایانی چند مدل Amazon SageMaker با GPU PlatoBlockchain Data Intelligence به عملکرد بالا در مقیاس برای ارائه مدل دست یابید. جستجوی عمودی Ai. ساوراب تریکاند مدیر محصول ارشد Amazon SageMaker Inference است. او مشتاق کار با مشتریان است و هدفش دموکراتیک کردن یادگیری ماشین است. او بر چالش‌های اصلی مربوط به استقرار برنامه‌های کاربردی پیچیده ML، مدل‌های ML چند مستاجر، بهینه‌سازی هزینه‌ها و در دسترس‌تر کردن استقرار مدل‌های یادگیری عمیق تمرکز می‌کند. Saurabh در اوقات فراغت خود از پیاده روی، یادگیری در مورد فن آوری های نوآورانه، دنبال کردن TechCrunch و گذراندن وقت با خانواده خود لذت می برد.

تمبر زمان:

بیشتر از آموزش ماشین AWS