دستیابی به میزبانی با تأخیر کم برای مدل‌های ML مبتنی بر درخت تصمیم در سرور استنتاج تریتون NVIDIA در Amazon SageMaker PlatoBlockchain Data Intelligence. جستجوی عمودی Ai.

دستیابی به میزبانی با تاخیر کم برای مدل های ML مبتنی بر درخت تصمیم در سرور استنتاج انویدیا Triton در Amazon SageMaker

استقرار مدل یادگیری ماشینی (ML) می‌تواند الزامات عملکرد و تأخیر بسیار سختی را برای مشاغل امروزی داشته باشد. موارد استفاده مانند تشخیص تقلب و قرار دادن تبلیغات نمونه هایی هستند که میلی ثانیه ها مهم هستند و برای موفقیت کسب و کار بسیار مهم هستند. توافق نامه های سطح خدمات دقیق (SLA) باید برآورده شوند و یک درخواست معمولی ممکن است به مراحل متعددی مانند پیش پردازش، تبدیل داده ها، منطق انتخاب مدل، تجمیع مدل و پس پردازش نیاز داشته باشد. در مقیاس، این اغلب به معنای حفظ حجم عظیمی از ترافیک در عین حفظ تاخیر کم است. الگوهای طراحی متداول شامل خطوط لوله استنتاج سریال، مجموعه ها (پراکنده-جمع آوری)، و گردش کار منطق تجاری است که منجر به تحقق کل گردش کاری درخواست به عنوان یک گراف غیر چرخه جهت دار (DAG) می شود. با این حال، با پیچیده تر شدن گردش کار، این می تواند منجر به افزایش زمان پاسخ کلی شود که به نوبه خود می تواند تأثیر منفی بر تجربه کاربر نهایی بگذارد و اهداف تجاری را به خطر بیندازد. تریتون می‌تواند به این موارد استفاده بپردازد که در آن چندین مدل در یک خط لوله با تانسورهای ورودی و خروجی متصل شده‌اند و به شما در رسیدگی به این حجم‌های کاری کمک می‌کند.

همانطور که اهداف خود را در رابطه با استنتاج مدل ML ارزیابی می کنید، گزینه های زیادی را می توان در نظر گرفت، اما تعداد کمی به اندازه توانایی و اثبات شده اند. آمازون SageMaker با سرور استنتاج تریتون. SageMaker با سرور استنتاج تریتون یک انتخاب محبوب برای بسیاری از مشتریان بوده است، زیرا برای به حداکثر رساندن توان عملیاتی و استفاده از سخت افزار با تأخیر استنتاج بسیار کم (تک رقمی) ساخته شده است. دارای طیف گسترده ای از چارچوب های پشتیبانی شده ML (از جمله TensorFlow، PyTorch، ONNX، XGBoost، و NVIDIA TensorRT) و پشتیبانی زیرساخت، از جمله پردازنده های گرافیکی NVIDIA، CPU ها و استنتاج AWS. علاوه بر این، Triton Inference Server با SageMaker، یک سرویس ML سرتاسر مدیریت شده، یکپارچه شده است و گزینه های استنتاج بلادرنگ را برای میزبانی مدل ارائه می دهد.

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

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

برای هر پروژه ای ضروری است که فهرستی از نیازمندی ها و برآورد تلاش داشته باشد تا هزینه کل پروژه تقریبی شود. برآورد بازگشت سرمایه (ROI) که از تصمیم یک سازمان حمایت می کند، مهم است. برخی از ملاحظات در هنگام انتقال حجم کاری به تریتون عبارتند از:

