معرفی کیت ابزار معیار استنتاج بدون سرور Amazon SageMaker، هوش داده پلاتو بلاک چین. جستجوی عمودی Ai.

مجموعه ابزار سنجش استنتاج بدون سرور Amazon SageMaker را معرفی می کنیم

استنتاج بدون سرور Amazon SageMaker یک گزینه استنتاج هدفمند است که استقرار و مقیاس‌بندی مدل‌های یادگیری ماشین (ML) را برای شما آسان می‌کند. این یک مدل پرداخت به ازای استفاده ارائه می‌کند، که برای خدماتی که فراخوانی‌های نقطه پایانی نادر و غیرقابل پیش‌بینی هستند، ایده‌آل است. بر خلاف یک نقطه پایانی میزبانی بلادرنگ، که توسط یک نمونه طولانی مدت پشتیبانی می‌شود، منابع محاسباتی برای نقاط پایانی بدون سرور بر حسب تقاضا فراهم می‌شوند و در نتیجه نیاز به انتخاب انواع نمونه یا مدیریت سیاست‌های مقیاس‌بندی را از بین می‌برند.

معماری سطح بالا زیر نحوه عملکرد یک نقطه پایانی بدون سرور را نشان می دهد. یک مشتری یک نقطه پایانی را فراخوانی می کند که توسط زیرساخت مدیریت شده AWS پشتیبانی می شود.

با این حال، نقاط پایانی بدون سرور مستعد شروع سرد به ترتیب ثانیه هستند، و بنابراین برای بارهای کاری متناوب یا غیرقابل پیش بینی مناسب تر هستند.

برای کمک به تعیین اینکه آیا نقطه پایانی بدون سرور از منظر هزینه و عملکرد گزینه مناسبی برای استقرار است یا خیر، ما آن را توسعه داده‌ایم SageMaker Serverless Inference Benchmarking Toolkit، که پیکربندی‌های نقطه پایانی مختلف را آزمایش می‌کند و بهینه‌ترین آنها را با یک نمونه میزبانی بلادرنگ مقایسه می‌کند.

در این پست به معرفی جعبه ابزار و مروری بر پیکربندی و خروجی های آن می پردازیم.

بررسی اجمالی راه حل

شما می توانید جعبه ابزار را دانلود کرده و آن را نصب کنید GitHub repo. شروع کار آسان است: به سادگی کتابخانه را نصب کنید، a ایجاد کنید مدل SageMakerو نام مدل خود را به همراه یک فایل قالب‌بندی شده با خطوط JSON حاوی مجموعه نمونه‌ای از پارامترهای فراخوانی، از جمله بدنه بار و نوع محتوا، ارائه دهید. یک تابع راحت برای تبدیل لیستی از آرگومان های فراخوانی نمونه به یک فایل خطوط JSON یا یک فایل pickle برای بارهای باینری مانند تصاویر، ویدئو یا صدا ارائه شده است.

جعبه ابزار را نصب کنید

ابتدا کتابخانه بنچمارک را با استفاده از pip در محیط پایتون خود نصب کنید:

pip install sm-serverless-benchmarking

می توانید کد زیر را از an اجرا کنید Amazon SageMaker Studio نمونه، مثال، نمونه نوت بوک SageMaker، یا هر نمونه ای با دسترسی برنامه ای به AWS و مناسب هویت AWS و مدیریت دسترسی مجوزهای (IAM). مجوزهای IAM مورد نیاز در مستند شده است GitHub repo. برای راهنمایی بیشتر و سیاست‌های مثال برای IAM، مراجعه کنید چگونه Amazon SageMaker با IAM کار می کند. این کد یک معیار را با مجموعه ای از پارامترهای پیش فرض روی مدلی اجرا می کند که انتظار ورودی CSV با دو رکورد مثال را دارد. ارائه یک مجموعه نمونه از نمونه ها برای تجزیه و تحلیل نحوه عملکرد نقطه پایانی با بارهای ورودی مختلف، تمرین خوبی است.

