Як CCC Intelligent Solutions створила спеціальний підхід для розміщення складних моделей ШІ за допомогою Amazon SageMaker

Як CCC Intelligent Solutions створила спеціальний підхід для розміщення складних моделей ШІ за допомогою Amazon SageMaker

Цю публікацію спільно написали Крістофер Діас, Сем Кінард, Хайме Ідальго та Даніель Суарес із CCC Intelligent Solutions.

У цій публікації ми обговорюємо, як Інтелектуальні рішення CCC (CCC) комбінований Amazon SageMaker з іншими службами AWS для створення спеціального рішення, здатного розміщувати передбачувані типи складних моделей штучного інтелекту (AI). CCC — це провідна платформа програмного забезпечення як послуги (SaaS) для багатотрильйонної економіки страхування майна та страхування від нещасних випадків, яка забезпечує операції для страховиків, ремонтників, автовиробників, постачальників запчастин, кредиторів тощо. Хмарна технологія CCC об’єднує понад 30,000 XNUMX компаній, оцифровуючи критично важливі робочі процеси, комерцію та клієнтський досвід. Довірений лідер у сфері штучного інтелекту, Інтернету речей (IoT), взаємодії з клієнтами, а також управління мережами та робочими процесами, CCC пропонує інновації, які допомагають людям рухатися вперед, коли це найважливіше.

Змагання

CCC щорічно обробляє транзакції з претензіями на суму понад 1 трильйон доларів США. Оскільки компанія продовжує розвиватися, щоб інтегрувати штучний інтелект у свій існуючий і новий каталог продуктів, це вимагає складних підходів до навчання та розгортання ансамблевих моделей мультимодального машинного навчання (ML) для вирішення складних бізнес-потреб. Це клас моделей, які інкапсулюють запатентовані алгоритми та експертизу предметної області, яку CCC відточувала роками. Ці моделі повинні мати можливість отримувати нові шари детальних даних і правил клієнтів для створення єдиних результатів прогнозування. У цьому дописі в блозі ми дізнаємося, як CCC використовувала хостинг Amazon SageMaker та інші служби AWS для розгортання або розміщення кількох мультимодальних моделей у конвеєрі аналізу ансамблю.

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

Для нашого випадку використання конвеєр ансамблю є строго нелінійним, як показано на наступній діаграмі. Конвеєри нелінійного ансамблю теоретично є безпосередньо ациклічними графами (DAG). Для нашого випадку використання цей конвеєр DAG мав як незалежні моделі, які виконуються паралельно (Сервіси B, C), так і інші моделі, які використовують прогнози з попередніх кроків (Сервіс D).

Практика, яка випливає з культури CCC, що орієнтована на дослідження, — це постійний перегляд технологій, які можна використовувати, щоб принести більше цінності клієнтам. Оскільки CCC зіткнувся з цим комплексним викликом, керівництво запустило ініціативу перевірки концепції (POC), щоб ретельно оцінити пропозиції від AWS, щоб з’ясувати, зокрема, чи можуть Amazon SageMaker та інші інструменти AWS керувати розміщенням окремих моделей штучного інтелекту в складній нелінійній формі. ансамблі.

Як CCC Intelligent Solutions створила спеціальний підхід для розміщення складних моделей ШІ за допомогою Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Ансамбль пояснив: У цьому контексті ансамбль — це група з 2 або більше моделей штучного інтелекту, які працюють разом, щоб створити 1 загальний прогноз.

Питання, що стимулюють дослідження

Чи можна використовувати Amazon SageMaker для розміщення складних ансамблів моделей штучного інтелекту, які працюють разом, щоб забезпечити одне загальне передбачення? Якщо так, чи може SageMaker запропонувати інші переваги з коробки, такі як підвищена автоматизація, надійність, моніторинг, автоматичне масштабування та заходи економії?

