Как CCC Intelligent Solutions создала индивидуальный подход для размещения сложных моделей ИИ с помощью Amazon SageMaker

Как CCC Intelligent Solutions создала индивидуальный подход для размещения сложных моделей ИИ с помощью Amazon SageMaker

Этот пост написан в соавторстве с Кристофером Диазом, Сэмом Кинардом, Хайме Идальго и Даниэлем Суаресом из CCC Intelligent Solutions.

В этом посте мы обсуждаем, как Интеллектуальные решения ССС (ССС) комбинированный Создатель мудреца Амазонки с другими сервисами AWS для создания индивидуального решения, способного размещать предполагаемые сложные модели искусственного интеллекта (ИИ). 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. Вертикальный поиск. Ай.

Ансамбль объяснил: В этом контексте ансамбль — это группа из двух или более моделей ИИ, которые работают вместе для получения одного общего прогноза.

Вопросы, лежащие в основе исследования

Можно ли использовать Amazon SageMaker для размещения сложных ансамблей моделей ИИ, которые работают вместе для получения единого общего прогноза? Если да, то может ли SageMaker предложить другие готовые преимущества, такие как повышенная автоматизация, надежность, мониторинг, автоматическое масштабирование и меры экономии?

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

Основываясь на наших требованиях, мы завершили следующий список функций в качестве контрольного списка для архитектуры развертывания производственного уровня:

  • Поддержка сложных ансамблей
  • Гарантированное время безотказной работы всех компонентов
  • Настраиваемое автоматическое масштабирование для развернутых моделей ИИ
  • Сохранение ввода и вывода модели ИИ
  • Метрики использования и журналы для всех компонентов
  • Механизмы экономии

Поскольку большинство решений CCC для искусственного интеллекта опираются на модели компьютерного зрения, потребовалась новая архитектура для поддержки файлов изображений и видео, разрешение которых продолжает увеличиваться. Возникла острая необходимость спроектировать и реализовать эту архитектуру как асинхронную модель.

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

Решив продолжить использование SageMaker в качестве ключевого компонента архитектуры, мы также поняли, что SageMaker может стать частью еще более крупной архитектуры, дополненной многими другими бессерверными сервисами, управляемыми AWS. Этот выбор был необходим, чтобы облегчить потребности оркестровки и наблюдаемости более высокого порядка в этой сложной архитектуре.

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

Пошаговое решение

Как компания CCC Intelligent Solutions создала индивидуальный подход к размещению сложных моделей искусственного интеллекта с помощью Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Шаг 1

Клиент делает запрос в Шлюз API AWS конечная точка. Содержимое запроса содержит название службы ИИ, от которой требуется прогноз, и желаемый способ уведомления.

Этот запрос передается Лямбда функция называется Новое предсказание, основными задачами которого являются:

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

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

Шаг 2

Клиент безопасно загружает входное содержимое прогноза в корзину S3, используя предварительно подписанный URL-адрес, созданный на предыдущем шаге. Входное содержимое зависит от службы ИИ и может состоять из изображений, табличных данных или их комбинации.

Шаг 3

Сегмент S3 настроен на запуск события, когда пользователь загружает входной контент. Это уведомление отправляется в очередь Amazon SQS и обрабатывается функцией Lambda, называемой Ввод процесса, Ввод процесса Lambda получит информацию, связанную с этим идентификатором прогноза, от DynamoDB, чтобы получить имя службы, к которой должен быть сделан запрос.

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

В любом варианте (одиночная модель ИИ или сервис ансамбля ИИ), когда окончательный прогноз будет готов, он будет сохранен в соответствующей корзине S3, а вызывающая сторона будет уведомлена с помощью метода, указанного на шаге 1 (подробнее об уведомлениях в шаге 4). XNUMX).

Шаг 3-А

Если идентификатор прогноза связан с одной моделью ИИ, Ввод процесса Lambda отправит запрос к конечной точке SageMaker, которая обслуживает модель. В этой системе поддерживаются два типа конечных точек SageMaker:

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

В обоих случаях (синхронные или асинхронные конечные точки) прогноз обрабатывается эквивалентным образом, сохраняя выходные данные в корзине S3. Когда асинхронная конечная точка SageMaker завершает прогноз, инициируется событие Amazon SNS. Это поведение также реплицируется для синхронных конечных точек с дополнительной логикой в ​​функции Lambda.

Шаг 3-B

Если идентификатор прогноза связан с ансамблем ИИ, Ввод процесса Lambda сделает запрос к ступенчатой ​​функции, связанной с этим ансамблем ИИ. Как упоминалось выше, ансамбль ИИ — это архитектура, основанная на группе моделей ИИ, работающих вместе для создания единого общего прогноза. Оркестровка ансамбля ИИ осуществляется с помощью пошаговой функции.