تخمین تلاش در توسعه نرم‌افزار کلیدی است و اندازه‌گیری آن اغلب بر اساس ورودی‌های ناقص، نامشخص و پر سر و صدا است. بار کاری ML تفاوتی ندارد. عوامل متعددی بر معماری برای استنتاج ML تأثیر می گذاردکه برخی از آنها عبارتند از:

  • بودجه تأخیر سمت مشتری - حداکثر زمان انتظار قابل قبول رفت و برگشت سمت مشتری برای پاسخ استنتاج را مشخص می کند که معمولاً به صورت صدک بیان می شود. برای بارهای کاری که به بودجه تاخیری نزدیک به ده ها میلی ثانیه نیاز دارند، انتقال شبکه می تواند گران شود، بنابراین استفاده از مدل های لبه مناسب تر خواهد بود.
  • اندازه توزیع محموله داده - بار، که اغلب به عنوان بدنه ی پیام، داده های درخواستی است که از مشتری به مدل ارسال می شود و همچنین داده های پاسخ ارسال شده از مدل به مشتری است. اندازه محموله غالباً تأثیر زیادی بر تأخیر دارد و باید در نظر گرفته شود.
  • قالب داده – این نحوه ارسال بار به مدل ML را مشخص می کند. فرمت می تواند برای انسان قابل خواندن باشد، مانند JSON و CSV، با این حال، فرمت های باینری نیز وجود دارد که اغلب فشرده و کوچکتر هستند. این یک مبادله بین سربار فشرده سازی و اندازه انتقال است، به این معنی که چرخه های CPU و تأخیر برای فشرده سازی یا فشرده سازی اضافه می شود تا بایت های منتقل شده از طریق شبکه ذخیره شود. این پست نحوه استفاده از هر دو فرمت JSON و باینری را نشان می دهد.
  • پشته نرم افزار و اجزای مورد نیاز - پشته مجموعه ای از مؤلفه ها است که برای پشتیبانی از یک برنامه ML، از جمله سیستم عامل، زمان اجرا و لایه های نرم افزار، با هم کار می کنند. تریتون با فریمورک‌های داخلی محبوب ML ارائه می‌شود که نامیده می‌شوند باطنمانند ONNX، TensorFlow، FIL، OpenVINO، Python بومی و دیگران. شما همچنین می توانید نویسنده a باطن سفارشی برای اجزای خانگی خودتان این پست به مدل XGBoost و پیش‌پردازش داده‌ها می‌پردازد که به ترتیب به پشتیبان‌های FIL و Python Triton ارائه‌شده توسط NVIDIA منتقل می‌کنیم.

همه این عوامل باید نقشی حیاتی در ارزیابی نحوه عملکرد بارهای کاری شما ایفا کنند، اما در این مورد ما بر روی کار مورد نیاز برای انتقال مدل‌های ML به میزبانی SageMaker با سرور استنتاج تریتون تمرکز می‌کنیم. به طور خاص، ما از نمونه‌ای از یک مجموعه تشخیص تقلب متشکل از یک مدل XGBoost با منطق پیش‌پردازش نوشته شده در پایتون استفاده می‌کنیم.

سرور استنتاج تریتون NVIDIA

سرور استنتاج Triton از ابتدا طراحی شده است تا تیم ها را قادر می سازد تا مدل های هوش مصنوعی آموزش دیده را از هر چارچوبی بر روی زیرساخت مبتنی بر GPU یا CPU استقرار، اجرا و مقیاس بندی کنند. علاوه بر این، برای ارائه استنتاج با کارایی بالا در مقیاس با ویژگی‌هایی مانند دسته‌بندی پویا، اجراهای همزمان، پیکربندی مدل بهینه، مجموعه مدل و پشتیبانی از ورودی‌های جریان بهینه شده است.

نمودار زیر نمونه ای از خط لوله NVIDIA Triton Ensemble را نشان می دهد.

دستیابی به میزبانی با تأخیر کم برای مدل‌های ML مبتنی بر درخت تصمیم در سرور استنتاج تریتون NVIDIA در Amazon SageMaker PlatoBlockchain Data Intelligence. جستجوی عمودی Ai.