Пошук альтернативних способів розгортання моделей штучного інтелекту CCC з використанням технологічних досягнень хмарних провайдерів дозволить CCC вивести рішення ШІ на ринок швидше, ніж конкуренти. Крім того, наявність кількох архітектур розгортання забезпечує гнучкість під час пошуку балансу між вартістю та продуктивністю на основі бізнес-пріоритетів.

На основі наших вимог ми завершили наведення наступного списку функцій як контрольного списку для архітектури розгортання виробничого рівня:

  • Підтримка складних ансамблів
  • Гарантований час безвідмовної роботи всіх компонентів
  • Настроюване автоматичне масштабування для розгорнутих моделей ШІ
  • Збереження вхідних і вихідних даних моделі ШІ
  • Показники використання та журнали для всіх компонентів
  • Механізми економії

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

Після циклів досліджень і початкових зусиль з порівняльного аналізу CCC визначила, що SageMaker ідеально підходить для задоволення більшості їхніх виробничих вимог, особливо щодо гарантованого часу безвідмовної роботи, який SageMaker забезпечує для більшості своїх компонентів висновків. Функція за замовчуванням кінцевих точок Amazon SageMaker Asynchronous Inference, що зберігає вхідні/вихідні дані в Amazon S3, спрощує завдання збереження даних, створених зі складних ансамблів. Крім того, оскільки кожна модель штучного інтелекту розміщена на власній кінцевій точці, керування політиками автоматичного масштабування на рівні моделі або кінцевої точки стає легшим. Завдяки спрощенню керування, потенційна вигода від цього полягає в тому, що групи розробників можуть виділяти більше часу на точне налаштування політик масштабування, щоб мінімізувати надмірне використання обчислювальних ресурсів.

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

По-перше, щоб усунути обмеження розміру корисного навантаження та значно зменшити ризик очікування під час сценаріїв із високим трафіком, CCC реалізувала архітектуру, яка запускає прогнози асинхронно за допомогою Кінцеві точки асинхронного висновку SageMaker у поєднанні з іншими сервісами, керованими AWS, як основними будівельними блоками. Крім того, користувальницький інтерфейс системи відповідає шаблону проектування «запусти та забудь». Іншими словами, після того як користувач завантажив свої дані в систему, більше нічого робити не потрібно. Вони отримають сповіщення, коли прогноз стане доступним. На малюнку нижче наведено загальний огляд нашої асинхронної архітектури, керованої подіями. У наступному розділі давайте детально зануримося в процес виконання розробленої архітектури.

Покрокове рішення

Як CCC Intelligent Solutions створила спеціальний підхід для розміщення складних моделей ШІ за допомогою Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

крок 1

Клієнт робить запит до Шлюз API AWS кінцева точка. Вміст запиту містить назву сервісу AI, від якого їм потрібен прогноз, і бажаний спосіб сповіщення.

Цей запит передається а Лямбда викликана функція Нове передбачення, головними завданнями якого є:

  • Перевірте, чи доступна запитана клієнтом послуга.
  • Призначте запиту унікальний ідентифікатор передбачення. Цей ідентифікатор передбачення може використовуватися користувачем для перевірки статусу передбачення протягом усього процесу.
  • Створити an Amazon S3 попередньо підписану URL-адресу, яку користувачеві потрібно буде використовувати на наступному кроці, щоб завантажити вхідний вміст запиту передбачення.
  • Створіть запис у Amazon DynamoDB з інформацією про отриманий запит.

Потім функція Lambda поверне відповідь через кінцеву точку шлюзу API з повідомленням, яке містить ідентифікатор передбачення, призначений запиту, і попередньо підписану URL-адресу Amazon S3.

крок 2

Клієнт безпечно завантажує вхідний вміст передбачення в сегмент S3 за допомогою попередньо підписаної URL-адреси, створеної на попередньому кроці. Вхідний вміст залежить від служби ШІ та може складатися із зображень, табличних даних або їх комбінації.

крок 3

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

