Як масштабувати висновок машинного навчання для варіантів використання SaaS із кількома клієнтами PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Як масштабувати висновок машинного навчання для випадків використання SaaS з кількома клієнтами

Ця публікація написана у співавторстві з Совмі Манусані, старшим інженером з машинного навчання в Zendesk

Zendesk — це компанія SaaS, яка створює програмне забезпечення для підтримки, продажів і взаємодії з клієнтами для кожного, маючи простоту як основу. Вона процвітає завдяки тому, що понад 170,000 XNUMX компаній по всьому світу ефективно обслуговують свої сотні мільйонів клієнтів. Команда машинного навчання в Zendcaesk відповідає за покращення роботи команд із обслуговування клієнтів, щоб досягти найкращих результатів. Поєднуючи потужність даних і людей, Zendesk пропонує інтелектуальні продукти, які підвищують продуктивність своїх клієнтів за рахунок автоматизації ручної роботи.

Zendesk розробляє продукти ML з 2015 року, в тому числі Відповідь бот, Прогноз задоволеності, Підказки вмісту, Пропоновані макроси, і багато іншого. За останні кілька років із зростанням глибокого навчання, особливо в НЛП, вони побачили багато можливостей для автоматизації робочих процесів та допомоги агентам у підтримці своїх клієнтів за допомогою рішень Zendesk. Зараз Zendesk використовує TensorFlow і PyTorch для створення моделей глибокого навчання.

Клієнти, такі як Zendesk, створили успішні високомасштабні компанії з програмним забезпеченням як послугою (SaaS) на Amazon Web Services (AWS). Ключовою рушійною силою успішної бізнес-моделі SaaS є можливість застосовувати мульти-аренду в додатку та інфраструктурі. Це забезпечує економічну та операційну ефективність, оскільки програму потрібно створити лише один раз, але її можна використовувати багато разів, а інфраструктуру можна використовувати спільно. Ми бачимо, що багато клієнтів створюють безпечні, економічно ефективні системи з кількома клієнтами на AWS на всіх рівнях стека, від обчислень, зберігання даних, бази даних до мережі, і тепер ми бачимо, що клієнтам потрібно застосувати це до машинного навчання (ML ).

Складний компроміс між повторним використанням моделі та гіперперсоналізацією

Мульти-аренда для компаній SaaS зазвичай означає, що одна програма повторно використовується багатьма користувачами (клієнтами SaaS). Це створює економічну ефективність і зменшує експлуатаційні витрати. Однак моделі машинного навчання іноді потрібно персоналізувати з високим ступенем специфічності (гіперперсоналізовані), щоб робити точні прогнози. Це означає, що парадигма SaaS «будуйте один раз, використовуйте багато разів» не завжди може бути застосована до ML, якщо моделі мають специфічність. Візьмемо, наприклад, варіант використання платформ підтримки клієнтів. Мова, яку користувачі вказують у заяві на підтримку, залежить від того, чи йдеться про проблему проїзду (“поїздка зайняла занадто багато часу”) чи проблема з покупкою одягу (“зміна кольору під час прання”). У цьому випадку використання для підвищення точності прогнозування найкращих заходів із виправлення може знадобитися навчання моделі обробки природною мовою (NLP) на наборі даних, характерних для бізнес-домену або галузевої вертикалі. Zendesk стикається саме з цією проблемою, намагаючись використовувати ML у своїх рішеннях. Їм потрібно було створити тисячі високо налаштованих моделей машинного навчання, кожна з яких була розроблена для конкретного клієнта. Щоб вирішити цю проблему, пов’язану з розгортанням тисяч моделей, рентабельно, Zendesk звернувся до Amazon SageMaker.

У цій публікації ми покажемо, як використовувати деякі нові функції Amazon SageMaker, повністю керована служба машинного навчання, щоб створити можливість висновку ML для кількох клієнтів. Ми також ділимося реальним прикладом того, як Zendesk успішно досяг того ж результату, розгорнувши щасливе середовище між можливістю підтримки гіперперсоналізації в своїх моделях машинного навчання та економічно ефективним спільним використанням інфраструктури за допомогою багатомодельних кінцевих точок SageMaker ( MME).

Багатомодельні кінцеві точки SageMaker

Багатомодельні кінцеві точки SageMaker дозволяють розгортати кілька моделей за однією кінцевою точкою висновку, яка може містити один або кілька екземплярів. Кожен екземпляр призначений для завантаження та обслуговування кількох моделей до своєї пам’яті та потужності ЦП. Завдяки цій архітектурі бізнес SaaS може подолати лінійно зростаючі витрати на розміщення кількох моделей і досягти повторного використання інфраструктури відповідно до моделі з багатьма орендарями, яка застосовується в інших місцях стеку додатків.

Наступна діаграма ілюструє архітектуру багатомодельної кінцевої точки SageMaker.

