گاهی اوقات استفاده از ابزارهایی مانند کامپایلرها که می توانند مدل های شما را برای عملکرد بهینه استنتاج تغییر داده و کامپایل کنند، می تواند بسیار سودمند باشد. در این پست به بررسی TensorRT و نحوه استفاده از آن می پردازیم آمازون SageMaker استنتاج با استفاده از سرور استنتاج تریتون NVIDIA. ما نحوه عملکرد TensorRT و نحوه میزبانی و بهینهسازی این مدلها را برای عملکرد و کارایی هزینه در SageMaker بررسی میکنیم. SageMaker فراهم می کند نقاط پایانی تک مدل (SMEs)، که به شما امکان می دهد یک مدل ML واحد یا نقاط پایانی چند مدلی (MME)، که به شما امکان می دهد چندین مدل را برای میزبانی در پشت یک نقطه پایانی منطقی برای استفاده بیشتر از منابع مشخص کنید.
برای ارائه مدلها، تریتون از پشتیبانهای مختلف به عنوان موتور پشتیبانی میکند تا از اجرا و ارائه مدلهای مختلف ML برای استنتاج پشتیبانی کند. برای هر استقرار Triton، بسیار مهم است که بدانید رفتار باطن چگونه بر حجم کاری شما تأثیر میگذارد و چه چیزی را باید انتظار داشت تا بتوانید موفق باشید. در این پست به شما کمک می کنیم تا این موضوع را درک کنید باطن TensorRT که توسط Triton در SageMaker پشتیبانی می شود تا بتوانید تصمیمی آگاهانه برای حجم کاری خود بگیرید و نتایج عالی بگیرید.
شیرجه عمیق به باطن TensorRT
TensorRT شما را قادر میسازد استنتاج را با استفاده از تکنیکهایی مانند کوانتیزاسیون، ترکیب لایه و تانسور، تنظیم هسته و موارد دیگر در پردازندههای گرافیکی NVIDIA بهینه کنید. با اتخاذ و کامپایل مدلهایی برای استفاده از TensorRT، میتوانید عملکرد و استفاده را برای حجم کاری استنتاج خود بهینه کنید. در برخی موارد، معاوضههایی وجود دارد که نمونهای از تکنیکهایی مانند کوانتیزهسازی است، اما نتایج میتواند در بهرهمندی از عملکرد، پرداختن به تأخیر و تعداد تراکنشهای قابل پردازش چشمگیر باشد.
پشتیبان TensorRT برای اجرای مدل های TensorRT استفاده می شود. TensorRT یک SDK است که توسط NVIDIA توسعه یافته است که یک کتابخانه استنتاج یادگیری عمیق با کارایی بالا ارائه می دهد. این برای پردازندههای گرافیکی NVIDIA بهینه شده است و راهی برای تسریع استنتاج یادگیری عمیق در محیطهای تولیدی ارائه میکند. TensorRT از چارچوبهای اصلی یادگیری عمیق پشتیبانی میکند و شامل یک بهینهساز استنتاج یادگیری عمیق با کارایی بالا و زمان اجرا است که تأخیر کم و استنتاج با توان بالا را برای برنامههای هوش مصنوعی ارائه میکند.
TensorRT قادر است با استفاده از تکنیکی به نام عملکرد مدل را تسریع بخشد بهینه سازی نمودار برای بهینه سازی نمودار محاسباتی تولید شده توسط یک مدل یادگیری عمیق. این نمودار را برای به حداقل رساندن ردپای حافظه با آزاد کردن حافظه غیر ضروری و استفاده مجدد کارآمد از آن بهینه می کند. کامپایل TensorRT عملیات پراکنده را در نمودار مدل ترکیب می کند تا یک هسته بزرگتر را تشکیل دهد تا از سربار راه اندازی چندین هسته کوچک جلوگیری کند. با تنظیم خودکار هسته، موتور بهترین الگوریتم را برای GPU هدف انتخاب می کند و استفاده از سخت افزار را به حداکثر می رساند. علاوه بر این، TensorRT از جریانهای CUDA برای فعال کردن پردازش موازی مدلها استفاده میکند و استفاده و عملکرد GPU را بیشتر بهبود میبخشد. در نهایت، از طریق کوانتیزه کردن، TensorRT میتواند از شتاب با دقت ترکیبی هستههای Tensor استفاده کند و مدل را قادر میسازد تا با دقت FP32، TF32، FP16 و INT8 برای بهترین عملکرد استنتاج اجرا شود. با این حال، اگرچه دقت کاهش یافته به طور کلی می تواند عملکرد تاخیر را بهبود بخشد، ممکن است با بی ثباتی و کاهش دقت مدل همراه باشد. به طور کلی، ترکیب تکنیکهای TensorRT منجر به استنتاج سریعتر و تأخیر کمتر در مقایسه با سایر موتورهای استنتاج میشود.
پشتیبان TensorRT برای سرور استنتاج تریتون به گونهای طراحی شده است که از قابلیتهای استنتاج قدرتمند پردازندههای گرافیکی NVIDIA استفاده کند. برای استفاده از TensorRT به عنوان پشتیبان برای سرور استنتاج Triton، باید یک موتور TensorRT از مدل آموزش دیده خود با استفاده از TensorRT API ایجاد کنید. این موتور سپس در سرور استنتاج تریتون بارگذاری می شود و برای انجام استنتاج در درخواست های دریافتی استفاده می شود. مراحل زیر برای استفاده از TensorRT به عنوان پشتیبان برای سرور استنتاج Triton آمده است:
- مدل آموزش دیده خود را به ONNX قالب سرور استنتاج تریتون از ONNX به عنوان یک قالب مدل پشتیبانی می کند. ONNX استانداردی برای نمایش مدل های یادگیری عمیق است که امکان انتقال آنها را بین چارچوب ها فراهم می کند. اگر مدل شما قبلاً در قالب ONNX نیست، باید آن را با استفاده از ابزار مناسب چارچوب خاص تبدیل کنید. به عنوان مثال، در PyTorch، این کار را می توان با استفاده از
torch.onnx.export
روش. - مدل ONNX را به TensorRT وارد کنید و موتور TensorRT را تولید کنید. برای TensorRT، چندین راه برای ساخت TensorRT از مدل ONNX شما وجود دارد. برای این پست از
trtexec
ابزار CLI.trtexec
ابزاری برای استفاده سریع از TensorRT بدون نیاز به توسعه برنامه خود است. راtrtexec
ابزار سه هدف اصلی دارد:- محک زدن شبکه ها بر روی داده های ورودی تصادفی یا ارائه شده توسط کاربر.
- تولید موتورهای سریالی از مدل ها.
- ایجاد یک حافظه پنهان زمان بندی سریالی از سازنده.
- موتور TensorRT را در سرور استنتاج تریتون بارگیری کنید. پس از تولید موتور TensorRT، می توان آن را با ایجاد یک در سرور استنتاج تریتون بارگذاری کرد پیکربندی مدل فایل. پیکربندی مدل (
config.pbtxt
) فایل باید شامل مسیر فایل موتور TensorRT و اشکال ورودی و خروجی مدل باشد.
هر مدل در یک مخزن مدل باید شامل یک پیکربندی مدل باشد که اطلاعات مورد نیاز و اختیاری را در مورد مدل ارائه دهد. به طور معمول، این پیکربندی در a ارائه می شود config.pbtxt
فایل مشخص شده به عنوان Protobuf ModelConfig. چندین نکته کلیدی در این فایل پیکربندی وجود دارد که باید به آنها توجه کرد:
- نام – این فیلد نام مدل را تعریف می کند و باید در مخزن مدل منحصر به فرد باشد.
- سکو – این فیلد نوع مدل را مشخص می کند: موتور TensorRT، PyTorch یا چیز دیگری.
- حداکثر_اندازه_دسته – این حداکثر اندازه دسته ای را که می توان به این مدل منتقل کرد مشخص می کند. اگر بعد دسته ای مدل، بعد اول باشد و همه ورودی ها و خروجی های مدل دارای این بعد دسته ای باشند، تریتون می تواند از آن استفاده کند. بچر پویا or سکانس باتچر برای استفاده خودکار از دسته بندی با مدل. در این مورد،
max_batch_size
باید روی مقداری بزرگتر یا مساوی 1 تنظیم شود که نشان دهنده حداکثر اندازه دسته ای است که تریتون باید با مدل استفاده کند. برای مدلهایی که از بچینگ پشتیبانی نمیکنند یا از بچینگ به روشهای خاصی که توضیح دادیم پشتیبانی نمیکنند،max_batch_size
باید روی 0 تنظیم شود. - ورودی و خروجی - این فیلدها ضروری هستند زیرا NVIDIA Triton به ابرداده در مورد مدل نیاز دارد. اساساً به نام لایه های ورودی و خروجی شبکه و شکل ورودی ها و خروجی های گفته شده نیاز دارد.
- instance_group - این تعیین می کند که چند نمونه از این مدل ایجاد می شود و آیا آنها از GPU یا CPU استفاده خواهند کرد.
- dynamic_batching - دسته بندی پویا یکی از ویژگی های Triton است که اجازه می دهد درخواست های استنتاج توسط سرور ترکیب شوند، به طوری که یک دسته به صورت پویا ایجاد شود. این
preferred_batch_size
ویژگی نشان دهنده اندازه های دسته ای است که باتجر پویا باید سعی کند ایجاد کند. برای اکثر مدل ها،preferred_batch_size
نباید مشخص شود، همانطور که در فرآیند پیکربندی توصیه شده. یک استثنا مدلهای TensorRT هستند که چندین پروفایل بهینهسازی را برای اندازههای دستهای مختلف مشخص میکنند. در این مورد، از آنجا که برخی از پروفایل های بهینه سازی ممکن است عملکرد قابل توجهی را در مقایسه با دیگران بهبود بخشند، ممکن است استفاده از آن منطقی باشدpreferred_batch_size
برای اندازه های دسته ای پشتیبانی شده توسط آن پروفایل های بهینه سازی با عملکرد بالاتر. همچنین می توانید به اندازه دسته ای که قبلاً هنگام اجرا استفاده می شد اشاره کنیدtrtexec
. همچنین میتوانید زمان تأخیر را طوری پیکربندی کنید که درخواستها برای مدت محدودی در زمانبندی به تأخیر بیفتند تا درخواستهای دیگر به دسته پویا بپیوندند.
پشتیبان TensorRT بهبود یافته است تا عملکرد بسیار بهتری داشته باشد. بهبودها شامل کاهش اختلاف موضوعات، استفاده از حافظه پین شده برای انتقال سریعتر بین CPU و GPU، و افزایش همپوشانی محاسباتی و کپی حافظه در GPUها است. همچنین در بسیاری از موارد با به اشتراک گذاشتن وزن در چندین نمونه مدل، استفاده از حافظه مدل های TensorRT را کاهش می دهد. به طور کلی، پشتیبان TensorRT برای سرور استنتاج تریتون یک راه قدرتمند و انعطاف پذیر برای ارائه مدل های یادگیری عمیق با استنتاج TensorRT بهینه ارائه می کند. با تنظیم گزینههای پیکربندی، میتوانید عملکرد و رفتار کنترل را متناسب با مورد خاص خود بهینه کنید.
SageMaker Triton را از طریق SMEs و MMEs فراهم می کند
SageMaker شما را قادر به استقرار می کند هر دو تنها و چند مدل نقاط پایانی با سرور استنتاج تریتون. تریتون از یک خوشه ناهمگن با پردازندههای گرافیکی و پردازندههای مرکزی پشتیبانی میکند، که به استانداردسازی استنتاج در پلتفرمها کمک میکند و به صورت پویا به هر CPU یا GPU برای مدیریت بارهای اوج مقیاس میرسد. نمودار زیر معماری سرور استنتاج تریتون را نشان می دهد. درخواستهای استنتاج از طریق هر یک به سرور میرسند HTTP/REST یا توسط C API، و سپس به زمانبندی مناسب برای هر مدل هدایت می شوند. تریتون اجرا می کند چندین الگوریتم زمانبندی و دسته بندی که می تواند بر اساس مدل به مدل پیکربندی شود. زمانبندی هر مدل به صورت اختیاری دسته بندی درخواست های استنتاج را انجام می دهد و سپس درخواست ها را به آن ارسال می کند باطن مطابق با نوع مدل چارچوب فریم ورک استنتاج را با استفاده از ورودی های ارائه شده در درخواست های دسته ای برای تولید خروجی های درخواستی انجام می دهد. سپس خروجی ها فرمت می شوند و در پاسخ بازگردانده می شوند. را مخزن مدل یک مخزن مبتنی بر سیستم فایل از مدل هایی است که تریتون برای استنتاج در دسترس قرار خواهد داد.
SageMaker از شکلدهی ترافیک به نقطه پایانی MME مراقبت میکند و نسخههای مدل بهینه را در نمونههای GPU برای بهترین عملکرد قیمت حفظ میکند. به مسیریابی ترافیک به نمونه ای که مدل بارگیری می شود ادامه می دهد. اگر منابع نمونه به دلیل استفاده زیاد به ظرفیت برسد، SageMaker مدل های کم استفاده را از کانتینر تخلیه می کند تا منابع را برای بارگیری مدل های پرکاربرد آزاد کند. SageMaker MME قابلیتهایی را برای اجرای چندین مدل یادگیری عمیق یا ML بر روی پردازنده گرافیکی، با سرور استنتاج تریتون، که برای پیادهسازی قرارداد MME API. MMEها اشتراکگذاری نمونههای GPU را در پشت یک نقطه پایانی در چندین مدل، و بارگیری و بارگیری پویا مدلها بر اساس ترافیک ورودی را امکانپذیر میکنند. با این کار به راحتی می توانید به عملکرد قیمتی مطلوب دست پیدا کنید.
هنگامی که یک SageMaker MME یک درخواست فراخوانی HTTP برای یک مدل خاص با استفاده از آن دریافت می کند TargetModel
در درخواست همراه با بار، ترافیک را به نمونه سمت راست در پشت نقطه پایانی که مدل هدف بارگذاری میشود، هدایت میکند. SageMaker از مدیریت مدل در پشت نقطه پایانی مراقبت می کند. به صورت پویا مدل ها را از سرویس ذخیره سازی ساده آمازون (Amazon S3) به حجم ذخیره سازی نمونه اگر مدل فراخوانی شده در حجم ذخیره سازی نمونه موجود نباشد. سپس SageMaker مدل را در حافظه کانتینر NVIDIA Triton روی یک نمونه شتابدهنده GPU بارگذاری میکند و درخواست استنتاج را ارائه میکند. هسته GPU در یک نمونه توسط همه مدل ها مشترک است. برای اطلاعات بیشتر در مورد MME های SageMaker در GPU، رجوع کنید چندین مدل یادگیری عمیق را روی GPU با نقاط پایانی چند مدل Amazon SageMaker اجرا کنید.
SageMaker MME میتواند با استفاده از یک خطمشی مقیاسبندی خودکار مقیاس افقی داشته باشد و نمونههای محاسباتی GPU اضافی را بر اساس معیارهای مشخص شده ارائه دهد. هنگام پیکربندی گروه های مقیاس خودکار خود برای نقاط پایانی SageMaker، ممکن است بخواهید در نظر بگیرید SageMakerVariantInvocationsPerInstance
به عنوان معیار اولیه برای تعیین ویژگی های مقیاس بندی گروه های مقیاس خودکار شما. علاوه بر این، بر اساس اینکه آیا مدلهای شما روی GPU یا CPU اجرا میشوند، میتوانید از آن استفاده کنید CPUUtilization
or GPUUtilization
به عنوان معیارهای اضافی برای نقاط پایانی تک مدل، از آنجایی که مدلهای مستقر شده همه یکسان هستند، تنظیم خطمشیهای مناسب برای مطابقت با SLAهای خود نسبتاً ساده است. برای نقاط پایانی چند مدل، توصیه میکنیم مدلهای مشابه را در پشت یک نقطه پایانی معین به کار ببرید تا عملکرد پایدارتر و قابل پیشبینیتری داشته باشید. در موارد استفاده که از مدلهایی با اندازهها و الزامات مختلف استفاده میشود، ممکن است بخواهید آن حجمهای کاری را در چندین نقطه پایانی چند مدل جدا کنید یا مدتی را صرف تنظیم دقیق خطمشی گروه مقیاسبندی خودکار خود کنید تا بهترین تعادل هزینه و عملکرد را به دست آورید.
بررسی اجمالی راه حل
با انویدیا تریتون تصویر کانتینر در SageMaker، اکنون میتوانید از باطن TensorRT Triton استفاده کنید، که به شما امکان میدهد مدلهای TensorRT را مستقر کنید. را TensorRT_backend مخزن حاوی اسناد و منبع برای باطن است. در بخشهای بعدی، شما را با این موارد آشنا میکنیم نمونه دفترچه یادداشت که نحوه استفاده از NVIDIA Triton Inference Server در MME های SageMaker با ویژگی GPU برای استقرار مدل پردازش زبان طبیعی BERT (NLP) را نشان می دهد.
محیط را تنظیم کنید
ما با تنظیم محیط مورد نیاز شروع می کنیم. ما وابستگی های مورد نیاز برای بسته بندی خط لوله مدل خود را نصب می کنیم و استنتاج ها را با استفاده از سرور استنتاج تریتون اجرا می کنیم. ما نیز تعریف می کنیم هویت AWS و مدیریت دسترسی نقش (IAM) که به SageMaker امکان دسترسی به مصنوعات مدل و NVIDIA Triton را می دهد. رجیستری ظروف الاستیک آمازون تصویر (Amazon ECR). می توانید از مثال کد زیر برای بازیابی تصویر از پیش ساخته Triton ECR استفاده کنید:
روش های ابزاری را برای آماده سازی بار درخواست اضافه کنید
ما توابعی را ایجاد می کنیم تا متن نمونه ای را که برای استنتاج استفاده می کنیم به محموله ای تبدیل کنیم که می تواند برای استنتاج به سرور استنتاج Triton ارسال شود. را tritonclient
پکیج که در ابتدا نصب شد، روشهای کاربردی را برای تولید بار بدون نیاز به دانستن جزئیات مشخصات ارائه میدهد. ما از روش های ایجاد شده برای تبدیل درخواست استنتاج خود به یک فرمت باینری استفاده می کنیم که تأخیر کمتری برای استنتاج فراهم می کند. این توابع در مرحله استنتاج استفاده می شوند.
مدل TensorRT را آماده کنید
در این مرحله، ما را بارگذاری می کنیم مدل BERT از پیش آموزش دیده و با استفاده از صادرکننده مشعل ONNX و به نمایندگی ONNX تبدیل کنید onnx_exporter.py
اسکریپت پس از ایجاد مدل ONNX، از TensorRT استفاده می کنیم trtexec
دستور ایجاد طرح مدل برای میزبانی با تریتون. این به عنوان بخشی از اجرا می شود generate_model.sh
اسکریپت از سلول زیر توجه داشته باشید که سلول حدود 30 دقیقه طول می کشد تا تکمیل شود.
در حالی که منتظر پایان اجرای دستور هستید، می توانید اسکریپت های استفاده شده در این مرحله را بررسی کنید. در onnx_exporter.py
اسکریپت، ما از torch.onnx.export
تابع برای ایجاد مدل ONNX:
خط فرمان در فایل generate_model.sh طرح مدل TensorRT را ایجاد می کند. برای اطلاعات بیشتر به ابزار خط فرمان trtexec.
یک مخزن مدل TensorRT NLP BERT بسازید
استفاده از Triton در SageMaker مستلزم آن است که ابتدا a را راه اندازی کنیم مخزن مدل پوشه حاوی مدل هایی که می خواهیم ارائه دهیم. برای هر مدل، باید یک پوشه مدل متشکل از مصنوع مدل ایجاد کنیم و آن را تعریف کنیم config.pbtxt
فایل برای تعیین پیکربندی مدلی که تریتون برای بارگذاری و سرویس مدل استفاده می کند. برای کسب اطلاعات بیشتر در مورد تنظیمات پیکربندی، مراجعه کنید پیکربندی مدل. ساختار مخزن مدل برای مدل BERT به شرح زیر است:
توجه داشته باشید که تریتون الزامات خاصی برای چیدمان مخزن مدل دارد. در دایرکتوری مخزن مدل سطح بالا، هر مدل فهرست فرعی خود را دارد که حاوی اطلاعات مدل مربوطه است. هر دایرکتوری مدل در تریتون باید حداقل یک زیردایرکتوری عددی داشته باشد که نسخه ای از مدل را نشان می دهد. در اینجا، پوشه 1 نشان دهنده نسخه 1 مدل BERT است. هر مدل توسط یک باطن خاص اجرا می شود، بنابراین در زیر شاخه های هر نسخه باید آرتیفکت های مدل مورد نیاز آن باطن وجود داشته باشد. در اینجا، ما از باطن TensorRT استفاده می کنیم، که به فایل پلان TensorRT نیاز دارد که برای سرویس دهی استفاده می شود (برای مثال، model.plan
). اگر از یک Backend PyTorch استفاده می کردیم، a model.pt
فایل مورد نیاز خواهد بود. برای جزئیات بیشتر در مورد قراردادهای نامگذاری برای فایل های مدل، مراجعه کنید فایل های مدل.
هر مدل TensorRT باید a config.pbtxt
فایلی که پیکربندی مدل را توصیف می کند. به منظور استفاده از این باطن، باید تنظیم کنید backend
زمینه مدل شما config.pbtxt
فایل به tensorrt_plan
. بخش زیر کد نمونه ای از نحوه تعریف فایل پیکربندی برای مدل BERT را نشان می دهد که از طریق باطن TensorRT تریتون ارائه می شود:
SageMaker انتظار دارد که یک فایل tar.gz حاوی هر مخزن مدل Triton در نقطه پایانی چند مدل میزبانی شود. برای شبیهسازی چندین مدل مشابه که میزبانی میشوند، ممکن است فکر کنید تمام چیزی که لازم است این است که مخزن مدلی را که قبلاً ساختهایم تار کنیم و سپس آن را با نامهای فایل مختلف کپی کنیم. با این حال، تریتون به نام های مدل منحصر به فرد نیاز دارد. بنابراین، ابتدا مدل repo N بار کپی می کنیم و نام دایرکتوری مدل و متناظر آنها را تغییر می دهیم config.pbtxt
فایل ها. میتوانید تعداد N را تغییر دهید تا نسخههای بیشتری از مدل داشته باشید که میتوانند به صورت پویا در نقطه پایانی میزبان بارگیری شوند تا عملکرد بارگیری/تخلیه مدل مدیریت شده توسط SageMaker شبیهسازی شود. کد زیر را ببینید:
یک نقطه پایانی SageMaker ایجاد کنید
اکنون که مصنوعات مدل را در آمازون S3 آپلود کردهایم، میتوانیم شی مدل SageMaker، پیکربندی نقطه پایانی و نقطه پایانی را ایجاد کنیم.
ابتدا باید ظرف سرو را تعریف کنیم. در تعریف ظرف، را تعریف کنید ModelDataUrl
برای تعیین دایرکتوری S3 که شامل تمام مدل هایی است که نقطه پایانی چند مدل SageMaker برای بارگذاری و ارائه پیش بینی ها استفاده می کند. تنظیم Mode
به MultiModel
برای نشان دادن SageMaker نقطه پایانی را با مشخصات ظرف MME ایجاد می کند. کد زیر را ببینید:
سپس شی مدل SageMaker را با استفاده از create_model
boto3 API با مشخص کردن ModelName
و تعریف ظرف:
ما از این مدل برای ایجاد یک پیکربندی نقطه پایانی جایی که می توانیم نوع و تعداد نمونه های مورد نظر خود را در نقطه پایانی مشخص کنیم. در اینجا ما در حال استقرار یک نمونه GPU NVIDIA g5.xlarge هستیم:
با این پیکربندی نقطه پایانی، یک نقطه پایانی جدید SageMaker ایجاد می کنیم و منتظر می مانیم تا استقرار به پایان برسد. وضعیت به تغییر خواهد کرد InService
زمانی که استقرار موفقیت آمیز باشد.
مدل خود را که در نقطه پایانی SageMaker میزبانی شده است فراخوانی کنید
هنگامی که نقطه پایانی در حال اجرا است، میتوانیم از نمونه دادههای خام برای انجام استنتاج با استفاده از JSON یا باینری+JSON به عنوان فرمت بار استفاده کنیم. برای فرمت درخواست استنتاج، تریتون از استاندارد جامعه KFServing استفاده می کند پروتکل های استنتاج. میتوانیم درخواست استنتاج را به نقطه پایانی چند مدل ارسال کنیم invoke_enpoint
API. را مشخص می کنیم TargetModel
در فراخوانی فراخوانی و عبور در محموله برای هر نوع مدل. در اینجا ما نقطه پایانی را در یک حلقه for فراخوانی می کنیم تا نقطه پایانی را به آن درخواست کنیم بارگذاری یا تخلیه پویا مدل ها بر اساس درخواست ها:
با استفاده از آن می توانید وضعیت بارگیری و تخلیه مدل را نظارت کنید CloudWatch آمازون متریک ها و لاگ ها نقاط پایانی چند مدلی SageMaker معیارهای سطح نمونه را برای نظارت فراهم می کند. برای جزئیات بیشتر مراجعه کنید Amazon SageMaker را با Amazon CloudWatch مانیتور کنید. LoadedModelCount
متریک تعداد مدل های بارگذاری شده در ظروف را نشان می دهد. این ModelCacheHit
متریک تعداد فراخوانهایی را برای مدل نشان میدهد که قبلاً در کانتینر بارگیری شدهاند تا به شما کمک کند اطلاعات بینش در سطح دعوت مدل را دریافت کنید. برای بررسی اینکه آیا مدلها از حافظه بارگیری شدهاند، میتوانید ورودیهای گزارش بارگیری نشده موفق را در گزارشهای CloudWatch نقطه پایانی جستجو کنید.
نوت بوک را می توان در مخزن GitHub.
بهترین شیوه
قبل از شروع هر گونه تلاش بهینه سازی با TensorRT، تعیین اینکه چه چیزی باید اندازه گیری شود ضروری است. بدون اندازه گیری، امکان پیشرفت قابل اعتماد یا اندازه گیری اینکه آیا موفقیت به دست آمده است، غیرممکن است. در اینجا برخی از بهترین روشها وجود دارد که باید هنگام استفاده از پشتیبان TensorRT برای سرور استنتاج تریتون در نظر بگیرید:
- مدل TensorRT خود را بهینه کنید – قبل از استقرار یک مدل در تریتون با باطن TensorRT، مطمئن شوید که مدل را به دنبال TensorRT بهینه کنید. بهترین شیوه راهنما. این به شما کمک می کند تا با کاهش زمان استنتاج و مصرف حافظه به عملکرد بهتری برسید.
- در صورت امکان از TensorRT به جای سایر Backend های Triton استفاده کنید – TensorRT برای بهینهسازی مدلهای یادگیری عمیق برای استقرار در پردازندههای گرافیکی NVIDIA طراحی شده است، بنابراین استفاده از آن میتواند عملکرد استنتاج را در مقایسه با استفاده از سایر پشتیبانهای تریتون پشتیبانیشده به میزان قابل توجهی بهبود بخشد.
- از دقت مناسب استفاده کنید – TensorRT از دقت های متعدد (FP32، FP16، INT8) پشتیبانی می کند و انتخاب دقت مناسب برای مدل شما می تواند تأثیر قابل توجهی بر عملکرد داشته باشد. در صورت امکان از دقت کمتری استفاده کنید.
- از اندازه های دسته ای استفاده کنید که متناسب با سخت افزار شما باشد – مطمئن شوید که اندازههای دستهای را انتخاب کنید که متناسب با حافظه و قابلیتهای محاسباتی GPU شما باشد. استفاده از اندازه های دسته ای که خیلی بزرگ یا خیلی کوچک هستند می تواند بر عملکرد تأثیر منفی بگذارد.
نتیجه
در این پست، ما عمیقاً به پشتوانه TensorRT که سرور استنتاج Triton در SageMaker پشتیبانی میکند، نگاه میکنیم. این باطن شتاب CPU و GPU مدل های TensorRT شما را فراهم می کند. گزینه های زیادی برای به دست آوردن بهترین عملکرد برای استنباط وجود دارد، مانند اندازه های دسته ای، فرمت های ورودی داده و سایر عواملی که می توانند برای رفع نیازهای شما تنظیم شوند. SageMaker به شما امکان می دهد از این قابلیت با استفاده از نقاط پایانی تک مدل برای عملکرد تضمین شده و نقاط پایانی چند مدل برای به دست آوردن تعادل بهتر در عملکرد و صرفه جویی در هزینه استفاده کنید. برای شروع کار با پشتیبانی MME برای GPU، ببینید الگوریتم ها، چارچوب ها و نمونه های پشتیبانی شده.
ما از شما دعوت می کنیم تا ظروف سرور استنتاج Triton را در SageMaker امتحان کنید و نظرات و سوالات خود را در نظرات به اشتراک بگذارید.
درباره نویسنده
ملانی لی یک TAM متخصص ارشد AI/ML در AWS مستقر در سیدنی، استرالیا است. او به مشتریان سازمانی کمک می کند تا راه حل هایی را با استفاده از ابزارهای پیشرفته AI/ML در AWS ایجاد کنند و راهنمایی هایی را در مورد معماری و اجرای راه حل های یادگیری ماشین با بهترین شیوه ها ارائه می دهد. او در اوقات فراغت خود عاشق گشت و گذار در طبیعت در فضای باز و گذراندن وقت با خانواده و دوستان است.
جیمز پارک یک معمار راه حل در خدمات وب آمازون است. او با آمازون برای طراحی، ساخت و استقرار راه حل های فناوری در AWS کار می کند و علاقه خاصی به هوش مصنوعی و یادگیری ماشین دارد. در اوقات فراغت خود از جستجوی فرهنگ های جدید، تجربیات جدید و به روز ماندن با آخرین روندهای فناوری لذت می برد.
جیاهونگ لیو یک معمار راه حل در تیم ارائه دهنده خدمات ابری در NVIDIA است. او به مشتریان در اتخاذ راهحلهای یادگیری ماشین و هوش مصنوعی کمک میکند که از محاسبات تسریعشده NVIDIA برای رسیدگی به چالشهای آموزشی و استنتاج آنها استفاده میکند. او در اوقات فراغت خود از اوریگامی، پروژه های DIY و بازی بسکتبال لذت می برد.
کشیتیز گوپتا یک معمار راه حل در NVIDIA است. او از آموزش دادن به مشتریان ابری درباره فناوریهای هوش مصنوعی GPU که NVIDIA ارائه میکند و کمک به آنها در تسریع یادگیری ماشینی و برنامههای یادگیری عمیق لذت میبرد. خارج از محل کار، او از دویدن، پیاده روی و تماشای حیات وحش لذت می برد.
- محتوای مبتنی بر SEO و توزیع روابط عمومی. امروز تقویت شوید.
- PlatoAiStream. Web3 Data Intelligence دانش تقویت شده دسترسی به اینجا.
- ضرب کردن آینده با آدرین اشلی. دسترسی به اینجا.
- خرید و فروش سهام در شرکت های PRE-IPO با PREIPO®. دسترسی به اینجا.
- منبع: https://aws.amazon.com/blogs/machine-learning/host-ml-models-on-amazon-sagemaker-using-triton-tensorrt-models/
- : دارد
- :است
- :نه
- :جایی که
- $UP
- 1
- 10
- 100
- 11
- 12
- 13
- 23
- 30
- 7
- 8
- a
- قادر
- درباره ما
- شتاب دادن
- تسریع شد
- تسریع
- دسترسی
- دقت
- رسیدن
- دست
- در میان
- عمل
- اضافه
- اضافی
- علاوه بر این
- نشانی
- خطاب به
- تصویب
- مزیت - فایده - سود - منفعت
- پس از
- AI
- AI / ML
- الگوریتم
- الگوریتم
- معرفی
- اجازه دادن
- اجازه می دهد تا
- در امتداد
- قبلا
- همچنین
- هر چند
- آمازون
- آمازون SageMaker
- آمازون خدمات وب
- an
- و
- هر
- API
- کاربرد
- برنامه های کاربردی
- مناسب
- معماری
- هستند
- دور و بر
- AS
- کمک می کند
- At
- استرالیا
- خودکار
- بطور خودکار
- در دسترس
- اجتناب از
- AWS
- بخش مدیریت
- برج میزان
- پایه
- مستقر
- اساسی
- اساس
- بسکتبال
- BE
- زیرا
- بوده
- قبل از
- شروع
- شروع
- پشت سر
- بودن
- مفید
- سودمند است
- بهترین
- بهترین شیوه
- بهتر
- میان
- بدن
- هر دو
- ساختن
- سازنده
- ساخته
- اما
- by
- مخزن
- صدا
- نام
- CAN
- قابلیت های
- ظرفیت
- اهميت دادن
- مورد
- موارد
- چالش ها
- تغییر دادن
- متغیر
- مشخصات
- بررسی
- را انتخاب کنید
- مشتری
- مشتریان
- ابر
- خوشه
- رمز
- COM
- ترکیب
- ترکیب شده
- بیا
- نظرات
- انجمن
- مقایسه
- کامل
- محاسبه
- محاسبه
- محاسبه
- پیکر بندی
- در نظر بگیرید
- شامل
- مصرف
- ظرف
- ظروف
- شامل
- ادامه
- کنترل
- تبدیل
- هسته
- متناظر
- هزینه
- صرفه جویی در هزینه
- ایجاد
- ایجاد شده
- ایجاد
- ایجاد
- ایجاد
- ضوابط
- بسیار سخت
- مشتریان
- داده ها
- تاریخ
- تصمیم
- عمیق
- یادگیری عمیق
- تعریف می کند
- تاخیر
- به تاخیر افتاده
- ارائه
- نشان می دهد
- گسترش
- مستقر
- استقرار
- گسترش
- شرح داده شده
- طرح
- طراحی
- جزئیات
- مشخص کردن
- تعیین می کند
- توسعه
- توسعه
- مختلف
- بعد
- DIY
- مستندات
- انجام شده
- آیا
- فاخته
- دانلود
- نمایشی
- دو
- در طی
- پویا
- بطور پویا
- هر
- به آسانی
- لبه
- آموزش
- بهره وری
- موثر
- تلاش
- هر دو
- کار می کند
- قادر ساختن
- را قادر می سازد
- را قادر می سازد
- نقطه پایانی
- موتور
- موتورهای حرفه ای
- سرمایه گذاری
- محیط
- محیط
- برابر
- ضروری است
- اساسا
- مثال
- استثنا
- انتظار
- انتظار می رود
- تجارب
- اکتشاف
- عوامل
- منصفانه
- خانواده
- سریعتر
- ویژگی
- باز خورد
- رشته
- زمینه
- پرونده
- فایل ها
- باله
- سرانجام
- پایان
- نام خانوادگی
- مناسب
- قابل انعطاف
- پیروی
- به دنبال آن است
- رد پا
- برای
- فرم
- قالب
- یافت
- چارچوب
- چارچوب
- رایگان
- غالبا
- دوستان
- از جانب
- تابع
- توابع
- بیشتر
- ادغام
- عموما
- تولید می کنند
- تولید
- دریافت کنید
- دادن
- داده
- می دهد
- GPU
- GPU ها
- گراف
- بزرگ
- بیشتر
- گروه
- گروه ها
- تضمین شده
- راهنمایی
- راهنمایی
- دسته
- سخت افزار
- آیا
- داشتن
- he
- کمک
- کمک می کند
- او
- اینجا کلیک نمایید
- زیاد
- عملکرد بالا
- بالاتر
- خود را
- به صورت افقی
- میزبان
- میزبانی
- میزبانی وب
- چگونه
- چگونه
- اما
- HTML
- HTTP
- HTTPS
- i
- ID
- هویت
- if
- نشان می دهد
- تصویر
- تأثیر
- اثرات
- انجام
- اجرای
- پیاده سازی می کند
- واردات
- غیر ممکن
- بهبود
- بهبود یافته
- بهبود
- ارتقاء
- بهبود
- in
- شامل
- شامل
- وارد شونده
- افزایش
- افزایش
- نشان دادن
- نشان می دهد
- اطلاعات
- اطلاع
- ورودی
- ورودی
- بینش
- بی ثباتی
- نصب
- نصب شده
- نمونه
- در عوض
- علاقه
- به
- دعوت
- استناد کرد
- IT
- ITS
- پیوستن
- JPG
- json
- کلید
- نوع
- دانستن
- زبان
- بزرگ
- بزرگتر
- تاخیر
- آخرین
- راه اندازی
- لایه
- لایه
- طرح
- یاد گرفتن
- یادگیری
- کمترین
- قدرت نفوذ
- بهره برداری
- کتابخانه
- محدود شده
- لاین
- بار
- بارگیری
- بارهای
- ورود به سیستم
- منطقی
- نگاه کنيد
- کم
- کاهش
- دستگاه
- فراگیری ماشین
- اصلی
- حفظ
- عمده
- ساخت
- اداره می شود
- مدیریت
- بسیاری
- مسابقه
- به حداکثر رساندن
- بیشترین
- ممکن است..
- اندازه
- اندازه گیری
- دیدار
- حافظه
- متاداده
- روش
- روش
- متری
- متریک
- قدرت
- دقیقه
- ML
- حالت
- مدل
- مدل
- تغییر
- مانیتور
- بیش
- اکثر
- نقطه پایانی چند مدل
- چندگانه
- باید
- نام
- نام
- نامگذاری
- طبیعی
- پردازش زبان طبیعی
- طبیعت
- نیاز
- نیازهای
- منفی است
- شبکه
- جدید
- nlp
- دفتر یادداشت
- اکنون
- عدد
- کارت گرافیک Nvidia
- هدف
- گرفتن
- of
- ارائه
- on
- ONE
- باز کن
- عملیات
- بهینه
- بهینه سازی
- بهینه سازی
- بهینه
- بهینه سازی می کند
- گزینه
- or
- سفارش
- OS
- دیگر
- دیگران
- ما
- خارج
- خارج از منزل
- تولید
- خارج از
- به طور کلی
- خود
- بسته
- موازی
- بخش
- ویژه
- عبور
- گذشت
- عبور می کند
- مسیر
- اوج
- انجام
- کارایی
- انجام می دهد
- خط لوله
- برنامه
- سکو
- سیستم عامل
- افلاطون
- هوش داده افلاطون
- PlatoData
- بازی
- نقطه
- سیاست
- سیاست
- ممکن
- پست
- قوی
- شیوه های
- دقت
- قابل پیش بینی
- پیش بینی
- آماده
- قبلی
- قبلا
- قیمت
- اصلی
- فرآوری شده
- در حال پردازش
- تولید کردن
- تولید
- پروفایل
- پیشرفت
- پروژه ها
- مناسب
- ویژگی
- نیا
- ارائه
- ارائه
- ارائه دهنده
- فراهم می کند
- تدارک
- اهداف
- مارماهی
- سوالات
- به سرعت
- بالا بردن
- تصادفی
- خام
- رسیدن به
- دریافت
- توصیه
- کاهش
- را کاهش می دهد
- کاهش
- منطقه
- قابل اعتماد
- مخزن
- نمایندگی
- نمایندگی
- نشان دهنده
- درخواست
- درخواست
- ضروری
- مورد نیاز
- نیاز
- منابع
- منابع
- پاسخ
- نتایج
- نقش
- مسیر
- مسیرها
- rt
- دویدن
- در حال اجرا
- s
- حکیم ساز
- سعید
- همان
- ذخیره
- پس انداز
- مقیاس
- مقیاس ها
- مقیاس گذاری
- زمان بندی
- اسکریپت
- sdk
- بخش
- بخش
- دیدن
- به دنبال
- انتخاب
- ارسال
- ارشد
- حس
- جداگانه
- خدمت
- خدمت
- سرویس
- ارائه دهنده خدمات
- خدمات
- خدمت
- تنظیم
- محیط
- تنظیمات
- چند
- شکل
- اشکال
- شکل دادن
- اشتراک گذاری
- به اشتراک گذاشته شده
- اشتراک
- او
- باید
- نشان می دهد
- قابل توجه
- به طور قابل توجهی
- مشابه
- ساده
- تنها
- اندازه
- اندازه
- کوچک
- شرکتهای کوچک و متوسط
- So
- راه حل
- مزایا
- برخی از
- چیزی
- منبع
- متخصص
- خاص
- مشخصات
- مشخصات
- مشخص شده
- خرج کردن
- استاندارد
- آغاز شده
- راه افتادن
- وضعیت هنر
- وضعیت
- ثابت
- گام
- مراحل
- ذخیره سازی
- ساده
- جریان
- ساختار
- موفقیت
- موفق
- چنین
- کت و شلوار
- پشتیبانی
- پشتیبانی
- پشتیبانی از
- سیدنی
- گرفتن
- طول می کشد
- هدف
- تیم
- تکنیک
- فن آوری
- پیشرفته
- نسبت به
- که
- La
- نمودار
- اطلاعات
- شان
- آنها
- سپس
- آنجا.
- از این رو
- اینها
- آنها
- فکر می کنم
- این
- کسانی که
- سه
- از طریق
- زمان
- بار
- زمان
- به
- هم
- ابزار
- ابزار
- سطح عالی
- مشعل
- ترافیک
- آموزش دیده
- آموزش
- معاملات
- منتقل
- نقل و انتقالات
- دگرگون کردن
- ترانسفورماتور
- روند
- تریتون
- نوع
- نوعی
- به طور معمول
- فهمیدن
- منحصر به فرد
- آپلود شده
- us
- استفاده
- استفاده کنید
- مورد استفاده
- استفاده
- با استفاده از
- سودمندی
- استفاده کنید
- ارزش
- مختلف
- نسخه
- بسیار
- از طريق
- حجم
- صبر کنيد
- منتظر
- می خواهم
- بود
- تماشای
- مسیر..
- راه
- we
- وب
- خدمات وب
- بود
- چی
- چه زمانی
- چه
- که
- اراده
- با
- در داخل
- بدون
- مهاجرت کاری
- با این نسخهها کار
- خواهد بود
- شما
- شما
- زفیرنت