بارهای کاری باید قابلیت هایی را که تریتون به همراه میزبانی SageMaker ارائه می دهد در نظر بگیرد تا مزایای ارائه شده را به حداکثر برساند. به عنوان مثال، تریتون از HTTP و همچنین a پشتیبانی می کند C API، که امکان انعطاف پذیری و همچنین بهینه سازی محموله را در صورت نیاز فراهم می کند. همانطور که قبلا ذکر شد، تریتون از چندین فریمورک محبوب خارج از جعبه، از جمله TensorFlow، PyTorch، ONNX، XGBoost و NVIDIA TensorRT پشتیبانی می کند. این فریم‌ورک‌ها از طریق باطن‌های تریتون پشتیبانی می‌شوند، و در موارد نادری که یک Backend مورد استفاده شما را پشتیبانی نمی‌کند، تریتون به شما این امکان را می دهد که خودتان را پیاده سازی کنید و آن را به راحتی ادغام کنید.

نمودار زیر نمونه ای از معماری NVIDIA Triton را نشان می دهد.

NVIDIA Triton در SageMaker

میزبانی SageMaker سرویس‌ها مجموعه‌ای از ویژگی‌های SageMaker هستند که با هدف آسان‌تر کردن استقرار مدل و ارائه خدمات انجام می‌شوند. گزینه‌های متنوعی را برای استقرار آسان، مقیاس خودکار، نظارت و بهینه‌سازی مدل‌های ML که برای موارد استفاده مختلف طراحی شده‌اند، ارائه می‌کند. این بدان معناست که می‌توانید استقرارهای خود را برای همه انواع الگوهای استفاده، از دائمی و همیشه در دسترس با گزینه‌های بدون سرور، تا نیازهای استنتاج گذرا، طولانی‌مدت یا دسته‌ای، بهینه کنید.

در زیر چتر میزبانی SageMaker نیز مجموعه ای از ظروف یادگیری عمیق استنتاج SageMaker (DLCs) قرار دارد که با نرم افزار سرور مدل مناسب برای چارچوب ML پشتیبانی شده مربوطه بسته بندی شده است. این به شما امکان می‌دهد بدون راه‌اندازی سرور مدل به عملکرد استنتاج بالایی برسید، که اغلب پیچیده‌ترین جنبه فنی استقرار مدل است و به طور کلی بخشی از مجموعه مهارت یک دانشمند داده نیست. سرور استنتاج تریتون اکنون است در دسترس روی DLC های SageMaker

این گستردگی گزینه‌ها، ماژولار بودن و سهولت استفاده از فریمورک‌های مختلف سرویس دهی، SageMaker و Triton را به یک بازی قدرتمند تبدیل کرده است.

پشتیبانی از پشتیبان NVIDIA FIL

با انتشار نسخه 22.05 تریتونNVIDIA اکنون از مدل‌های جنگلی که توسط چندین فریمورک محبوب ML آموزش داده شده‌اند، از جمله XGBoost، LightGBM، Scikit-learn و cuML پشتیبانی می‌کند. هنگام استفاده از باطن FIL برای Triton، باید اطمینان حاصل کنید که مصنوعات مدلی که ارائه می کنید پشتیبانی می شوند. به عنوان مثال، FIL پشتیبانی می کند model_type xgboost, xgboost_json, lightgbm، یا treelite_checkpoint، نشان می دهد که آیا مدل ارائه شده به ترتیب در قالب باینری XGBoost، فرمت XGBoost JSON، فرمت متنی LightGBM یا قالب باینری Treelite است.

این پشتیبانی از Backend برای استفاده در مثال خود ضروری است زیرا FIL از مدل های XGBoost پشتیبانی می کند. تنها نکته ای که باید بررسی شود این است که مطمئن شویم مدلی که به کار می بریم از فرمت های باینری یا JSON پشتیبانی می کند.