from sm_serverless_benchmarking import benchmark
from sm_serverless_benchmarking.utils import convert_invoke_args_to_jsonl
model_name = ""
example_invoke_args = [
        {'Body': '1,2,3,4,5', "ContentType": "text/csv"},
        {'Body': '6,7,8,9,10', "ContentType": "text/csv"}
        ]
example_args_file = convert_invoke_args_to_jsonl(example_invoke_args,
output_path=".")
r = benchmark.run_serverless_benchmarks(model_name, example_args_file)

علاوه بر این، می‌توانید معیار را به‌عنوان یک کار پردازش SageMaker اجرا کنید، که ممکن است گزینه مطمئن‌تری برای بنچمارک‌های طولانی‌تر با تعداد زیادی فراخوان باشد. کد زیر را ببینید:

from sm_serverless_benchmarking.sagemaker_runner import run_as_sagemaker_job
run_as_sagemaker_job(
                    role="",
                    model_name="",
                    invoke_args_examples_file="",
                    )

توجه داشته باشید که این کار هزینه بیشتری برای اجرای یک نمونه ml.m5.large SageMaker Processing در طول مدت معیار متحمل خواهد شد.

هر دو روش تعدادی پارامتر را برای پیکربندی می‌پذیرند، مانند فهرستی از پیکربندی‌های حافظه برای معیار و تعداد دفعاتی که هر پیکربندی فراخوانی می‌شود. در بیشتر موارد، گزینه های پیش فرض باید به عنوان نقطه شروع کافی باشد، اما به آن مراجعه کنید GitHub repo برای لیست کامل و توضیحات هر پارامتر.

پیکربندی معیار

قبل از اینکه بنچمارک چه کاری انجام می‌دهد و چه خروجی‌هایی تولید می‌کند، مهم است که در مورد پیکربندی نقاط پایانی بدون سرور، چند مفهوم کلیدی را درک کنید.

وجود دارد دو گزینه پیکربندی کلیدی: MemorySizeInMB و MaxConcurrency. MemorySizeInMB مقدار حافظه اختصاص داده شده به نمونه را پیکربندی می کند و می تواند 1024 مگابایت، 2048 مگابایت، 3072 مگابایت، 4096 مگابایت، 5120 مگابایت، یا 6144 مگابایت باشد. تعداد vCPU ها نیز متناسب با مقدار حافظه اختصاص داده شده مقیاس می شود. این MaxConcurrency پارامتر تعداد درخواست‌های همزمان را که یک نقطه پایانی می‌تواند سرویس دهد را تنظیم می‌کند. با یک MaxConcurrency از 1، یک نقطه پایانی بدون سرور تنها می تواند یک درخواست را در یک زمان پردازش کند.

به طور خلاصه، MemorySizeInMB پارامتر مکانیزمی برای مقیاس پذیری عمودی فراهم می کند و به شما امکان می دهد حافظه و منابع را برای ارائه مدل های بزرگتر تنظیم کنید، در حالی که MaxConcurrency مکانیزمی برای مقیاس پذیری افقی فراهم می کند که به نقطه پایانی شما اجازه می دهد تا درخواست های همزمان بیشتری را پردازش کند.

هزینه عملیات نقطه پایانی تا حد زیادی توسط اندازه حافظه تعیین می شود و هیچ هزینه ای با افزایش حداکثر همزمانی وجود ندارد. با این حال، یک محدودیت حساب در هر منطقه برای حداکثر همزمانی در تمام نقاط پایانی وجود دارد. رجوع شود به نقاط پایانی و سهمیه SageMaker برای آخرین محدودیت ها

محک زدن خروجی ها

با توجه به این موضوع، هدف از محک زدن نقطه پایانی بدون سرور، تعیین مقرون‌به‌صرفه‌ترین و مطمئن‌ترین تنظیم اندازه حافظه و حداقل حداکثر همزمانی است که می‌تواند الگوهای ترافیک مورد انتظار شما را مدیریت کند.