Ця послуга може бути або однією моделлю AI, і в цьому випадку Введення процесу Lambda зробить запит до кінцевої точки SageMaker, на якій розміщено цю модель (Крок 3-A), або це може бути служба штучного інтелекту ансамблю, у такому випадку Введення процесу Lambda зробить запит до кінцевого автомата покрокових функцій, який містить логіку ансамблю (Крок 3-B).

У будь-якому варіанті (окрема модель штучного інтелекту або комплексна послуга штучного інтелекту), коли остаточне передбачення буде готове, воно буде збережено у відповідному сегменті S3, а абонент отримає сповіщення за допомогою методу, указаного на кроці 1 (додаткову інформацію про сповіщення див. у кроці 4).

Крок 3-А

Якщо ідентифікатор передбачення пов’язано з однією моделлю ШІ, Введення процесу Lambda зробить запит до кінцевої точки SageMaker, яка обслуговує модель. У цій системі підтримуються два типи кінцевих точок SageMaker:

  • Асинхронний: Введення процесу Lambda робить запит до асинхронної кінцевої точки SageMaker. Негайна відповідь включає розташування S3, де SageMaker збереже результат передбачення. Цей запит є асинхронним, дотримується шаблону «запусти й забудь» і не блокує потік виконання функції Lambda.
  • Синхронний: Введення процесу Lambda робить запит до синхронної кінцевої точки SageMaker. Оскільки це синхронний запит, Process Input чекає на відповідь і після отримання зберігає її в S3 аналогічно тому, як це робили б асинхронні кінцеві точки SageMaker.

В обох випадках (синхронні або асинхронні кінцеві точки) передбачення обробляється еквівалентним чином, зберігаючи вихідні дані у сегменті S3. Коли асинхронна кінцева точка SageMaker завершує прогнозування, запускається подія Amazon SNS. Ця поведінка також відтворюється для синхронних кінцевих точок із додатковою логікою у функції Lambda.

Крок 3-B

Якщо ідентифікатор передбачення пов’язано з ансамблем AI, Введення процесу Lambda надсилає запит до функції кроку, пов’язаної з цим ансамблем AI. Як згадувалося вище, ансамбль штучного інтелекту – це архітектура, заснована на групі моделей штучного інтелекту, які працюють разом для створення єдиного загального прогнозу. Оркестровка ансамблю AI виконується за допомогою функції кроку.

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

Та сама лямбда-функція, яка називається GetTransformCall використовується для обробки проміжних прогнозів ансамблю штучного інтелекту, використовується в усій покроковій функції, але з різними вхідними параметрами для кожного кроку. Цей вхід містить назву служби ШІ, яку потрібно викликати. Він також містить визначення відображення для створення вхідних даних для вказаної служби ШІ. Це робиться за допомогою спеціального синтаксису, який Lambda може декодувати, який, загалом, є словником JSON, де значення мають бути замінені вмістом із попередніх прогнозів ШІ. Lambda завантажить ці попередні прогнози з Amazon S3.

На кожному кроці GetTransformCall Lambda зчитує з Amazon S3 попередні виходи, необхідні для створення вхідних даних указаної служби ШІ. Потім він викличе Нове передбачення Лямбда-код, який раніше використовувався на кроці 1, надає назву служби, метод зворотного виклику («крокова функція») і маркер, необхідний для зворотного виклику в корисному навантаженні запиту, який потім зберігається в DynamoDB як новий прогнозований запис. Лямбда також зберігає створені вхідні дані цього етапу у відрі S3. Залежно від того, чи є ця стадія окремою моделлю штучного інтелекту чи ансамблем штучного інтелекту, Lambda робить запит до кінцевої точки SageMaker або іншої крокової функції, яка керує ансамблем штучного інтелекту, який є залежним від батьківського ансамблю.

