نحوه مقیاس‌بندی استنتاج یادگیری ماشینی برای موارد استفاده SaaS چند مستاجر، هوش داده PlatoBlockchain. جستجوی عمودی Ai.

نحوه مقیاس‌بندی استنتاج یادگیری ماشین برای موارد استفاده SaaS چند مستاجر

این پست با Sowmya Manusani، Sr. Staff Machine Learning Engineer در Zendesk نوشته شده است.

Zendesk یک شرکت SaaS است که نرم افزار پشتیبانی، فروش و تعامل با مشتری را برای همه با سادگی به عنوان پایه و اساس می سازد. این شرکت در ساخت بیش از 170,000 شرکت در سراسر جهان به صدها میلیون مشتری خود به طور مؤثر خدمات ارائه می دهد. تیم یادگیری ماشین در Zendcaesk مسئول تقویت تیم‌های تجربه مشتری برای دستیابی به بهترین‌شان است. Zendesk با ترکیب قدرت داده‌ها و افراد، محصولات هوشمندی را ارائه می‌کند که مشتریان خود را با خودکار کردن کار دستی، بهره‌ورتر می‌کنند.

Zendesk از سال 2015 شروع به ساخت محصولات ML کرده است، از جمله جواب ربات, پیش بینی رضایت, نشانه های محتوا, ماکروهای پیشنهادی، و خیلی بیشتر. در چند سال گذشته، با رشد یادگیری عمیق، به ویژه در NLP، آنها فرصت های زیادی را برای خودکارسازی گردش کار و کمک به نمایندگان در حمایت از مشتریان خود با راه حل های Zendesk دیدند. Zendesk در حال حاضر از TensorFlow و PyTorch برای ساخت مدل های یادگیری عمیق استفاده می کند.

مشتریانی مانند Zendesk نرم‌افزارهای موفق و با مقیاس بالا را به عنوان خدمات (SaaS) در خدمات وب آمازون (AWS) ایجاد کرده‌اند. یک محرک کلیدی برای یک مدل کسب و کار موفق SaaS، توانایی اعمال چند اجاره ای در برنامه و زیرساخت است. این کارایی هزینه و عملیاتی را ممکن می کند زیرا برنامه فقط یک بار باید ساخته شود، اما می توان از آن بارها استفاده کرد و زیرساخت را می توان به اشتراک گذاشت. ما می‌بینیم که بسیاری از مشتریان سیستم‌های ایمن، مقرون‌به‌صرفه و چند مستاجر را روی AWS در تمام لایه‌های پشته، از محاسبات، ذخیره‌سازی، پایگاه داده گرفته تا شبکه می‌سازند، و اکنون مشتریانی را می‌بینیم که باید آن را در یادگیری ماشینی اعمال کنند (ML ).

ایجاد معاوضه دشوار بین استفاده مجدد از مدل و شخصی سازی بیش از حد

چند اجاره ای برای مشاغل SaaS معمولاً به این معنی است که یک برنامه واحد بین بسیاری از کاربران (مشتریان SaaS) دوباره استفاده می شود. این باعث ایجاد کارایی هزینه و کاهش سربار عملیاتی می شود. با این حال، گاهی اوقات مدل‌های یادگیری ماشینی برای پیش‌بینی دقیق نیاز به شخصی‌سازی با درجه بالایی از ویژگی (بیش‌شخصی‌سازی) دارند. این بدان معناست که پارادایم SaaS «یک بار بسازید، چند بار استفاده کنید» را نمی‌توان همیشه در صورتی که مدل‌ها ویژگی دارند، در ML اعمال کرد. به عنوان مثال مورد استفاده از پلتفرم های پشتیبانی مشتری را در نظر بگیرید. زبانی که کاربران در یک بلیط پشتیبانی می‌گنجانند بسته به اینکه مشکل سهم سواری ("سوار بیش از حد طولانی شد") یا مشکل خرید لباس ("تغییر رنگ هنگام شستن") متفاوت است. در این مورد استفاده، بهبود دقت پیش‌بینی بهترین اقدام اصلاحی ممکن است نیاز به آموزش یک مدل پردازش زبان طبیعی (NLP) روی مجموعه داده‌ای خاص برای یک حوزه تجاری یا یک صنعت عمودی داشته باشد. Zendesk هنگام تلاش برای استفاده از ML در راه حل های خود دقیقاً با این چالش روبرو می شود. آنها نیاز به ایجاد هزاران مدل ML بسیار سفارشی داشتند که هر کدام برای یک مشتری خاص طراحی شده بودند. Zendesk برای حل این چالش که هزاران مدل استقرار دارد، به طور مقرون به صرفه به Amazon SageMaker روی آورد.