به طور پیش فرض، این ابزار دو معیار را اجرا می کند. اولین معیار یک معیار پایداری است که یک نقطه پایانی را برای هر یک از پیکربندی های حافظه مشخص شده مستقر می کند و هر نقطه پایانی را با بارهای نمونه ارائه شده فراخوانی می کند. هدف این معیار تعیین موثرترین و پایدارترین تنظیمات MemorySizeInMB است. معیار تأخیرهای فراخوانی را ثبت می کند و هزینه مورد انتظار هر فراخوان را برای هر نقطه پایانی محاسبه می کند. سپس هزینه را با یک نمونه میزبانی بلادرنگ مشابه مقایسه می کند.

هنگامی که محک گذاری کامل شد، ابزار چندین خروجی در مشخص شده تولید می کند result_save_path دایرکتوری با ساختار دایرکتوری زیر:

├── benchmarking_report
├── concurrency_benchmark_raw_results
├── concurrency_benchmark_summary_results
├── cost_analysis_summary_results
├── stability_benchmark_raw_results
├── stability_benchmark_summary_results

La benchmarking_report دایرکتوری حاوی یک گزارش تلفیقی با تمام خروجی های خلاصه است که در این پست به آنها اشاره می کنیم. دایرکتوری های اضافی حاوی خروجی های خام و میانی هستند که می توانید از آنها برای تجزیه و تحلیل های اضافی استفاده کنید. رجوع به GitHub repo برای توضیح دقیق تر هر مصنوع خروجی.

بیایید چند خروجی محک زدن واقعی را برای یک نقطه پایانی که مدل TensorFlow بینایی کامپیوتر MobileNetV2 را ارائه می‌کند، بررسی کنیم. اگر می خواهید این مثال را تکرار کنید، به ادامه مطلب مراجعه کنید نمونه نوت بوک دایرکتوری در مخزن GitHub.

اولین خروجی در گزارش تلفیقی یک جدول خلاصه است که معیارهای حداقل، میانگین، متوسط ​​و حداکثر تاخیر را برای هر یک ارائه می‌کند. MemorySizeInMB پیکربندی موفقیت آمیز اندازه حافظه همانطور که در جدول زیر نشان داده شده است، متوسط ​​تأخیر فراخوانی (invocation_latency_mean) با افزایش پیکربندی حافظه به 3072 مگابایت به بهبود ادامه داد، اما پس از آن دیگر بهبود یافت.

معرفی کیت ابزار معیار استنتاج بدون سرور Amazon SageMaker، هوش داده پلاتو بلاک چین. جستجوی عمودی Ai.

علاوه بر آمار توصیفی سطح بالا، نموداری ارائه شده است که توزیع تأخیر مشاهده شده از مشتری برای هر یک از پیکربندی‌های حافظه را نشان می‌دهد. باز هم، می‌توانیم مشاهده کنیم که پیکربندی 1024 مگابایتی به اندازه سایر گزینه‌ها کارآمد نیست، اما تفاوت قابل‌توجهی در عملکرد در پیکربندی‌های 2048 و بالاتر وجود ندارد.

معرفی کیت ابزار معیار استنتاج بدون سرور Amazon SageMaker، هوش داده پلاتو بلاک چین. جستجوی عمودی Ai.

CloudWatch آمازون معیارهای مرتبط با هر پیکربندی نقطه پایانی نیز ارائه شده است. یکی از معیارهای کلیدی اینجاست ModelSetupTime، که مدت زمان بارگیری مدل را زمانی که نقطه پایانی در حالت سرد فراخوانی می شود اندازه گیری می کند. معیار ممکن است همیشه در گزارش ظاهر نشود زیرا نقطه پایانی در حالت گرم راه اندازی می شود. آ cold_start_delay پارامتر برای تعیین تعداد ثانیه های خواب قبل از شروع معیار در نقطه پایانی مستقر در دسترس است. تنظیم این پارامتر روی یک عدد بالاتر مانند 600 ثانیه باید احتمال فراخوانی حالت سرد را افزایش دهد و شانس گرفتن این معیار را افزایش دهد. علاوه بر این، این متریک به احتمال زیاد با معیار فراخوانی همزمان، که در ادامه در این بخش به آن خواهیم پرداخت، بسیار بیشتر است.