Як масштабувати висновок машинного навчання для варіантів використання SaaS із кількома клієнтами PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Кінцева точка для кількох моделей SageMaker динамічно завантажує моделі з Служба простого зберігання Amazon (Amazon S3) при виклику замість завантаження всіх моделей під час першого створення кінцевої точки. Як результат, початковий виклик моделі може мати більшу затримку висновку, ніж наступні висновки, які завершуються з низькою затримкою. Якщо модель вже завантажена в контейнер під час виклику, то крок завантаження пропускається, і модель повертає висновки з низькою затримкою. Наприклад, припустимо, що у вас є модель, яка використовується лише кілька разів на день. Він автоматично завантажується на вимогу, тоді як моделі, до яких часто звертаються, зберігаються в пам’яті та викликаються з постійно низькою затримкою.

Давайте детальніше розглянемо, як Zendesk використовував SageMaker MME для досягнення економічно ефективного, гіпермасштабного розгортання ML за допомогою функції Suggested Macros ML.

Чому Zendesk створив гіперперсоналізовані моделі

Клієнти Zendesk розповсюджені по всьому світу в різних галузевих вертикалях з різною семантикою заявок на підтримку. Тому, щоб найкраще обслуговувати своїх клієнтів, їм часто доводиться створювати персоналізовані моделі, які навчаються на даних квитка служби підтримки, щоб правильно ідентифікувати наміри, макроси тощо.

У жовтні 2021 року вони випустили нову функцію NLP ML, Запропоновані макроси, яка рекомендує макроси (заздалегідь визначені дії) на основі тисяч прогнозів моделі, що стосуються конкретного клієнта. Команда ML від Zendesk побудувала модель класифікатора NLP на основі TensorFlow, навчену на основі попередньої історії вмісту квитків і макросів для кожного клієнта. Завдяки доступним моделям, макропрогноз рекомендується робити щоразу, коли агент переглядає квиток (як показано на скріншоті нижче), що допомагає агенту швидко обслуговувати клієнтів. Оскільки макроси є специфічними для клієнтів, Zendesk потрібні моделі для конкретних клієнтів для надання точних прогнозів.

Як масштабувати висновок машинного навчання для варіантів використання SaaS із кількома клієнтами PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Під капотом пропонованих макросів Zendesk

Пропоновані моделі макросів — це нейронні мережі на основі НЛП розміром приблизно 7–15 МБ. Головне завдання полягає в тому, щоб запустити тисячі цих моделей у виробництво з економічно ефективними, надійними та масштабованими рішеннями.

Кожна модель має різні моделі трафіку з мінімумом двох запитів в секунду і піком сотень запитів в секунду, що обслуговує мільйони передбачень на день із затримкою моделі приблизно 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 x загальна кількість vCPU екземплярів) на модель, тому завантаження понад 500 моделей на одному екземплярі призводило до порушення обмежень рівня ядра на максимальну кількість потоків, які можуть бути створені в екземплярі. Інша проблема з використанням меншої кількості більших екземплярів виникла, коли Zendesk відчув регулювання (як механізм безпеки) на деяких екземплярах позаду MME, оскільки швидкість виклику унікальної моделі в секунду перевищувала швидкість Багатомодельний сервер (MMS) на одному екземплярі може безпечно обробляти, не загоряючи екземпляр. Це була ще одна проблема, яка була вирішена з використанням більшої кількості та менших екземплярів.

З точки зору спостережливості, яка є вирішальним компонентом будь-якого виробничого застосування, Amazon CloudWatch Такі показники, як виклики, процесор, використання пам’яті та специфічні для кількох моделей показники, такі як завантажені моделі в пам’ять, час завантаження моделі, час очікування завантаження моделі та звернення до кешу моделі, є інформативними. Зокрема, розбивка затримки моделі допомогла Zendesk зрозуміти проблему холодного запуску та її вплив.

Під капотом автоматичного масштабування MME

За кожною кінцевою точкою з кількома моделями є екземпляри хостингу моделі, як показано на наступній діаграмі. Ці екземпляри завантажують та видаляють кілька моделей у пам’ять та з неї на основі шаблонів трафіку до моделей.

Як масштабувати висновок машинного навчання для варіантів використання SaaS із кількома клієнтами PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

SageMaker продовжує направляти запити на висновок для моделі до екземпляра, де модель вже завантажена, так що запити обслуговуються з кешованої копії моделі (див. наступну діаграму, яка показує шлях запиту для першого запиту передбачення порівняно з кешованим запитом передбачення шлях). Однак якщо модель отримує багато запитів на виклик і є додаткові екземпляри кінцевої точки з багатьма моделями, SageMaker направляє деякі запити до іншого екземпляра, щоб задовольнити збільшення. Щоб скористатися перевагами автоматизованого масштабування моделі в SageMaker, переконайтеся, що у вас є налаштувати автоматичне масштабування екземпляра для надання додаткової потужності інстанції. Налаштуйте політику масштабування на рівні кінцевої точки за допомогою спеціальних параметрів або викликів за хвилину (рекомендовано), щоб додати більше екземплярів до парку кінцевих точок.