علاوه بر اطمینان از داشتن قالب مدل مناسب، ملاحظات دیگری نیز باید در نظر گرفته شود. باطن FIL برای تریتون گزینه های قابل تنظیمی را برای توسعه دهندگان فراهم می کند تا حجم کاری خود را تنظیم کنند و عملکرد اجرای مدل را بهینه کنند. پیکربندی dynamic_batching به تریتون اجازه می‌دهد تا درخواست‌های سمت کلاینت را نگه دارد و آنها را در سمت سرور دسته‌بندی کند، تا به طور موثر از محاسبات موازی FIL برای استنتاج کل دسته با هم استفاده کند. گزینه max_queue_delay_microseconds یک کنترل بی خطر از مدت زمان انتظار تریتون برای تشکیل یک دسته ارائه می دهد. FIL همراه با توضیح دهنده Shapley است که می تواند با پیکربندی فعال شود treeshap_output; با این حال، باید در نظر داشته باشید که خروجی های Shapley به دلیل اندازه خروجی آن به عملکرد آسیب می زند. جنبه مهم دیگر این است storage_type به منظور مبادله بین ردپای حافظه و زمان اجرا. برای مثال، استفاده از فضای ذخیره‌سازی به‌عنوان SPARSE می‌تواند مصرف حافظه را کاهش دهد، در حالی که DENSE می‌تواند عملکرد اجرای مدل شما را به قیمت استفاده از حافظه بیشتر کاهش دهد. تصمیم‌گیری بهترین انتخاب برای هر یک از این موارد به حجم کاری و بودجه تأخیر شما بستگی دارد، بنابراین توصیه می‌کنیم نگاه عمیق‌تری به همه گزینه‌ها در این بخش داشته باشید. سوالات متداول FIL backend و لیست تنظیمات موجود در FIL.

مراحل میزبانی یک مدل در تریتون

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

حجم کار خود را شناسایی کنید

در این مورد استفاده، ما یک مدل تشخیص تقلب داریم که در فرآیند پرداخت یک مشتری خرده‌فروش استفاده می‌شود. خط لوله استنتاج از یک الگوریتم XGBoost با منطق پیش پردازش استفاده می کند که شامل آماده سازی داده ها برای پیش پردازش است.

معیارهای عملکرد فعلی و هدف و سایر اهدافی که ممکن است اعمال شوند را شناسایی کنید

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

برای تعیین اینکه آیا تریتون می تواند حجم کاری شما را بر اساس نیازهای شما میزبانی کند یا خیر، به عقب کار کنید

برای تعیین اینکه آیا تریتون می تواند نیازهای شما را برآورده کند یا خیر، می خواهید به دو حوزه اصلی نگرانی توجه کنید. اولین مورد این است که اطمینان حاصل شود که Triton می تواند با یک گزینه front end قابل قبول مانند HTTP یا C API خدمت کند.

همانطور که قبلا ذکر شد، تعیین اینکه آیا تریتون از یک Backend پشتیبانی می‌کند که می‌تواند به مصنوعات شما خدمت کند یا خیر، بسیار مهم است. تریتون تعدادی از باطن که برای پشتیبانی از چارچوب های مختلف مانند PyTorch و TensorFlow طراحی شده اند. بررسی کنید تا مطمئن شوید که مدل‌های شما پشتیبانی می‌شوند و قالب مدل مناسبی را که Triton انتظار دارد، دارید. برای انجام این کار، ابتدا بررسی کنید تا ببینید بک‌اند تریتون از چه قالب‌هایی پشتیبانی می‌کند. در بسیاری از موارد، این نیاز به هیچ تغییری برای مدل ندارد. در موارد دیگر، مدل شما ممکن است نیاز به تبدیل به قالب دیگری داشته باشد. بسته به فرمت منبع و هدف، گزینه های مختلفی مانند تبدیل a وجود دارد فایل ترشی پایتون برای استفاده از فرمت ایست بازرسی باینری Treelite.

برای این مورد استفاده، ما تعیین می کنیم باطن FIL می توانیم مدل XGBoost را بدون نیاز به تغییر پشتیبانی کنیم و می توانیم از آن استفاده کنیم باطن پایتون برای پیش پردازش با ویژگی مجموعه تریتون، می‌توانید با اجتناب از تماس‌های پرهزینه شبکه بین نمونه‌های میزبانی، حجم کاری خود را بیشتر بهینه کنید.

یک طرح ایجاد کنید و تلاش لازم برای استفاده از تریتون برای میزبانی را تخمین بزنید