Після виконання запиту функція step переходить у стан очікування, доки не отримає маркер зворотного виклику, що вказує на можливість переходу до наступного етапу. Дія надсилання маркера зворотного виклику виконується лямбда-функцією, що викликається Повідомлення (детальніше в кроці 4), коли проміжне передбачення буде готове. Цей процес повторюється для кожного етапу, визначеного у функції кроку, доки не буде готовий остаточний прогноз.

крок 4

Коли прогноз готовий і збережений у сегменті S3, запускається сповіщення SNS. Ця подія може бути викликана різними способами залежно від потоку:

  1. Автоматично, коли асинхронна кінцева точка SageMaker завершує прогноз.
  2. Як останній крок функції кроку.
  3. By Введення процесу or GetTransformCall Лямбда, коли синхронна кінцева точка SageMaker повертає прогноз.

Для B і C ми створюємо SNS-повідомлення, подібне до того, що автоматично надсилає A.

Функція Lambda під назвою notifications підписана на цю тему SNS. Сповіщення Lambda отримають інформацію, пов’язану з ідентифікатором передбачення, від DynamoDB, оновлять запис зі значенням статусу на «завершено» або «помилка» та виконають необхідні дії залежно від режиму зворотного виклику, збереженого в записі бази даних.

Якщо це передбачення є проміжним передбаченням ансамблю штучного інтелекту, як описано в кроці 3-B, режим зворотного виклику, пов’язаний із цим прогнозом, буде «кроковою функцією», а запис бази даних матиме маркер зворотного виклику, пов’язаний із конкретним кроком у крокова функція. Lambda сповіщень виконає виклик AWS Step Functions API за допомогою методу «SendTaskSuccess» або «SendTaskFailure». Це дозволить функції кроку перейти до наступного кроку або вийти.

Якщо передбачення є кінцевим виходом функції кроку, а режим зворотного виклику — «Веб-хук» [або електронна пошта, брокери повідомлень (Kafka) тощо], тоді сповіщення Lambda сповіщатимуть клієнта вказаним способом. У будь-який момент користувач може запитати статус свого передбачення. Запит має містити ідентифікатор передбачення, який було призначено на кроці 1, і вказувати на правильну URL-адресу в шлюзі API для направлення запиту до функції Lambda, яка називається результати.

За результатами Lambda надсилає запит до DynamoDB, отримуючи статус запиту та повертаючи інформацію користувачеві. Якщо статус передбачення є помилка, то відповідні відомості про помилку будуть включені у відповідь. Якщо статус прогнозу є успіх, користувачеві буде повернуто попередньо підписану URL-адресу S3 для завантаження передбаченого вмісту.

Результати

Попередні результати тестування продуктивності є багатообіцяючими та підтверджують те, що CCC хоче розширити впровадження цієї нової архітектури розгортання.

Примітні спостереження:

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

Висновок

Як було зазначено під час процесу POC, інноваційний дизайн, створений спільно CCC і AWS, забезпечує міцну основу для використання Amazon SageMaker з іншими керованими службами AWS для розміщення складних мультимодальних ансамблів штучного інтелекту та ефективного й безперебійного оркестрування конвеєрів висновків. Завдяки використанню готових функцій Amazon SageMaker, таких як Asynchronous Inference, CCC має більше можливостей зосередитися на спеціальних критично важливих для бізнесу завданнях. У дусі дослідницької культури CCC ця нова архітектура продовжуватиме розвиватися, оскільки CCC разом із AWS стане лідером у розв’язанні нових потужних рішень ШІ для клієнтів.

Докладні кроки щодо створення, виклику та моніторингу кінцевих точок асинхронного висновку див. документація, який також містить a зразок зошита щоб допомогти вам розпочати роботу. Щоб отримати інформацію про ціни, відвідайте Ціни на Amazon SageMaker.

Приклади використання асинхронного висновку з неструктурованими даними, такими як комп’ютерне бачення та обробка природної мови (NLP), див. Запустіть комп'ютерний зір для великих відео з асинхронними кінцевими точками Amazon SageMaker та  Покращте дослідження високої цінності за допомогою асинхронних кінцевих точок висновку Hugging Face і Amazon SageMaker, відповідно.