در این پست نحوه استفاده از برخی از ویژگی های جدیدتر را نشان می دهیم آمازون SageMaker، یک سرویس یادگیری ماشین کاملاً مدیریت شده، برای ایجاد قابلیت استنتاج ML چند مستاجر. ما همچنین یک مثال واقعی از اینکه چگونه Zendesk با به کارگیری یک رسانه خوشحال کننده بین پشتیبانی از شخصی سازی بیش از حد در مدل های ML خود و استفاده مقرون به صرفه و مشترک از زیرساخت با استفاده از نقاط پایانی چند مدل SageMaker به موفقیت رسید به اشتراک می گذاریم. MME).

نقاط پایانی چند مدل SageMaker

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

نمودار زیر معماری یک نقطه پایانی چند مدل SageMaker را نشان می دهد.

نحوه مقیاس‌بندی استنتاج یادگیری ماشینی برای موارد استفاده SaaS چند مستاجر، هوش داده PlatoBlockchain. جستجوی عمودی Ai.

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

بیایید نگاهی دقیق‌تر به نحوه استفاده Zendesk از SageMaker MME برای دستیابی به استقرار مقرون‌به‌صرفه و در مقیاس ML با ویژگی پیشنهادی ماکروهای ML داشته باشیم.

چرا Zendesk مدل های بیش از حد شخصی سازی کرد؟

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

در اکتبر 2021، آنها یک ویژگی جدید NLP ML به نام ماکروهای پیشنهادی را منتشر کردند که ماکروها (اقدامات از پیش تعریف شده) را بر اساس هزاران پیش بینی مدل خاص مشتری توصیه می کند. تیم ML Zendesk یک مدل طبقه‌بندی کننده NLP مبتنی بر TensorFlow ساخت که از تاریخچه قبلی محتوای بلیط و ماکروها به ازای هر مشتری آموزش دیده بود. با این مدل‌های موجود، زمانی که یک نماینده بلیط را مشاهده می‌کند، یک پیش‌بینی کلان توصیه می‌شود (همانطور که در تصویر زیر نشان داده شده است)، که به نماینده در ارائه سریع خدمات به مشتریان کمک می‌کند. از آنجایی که ماکروها مختص مشتریان هستند، Zendesk به مدل های خاص مشتری برای ارائه پیش بینی های دقیق نیاز دارد.

نحوه مقیاس‌بندی استنتاج یادگیری ماشینی برای موارد استفاده SaaS چند مستاجر، هوش داده PlatoBlockchain. جستجوی عمودی Ai.

زیر کاپوت ماکروهای پیشنهادی Zendesk

مدل‌های پیشنهادی ماکرو شبکه‌های عصبی مبتنی بر NLP هستند که اندازه آنها حدود ۷ تا ۱۵ مگابایت است. چالش اصلی این است که هزاران مدل از این مدل ها را با راه حل های مقرون به صرفه، قابل اعتماد و مقیاس پذیر در تولید قرار دهیم.

هر مدل دارای الگوهای ترافیکی متفاوتی است، با حداقل دو درخواست در ثانیه و اوج صدها درخواست در ثانیه، میلیون‌ها پیش‌بینی در روز با تاخیر مدل تقریباً 100 میلی‌ثانیه زمانی که مدل در حافظه موجود باشد، ارائه می‌دهد. نقاط پایانی SageMaker در چندین منطقه AWS مستقر شده اند و هزاران درخواست در دقیقه در هر نقطه پایانی ارائه می دهند.

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

یکی از ویژگی‌های چند مدل SageMaker بارگذاری تنبل مدل‌ها است، یعنی مدل‌ها در هنگام فراخوانی برای اولین بار در حافظه بارگذاری می‌شوند. این برای بهینه سازی استفاده از حافظه است. با این حال، باعث افزایش زمان پاسخ در بار اول می شود که می تواند به عنوان یک مشکل شروع سرد دیده شود. برای ماکروهای پیشنهادی، این یک چالش بود. با این حال، Zendesk با اجرای یک قابلیت پیش بارگذاری در بالای ارائه نقطه پایانی SageMaker برای بارگذاری مدل ها در حافظه قبل از ارائه ترافیک تولید، بر این مشکل غلبه کرد. ثانیاً، MME مدل‌های کم‌استفاده را از حافظه بارگیری می‌کند، بنابراین برای دستیابی به تأخیر کم ثابت در همه مدل‌ها و جلوگیری از تأثیر «همسایه‌های پر سر و صدا» بر سایر مدل‌های کمتر فعال، Zendesk با AWS همکاری می‌کند تا ویژگی‌های جدیدی را اضافه کند، که بعداً در پست مورد بحث قرار گرفت. مدیریت هر مدل واضح تر علاوه بر این، به عنوان یک راه حل موقت، Zendesk ناوگان MME را به اندازه مناسب تنظیم کرده است تا تخلیه بیش از حد مدل ها را به حداقل برساند. با این کار، Zendesk می‌تواند پیش‌بینی‌هایی را با تأخیر کم، حدود 100 میلی‌ثانیه، به همه مشتریان خود ارائه کند و همچنان در مقایسه با نقاط پایانی اختصاصی، 90 درصد صرفه‌جویی در هزینه‌ها را به دست آورد.