بیایید در مورد برنامه انتقال مدل های خود به تریتون صحبت کنیم. هر استقرار تریتون به موارد زیر نیاز دارد:

  • مصنوعات مدل مورد نیاز باطن های تریتون
  • فایل های پیکربندی تریتون
  • یک پوشه مخزن مدل با ساختار مناسب

ما نمونه ای از نحوه ایجاد این وابستگی های استقرار را در ادامه این پست نشان می دهیم.

طرح را اجرا کنید و نتایج را تأیید کنید

پس از اینکه فایل ها و مصنوعات مورد نیاز را در مخزن مدل با ساختار مناسب ایجاد کردید، باید استقرار خود را تنظیم کنید و آن را آزمایش کنید تا تأیید کنید که اکنون به معیارهای هدف خود رسیده اید.

در این مرحله می توانید استفاده کنید SageMaker Inference Recommender برای تعیین اینکه کدام نوع نمونه نقطه پایانی بر اساس نیاز شما برای شما بهترین است. علاوه بر این، تریتون ابزارهایی برای بهینه سازی ساخت و ساز برای دستیابی به عملکرد بهتر ارائه می دهد.

پیاده سازی

حالا بیایید جزئیات پیاده سازی را بررسی کنیم. برای این کار ما دو دفترچه یادداشت آماده کرده ایم که نمونه ای از آنچه می توان انتظار داشت را ارائه می دهد. را اولین دفترچه یادداشت آموزش مدل XGBoost داده شده و همچنین منطق پیش پردازش را نشان می دهد که هم برای آموزش و هم برای زمان استنتاج استفاده می شود. را دفتر دوم نشان می دهد که چگونه مصنوعات مورد نیاز برای استقرار در تریتون را آماده می کنیم.

اولین نوت بوک یک نوت بوک موجود را نشان می دهد که سازمان شما دارد که از آن استفاده می کند سریع مجموعه ای از کتابخانه ها و هسته RAPIDS Conda. این نمونه بر روی یک نمونه G4DN ارائه شده توسط AWS اجرا می‌شود که با استفاده از پردازنده‌های NVIDIA T4 سرعت پردازش گرافیکی آن را افزایش می‌دهد.

دستیابی به میزبانی با تأخیر کم برای مدل‌های ML مبتنی بر درخت تصمیم در سرور استنتاج تریتون NVIDIA در Amazon SageMaker PlatoBlockchain Data Intelligence. جستجوی عمودی Ai.

وظایف پیش پردازش در این مثال از شتاب GPU بهره می برند و به شدت از کتابخانه های cuML و cuDF استفاده می کنند. یک مثال از این در کد زیر است، جایی که ما رمزگذاری برچسب طبقه‌ای را با استفاده از cuML نشان می‌دهیم. ما همچنین یک را تولید می کنیم label_encoders.pkl فایلی که می توانیم از آن برای سریال سازی رمزگذارها و استفاده از آنها برای پیش پردازش در طول زمان استنتاج استفاده کنیم.

دستیابی به میزبانی با تأخیر کم برای مدل‌های ML مبتنی بر درخت تصمیم در سرور استنتاج تریتون NVIDIA در Amazon SageMaker PlatoBlockchain Data Intelligence. جستجوی عمودی Ai.

اولین نوت بوک با آموزش مدل XGBoost ما و ذخیره مصنوعات بر اساس آن به پایان می رسد.

دستیابی به میزبانی با تأخیر کم برای مدل‌های ML مبتنی بر درخت تصمیم در سرور استنتاج تریتون NVIDIA در Amazon SageMaker PlatoBlockchain Data Intelligence. جستجوی عمودی Ai.

دستیابی به میزبانی با تأخیر کم برای مدل‌های ML مبتنی بر درخت تصمیم در سرور استنتاج تریتون NVIDIA در Amazon SageMaker PlatoBlockchain Data Intelligence. جستجوی عمودی Ai.