Ступенчатая функция имеет один шаг для каждой службы ИИ, входящей в ансамбль. На каждом шаге будет вызываться функция Lambda, которая будет подготавливать входные данные соответствующей службы ИИ, используя различные комбинации выходного содержимого из предыдущих вызовов службы ИИ на предыдущих шагах. Затем он вызывает каждую службу ИИ, которая в этом контексте может быть одной моделью ИИ или другим ансамблем ИИ.

Та же лямбда-функция, называемая GetTransformCall используется для обработки промежуточных прогнозов AI Ensemble, используется во всей пошаговой функции, но с разными входными параметрами для каждого шага. Этот ввод включает имя вызываемой службы ИИ. Он также включает определение сопоставления для создания входных данных для указанной службы ИИ. Это делается с использованием пользовательского синтаксиса, который Lambda может декодировать, что в итоге представляет собой словарь JSON, в котором значения должны быть заменены содержимым из предыдущих прогнозов ИИ. Lambda загрузит эти предыдущие прогнозы из Amazon S3.

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

Как только запрос сделан, пошаговая функция переходит в состояние ожидания до тех пор, пока не получит токен обратного вызова, указывающий, что она может перейти к следующему этапу. Действие по отправке токена обратного вызова выполняется лямбда-функцией, называемой Уведомления (подробнее в шаге 4), когда будет готов промежуточный прогноз. Этот процесс повторяется для каждого этапа, определенного в ступенчатой ​​функции, до тех пор, пока не будет готов окончательный прогноз.

Шаг 4

Когда прогноз готов и сохраняется в корзине S3, запускается уведомление SNS. Это событие может запускаться по-разному в зависимости от потока:

  1. Автоматически, когда асинхронная конечная точка SageMaker завершает прогноз.
  2. Как самый последний шаг ступенчатой ​​функции.
  3. By Ввод процесса or GetTransformCall Lambda, когда синхронная конечная точка SageMaker вернула прогноз.

Для B и C мы создаем SNS-сообщение, аналогичное тому, которое автоматически отправляет A.

Функция Lambda, называемая уведомлениями, подписана на эту тему SNS. Уведомления Lambda получат информацию, связанную с идентификатором прогноза, из DynamoDB, обновят запись со значением статуса на «выполнено» или «ошибка» и выполнят необходимые действия в зависимости от режима обратного вызова, сохраненного в записи базы данных.

Если этот прогноз является промежуточным прогнозом ансамбля ИИ, как описано в шаге 3-B, режим обратного вызова, связанный с этим прогнозом, будет «шаговой функцией», а запись базы данных будет иметь токен обратного вызова, связанный с конкретным шагом в ступенчатая функция. Уведомления Lambda будут вызывать API AWS Step Functions с помощью метода «SendTaskSuccess» или «SendTaskFailure». Это позволит пошаговой функции перейти к следующему шагу или выйти.

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

По результатам Lambda отправит запрос к DynamoDB, получит статус запроса и вернет информацию пользователю. Если статус прогноза ошибка, то соответствующие сведения об ошибке будут включены в ответ. Если статус прогноза успех, предварительно подписанный S3 URL-адрес будет возвращен пользователю для загрузки содержимого прогноза.

Результаты

Предварительные результаты тестирования производительности обнадеживают и подтверждают, что CCC следует расширить реализацию этой новой архитектуры развертывания.

Примечательные наблюдения:

  • Тесты показывают эффективность обработки пакетных или одновременных запросов с высокой пропускной способностью и нулевым процентом отказов в сценариях с высоким трафиком.
  • Очереди сообщений обеспечивают стабильность в системе во время внезапного наплыва запросов до тех пор, пока триггеры масштабирования не смогут предоставить дополнительные вычислительные ресурсы. При увеличении трафика в 3 раза средняя задержка запросов увеличилась только на 5 процентов.
  • Платой за стабильность является увеличенная задержка из-за накладных расходов на связь между различными компонентами системы. Когда пользовательский трафик превышает базовый порог, добавленную задержку можно частично уменьшить, предоставив больше вычислительных ресурсов, если производительность важнее затрат.
  • Конечные точки асинхронного вывода SageMaker позволяют масштабировать количество экземпляров до нуля, сохраняя при этом активную конечную точку для получения запросов. Эта функциональность позволяет развертываниям продолжать работу без затрат на вычислительные ресурсы и масштабировать с нуля при необходимости в двух сценариях: развертывания служб, используемые в более низких тестовых средах, и развертывания с минимальным трафиком, не требующие немедленной обработки.

Заключение