در MME با اندازه مناسب، Zendesk در طول آزمایش بار مشاهده کرد که داشتن تعداد بیشتری از نمونه‌های کوچکتر (بایاس در مقیاس افقی) در پشت MME، انتخاب بهتری نسبت به داشتن نمونه‌های حافظه بزرگ‌تر (مقیاس‌گذاری عمودی) است. Zendesk مشاهده کرد که بسته‌بندی مدل‌های بسیار زیاد (فراتر از 500 مدل TensorFlow در مورد آنها) روی یک نمونه حافظه بزرگ خوب کار نمی‌کند زیرا حافظه تنها منبع موجود در یک نمونه نیست که می‌تواند گلوگاه باشد. به طور خاص، آنها مشاهده کردند که TensorFlow چندین رشته (3 برابر کل vCPUهای نمونه نمونه) در هر مدل ایجاد می کند، بنابراین بارگذاری بیش از 500 مدل در یک نمونه باعث می شود که محدودیت های سطح هسته در حداکثر تعداد رشته هایی که می توانند در یک نمونه ایجاد شوند، نقض شود. مشکل دیگری در استفاده از نمونه‌های کمتر و بزرگ‌تر زمانی رخ داد که Zendesk در برخی از نمونه‌های پشت MME، throttling (به عنوان مکانیزم ایمنی) را تجربه کرد، زیرا نرخ فراخوانی مدل منحصربه‌فرد در هر ثانیه بیشتر از نرخ بود. سرور چند مدل (MMS) در یک نمونه می‌تواند با خیال راحت بدون قهوه‌ای شدن نمونه کار کند. این مسئله دیگری بود که با استفاده از نمونه های بیشتر و کوچکتر حل شد.

از دیدگاه مشاهده پذیری، که جزء حیاتی هر کاربرد تولیدی است، CloudWatch آمازون معیارهایی مانند فراخوانی، CPU، استفاده از حافظه، و معیارهای چند مدل خاص مانند مدل های بارگذاری شده در حافظه، زمان بارگذاری مدل، زمان انتظار بارگذاری مدل، و ضربه حافظه پنهان مدل، آموزنده هستند. به طور خاص، تفکیک تاخیر مدل به Zendesk کمک کرد تا مشکل شروع سرد و تاثیر آن را درک کند.

زیر کاپوت پوسته پوسته شدن خودکار MME

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

نحوه مقیاس‌بندی استنتاج یادگیری ماشینی برای موارد استفاده SaaS چند مستاجر، هوش داده PlatoBlockchain. جستجوی عمودی Ai.

SageMaker به مسیریابی درخواست‌های استنتاج برای یک مدل به نمونه‌ای ادامه می‌دهد که در آن مدل قبلاً بارگذاری شده است، به طوری که درخواست‌ها از نسخه‌ی مدل حافظه پنهان ارائه می‌شوند (نمودار زیر را ببینید، که مسیر درخواست اولین درخواست پیش‌بینی را در مقابل درخواست پیش‌بینی حافظه پنهان نشان می‌دهد. مسیر). با این حال، اگر مدل درخواست‌های فراخوانی زیادی دریافت کند، و نمونه‌های اضافی برای نقطه پایانی چند مدل وجود داشته باشد، SageMaker برخی از درخواست‌ها را به نمونه دیگری هدایت می‌کند تا با افزایش سازگار شود. برای استفاده از مقیاس خودکار مدل در SageMaker، مطمئن شوید که دارید تنظیم مقیاس خودکار برای مثال برای تامین ظرفیت نمونه اضافی. خط‌مشی مقیاس‌بندی سطح نقطه پایانی خود را با پارامترهای سفارشی یا فراخوانی در دقیقه (توصیه می‌شود) تنظیم کنید تا نمونه‌های بیشتری به ناوگان نقطه پایانی اضافه کنید.

نحوه مقیاس‌بندی استنتاج یادگیری ماشینی برای موارد استفاده SaaS چند مستاجر، هوش داده PlatoBlockchain. جستجوی عمودی Ai.