در این سناریو، کد آموزشی از قبل وجود داشته است و نیازی به تغییر در مدل در زمان آموزش نیست. علاوه بر این، اگرچه ما از شتاب GPU برای پیش پردازش در طول آموزش استفاده کردیم، قصد داریم از CPU برای پیش پردازش در زمان استنتاج استفاده کنیم. در ادامه پست بیشتر توضیح می دهیم.

بیایید اکنون به نوت بوک دوم برویم و آنچه را که برای استقرار موفقیت آمیز تریتون نیاز داریم را یادآوری کنیم.

ابتدا، به آرتیفکت‌های مدل مورد نیاز backendها نیاز داریم. فایل هایی که باید برای این مجموعه ایجاد کنیم عبارتند از:

  • پیش پردازش مصنوعات (model.py, label_encoders.pkl)
  • مصنوعات مدل XGBoost (xgboost.json)

پشتیبان پایتون در تریتون ما را ملزم می کند که از یک محیط Conda به عنوان یک وابستگی استفاده کنیم. در این مورد، ما از پشتیبان پایتون برای پیش پردازش داده های خام قبل از تغذیه آن به مدل XGBoost که در باطن FIL اجرا می شود، استفاده می کنیم. اگرچه ما در ابتدا از کتابخانه های RAPIDS cuDF و cuML برای انجام پیش پردازش داده ها استفاده می کردیم (همانطور که قبلاً با استفاده از GPU ما اشاره شد)، در اینجا از Pandas و Scikit-learn به عنوان وابستگی های پیش پردازش برای زمان استنتاج (با استفاده از CPU) استفاده می کنیم. ما این کار را به سه دلیل انجام می دهیم:

  • برای نشان دادن نحوه ایجاد یک محیط Conda برای وابستگی های خود و نحوه بسته بندی آن در قالب مورد انتظار توسط باطن پایتون تریتون.
  • با نشان دادن مدل پیش پردازش در حال اجرا در باطن پایتون در CPU در حالی که مدل XGBoost بر روی GPU در باطن FIL اجرا می‌شود، نشان می‌دهیم که چگونه هر مدل در خط لوله گروه Triton می‌تواند روی یک فریم‌ورک باطن متفاوت اجرا شود، و بر روی سخت‌افزارهای مختلف با متفاوت اجرا شود. پیکربندی.
  • این نشان می دهد که چگونه کتابخانه های RAPIDS (cuDF، cuML) با همتایان CPU خود (Pandas، Scikit-learn) سازگار هستند. به این ترتیب، ما می توانیم نشان دهیم که چگونه LabelEncoders ایجاد شده در cuML می تواند در Scikit-learn و بالعکس استفاده شود. توجه داشته باشید که اگر انتظار دارید حجم زیادی از داده های جدولی را در طول زمان استنتاج از قبل پردازش کنید، همچنان می توانید از RAPIDS برای شتاب دادن به GPU استفاده کنید.

به یاد داشته باشید که ما ایجاد کردیم label_encoders.pkl فایل در اولین دفترچه یادداشت برای رمزگذاری دسته‌ها کاری جز گنجاندن آن در ما وجود ندارد model.py فایل برای پیش پردازش

دستیابی به میزبانی با تأخیر کم برای مدل‌های ML مبتنی بر درخت تصمیم در سرور استنتاج تریتون NVIDIA در Amazon SageMaker PlatoBlockchain Data Intelligence. جستجوی عمودی Ai.

برای ایجاد فایل model.py مورد نیاز باطن تریتون پایتون، ما به آن پایبند هستیم قالب بندی مورد نیاز باطن و منطق پایتون ما را برای پردازش تانسور ورودی و استفاده از رمزگذار برچسب که قبلاً به آن اشاره شد، اضافه کنید. می توانید بررسی کنید پرونده برای پیش پردازش استفاده می شود.

برای مدل XGBoost، هیچ کاری بیشتر لازم نیست انجام شود. ما این مدل را در اولین نوت بوک آموزش دادیم و باطن FIL تریتون نیازی به تلاش اضافی برای مدل های XGBoost ندارد.