Как было замечено в процессе POC, инновационный дизайн, совместно созданный CCC и AWS, обеспечивает прочную основу для использования Amazon SageMaker с другими сервисами, управляемыми AWS, для размещения сложных мультимодальных ансамблей ИИ и эффективной и беспрепятственной организации конвейеров логических выводов. Используя готовые функции Amazon SageMaker, такие как асинхронный вывод, CCC имеет больше возможностей сосредоточиться на специализированных критически важных бизнес-задачах. В духе культуры CCC, ориентированной на исследования, эта новая архитектура будет продолжать развиваться по мере того, как CCC будет лидировать вместе с AWS в разработке новых мощных решений ИИ для клиентов.

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

Примеры использования асинхронного вывода с неструктурированными данными, такими как компьютерное зрение и обработка естественного языка (NLP), см. Выполняйте логический вывод компьютерного зрения для больших видео с помощью асинхронных конечных точек Amazon SageMaker и Улучшайте ценные исследования с помощью Hugging Face и конечных точек асинхронного логического вывода Amazon SageMaker., Соответственно.


Об авторах

Как компания CCC Intelligent Solutions создала индивидуальный подход к размещению сложных моделей искусственного интеллекта с помощью Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Кристофер Диас является ведущим инженером по исследованиям и разработкам в CCC Intelligent Solutions. В качестве члена группы исследований и разработок он работал над различными проектами, начиная от инструментов ETL, веб-разработки серверной части, сотрудничая с исследователями для обучения моделей ИИ в распределенных системах и способствуя предоставлению новых услуг ИИ между исследовательскими и операционными командами. В последнее время он сосредоточился на исследовании облачных инструментальных решений для улучшения различных аспектов жизненного цикла разработки модели искусственного интеллекта компании. В свободное время он любит посещать новые рестораны в своем родном городе Чикаго и собирать столько наборов LEGO, сколько может поместиться в его доме. Кристофер получил степень бакалавра компьютерных наук в Университете Северо-Восточного Иллинойса.

Как компания CCC Intelligent Solutions создала индивидуальный подход к размещению сложных моделей искусственного интеллекта с помощью Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Лауреат премии Эмми Сэм Кинард является старшим менеджером по разработке программного обеспечения в CCC Intelligent Solutions. Находясь в Остине, штат Техас, он возглавляет команду AI Runtime Team, которая отвечает за предоставление продуктов CCC для ИИ с высокой доступностью и в больших масштабах. В свободное время Сэм любит недосыпать из-за своих двух замечательных детей. Сэм имеет степень бакалавра наук в области компьютерных наук и степень бакалавра наук в области математики Техасского университета в Остине.

Как компания CCC Intelligent Solutions создала индивидуальный подход к размещению сложных моделей искусственного интеллекта с помощью Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Хайме Идальго является старшим системным инженером в CCC Intelligent Solutions. Прежде чем присоединиться к исследовательской группе ИИ, он руководил глобальным переходом компании на архитектуру микросервисов, проектируя, создавая и автоматизируя инфраструктуру в AWS для поддержки развертывания облачных продуктов и сервисов. В настоящее время он создает и поддерживает локальный кластер центра обработки данных, предназначенный для обучения ИИ, а также проектирует и создает облачные решения для будущих исследований и развертывания ИИ в компании.

Как компания CCC Intelligent Solutions создала индивидуальный подход к размещению сложных моделей искусственного интеллекта с помощью Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Даниэль Суарес работает инженером по науке о данных в CCC Intelligent Solutions. В составе группы инженеров ИИ он занимается автоматизацией и подготовкой моделей ИИ при производстве, оценке и мониторинге метрик и других аспектов операций машинного обучения. Дэниел получил степень магистра компьютерных наук в Иллинойском технологическом институте, а также степень магистра и бакалавра телекоммуникационных технологий в Мадридском политехническом университете.

Как компания CCC Intelligent Solutions создала индивидуальный подход к размещению сложных моделей искусственного интеллекта с помощью Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Арунпрасат Шанкар является старшим специалистом по архитектуре решений AI/ML в AWS, помогая клиентам со всего мира эффективно масштабировать свои решения AI в облаке. В свободное время Арун любит смотреть научно-фантастические фильмы и слушать классическую музыку.

Как компания CCC Intelligent Solutions создала индивидуальный подход к размещению сложных моделей искусственного интеллекта с помощью Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Джастин МакВиртер является менеджером по архитектуре решений в AWS. Он работает с командой замечательных архитекторов решений, которые помогают клиентам получить положительный опыт при переходе на платформу AWS. В свободное от работы время Джастин любит играть в видеоигры со своими двумя мальчиками, играть в хоккей и кататься по бездорожью на своем джипе.

Отметка времени:

Больше от Машинное обучение AWS