از موارد مناسب برای MME استفاده کنید

نقاط پایانی چند مدل SageMaker برای میزبانی تعداد زیادی از مدل‌های مشابه که می‌توانید از طریق یک کانتینر سرویس مشترک استفاده کنید و نیازی به دسترسی همزمان به همه مدل‌ها ندارید، مناسب هستند. MME برای مدل هایی مناسب است که از نظر اندازه و تاخیر فراخوانی مشابه هستند. برخی از تغییرات در اندازه مدل قابل قبول است. برای مثال، مدل‌های Zendesk بین 10 تا 50 مگابایت است که به خوبی کار می‌کند، اما تغییرات اندازه‌ای که ضریب 10، 50 یا 100 برابر بیشتر است، مناسب نیستند. مدل‌های بزرگ‌تر ممکن است باعث شوند تعداد بارگذاری‌ها و بارگیری‌های بیشتری از مدل‌های کوچک‌تر برای گنجاندن فضای کافی حافظه ایجاد شود، که می‌تواند منجر به تأخیر بیشتر در نقطه پایانی شود. تفاوت در ویژگی‌های عملکرد مدل‌های بزرگ‌تر نیز می‌تواند منابعی مانند CPU را به طور نابرابر مصرف کند، که می‌تواند بر مدل‌های دیگر روی نمونه تأثیر بگذارد.

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

خلاصه

در این پست، نحوه ارتباط SaaS و Multi-Tenancy با ML و اینکه چگونه SageMaker چند مدل پایانی، چند اجاره ای و کارایی هزینه را برای استنتاج ML فعال می کند، یاد گرفتید. شما در مورد استفاده چند مستاجر Zendesk از مدل‌های ML به ازای هر مشتری و نحوه میزبانی هزاران مدل ML در SageMaker MME برای ویژگی ماکروهای پیشنهادی خود و 90 درصد صرفه‌جویی در هزینه در استنتاج در مقایسه با نقاط پایانی اختصاصی مطلع شدید. موارد استفاده بیش از حد شخصی می تواند به هزاران مدل ML نیاز داشته باشد و MME یک انتخاب مقرون به صرفه برای این مورد است. ما به پیشرفت‌ها در MME ادامه خواهیم داد تا شما را قادر سازد مدل‌هایی با تأخیر کم و با کنترل‌های دقیق‌تر برای هر مدل شخصی‌سازی شده میزبانی کنید. برای شروع کار با MME، ببینید چندین مدل را در یک ظرف پشت یک نقطه پایانی میزبانی کنید.


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

نحوه مقیاس‌بندی استنتاج یادگیری ماشینی برای موارد استفاده SaaS چند مستاجر، هوش داده PlatoBlockchain. جستجوی عمودی Ai.سید جعفری Sr. Solutions Architect با AWS است. او با طیف وسیعی از شرکت‌ها از سازمان‌های متوسط ​​گرفته تا شرکت‌های بزرگ، خدمات مالی تا ISV کار می‌کند تا به آنها کمک کند تا برنامه‌های کاربردی امن، انعطاف‌پذیر، مقیاس‌پذیر و با کارایی بالا را در فضای ابری بسازند و کار کنند.

نحوه مقیاس‌بندی استنتاج یادگیری ماشینی برای موارد استفاده SaaS چند مستاجر، هوش داده PlatoBlockchain. جستجوی عمودی Ai.سومیا منوسانی یک مهندس کارمند ارشد یادگیری ماشین در Zendesk است. او روی تولید ویژگی‌های یادگیری ماشین مبتنی بر NLP کار می‌کند که بر بهبود بهره‌وری نماینده برای هزاران مشتری Zendesk Enterprise تمرکز دارد. او تجربه ساخت خطوط لوله آموزشی خودکار برای هزاران مدل شخصی سازی شده و ارائه خدمات به آنها را با استفاده از برنامه های کاربردی ایمن، انعطاف پذیر، مقیاس پذیر و با کارایی بالا دارد. او در اوقات فراغت خود دوست دارد پازل ها را حل کند و نقاشی را امتحان کند.

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

نحوه مقیاس‌بندی استنتاج یادگیری ماشینی برای موارد استفاده SaaS چند مستاجر، هوش داده PlatoBlockchain. جستجوی عمودی Ai.دیپتی راغا یک مهندس توسعه نرم افزار در تیم آمازون SageMaker است. کار فعلی او بر ایجاد ویژگی هایی برای میزبانی کارآمد مدل های یادگیری ماشین تمرکز دارد. او در اوقات فراغت خود از سفر، پیاده روی و پرورش گیاهان لذت می برد.

تمبر زمان:

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