بعد، ما به فایل های پیکربندی Triton نیاز داریم. هر مدل در مجموعه تریتون نیاز به یک config.pbtxt فایل. علاوه بر این، ما همچنین یک را ایجاد می کنیم config.pbtxt فایل برای گروه به عنوان یک کل. این فایل‌ها به تریتون اجازه می‌دهند تا با اطلاعاتی مانند ورودی‌ها و خروجی‌های مورد انتظار ما و همچنین کمک به تعریف DAG مرتبط با مجموعه، فراداده‌های مربوط به مجموعه را بداند.

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

دستیابی به میزبانی با تأخیر کم برای مدل‌های ML مبتنی بر درخت تصمیم در سرور استنتاج تریتون NVIDIA در Amazon SageMaker PlatoBlockchain Data Intelligence. جستجوی عمودی Ai.

پس از اینکه این سه پیش نیاز را داشتیم، یک فایل فشرده به عنوان بسته بندی برای استقرار ایجاد می کنیم و آن را در آن آپلود می کنیم. سرویس ذخیره سازی ساده آمازون (Amazon S3).

دستیابی به میزبانی با تأخیر کم برای مدل‌های ML مبتنی بر درخت تصمیم در سرور استنتاج تریتون NVIDIA در Amazon SageMaker PlatoBlockchain Data Intelligence. جستجوی عمودی Ai.

اکنون می‌توانیم یک مدل SageMaker از مخزن مدلی که در مرحله قبل در آمازون S3 آپلود کردیم، ایجاد کنیم.

در این مرحله متغیر محیط اضافی را نیز ارائه می دهیم SAGEMAKER_TRITON_DEFAULT_MODEL_NAME، که نام مدل بارگذاری شده توسط تریتون را مشخص می کند. مقدار این کلید باید با نام پوشه در بسته مدل آپلود شده در Amazon S3 مطابقت داشته باشد. این متغیر در مورد یک مدل اختیاری است. در مورد مدل های گروهی، این کلید باید برای راه اندازی تریتون در SageMaker مشخص شود.

علاوه بر این، می توانید تنظیم کنید SAGEMAKER_TRITON_BUFFER_MANAGER_THREAD_COUNT و SAGEMAKER_TRITON_THREAD_COUNT برای بهینه سازی تعداد موضوعات هر دو مقدار پیکربندی به تنظیم تعداد رشته‌هایی که روی CPU شما در حال اجرا هستند کمک می‌کنند، بنابراین احتمالاً می‌توانید با افزایش این مقادیر برای CPUهایی با تعداد هسته‌های بیشتر، استفاده بهتری داشته باشید. در اکثر موارد، مقادیر پیش‌فرض اغلب به خوبی کار می‌کنند، اما ممکن است ارزش آزمایش را داشته باشد تا ببینید آیا می‌توان کارایی بیشتری برای بارهای کاری خود به دست آورد یا خیر.

دستیابی به میزبانی با تأخیر کم برای مدل‌های ML مبتنی بر درخت تصمیم در سرور استنتاج تریتون NVIDIA در Amazon SageMaker PlatoBlockchain Data Intelligence. جستجوی عمودی Ai.

با مدل قبلی، یک پیکربندی نقطه پایانی ایجاد می‌کنیم که در آن می‌توانیم نوع و تعداد نمونه‌هایی را که می‌خواهیم در نقطه پایانی مشخص کنیم.

دستیابی به میزبانی با تأخیر کم برای مدل‌های ML مبتنی بر درخت تصمیم در سرور استنتاج تریتون NVIDIA در Amazon SageMaker PlatoBlockchain Data Intelligence. جستجوی عمودی Ai.

در نهایت، ما از پیکربندی نقطه پایانی قبلی برای ایجاد یک نقطه پایانی جدید SageMaker استفاده می کنیم و منتظر می مانیم تا استقرار به پایان برسد. وضعیت تغییر می کند InService پس از موفقیت آمیز بودن استقرار