جدول زیر معیارهای ثبت شده توسط CloudWatch را برای هر پیکربندی حافظه نشان می دهد.

معرفی کیت ابزار معیار استنتاج بدون سرور Amazon SageMaker، هوش داده پلاتو بلاک چین. جستجوی عمودی Ai.

نمودار بعدی عملکرد و مبادله هزینه پیکربندی های مختلف حافظه را نشان می دهد. یک خط هزینه تخمینی فراخوانی نقطه پایانی را 1 میلیون بار نشان می دهد و خط دیگر میانگین تاخیر پاسخ را نشان می دهد. این معیارها می توانند تصمیم شما را در مورد اینکه کدام پیکربندی نقطه پایانی مقرون به صرفه تر است، تعیین کند. در این مثال، می بینیم که متوسط ​​تأخیر پس از 2048 مگابایت صاف می شود، در حالی که هزینه همچنان افزایش می یابد، که نشان می دهد برای این مدل پیکربندی اندازه حافظه 2048 بهینه ترین خواهد بود.

معرفی کیت ابزار معیار استنتاج بدون سرور Amazon SageMaker، هوش داده پلاتو بلاک چین. جستجوی عمودی Ai.

خروجی نهایی معیار هزینه و پایداری یک پیکربندی حافظه توصیه شده به همراه جدولی است که هزینه عملکرد یک نقطه پایانی بدون سرور را با یک نمونه میزبانی SageMaker مقایسه می‌کند. بر اساس داده های جمع آوری شده، ابزار تعیین کرد که پیکربندی 2048 مگابایتی بهینه ترین پیکربندی برای این مدل است. اگرچه پیکربندی 3072 تقریباً 10 میلی ثانیه تأخیر بهتری ارائه می دهد، اما با افزایش 30 درصدی هزینه، از 4.55 دلار به 5.95 دلار به ازای هر 1 میلیون درخواست همراه است. علاوه بر این، خروجی نشان می‌دهد که یک نقطه پایانی بدون سرور می‌تواند تا 88.72 درصد در برابر یک نمونه میزبانی هم‌زمان قابل مقایسه، زمانی که کمتر از 1 میلیون درخواست فراخوانی ماهانه وجود دارد، صرفه‌جویی می‌کند، و حتی با یک نقطه پایانی بلادرنگ پس از 8.5 میلیون درخواست شکست می‌خورد.

معرفی کیت ابزار معیار استنتاج بدون سرور Amazon SageMaker، هوش داده پلاتو بلاک چین. جستجوی عمودی Ai.

نوع دوم معیار اختیاری است و آزمایش های مختلفی را انجام می دهد MaxConcurency تنظیمات تحت الگوهای ترافیکی مختلف این معیار معمولاً با استفاده از بهینه اجرا می شود MemorySizeInMB پیکربندی از معیار پایداری دو پارامتر کلیدی برای این معیار فهرستی از MaxConcurency تنظیمات برای آزمایش همراه با فهرستی از ضرایب کلاینت، که تعداد کلاینت‌های همزمان شبیه‌سازی‌شده‌ای را که نقطه پایانی با آن‌ها آزمایش می‌شود، تعیین می‌کند.

به عنوان مثال، با تنظیم concurrency_benchmark_max_conc parameter به [4، 8] و concurrency_num_clients_multiplier به [1، 1.5، 2]، دو نقطه پایانی راه اندازی می شود: یکی با MaxConcurency از 4 و دیگری 8. سپس هر نقطه پایانی با یک (MaxConcurency x ضریب) تعداد مشتریان همزمان شبیه سازی شده، که برای نقطه پایانی با همزمانی 4 به بارگذاری معیارهای آزمایشی با 4، 6 و 8 مشتری همزمان ترجمه می شود.