Як масштабувати висновок машинного навчання для варіантів використання SaaS із кількома клієнтами PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Випадки використання найкраще підходять для MME

Багатомодельні кінцеві точки SageMaker добре підходять для розміщення великої кількості подібних моделей, які можна обслуговувати через спільний контейнер для обслуговування, і їм не потрібно отримувати доступ до всіх моделей одночасно. MME найкраще підходить для моделей, які подібні за розміром і затримками виклику. Допустимі деякі відхилення в розмірах моделі; наприклад, моделі Zendesk коливаються від 10 до 50 Мб, що добре працює, але варіанти розміру, які в 10, 50 або 100 разів більше, не підходять. Більші моделі можуть спричинити більшу кількість завантажень і вивантажень менших моделей для розміщення достатнього місця в пам’яті, що може призвести до додаткової затримки на кінцевій точці. Відмінності в характеристиках продуктивності більших моделей також можуть нерівномірно споживати такі ресурси, як ЦП, що може вплинути на інші моделі екземпляра.

MME також розроблено для спільного розміщення моделей, які використовують ту саму платформу ML, оскільки вони використовують спільний контейнер для завантаження кількох моделей. Тому, якщо у вашому парку моделей є поєднання фреймворків ML (наприклад, PyTorch і TensorFlow), кращим вибором є виділені кінцеві точки SageMaker або багатоконтейнерний хостинг. Нарешті, MME підходить для додатків, які можуть терпіти час від часу затримки холодного запуску, оскільки рідко використовувані моделі можуть бути розвантажені на користь моделей, які часто викликаються. Якщо у вас є довгий хвіст моделей, до яких ви рідко звертаєтесь, кінцева точка з кількома моделями може ефективно обслуговувати цей трафік і дозволити істотно заощадити кошти.

Підсумки

У цій публікації ви дізналися, як SaaS і мульти-арендування пов’язані з машинним навчанням і як багатомодельні кінцеві точки SageMaker забезпечують багатоарендність і економічну ефективність для висновку про машинне навчання. Ви дізналися про багатоквартирний варіант використання Zendesk моделей ML для кожного клієнта та про те, як вони розміщували тисячі моделей ML у SageMaker MME для своєї функції пропонованих макросів і досягли 90% економії витрат на висновки порівняно з виділеними кінцевими точками. Для випадків використання гіперперсоналізації можуть знадобитися тисячі моделей ML, і MME є економічно ефективним вибором для цього варіанту використання. Ми продовжимо вдосконалювати MME, щоб ви могли розміщувати моделі з низькою затримкою та з більш детальними елементами керування для кожної персоналізованої моделі. Щоб почати роботу з MME, див Розмістіть кілька моделей в одному контейнері за однією кінцевою точкою.


Про авторів

Як масштабувати висновок машинного навчання для варіантів використання SaaS із кількома клієнтами PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Сайєд Джаффрі є старшим архітектором рішень з AWS. Він співпрацює з низкою компаній від середніх організацій до великих підприємств, фінансових служб до ISV, надаючи їм допомогу в створенні та експлуатації безпечних, стійких, масштабованих і високопродуктивних додатків у хмарі.

Як масштабувати висновок машинного навчання для варіантів використання SaaS із кількома клієнтами PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Совмія Манусані є старшим інженером з машинного навчання в Zendesk. Вона працює над створенням функцій машинного навчання на основі НЛП, які спрямовані на підвищення продуктивності агентів для тисяч клієнтів Zendesk Enterprise. Вона має досвід створення автоматизованих систем навчання для тисяч персоналізованих моделей та їх обслуговування за допомогою безпечних, стійких, масштабованих і високопродуктивних програм. У вільний час вона любить розгадувати головоломки та спробувати малювати.

Як масштабувати висновок машинного навчання для варіантів використання SaaS із кількома клієнтами PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai. Саураб Тріканде є старшим менеджером з продуктів Amazon SageMaker Inference. Йому подобається працювати з клієнтами та робити машинне навчання доступнішим. У вільний час Саураб любить ходити в походи, вивчати інноваційні технології, стежити за TechCrunch і проводити час зі своєю родиною.

Як масштабувати висновок машинного навчання для варіантів використання SaaS із кількома клієнтами PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Діпті Рага є інженером з розробки програмного забезпечення в команді Amazon SageMaker. Її поточна робота зосереджена на створенні функцій для ефективного розміщення моделей машинного навчання. У вільний час вона любить подорожувати, ходити в походи та вирощує рослини.

Часова мітка:

Більше від AWS Машинне навчання