دستیابی به میزبانی با تأخیر کم برای مدل‌های ML مبتنی بر درخت تصمیم در سرور استنتاج تریتون NVIDIA در Amazon SageMaker PlatoBlockchain Data Intelligence. جستجوی عمودی Ai.

خودشه! نقطه پایانی شما اکنون برای آزمایش و اعتبار سنجی آماده است. در این مرحله، ممکن است بخواهید از ابزارهای مختلفی برای کمک به بهینه سازی انواع نمونه و پیکربندی خود برای به دست آوردن بهترین عملکرد ممکن استفاده کنید. شکل زیر نمونه ای از دستاوردهایی را ارائه می دهد که می توان با استفاده از پشتیبان FIL برای یک مدل XGBoost در تریتون به دست آورد.

دستیابی به میزبانی با تأخیر کم برای مدل‌های ML مبتنی بر درخت تصمیم در سرور استنتاج تریتون NVIDIA در Amazon SageMaker PlatoBlockchain Data Intelligence. جستجوی عمودی Ai.

خلاصه

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

SageMaker ابزارهایی را برای حذف بارهای سنگین غیرمتمایز از هر مرحله از چرخه عمر ML فراهم می کند، در نتیجه آزمایش و کاوش سریع مورد نیاز برای بهینه سازی کامل استقرار مدل شما را تسهیل می کند. پشتیبانی از میزبانی SageMaker برای سرور استنتاج Triton، بار کاری با تاخیر کم و تراکنش های بالا در ثانیه (TPS) را فعال می کند.

می توانید نوت بوک های مورد استفاده برای این مثال را در اینجا پیدا کنید GitHub.


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

دستیابی به میزبانی با تأخیر کم برای مدل‌های ML مبتنی بر درخت تصمیم در سرور استنتاج تریتون NVIDIA در Amazon SageMaker PlatoBlockchain Data Intelligence. جستجوی عمودی Ai.جیمز پارک یک معمار راه حل در خدمات وب آمازون است. او با Amazon.com برای طراحی، ساخت و استقرار راه حل های فناوری در AWS کار می کند و علاقه خاصی به هوش مصنوعی و یادگیری ماشین دارد. در اوقات فراغت خود از جستجوی فرهنگ های جدید، تجربیات جدید و به روز ماندن با آخرین روندهای فناوری لذت می برد.

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

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

دستیابی به میزبانی با تأخیر کم برای مدل‌های ML مبتنی بر درخت تصمیم در سرور استنتاج تریتون NVIDIA در Amazon SageMaker PlatoBlockchain Data Intelligence. جستجوی عمودی Ai.برونو آگیار دی ملو یک مهندس توسعه نرم افزار در Amazon.com است، جایی که به تیم های علمی در ساخت، استقرار و انتشار بارهای کاری ML کمک می کند. او به ابزار دقیق و جنبه‌های قابل کنترل در فاز مدل‌سازی/طراحی ML علاقه‌مند است که باید با این بینش در نظر گرفته و اندازه‌گیری شود که عملکرد اجرای مدل به همان اندازه عملکرد کیفیت مدل مهم است، به‌ویژه در موارد استفاده با محدودیت تأخیر. در اوقات فراغت خود از شراب، بازی های رومیزی و آشپزی لذت می برد.

دستیابی به میزبانی با تأخیر کم برای مدل‌های ML مبتنی بر درخت تصمیم در سرور استنتاج تریتون NVIDIA در Amazon SageMaker PlatoBlockchain Data Intelligence. جستجوی عمودی Ai.الیوت تریانا مدیر روابط توسعه دهنده در NVIDIA است. او رهبران محصولات آمازون و AWS، توسعه دهندگان و دانشمندان را با تکنولوژیست های NVIDIA و رهبران محصولات مرتبط می کند تا بار کاری آمازون ML/DL، محصولات EC2 و خدمات AWS AI را تسریع بخشد. علاوه بر این، الیوت یک دوچرخه سوار کوهستانی، اسکی باز و بازیکن پوکر پرشور است.

تمبر زمان:

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