Про авторів

Як CCC Intelligent Solutions створила спеціальний підхід для розміщення складних моделей ШІ за допомогою Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Крістофер Діас є провідним інженером з досліджень і розробок у CCC Intelligent Solutions. Як член команди досліджень і розробок, він працював над різними проектами, починаючи від ETL-інструментів, бекендової веб-розробки, співпрацюючи з дослідниками для навчання моделей штучного інтелекту в розподілених системах і полегшуючи надання нових послуг штучного інтелекту між дослідницькими та оперативними командами. Останнім часом він зосереджувався на дослідженні рішень хмарних інструментів для вдосконалення різних аспектів життєвого циклу розробки моделі ШІ компанії. У вільний час він із задоволенням пробує нові ресторани у своєму рідному місті Чикаго та збирає стільки наборів LEGO, скільки може вмістити його дім. Крістофер отримав ступінь бакалавра наук з комп’ютерних наук в Університеті Північно-Східного Іллінойсу.

Як CCC Intelligent Solutions створила спеціальний підхід для розміщення складних моделей ШІ за допомогою Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Лауреат премії «Еммі». Сем Кінард є старшим менеджером із розробки програмного забезпечення в CCC Intelligent Solutions. Перебуваючи в Остіні, штат Техас, він сперечається з командою AI Runtime Team, яка відповідає за обслуговування продуктів штучного інтелекту CCC з високою доступністю та великими масштабами. У вільний час Сем насолоджується недосипанням через своїх двох чудових дітей. Сем має ступінь бакалавра наук з інформатики та бакалавра наук з математики Техаського університету в Остіні.

Як CCC Intelligent Solutions створила спеціальний підхід для розміщення складних моделей ШІ за допомогою Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Хайме Ідальго є старшим системним інженером у CCC Intelligent Solutions. Перш ніж приєднатися до дослідницької групи штучного інтелекту, він очолював глобальний перехід компанії на архітектуру мікросервісів, проектуючи, створюючи та автоматизуючи інфраструктуру в AWS для підтримки розгортання хмарних продуктів і послуг. Наразі він створює та підтримує кластер локального центру обробки даних, створений для навчання ШІ, а також проектує та створює хмарні рішення для майбутнього дослідження ШІ та розгортання компанії.

Як CCC Intelligent Solutions створила спеціальний підхід для розміщення складних моделей ШІ за допомогою Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Даніель Суарес є інженером Data Science в CCC Intelligent Solutions. Як член команди AI Engineering, він працює над автоматизацією та підготовкою моделей AI у виробництві, оцінці та моніторингу показників та інших аспектів операцій машинного навчання. Деніел отримав ступінь магістра комп’ютерних наук в Іллінойському технологічному інституті та ступінь магістра та бакалавра телекомунікаційної інженерії в Політехнічному університеті Мадрида.

Як CCC Intelligent Solutions створила спеціальний підхід для розміщення складних моделей ШІ за допомогою Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Арунпрасат Шанкар є старшим архітектором рішень зі штучного інтелекту/ML в AWS, який допомагає глобальним клієнтам ефективно й ефективно масштабувати свої рішення штучного інтелекту в хмарі. У вільний час Арун любить дивитися науково-фантастичні фільми та слухати класичну музику.

Як CCC Intelligent Solutions створила спеціальний підхід для розміщення складних моделей ШІ за допомогою Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Джастін МакВіртер є менеджером архітектора рішень в AWS. Він працює з командою чудових архітекторів рішень, які допомагають клієнтам отримати позитивний досвід під час впровадження платформи AWS. Коли Джастін не на роботі, він любить грати у відеоігри зі своїми двома хлопцями, грати в хокей і їздити по бездоріжжю на своєму джипі.

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

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