اولین خروجی این معیار جدولی است که معیارهای تأخیر، استثنائات throttling و معیارهای تراکنش در ثانیه (TPS) مرتبط با هر یک را نشان می دهد. MaxConcurrency پیکربندی با تعداد مختلف مشتری همزمان. این معیارها به تعیین مناسب کمک می کند MaxConcurrency تنظیم برای مدیریت بار ترافیک مورد انتظار. در جدول زیر، می بینیم که یک نقطه پایانی که با حداکثر همزمانی 8 پیکربندی شده است، می تواند تا 16 مشتری همزمان را با تنها دو استثنا از 2,500 فراخوانی که به طور میانگین 24 تراکنش در ثانیه انجام می شود، مدیریت کند.

معرفی کیت ابزار معیار استنتاج بدون سرور Amazon SageMaker، هوش داده پلاتو بلاک چین. جستجوی عمودی Ai.

مجموعه بعدی از خروجی ها نموداری برای هر کدام ارائه می دهد MaxConcurrency تنظیماتی که توزیع تاخیر را تحت بارهای مختلف نشان می دهد. در این مثال می بینیم که یک نقطه پایانی با a MaxConcurrency تنظیم 4 توانست با موفقیت تمام درخواست ها را با حداکثر 8 مشتری همزمان با حداقل افزایش در تأخیر فراخوانی پردازش کند.

معرفی کیت ابزار معیار استنتاج بدون سرور Amazon SageMaker، هوش داده پلاتو بلاک چین. جستجوی عمودی Ai.

خروجی نهایی جدولی با معیارهای CloudWatch برای هر کدام ارائه می دهد MaxConcurrency پیکربندی برخلاف جدول قبلی که توزیع تاخیر را برای هر پیکربندی حافظه نشان می‌دهد، که ممکن است همیشه شروع سرد را نمایش ندهد. ModelSetupTime متریک، این معیار به دلیل تعداد بیشتر درخواست‌های فراخوانی و بیشتر بودن، به احتمال زیاد در این جدول ظاهر می‌شود. MaxConcurrency.

معرفی کیت ابزار معیار استنتاج بدون سرور Amazon SageMaker، هوش داده پلاتو بلاک چین. جستجوی عمودی Ai.

نتیجه

در این پست، SageMaker Serverless Inference Benchmarking Toolkit را معرفی کردیم و یک نمای کلی از پیکربندی و خروجی های آن ارائه کردیم. این ابزار می تواند به شما کمک کند تا با بارگیری پیکربندی های مختلف با الگوهای ترافیک واقعی، تصمیم آگاهانه تری در مورد استنتاج بدون سرور بگیرید. جعبه ابزار محک را با مدل‌های خود امتحان کنید تا خودتان عملکرد و صرفه‌جویی در هزینه‌ای را که با استقرار یک نقطه پایانی بدون سرور انتظار دارید، ببینید. لطفا به GitHub repo برای اسناد اضافی و نمونه نوت بوک.

منابع اضافی


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

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

معرفی کیت ابزار معیار استنتاج بدون سرور Amazon SageMaker، هوش داده پلاتو بلاک چین. جستجوی عمودی Ai.داوال پاتل یک معمار اصلی یادگیری ماشین در AWS است. او با سازمان‌هایی از شرکت‌های بزرگ گرفته تا استارت‌آپ‌های متوسط ​​در زمینه مشکلات مربوط به محاسبات توزیع‌شده و هوش مصنوعی کار کرده است. او بر یادگیری عمیق، از جمله NLP و حوزه های بینایی کامپیوتر تمرکز می کند. او به مشتریان کمک می کند تا به استنباط مدل با عملکرد بالا در SageMaker دست یابند.

معرفی کیت ابزار معیار استنتاج بدون سرور Amazon SageMaker، هوش داده پلاتو بلاک چین. جستجوی عمودی Ai.ریشابه ری چاودری مدیر محصول ارشد آمازون SageMaker است که بر استنتاج یادگیری ماشین تمرکز دارد. او مشتاق نوآوری و ایجاد تجربیات جدید برای مشتریان یادگیری ماشینی در AWS است تا به افزایش حجم کاری آنها کمک کند. در اوقات فراغت از مسافرت و آشپزی لذت می برد. می توانید او را در آن پیدا کنید لینک.

تمبر زمان:

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