Приложения машинного обучения (ML) сложны в развертывании и часто требуют возможности гипермасштабирования, требований к сверхнизкой задержке и жесткого бюджета. Варианты использования, такие как обнаружение мошенничества, рекомендации по продуктам и прогнозирование трафика, являются примерами, когда миллисекунды имеют значение и имеют решающее значение для успеха бизнеса. Необходимо соблюдать строгие соглашения об уровне обслуживания (SLA), и для типичного запроса может потребоваться несколько шагов, таких как предварительная обработка, преобразование данных, разработка функций, логика выбора модели, объединение моделей и постобработка.
Масштабное развертывание моделей машинного обучения с оптимизированными затратами и эффективностью вычислений может оказаться сложной и трудоемкой задачей. Каждая модель имеет свои достоинства и зависимости, основанные на внешних источниках данных, а также на среде выполнения, например мощности процессора/графического процессора базовых вычислительных ресурсов. Приложению может потребоваться несколько моделей ML для обслуживания одного запроса на вывод. В некоторых сценариях запрос может проходить через несколько моделей. Не существует универсального подхода, и специалистам по машинному обучению важно искать проверенные методы для решения повторяющихся проблем с хостингом машинного обучения. Это привело к развитию шаблонов проектирования для размещения моделей машинного обучения.
В этом посте мы рассмотрим общие шаблоны проектирования для создания приложений ML на Создатель мудреца Амазонки.
Шаблоны проектирования для создания приложений ML
Давайте рассмотрим следующие шаблоны проектирования, которые можно использовать для размещения приложений машинного обучения.
Приложения машинного обучения на основе одной модели
Это отличный вариант, когда для вашего варианта использования машинного обучения требуется одна модель для обслуживания запроса. Модель развернута в выделенной вычислительной инфраструктуре с возможностью масштабирования в зависимости от входящего трафика. Этот вариант также идеален, когда клиентское приложение требует логического вывода с малой задержкой (порядка миллисекунд или секунд).
Приложения машинного обучения на основе нескольких моделей
Чтобы сделать размещение более экономичным, этот шаблон проектирования позволяет размещать несколько моделей в одной и той же инфраструктуре клиента. Несколько моделей машинного обучения могут совместно использовать ресурсы хоста или контейнера, включая кэширование наиболее часто используемых моделей машинного обучения в памяти, что приводит к более эффективному использованию памяти и вычислительных ресурсов. В зависимости от типов моделей, которые вы выбрали для развертывания, совместное размещение моделей может использовать следующие методы:
- Мультимодельный хостинг – Этот вариант позволяет размещать несколько моделей с использованием общего контейнера обслуживания на одной конечной точке. Эта функция идеальна, когда у вас есть большое количество похожих моделей, которые вы можете обслуживать через общий контейнер обслуживания, и вам не требуется доступ ко всем моделям одновременно.
- Многоконтейнерный хостинг – Этот вариант идеален, когда у вас есть несколько моделей, работающих в разных стеках обслуживания с одинаковыми потребностями в ресурсах, и когда отдельные модели не имеют достаточного трафика для использования полной емкости экземпляров конечных точек. Хостинг с несколькими контейнерами позволяет развертывать несколько контейнеров, использующих разные модели или платформы, на одной конечной точке. Модели могут быть полностью разнородными, со своим независимым стеком обслуживания.
- Модельные ансамбли – Во многих случаях производственного использования часто может быть много вышестоящих моделей, передающих входные данные для данной нижестоящей модели. Вот где ансамбли полезны. Паттерны ансамбля включают в себя смешивание выходных данных одной или нескольких базовых моделей, чтобы уменьшить ошибка обобщения предсказания. Базовые модели могут быть разнообразными и обучаться по разным алгоритмам. Ансамбли моделей могут превзойти отдельные модели, потому что ошибка прогнозирования модели уменьшается при использовании ансамблевого подхода.
Ниже приведены распространенные варианты использования ансамблевых шаблонов и соответствующих им диаграмм шаблонов проектирования:
- Разбрасывать-собирать – В шаблоне рассеяния-сбора запрос на вывод направляется нескольким моделям. Затем агрегатор используется для сбора ответов и их преобразования в единый ответ логического вывода. Например, вариант использования классификации изображений может использовать три разные модели для выполнения задачи. Шаблон разброс-сбор позволяет объединить результаты выводов, выполненных на основе трех разных моделей, и выбрать наиболее вероятную модель классификации.
- Агрегат модели – В шаблоне агрегации выходные данные нескольких моделей усредняются. Для моделей классификации прогнозы нескольких моделей оцениваются, чтобы определить класс, получивший наибольшее количество голосов, и рассматривается как окончательный результат ансамбля. Например, в задаче классификации с двумя классами, чтобы классифицировать набор фруктов как апельсины или яблоки, если две модели голосуют за апельсин, а одна модель голосует за яблоко, то агрегированный результат будет апельсином. Агрегация помогает бороться с неточностями в отдельных моделях и делает вывод более точным.
- Динамический выбор – Другой шаблон для ансамблевых моделей заключается в динамическом выполнении выбора модели для заданных входных атрибутов. Например, в данных входных данных изображений фруктов, если входные данные содержат апельсин, будет использоваться модель A, поскольку она специализирована для апельсинов. Если входные данные содержат яблоко, будет использоваться модель B, поскольку она предназначена для яблок.
- Приложения машинного обучения для последовательного логического вывода – В шаблоне последовательного вывода, также известном как конвейер вывода, варианты использования требуют предварительной обработки входящих данных перед вызовом предварительно обученной модели ML для создания выводов. Кроме того, в некоторых случаях может потребоваться дальнейшая обработка сгенерированных выводов, чтобы их можно было легко использовать нижестоящими приложениями. Конвейер вывода позволяет повторно использовать тот же код предварительной обработки, который использовался во время обучения модели, для обработки данных запроса вывода, используемых для прогнозов.
- Бизнес логика – Производство машинного обучения всегда связано с бизнес-логикой. Шаблоны бизнес-логики включают в себя все, что необходимо для выполнения задачи машинного обучения, кроме вывода модели машинного обучения. Это включает в себя загрузку модели из Простой сервис хранения Amazon (Amazon S3), например, поиск в базе данных для проверки ввода, получение предварительно вычисленных функций из хранилища функций и т. д. После завершения этих шагов бизнес-логики входные данные передаются в модели ML.
Параметры вывода машинного обучения
Для развертывания модели важно работать в обратном направлении от вашего варианта использования. Какова частота предсказания? Ожидаете ли вы живого трафика для вашего приложения и ответа в режиме реального времени вашим клиентам? У вас есть много моделей, обученных для разных подмножеств данных для одного и того же варианта использования? Изменяется ли прогнозируемый трафик? Является ли задержка вывода проблемой? На основе этих деталей все предыдущие шаблоны проектирования могут быть реализованы с использованием следующих вариантов развертывания:
- Вывод в реальном времени – Инференс в реальном времени идеально подходит для рабочих нагрузок по инференсу, когда у вас есть требования в реальном времени, интерактивные, с малой задержкой. Рабочие нагрузки ML в режиме реального времени могут включать приложение ML на основе одной модели, где приложению требуется только одна модель ML для обслуживания одного запроса, или приложение ML на основе нескольких моделей, где приложению требуется несколько моделей ML для обслуживания одного запроса. запрос.
- Вывод почти в реальном времени (асинхронный) – С выводом почти в реальном времени вы можете ставить входящие запросы в очередь. Это можно использовать для выполнения логических выводов на входных данных размером в сотни МБ. Он работает почти в реальном времени и позволяет пользователям использовать входные данные для логического вывода и считывать выходные данные конечной точки из корзины S3. Это может быть особенно удобно в случаях с NLP и компьютерным зрением, где есть большие полезные нагрузки, требующие более длительного времени предварительной обработки.
- Пакетный вывод – Пакетный вывод можно использовать для запуска вывода в автономном режиме на большом наборе данных. Поскольку он работает в автономном режиме, пакетный вывод не обеспечивает минимальную задержку. Здесь запрос на вывод обрабатывается с помощью запланированного или основанного на событии триггера пакетного задания на вывод.
- Бессерверный вывод – Вывод без сервера идеально подходит для рабочих нагрузок, которые имеют периоды простоя между скачками трафика и могут допускать задержку в несколько дополнительных секунд (холодный запуск) для первого вызова после периода простоя. Например, сервис чат-ботов или приложение для обработки форм или анализа данных из документов. В этом случае вам может понадобиться вариант онлайн-логического вывода, который может автоматически выделять и масштабировать вычислительные мощности в зависимости от объема запросов на логический вывод. А во время простоя он должен иметь возможность полностью отключать вычислительные мощности, чтобы с вас не взималась плата. Бессерверный логический вывод избавляет от рутинной работы по выбору серверов и управлению ими за счет автоматического запуска вычислительных ресурсов и масштабирования их в зависимости от трафика.
Используйте фитнес-функции, чтобы выбрать правильный вариант вывода ML
Выбор правильного варианта хостинга важен, потому что он влияет на конечных пользователей, отображаемых вашими приложениями. Для этой цели мы заимствуем понятие фитнес-функции, который был придуман Нилом Фордом и его коллегами из AWS Partner ThoughtWorks в своей работе Создание эволюционных архитектур. Фитнес-функции обеспечивают предписывающую оценку различных вариантов хостинга в зависимости от целей клиента. Фитнес-функции помогают получить необходимые данные для запланированного развития вашей архитектуры. Они устанавливают измеримые значения, чтобы оценить, насколько ваше решение близко к достижению поставленных целей. Фитнес-функции могут и должны адаптироваться по мере развития архитектуры, чтобы направлять желаемый процесс изменений. Это дает архитекторам инструмент для руководства своими командами, сохраняя при этом автономию команды.
Существует пять основных фитнес-функций, которые важны для клиентов, когда дело доходит до выбора правильного варианта логического вывода ML для размещения своих моделей и приложений ML.
Фитнес-функция | Описание |
Цена |
Развертывание и поддержка модели машинного обучения и приложения машинного обучения в масштабируемой среде — критически важный бизнес-процесс, и затраты могут сильно различаться в зависимости от выбора, сделанного в отношении инфраструктуры размещения модели, варианта размещения, платформ машинного обучения, характеристик модели машинного обучения, оптимизаций, политики масштабирования и т. д. и больше. Рабочие нагрузки должны оптимально использовать аппаратную инфраструктуру, чтобы расходы оставались под контролем. Эта функция пригодности конкретно относится к стоимости инфраструктуры, которая является частью общей совокупной стоимости владения (TCO). Затраты на инфраструктуру — это совокупные затраты на хранение, сеть и вычислительные ресурсы. Также очень важно понимать другие компоненты совокупной стоимости владения, включая операционные расходы, затраты на обеспечение безопасности и соблюдение нормативных требований. Эксплуатационные расходы — это совокупные затраты на эксплуатацию, мониторинг и обслуживание инфраструктуры машинного обучения. Эксплуатационные расходы рассчитываются как количество инженеров, необходимых для каждого сценария, и годовая заработная плата инженеров, объединенная за определенный период. Клиенты, использующие самоуправляемые решения ML на Эластичное вычислительное облако Amazon (Амазон EC2), Amazon Elastic Контейнерный Сервис (Amazon ECS) и Амазон Эластик Кубернетес Сервис (Amazon EKS) должны сами создавать операционные инструменты. Клиенты, использующие SageMaker, несут значительно меньшую совокупную стоимость владения. Инференс SageMaker — это полностью управляемая служба, предоставляющая готовые возможности для развертывания моделей машинного обучения для инференса. Вам не нужно выделять экземпляры, отслеживать их работоспособность, управлять обновлениями или исправлениями безопасности, выдавать операционные показатели или создавать средства мониторинга для рабочих нагрузок вывода машинного обучения. Он имеет встроенные возможности для обеспечения высокой доступности и отказоустойчивости. SageMaker поддерживает безопасность сквозным шифрованием при хранении и передаче, включая шифрование корневого тома и Магазин эластичных блоков Amazon (Amazon EBS) объем, Виртуальное частное облако Amazon (Amazon VPC) поддержка, Приватная ссылка AWS, управляемые клиентом ключи, Управление идентификацией и доступом AWS (IAM) детальный контроль доступа, AWS CloudTrail аудиты, межузловое шифрование для обучения, управление доступом на основе тегов, сетевая изоляция и интерактивный прокси приложения. Все эти функции безопасности поставляются в SageMaker «из коробки» и могут сэкономить компаниям десятки месяцев инженерных усилий в течение трех лет. SageMaker соответствует требованиям HIPAA и сертифицирован PCI, SOC, GDPR и ISO. SageMaker также поддерживает конечные точки FIPS. Для получения дополнительной информации о совокупной стоимости владения см. Общая стоимость владения Amazon SageMaker. |
Задержка вывода | Многие модели и приложения машинного обучения критичны к задержке, в которой задержка логического вывода должна находиться в пределах, определенных целью уровня обслуживания. Задержка логического вывода зависит от множества факторов, включая размер и сложность модели, аппаратную платформу, программную среду и сетевую архитектуру. Например, для более крупных и сложных моделей может потребоваться больше времени для выполнения вывода. |
Пропускная способность (транзакций в секунду) | Для вывода модели оптимизация пропускной способности имеет решающее значение для настройки производительности и достижения бизнес-целей приложения ML. По мере того, как мы продолжаем быстро развиваться во всех аспектах машинного обучения, включая низкоуровневые реализации математических операций при проектировании микросхем, аппаратные библиотеки играют все большую роль в оптимизации производительности. На пропускную способность модели машинного обучения влияют различные факторы, такие как размер полезной нагрузки, сетевые переходы, характер переходов, функции графа модели, операторы в модели, а также профиль ЦП, ГП и памяти экземпляров модели, размещающих ее. |
Масштабирование сложности конфигурации | Для моделей или приложений машинного обучения крайне важно работать на масштабируемой платформе, способной справиться с меняющимся трафиком. Это также позволяет максимально использовать ресурсы ЦП и ГП и предотвращает избыточное выделение вычислительных ресурсов. |
Ожидаемая схема трафика | Модели или приложения машинного обучения могут иметь различные шаблоны трафика: от непрерывного трафика в режиме реального времени до периодических пиков тысяч запросов в секунду, а также от нечастых, непредсказуемых шаблонов запросов до автономных пакетных запросов к большим наборам данных. Рекомендуется работать в обратном направлении от ожидаемого шаблона трафика, чтобы выбрать правильный вариант хостинга для вашей модели машинного обучения. |
Развертывание моделей с помощью SageMaker
SageMaker — это полностью управляемый сервис AWS, который предоставляет каждому разработчику и специалисту по данным возможность быстро создавать, обучать и развертывать модели машинного обучения в любом масштабе. С помощью логического вывода SageMaker вы можете развернуть свои модели машинного обучения на размещенных конечных точках и получить результаты логического вывода. SageMaker предоставляет широкий выбор оборудования и функций для удовлетворения требований вашей рабочей нагрузки, позволяя выбрать более 70 типов инстансов с аппаратным ускорением. SageMaker также может предоставить рекомендацию по типу экземпляра логического вывода с помощью новой функции под названием SageMaker Inference Recommender, если вы не уверены, какой из них будет наиболее оптимальным для вашей рабочей нагрузки.
Вы можете выбрать варианты развертывания, которые наилучшим образом соответствуют вашим сценариям использования, например логические выводы в реальном времени, асинхронные, пакетные и даже бессерверные конечные точки. Кроме того, SageMaker предлагает различные стратегии развертывания, такие как canary, цвет морской волны, теньи A/B-тестирование для развертывания модели, а также экономичное развертывание с несколькими моделями, конечными точками с несколькими контейнерами и эластичным масштабированием. С помощью логического вывода SageMaker вы можете просматривать показатели производительности для ваших конечных точек в Amazon CloudWatch, автоматически масштабировать конечные точки в зависимости от трафика и обновляйте свои модели в рабочей среде без потери доступности.
SageMaker предлагает четыре варианта развертывания вашей модели, чтобы вы могли начать делать прогнозы:
- Вывод в реальном времени – Это подходит для рабочих нагрузок с требованиями к миллисекундной задержке, размером полезной нагрузки до 6 МБ и временем обработки до 60 секунд.
- Пакетное преобразование – Это идеально подходит для автономных прогнозов по большим пакетам данных, которые доступны заранее.
- Асинхронный вывод – Это предназначено для рабочих нагрузок, которые не требуют задержек менее секунды, размеров полезной нагрузки до 1 ГБ и времени обработки до 15 минут.
- Бессерверный вывод – С помощью бессерверного логического вывода вы можете быстро развертывать модели машинного обучения для логического вывода без необходимости настраивать базовую инфраструктуру или управлять ею. Кроме того, вы платите только за вычислительные мощности, используемые для обработки запросов на логические выводы, что идеально подходит для прерывистых рабочих нагрузок.
Следующая диаграмма поможет вам понять варианты развертывания модели хостинга SageMaker, а также соответствующие оценки функции пригодности.
Рассмотрим каждый из вариантов развертывания более подробно.
Вывод в реальном времени в SageMaker
Инференс SageMaker в реальном времени рекомендуется, если у вас есть устойчивый трафик и вам требуется меньшая и стабильная задержка для ваших запросов с размером полезной нагрузки до 6 МБ и временем обработки до 60 секунд. Вы развертываете свою модель в службах хостинга SageMaker и получаете конечную точку, которую можно использовать для логического вывода. Эти конечные точки полностью управляемы и поддерживают автоматическое масштабирование. Вывод в реальном времени популярен в тех случаях, когда вы ожидаете синхронный ответ с малой задержкой и предсказуемыми шаблонами трафика, например, персонализированные рекомендации по продуктам и услугам или случаи использования для обнаружения мошенничества в транзакциях.
Обычно клиентское приложение отправляет запросы к конечной точке HTTPS SageMaker для получения выводов из развернутой модели. Вы можете развернуть несколько вариантов модели на одной и той же конечной точке HTTPS SageMaker. Это полезно для тестирования вариантов модели в производстве. Автоматическое масштабирование позволяет динамически настраивать количество экземпляров, выделенных для модели, в соответствии с изменениями рабочей нагрузки.
В следующей таблице приведены рекомендации по оценке логических выводов SageMaker в реальном времени на основе фитнес-функций.
Фитнес-функция | Описание |
Цена |
Конечные точки в реальном времени предлагают синхронный ответ на запросы логического вывода. Поскольку конечная точка всегда работает и доступна для предоставления ответа синхронного логического вывода в реальном времени, вы платите за использование экземпляра. Затраты могут быстро возрасти при развертывании нескольких конечных точек, особенно если конечные точки не полностью используют базовые экземпляры. Выбор правильного экземпляра для вашей модели поможет вам получить наиболее производительный экземпляр по самой низкой цене для ваших моделей. Автоматическое масштабирование рекомендуется для динамической настройки емкости в зависимости от трафика, чтобы поддерживать стабильную и предсказуемую производительность при минимально возможных затратах. SageMaker расширяет доступ к семействам экземпляров ML на основе Graviton2 и Graviton3. АМС Гравитон Процессоры специально созданы Amazon Web Services с использованием 64-разрядных ядер Arm Neoverse, чтобы обеспечить наилучшее соотношение цены и производительности для ваших облачных рабочих нагрузок, работающих на Amazon EC2. С инстансами на основе Graviton у вас есть больше возможностей для оптимизации затрат и производительности при развертывании моделей машинного обучения в SageMaker. SageMaker также поддерживает Инстансы Inf1, обеспечивающий высокую производительность и экономичность вывода машинного обучения. С 1–16 Чипы AWS Inferentia на инстанс, инстансы Inf1 могут масштабироваться по производительности и обеспечивать до трех раз более высокую пропускную способность и до 50 % более низкую стоимость за вывод по сравнению с инстансами AWS на базе графического процессора. Чтобы использовать экземпляры Inf1 в SageMaker, вы можете скомпилировать обученные модели, используя Amazon SageMaker Neo и выберите экземпляры Inf1 для развертывания скомпилированной модели в SageMaker. Вы также можете изучить Сберегательные планы для SageMaker получить выгоду от экономии до 64% по сравнению с ценой по запросу. Когда вы создаете конечную точку, SageMaker подключает том хранилища EBS к каждому вычислительному экземпляру машинного обучения, на котором размещается конечная точка. Размер тома хранилища зависит от типа экземпляра. Дополнительные расходы на конечные точки в режиме реального времени включают стоимость гигабайт в месяц выделенного хранилища, а также гигабайты данных, обрабатываемых в экземпляре конечной точки, и гигабайты данных, обрабатываемых вне экземпляра конечной точки. |
Задержка вывода | Вывод в реальном времени идеально подходит, когда вам нужна постоянная конечная точка с требованиями к миллисекундной задержке. Он поддерживает размеры полезной нагрузки до 6 МБ и время обработки до 60 секунд. |
Увеличить пропускную способность |
Идеальное значение пропускной способности логического вывода зависит от таких факторов, как модель, размер входных данных модели, размер пакета и тип экземпляра конечной точки. Рекомендуется просмотреть метрики CloudWatch для входных запросов и использования ресурсов и выбрать подходящий тип инстанса для достижения оптимальной пропускной способности. Бизнес-приложение может быть оптимизировано либо по пропускной способности, либо по задержке. Например, динамическая пакетная обработка может помочь увеличить пропускную способность для приложений, чувствительных к задержкам, с помощью логических выводов в реальном времени. Однако существуют ограничения на размер пакета, без которых может повлиять задержка логического вывода. Задержка логического вывода будет расти по мере увеличения размера пакета для повышения пропускной способности. Таким образом, логический вывод в реальном времени является идеальным вариантом для приложений, чувствительных к задержкам. SageMaker предоставляет варианты асинхронного вывода и пакетного преобразования, которые оптимизированы для обеспечения более высокой пропускной способности по сравнению с выводом в реальном времени, если бизнес-приложения могут выдерживать немного большую задержку. |
Масштабирование сложности конфигурации |
Поддержка конечных точек SageMaker в реальном времени автоматическое масштабирование из коробки. Когда рабочая нагрузка увеличивается, автоматическое масштабирование подключает к сети больше экземпляров. Когда рабочая нагрузка снижается, автоматическое масштабирование удаляет ненужные экземпляры, помогая снизить затраты на вычисления. Без автоматического масштабирования вам необходимо предусмотреть пиковый трафик или недоступность модели риска. Если трафик к вашей модели не будет стабильным в течение дня, будет избыточная неиспользуемая емкость. Это приводит к низкому использованию и растрате ресурсов. С помощью SageMaker вы можете настроить различные параметры масштабирования в зависимости от ожидаемого шаблона трафика. Простое масштабирование или масштабирование с отслеживанием целей идеально подходит, если вы хотите масштабировать на основе определенной метрики CloudWatch. Это можно сделать, выбрав конкретную метрику и установив пороговые значения. Рекомендуемые показатели для этого варианта являются средними. Если вам требуется расширенная конфигурация, вы можете установить политику пошагового масштабирования для динамической настройки количества экземпляров для масштабирования в зависимости от размера нарушения сигнализации. Это поможет настроить более агрессивный ответ, когда спрос достигнет определенного уровня. Вы можете использовать масштабирование по расписанию, если знаете, что спрос следует определенному расписанию в течение дня, недели, месяца или года. Это поможет вам указать одноразовое расписание или повторяющееся расписание или выражения cron вместе с временем начала и окончания, которые формируют границы начала и окончания действия автоматического масштабирования. Подробнее см. Настройка конечных точек логического вывода с автоматическим масштабированием в Amazon SageMaker и Нагрузочное тестирование и оптимизация конечной точки Amazon SageMaker с помощью автоматического масштабирования.. |
Схема движения | Инференс в реальном времени идеально подходит для рабочих нагрузок с постоянным или регулярным трафиком. |
Асинхронный вывод в SageMaker
Асинхронный вывод SageMaker — это новая возможность SageMaker, которая ставит входящие запросы в очередь и обрабатывает их асинхронно. Этот вариант идеально подходит для запросов с большими размерами полезной нагрузки (до 1 ГБ), длительным временем обработки (до 15 минут) и требованиями к задержке, близкой к реальному времени. Примеры рабочих нагрузок для асинхронного вывода включают медицинские компании, обрабатывающие биомедицинские изображения или видео высокого разрешения, такие как эхокардиограммы, для обнаружения аномалий. Эти приложения получают всплески входящего трафика в разное время дня и требуют обработки в режиме, близком к реальному времени, с низкими затратами. Время обработки этих запросов может варьироваться в пределах нескольких минут, что устраняет необходимость в выводе данных в реальном времени. Вместо этого входные полезные нагрузки могут обрабатываться асинхронно из хранилища объектов, такого как Amazon S3, с автоматическим созданием очередей и предопределенным порогом параллелизма. После обработки SageMaker помещает ответ на вывод в ранее возвращенное местоположение Amazon S3. При желании вы можете выбрать получение уведомлений об успехах или ошибках через Amazon Простая служба уведомлений (Амазон СНС).
В следующей таблице приведены рекомендации по оценке асинхронного логического вывода SageMaker на основе фитнес-функций.
Фитнес-функция | Описание |
Цена | Асинхронный логический вывод — отличный выбор для чувствительных к стоимости рабочих нагрузок с большими полезными нагрузками и пакетным трафиком. Асинхронный вывод позволяет сократить расходы за счет автоматического масштабирования количества экземпляров до нуля, когда нет запросов для обработки, поэтому вы платите только тогда, когда ваша конечная точка обрабатывает запросы. Запросы, полученные при нулевом количестве экземпляров, помещаются в очередь для обработки после масштабирования конечной точки. |
Задержка вывода | Асинхронный логический вывод идеально подходит для требований к задержке, близкой к реальному времени. Запросы помещаются в очередь и обрабатываются, как только вычислительные ресурсы становятся доступными. Обычно это приводит к задержке в десятки миллисекунд. |
Увеличить пропускную способность | Асинхронный логический вывод идеально подходит для случаев использования, не чувствительных к задержкам, поскольку приложениям не приходится жертвовать пропускной способностью. Запросы не отбрасываются во время всплесков трафика, поскольку конечная точка асинхронного вывода ставит запросы в очередь, а не отбрасывает их. |
Масштабирование сложности конфигурации |
SageMaker поддерживает автоматическое масштабирование для асинхронной конечной точки. В отличие от конечных точек, размещенных в режиме реального времени, конечные точки асинхронного вывода поддерживают масштабирование экземпляров до нуля путем установки нулевой минимальной емкости. Для асинхронных конечных точек SageMaker настоятельно рекомендует создать конфигурацию политики для масштабирования с отслеживанием целей для развернутой модели (вариант). Для вариантов использования, которые допускают штраф за холодный запуск в несколько минут, вы можете дополнительно уменьшить количество экземпляров конечной точки до нуля, когда нет невыполненных запросов, и увеличить масштаб по мере поступления новых запросов, чтобы вы платили только за продолжительность, в течение которой конечные точки активно обрабатывают запросы. |
Схема движения | Асинхронные конечные точки ставят в очередь входящие запросы и обрабатывают их асинхронно. Это хороший вариант для прерывистого или нечастого трафика. |
Пакетный вывод в SageMaker
Пакетное преобразование SageMaker идеально подходит для автономных прогнозов на основе больших пакетов данных, доступных заранее. Функция пакетного преобразования — это высокопроизводительный и высокопроизводительный метод преобразования данных и создания выводов. Он идеально подходит для сценариев, когда вы имеете дело с большими пакетами данных, не нуждаетесь в задержке в доли секунды или вам необходимо выполнять предварительную обработку и преобразование обучающих данных. Клиентам в определенных областях, таких как реклама, маркетинг или здравоохранение, часто необходимо делать автономные прогнозы для гипермасштабируемых наборов данных, где высокая пропускная способность часто является целью варианта использования, а задержка не является проблемой.
Когда запускается задание пакетного преобразования, SageMaker инициализирует вычислительные экземпляры и распределяет между ними рабочую нагрузку логического вывода. Ресурсы высвобождаются по завершении заданий, поэтому вы платите только за то, что было использовано во время выполнения задания. По завершении задания SageMaker сохраняет результаты прогнозирования в указанной вами корзине S3. Пакетные задачи логического вывода обычно являются хорошими кандидатами на горизонтальное масштабирование. Каждый рабочий процесс в кластере может работать с другим подмножеством данных без необходимости обмена информацией с другими рабочими процессами. AWS предлагает несколько вариантов хранения и вычислений, которые обеспечивают горизонтальное масштабирование. Примеры рабочих нагрузок для пакетного преобразования SageMaker включают автономные приложения, такие как банковские приложения, для прогнозирования оттока клиентов, где можно запланировать периодическое выполнение автономного задания.
В следующей таблице приведены рекомендации по оценке пакетного преобразования SageMaker на основе фитнес-функций.
Фитнес-функция | Описание |
Цена | Пакетное преобразование SageMaker позволяет выполнять прогнозы для больших или малых пакетных наборов данных. Плата взимается за выбранный тип экземпляра в зависимости от продолжительности использования. SageMaker управляет выделением ресурсов в начале задания и освобождает их по завершении задания. Дополнительные затраты на обработку данных отсутствуют. |
Задержка вывода | Вы можете использовать вызов на основе событий или по расписанию. Задержка может варьироваться в зависимости от размера данных логического вывода, параллелизма заданий, сложности модели и вычислительной мощности экземпляра. |
Увеличить пропускную способность |
Задания пакетного преобразования можно выполнять для различных наборов данных, от петабайт данных до очень маленьких наборов данных. Нет необходимости преобразовывать большие наборы данных в небольшие фрагменты данных. Вы можете ускорить задания пакетного преобразования, используя оптимальные значения таких параметров, как МакспайлоадинМБ, Максконкурренттрансформсили Пакетная стратегия. Идеальное значение для Пакетная обработка может увеличить пропускную способность и оптимизировать ваши ресурсы, поскольку она помогает выполнить большее количество выводов за определенное время за счет задержки. Чтобы оптимизировать развертывание модели для повышения пропускной способности, рекомендуется увеличивать размер пакета до тех пор, пока пропускная способность не уменьшится. |
Масштабирование сложности конфигурации | Пакетное преобразование SageMaker используется для автономных логических выводов, которые не чувствительны к задержкам. |
Схема движения | Для автономного логического вывода задание пакетного преобразования планируется или запускается с помощью триггера на основе событий. |
Бессерверный вывод в SageMaker
Бессерверный логический вывод SageMaker позволяет развертывать модели машинного обучения для логического вывода без необходимости настраивать или управлять базовой инфраструктурой. В зависимости от объема запросов на вывод, получаемых вашей моделью, бессерверный вывод SageMaker автоматически выделяет, масштабирует и отключает вычислительные мощности. В результате вы платите только за время вычислений для запуска вашего кода логического вывода и объем обработанных данных, а не за время простоя. Вы можете использовать встроенные алгоритмы SageMaker и контейнеры, обслуживающие платформу машинного обучения, для развертывания своей модели в бессерверной конечной точке логического вывода или использовать собственный контейнер. Если трафик становится предсказуемым и стабильным, вы можете легко перейти с бессерверной конечной точки вывода на конечную точку SageMaker в реальном времени без необходимости вносить изменения в образ контейнера. При бессерверном выводе вы также получаете выгоду от других функций SageMaker, включая встроенные метрики, такие как количество вызовов, сбои, задержка, метрики хоста и ошибки в CloudWatch.
В следующей таблице приведены рекомендации по оценке бессерверного логического вывода SageMaker на основе фитнес-функций.
Фитнес-функция | Описание |
Цена | При использовании модели с оплатой по мере использования бессерверный логический вывод является экономичным вариантом, если у вас нечастые или прерывистые модели трафика. Вы платите только за то время, в течение которого конечная точка обрабатывает запрос, и, следовательно, можете сократить расходы, если структура трафика прерывистая. |
Задержка вывода |
Бессерверные конечные точки обеспечивают низкую задержку вывода (от миллисекунд до секунд) с возможностью мгновенного масштабирования от десятков до тысяч выводов в течение нескольких секунд в зависимости от шаблонов использования, что делает их идеальными для приложений машинного обучения с прерывистым или непредсказуемым трафиком. Поскольку бессерверные конечные точки предоставляют вычислительные ресурсы по запросу, ваша конечная точка может столкнуться с задержкой в несколько дополнительных секунд (холодный запуск) для первого вызова после периода простоя. Время холодного запуска зависит от размера вашей модели, времени загрузки вашей модели и времени запуска вашего контейнера. |
Увеличить пропускную способность | При настройке вашей бессерверной конечной точки вы можете указать размер памяти и максимальное количество одновременных вызовов. Бессерверный логический вывод SageMaker автоматически назначает вычислительные ресурсы, пропорциональные выбранному вами объему памяти. Если вы выберете больший объем памяти, ваш контейнер получит доступ к большему количеству виртуальных ЦП. Как правило, объем памяти должен быть не меньше размера вашей модели. Вы можете выбрать следующие размеры памяти: 1024 МБ, 2048 МБ, 3072 МБ, 4096 МБ, 5120 МБ и 6144 МБ. Независимо от выбранного вами объема памяти бессерверные конечные точки имеют 5 ГБ временного дискового хранилища. |
Масштабирование сложности конфигурации | Бессерверные конечные точки автоматически запускают вычислительные ресурсы и масштабируют их в зависимости от трафика, устраняя необходимость выбирать типы экземпляров или управлять политиками масштабирования. Это избавляет от тяжелой работы по выбору серверов и управлению ими. |
Схема движения | Бессерверный логический вывод идеально подходит для рабочих нагрузок с нечастыми или прерывистыми моделями трафика. |
Шаблоны проектирования размещения моделей в SageMaker
Конечные точки вывода SageMaker используют контейнеры Docker для размещения моделей машинного обучения. Контейнеры позволяют упаковывать программное обеспечение в стандартизированные блоки, которые последовательно работают на любой платформе, поддерживающей Docker. Это обеспечивает переносимость между платформами, неизменное развертывание инфраструктуры, а также более простое управление изменениями и внедрение CI/CD. SageMaker предоставляет готовые управляемые контейнеры для популярных платформ, таких как Apache MXNet, TensorFlow, PyTorch, Sklearn и Hugging Face. Полный список доступных образов контейнеров SageMaker см. Доступные образы контейнеров глубокого обучения. Если у SageMaker нет поддерживаемого контейнера, вы также можете создать свой собственный контейнер (BYOC) и отправить свой собственный образ, установив зависимости, необходимые для вашей модели.
Чтобы развернуть модель в SageMaker, вам потребуется контейнер (контейнеры управляемой платформы SageMaker или BYOC) и вычислительный экземпляр для размещения контейнера. SageMaker поддерживает несколько расширенных параметров для распространенных шаблонов проектирования размещения моделей машинного обучения, где модели могут размещаться в одном контейнере или совместно размещаться в общем контейнере.
Приложение машинного обучения в реальном времени может использовать одну модель или несколько моделей для обслуживания одного запроса прогнозирования. На следующей диаграмме показаны различные сценарии логического вывода для приложения машинного обучения.
Давайте рассмотрим подходящий вариант хостинга SageMaker для каждого из предыдущих сценариев вывода. Вы можете обратиться к фитнес-функциям, чтобы оценить, подходит ли этот вариант для данного варианта использования.
Хостинг приложения машинного обучения на основе одной модели
Существует несколько вариантов размещения приложений машинного обучения на основе одной модели с использованием услуг размещения SageMaker в зависимости от сценария развертывания.
Конечная точка с одной моделью
Конечные точки SageMaker с одной моделью позволяют размещать одну модель в контейнере, размещенном на выделенных экземплярах, что обеспечивает низкую задержку и высокую пропускную способность. Эти конечные точки полностью управляемы и поддерживают автоматическое масштабирование. Конечную точку с одной моделью можно настроить как подготовленную конечную точку, в которую вы передаете конфигурацию инфраструктуры конечной точки, такую как тип и количество экземпляров, или бессерверную конечную точку, где SageMaker автоматически запускает вычислительные ресурсы и масштабирует их в зависимости от трафика, устраняя необходимость для выбора типов экземпляров или управления политиками масштабирования. Бессерверные конечные точки предназначены для приложений с прерывистым или непредсказуемым трафиком.
На следующей диаграмме показаны сценарии вывода конечной точки с одной моделью.
В следующей таблице приведены рекомендации по оценке функций пригодности для подготовленной конечной точки с одной моделью. Оценки функций пригодности бессерверных конечных точек см. в разделе, посвященном бессерверным конечным точкам, в этом посте.
Фитнес-функция | Описание |
Цена | Плата взимается за использование выбранного вами типа инстанса. Поскольку конечная точка всегда работает и доступна, затраты могут быстро возрасти. Выбор правильного экземпляра для вашей модели поможет вам получить наиболее производительный экземпляр по самой низкой цене для ваших моделей. Автоматическое масштабирование рекомендуется для динамической настройки емкости в зависимости от трафика, чтобы поддерживать стабильную и предсказуемую производительность при минимально возможных затратах. |
Задержка вывода | Конечная точка с одной моделью обеспечивает интерактивный синхронный вывод в реальном времени с требованиями к миллисекундной задержке. |
Увеличить пропускную способность | На пропускную способность могут влиять различные факторы, такие как размер входных данных модели, размер пакета, тип экземпляра конечной точки и т. д. Рекомендуется просмотреть метрики CloudWatch для входных запросов и использования ресурсов, а также выбрать подходящий тип инстанса для достижения оптимальной пропускной способности. SageMaker предоставляет функции для управления ресурсами и оптимизации производительности логических выводов при развертывании моделей машинного обучения. Вы можете оптимизировать производительность модели с помощью Neoили используйте экземпляры Inf1 для повышения пропускной способности ваших моделей, размещенных в SageMaker, используя экземпляр графического процессора для вашей конечной точки. |
Масштабирование сложности конфигурации | Автоматическое масштабирование поддерживается из коробки. SageMaker рекомендует выбрать соответствующий конфигурация масштабирования выполняя нагрузочные тесты. |
Схема движения | Конечная точка с одной моделью идеально подходит для рабочих нагрузок с предсказуемыми шаблонами трафика. |
Совместное размещение нескольких моделей
Когда вы имеете дело с большим количеством моделей, развертывание каждой из них на отдельной конечной точке с выделенным контейнером и экземпляром может привести к значительному увеличению затрат. Кроме того, также становится трудно управлять таким количеством моделей в производственной среде, особенно когда вам не нужно вызывать все модели одновременно, но при этом необходимо, чтобы они были доступны в любое время. Совместное размещение нескольких моделей на одних и тех же базовых вычислительных ресурсах упрощает управление масштабируемыми развертываниями машинного обучения и снижает затраты на хостинг за счет увеличения использования конечной точки и ее базовых вычислительных ресурсов. SageMaker поддерживает расширенные варианты совместного размещения моделей, такие как конечная точка с несколькими моделями (MME) для однородных моделей и конечная точка с несколькими контейнерами (MCE) для гетерогенных моделей. Однородные модели используют одну и ту же платформу машинного обучения в общем сервисном контейнере, тогда как гетерогенные модели позволяют развертывать несколько обслуживающих контейнеров, использующих разные модели или платформы, на одной конечной точке.
На следующей диаграмме показаны модели совместного размещения с использованием SageMaker.
Мультимодельные конечные точки SageMaker
SageMaker ММЕ позволяют размещать несколько моделей с использованием общего контейнера обслуживания на одной конечной точке. Это масштабируемое и экономичное решение для развертывания большого количества моделей, ориентированных на один и тот же вариант использования, платформу или логику вывода. MME могут динамически обслуживать запросы на основе модели, вызванной вызывающей стороной. Это также снижает накладные расходы на развертывание, поскольку SageMaker управляет загрузкой моделей в память и их масштабированием на основе шаблонов трафика к ним. Эта функция идеальна, когда у вас есть большое количество похожих моделей, которые вы можете обслуживать через общий контейнер обслуживания, и вам не требуется доступ ко всем моделям одновременно. Конечные точки с несколькими моделями также обеспечивают совместное использование ресурсов памяти между вашими моделями. Это работает лучше всего, когда модели довольно схожи по размеру и задержке вызова, что позволяет MME эффективно использовать экземпляры во всех моделях. SageMaker MME поддерживает размещение моделей с поддержкой как ЦП, так и ГП. Используя модели с поддержкой графического процессора, вы можете снизить затраты на развертывание своей модели за счет более широкого использования конечной точки и лежащих в ее основе экземпляров ускоренных вычислений. Для реального случая использования MME см. Как масштабировать вывод машинного обучения для многопользовательских сценариев использования SaaS.
В следующей таблице приведены рекомендации по оценке функций пригодности для MME.
Фитнес-функция | Описание |
Цена |
MME позволяют использовать общий контейнер обслуживания для размещения тысяч моделей на одной конечной точке. Это значительно снижает затраты на хостинг за счет улучшения использования конечных точек по сравнению с конечными точками с одной моделью. Например, если у вас есть 10 моделей для развертывания с использованием экземпляра ml.c5.large на основе Цены на SageMaker, стоимость 10 постоянных конечных точек с одной моделью составляет: 10 * 0.102 USD = 1.02 USD в час. Принимая во внимание, что с одним MME, на котором размещаются 10 моделей, мы достигаем 10-кратной экономии средств: 1 * 0.102 доллара США = 0.102 доллара США в час. |
Задержка вывода |
По умолчанию MME кэшируют часто используемые модели в памяти и на диске, чтобы обеспечить вывод с малой задержкой. Кэшированные модели выгружаются или удаляются с диска только тогда, когда в контейнере заканчивается память или место на диске для размещения новой целевой модели. MME допускают ленивую загрузку моделей, что означает, что модели загружаются в память при первом вызове. Это оптимизирует использование памяти; однако это вызывает скачки времени отклика при первой загрузке, что приводит к проблемам с холодным запуском. Следовательно, MME также хорошо подходят для сценариев, которые могут допускать случайные штрафы за задержку, связанные с холодным запуском, возникающие при вызове редко используемых моделей. Для достижения целей по задержке и пропускной способности приложений машинного обучения экземпляры графического процессора предпочтительнее экземпляров ЦП (учитывая вычислительную мощность, предлагаемую графическими процессорами). Благодаря поддержке MME для GPU вы можете развернуть тысячи моделей глубокого обучения за одной конечной точкой SageMaker. MME могут запускать несколько моделей на ядре графического процессора, совместно использовать экземпляры графического процессора за конечной точкой для нескольких моделей и динамически загружать и выгружать модели на основе входящего трафика. Благодаря этому вы можете значительно сократить расходы и добиться наилучшего соотношения цены и качества. Если ваш вариант использования требует значительно более высоких транзакций в секунду (TPS) или требований к задержке, мы рекомендуем размещать модели на выделенных конечных точках. |
Увеличить пропускную способность |
Идеальное значение пропускной способности логического вывода MME зависит от таких факторов, как модель, размер полезной нагрузки и тип экземпляра конечной точки. Больший объем памяти экземпляра позволяет загрузить больше моделей и подготовить их для обслуживания запросов на логические выводы. Вам не нужно тратить время на загрузку модели. Большее количество виртуальных ЦП позволяет одновременно вызывать больше уникальных моделей. MME динамически загружают и выгружают модель в память экземпляра и из нее, что может повлиять на производительность ввода-вывода. MME SageMaker с графическим процессором работают с использованием Сервер вывода NVIDIA Triton, которое представляет собой программное обеспечение для обслуживания логических выводов с открытым исходным кодом, которое упрощает процесс обслуживания логических выводов и обеспечивает высокую производительность логических выводов. SageMaker загружает модель в память контейнера NVIDIA Triton на экземпляре с ускорением на GPU и обслуживает запрос на вывод. Ядро графического процессора совместно используется всеми моделями экземпляра. Если модель уже загружена в память контейнера, последующие запросы обслуживаются быстрее, поскольку SageMaker не нужно загружать и загружать ее снова. Для успешного развертывания в рабочей среде рекомендуется провести надлежащее тестирование и анализ производительности. SageMaker предоставляет метрики CloudWatch для конечных точек с несколькими моделями, чтобы вы могли определить использование конечной точки и частоту попаданий в кэш, чтобы помочь оптимизировать свою конечную точку. |
Масштабирование сложности конфигурации | Мультимодельные конечные точки SageMaker полностью поддерживают автоматическое масштабирование, которое управляет репликами моделей, обеспечивая масштабирование моделей на основе шаблонов трафика. Однако рекомендуется провести надлежащее нагрузочное тестирование, чтобы определить оптимальный размер экземпляров для автоматического масштабирования конечной точки. Правильный размер парка MME важен, чтобы избежать выгрузки слишком большого количества моделей. Загрузка сотен моделей в несколько более крупных экземпляров в некоторых случаях может привести к регулированию, поэтому предпочтительнее использовать большее количество экземпляров меньшего размера. Чтобы воспользоваться преимуществами автоматического масштабирования модели в SageMaker, убедитесь, что у вас есть настройка автоматического масштабирования экземпляра для предоставления дополнительной емкости экземпляра. Настройте политику масштабирования на уровне конечной точки с помощью настраиваемых параметров или вызовов в минуту (рекомендуется), чтобы добавить больше экземпляров в парк конечных точек. Частота вызовов, используемая для запуска события автоматического масштабирования, основана на совокупном наборе прогнозов по всему набору моделей, обслуживаемых конечной точкой. |
Схема движения | MME идеально подходят, когда у вас есть большое количество моделей одинакового размера, которые вы можете обслуживать через общий контейнер обслуживания, и вам не требуется доступ ко всем моделям одновременно. |
Многоконтейнерные конечные точки SageMaker
SageMaker MCE поддерживает развертывание до 15 контейнеров, использующих разные модели или платформы, на одной конечной точке и их вызов независимо или последовательно для получения выводов с малой задержкой и экономии средств. Модели могут быть полностью разнородными, со своим независимым стеком обслуживания. Безопасное размещение нескольких моделей из разных платформ в одном экземпляре может сэкономить до 90 % затрат.
Шаблоны вызова MCE следующие:
- Конвейеры логического вывода – Контейнеры в MME могут вызываться в линейной последовательности, также известной как последовательный конвейер вывода. Обычно они используются для разделения предварительной обработки, вывода модели и постобработки в независимые контейнеры. Выходные данные текущего контейнера передаются в качестве входных данных следующему. В SageMaker они представлены в виде единой конвейерной модели. Конвейер вывода может быть развернут как MME, где один из контейнеров в конвейере может динамически обслуживать запросы на основе вызываемой модели.
- Прямой вызов - С участием прямой вызов, запрос может быть отправлен в конкретный контейнер логического вывода, размещенный на MCE.
В следующей таблице приведены рекомендации по оценке функций пригодности для MCE.
Фитнес-функция | Описание |
Цена | MCE позволяют запускать до 15 различных контейнеров машинного обучения на одной конечной точке и вызывать их независимо друг от друга, тем самым снижая затраты. Этот вариант идеален, когда у вас есть несколько моделей, работающих в разных стеках обслуживания с одинаковыми потребностями в ресурсах, и когда отдельные модели не имеют достаточного трафика для использования полной емкости экземпляров конечных точек. Таким образом, MCE более эффективны с точки зрения затрат, чем конечная точка с одной моделью. MCE предлагают синхронный ответ на вывод, что означает, что конечная точка всегда доступна, и вы платите за время безотказной работы экземпляра. Стоимость может увеличиваться в зависимости от количества и типа экземпляров. |
Задержка вывода | MCE идеально подходят для запуска приложений машинного обучения с различными платформами и алгоритмами машинного обучения для каждой модели, доступ к которым осуществляется нечасто, но при этом требуется вывод с малой задержкой. Модели всегда доступны для логического вывода с малой задержкой, и нет проблем с холодным запуском. |
Увеличить пропускную способность | MCE ограничены 15 контейнерами на многоконтейнерной конечной точке, а логический вывод GPU не поддерживается из-за конкуренции за ресурсы. Для конечных точек с несколькими контейнерами, использующих режим прямого вызова, SageMaker не только предоставляет метрики на уровне экземпляра, как это делается с другими распространенными конечными точками, но также поддерживает метрики для каждого контейнера. Рекомендуется просмотреть метрики CloudWatch для входных запросов и использования ресурсов, а также выбрать подходящий тип инстанса для достижения оптимальной пропускной способности. |
Масштабирование сложности конфигурации | MCE поддерживают автоматическое масштабирование. Однако для настройки автоматического масштабирования рекомендуется, чтобы модель в каждом контейнере демонстрировала одинаковую загрузку ЦП и задержку для каждого запроса на вывод. Это рекомендуется, потому что если трафик к конечной точке с несколькими контейнерами переходит от модели с низкой загрузкой ЦП к модели с высокой загрузкой ЦП, но общий объем вызовов остается прежним, конечная точка не масштабируется, и экземпляров может не хватить. для обработки всех запросов к модели с высокой загрузкой ЦП. |
Схема движения | MCE идеально подходят для рабочих нагрузок с постоянными или регулярными шаблонами трафика, для размещения моделей в разных платформах (таких как TensorFlow, PyTorch или Sklearn), которые могут не иметь достаточного трафика для насыщения полной емкости экземпляра конечной точки. |
Хостинг мультимодельного приложения машинного обучения
Многим бизнес-приложениям необходимо использовать несколько моделей машинного обучения, чтобы обслуживать один прогнозный запрос для своих потребителей. Например, розничная компания, которая хочет давать рекомендации своим пользователям. Приложение ML в этом случае может захотеть использовать разные пользовательские модели для рекомендации разных категорий продуктов. Если компания хочет персонализировать рекомендации, используя информацию об отдельных пользователях, количество пользовательских моделей еще больше увеличивается. Размещение каждой пользовательской модели на отдельном вычислительном экземпляре не только непомерно дорого, но и приводит к неполному использованию ресурсов размещения, если не все модели используются часто. SageMaker предлагает эффективные варианты хостинга для мультимодельных приложений машинного обучения.
На следующей диаграмме показаны варианты размещения нескольких моделей для одной конечной точки с использованием SageMaker.
Последовательный конвейер вывода
Конвейер логического вывода — это модель SageMaker, состоящая из линейной последовательности из 2–15 контейнеров, которые обрабатывают запросы на логические выводы по данным. Вы используете конвейер вывода для определения и развертывания любой комбинации предварительно обученных встроенных алгоритмов SageMaker и ваших собственных алгоритмов, упакованных в контейнеры Docker. Вы можете использовать конвейер логического вывода для объединения задач предварительной обработки, прогнозирования и постобработки данных. Выходные данные одного контейнера передаются в качестве входных данных для следующего. При определении контейнеров для модели конвейера вы также указываете порядок запуска контейнеров. В SageMaker они представлены в виде единой конвейерной модели. Конвейер вывода может быть развернут как MME, где один из контейнеров в конвейере может динамически обслуживать запросы на основе вызываемой модели. Вы также можете запустить пакетное преобразование работа с конвейером вывода. Конвейеры логического вывода полностью управляемы.
В следующей таблице приведены рекомендации по оценке функций пригодности для размещения модели машинного обучения с использованием конвейера последовательного вывода.
Фитнес-функция | Описание |
Цена | Конвейер последовательного вывода позволяет запускать до 15 различных контейнеров машинного обучения на одной конечной точке, что снижает затраты на размещение контейнеров вывода. Никаких дополнительных затрат за использование этой функции не требуется. Вы платите только за экземпляры, работающие на конечной точке. Стоимость может увеличиваться в зависимости от количества и типа экземпляров. |
Задержка вывода | Когда приложение машинного обучения развертывается как конвейер логического вывода, данные между разными моделями не покидают пространство контейнера. Обработка функций и выводы выполняются с малой задержкой, поскольку контейнеры расположены в одних и тех же экземплярах EC2. |
Увеличить пропускную способность | В модели конвейера логического вывода SageMaker обрабатывает вызовы как последовательность HTTP-запросов. Первый контейнер в конвейере обрабатывает первоначальный запрос, затем промежуточный ответ отправляется как запрос второму контейнеру и так далее для каждого контейнера в конвейере. SageMaker возвращает окончательный ответ клиенту. Пропускная способность зависит от таких факторов, как модель, размер входных данных модели, размер пакета и тип экземпляра конечной точки. Рекомендуется просмотреть метрики CloudWatch для входных запросов и использования ресурсов и выбрать подходящий тип инстанса для достижения оптимальной пропускной способности. |
Масштабирование сложности конфигурации | Конвейеры последовательного вывода поддерживают автоматическое масштабирование. Однако для настройки автоматического масштабирования рекомендуется, чтобы модель в каждом контейнере демонстрировала одинаковую загрузку ЦП и задержку для каждого запроса на вывод. Это рекомендуется, потому что если трафик к конечной точке с несколькими контейнерами переходит от модели с низкой загрузкой ЦП к модели с высокой загрузкой ЦП, но общий объем вызовов остается прежним, конечная точка не масштабируется и может не хватить экземпляров для обрабатывать все запросы к модели с высокой загрузкой ЦП. |
Схема движения |
Конвейеры последовательного логического вывода идеально подходят для предсказуемых шаблонов трафика с моделями, которые выполняются последовательно на одной и той же конечной точке. |
Развертывание модельных ансамблей (Triton DAG):
SageMaker предлагает интеграцию с Сервер вывода NVIDIA Triton через Контейнеры сервера инференса Triton. Эти контейнеры включают NVIDIA Triton Inference Server, поддержку распространенных платформ машинного обучения и полезные переменные среды, позволяющие оптимизировать производительность SageMaker. С образами контейнеров NVIDIA Triton вы можете легко обслуживать модели машинного обучения и получать выгоду от оптимизации производительности, динамической пакетной обработки и поддержки нескольких платформ, предоставляемых NVIDIA Triton. Triton помогает максимизировать использование GPU и CPU, еще больше снижая стоимость логических выводов.
В случаях использования в бизнесе, когда приложения машинного обучения используют несколько моделей для обслуживания запроса прогноза, если каждая модель использует другую структуру или размещается в отдельном экземпляре, это может привести к увеличению рабочей нагрузки и затрат, а также к увеличению общей задержки. SageMaker NVIDIA Triton Inference Server поддерживает развертывание моделей из всех основных фреймворков, таких как TensorFlow GraphDef, TensorFlow SavedModel, ONNX, PyTorch TorchScript, TensorRT, форматы моделей Python/C++ и т. д. Ансамбль моделей Triton представляет собой конвейер из одной или нескольких моделей или логики предварительной и постобработки, а также связь входных и выходных тензоров между ними. Одиночный запрос логического вывода к ансамблю инициирует запуск всего конвейера. Triton также имеет несколько встроенных алгоритмов планирования и пакетной обработки, которые объединяют отдельные запросы на вывод для повышения пропускной способности. Эти решения по планированию и пакетной обработке прозрачны для клиента, запрашивающего вывод. Модели могут работать на процессорах или графических процессорах для максимальной гибкости и поддержки гетерогенных вычислительных требований.
Размещение нескольких моделей с поддержкой GPU на конечных точках с несколькими моделями поддерживается через Сервер инференса SageMaker Triton. Сервер NVIDIA Triton Inference Server был расширен для реализации Контракт API MME, для интеграции с MME. Вы можете использовать сервер выводов NVIDIA Triton, который создает конфигурацию репозитория моделей для различных серверных частей платформы, чтобы развернуть MME с автоматическим масштабированием. Эта функция позволяет масштабировать сотни гипер-персонализированных моделей, точно настроенных для удовлетворения уникальных потребностей конечных пользователей в приложениях ИИ. Вы также можете использовать эту функцию для достижения необходимого соотношения цены и производительности для вашего приложения логического вывода с использованием дробных графических процессоров. Чтобы узнать больше, см. Запускайте несколько моделей глубокого обучения на графическом процессоре с помощью мультимодельных конечных точек Amazon SageMaker..
В следующей таблице приведены рекомендации по оценке функций пригодности для размещения модели машинного обучения с использованием MME с поддержкой графического процессора в контейнерах вывода Triton. Оценки функций пригодности конечных точек с одной моделью и бессерверных конечных точек см. в предыдущих разделах этой публикации.
Фитнес-функция | Описание |
Цена | MME SageMaker с поддержкой графического процессора с использованием Triton Inference Server обеспечивают масштабируемый и экономичный способ развертывания большого количества моделей глубокого обучения за одной конечной точкой SageMaker. С MME несколько моделей совместно используют экземпляр GPU за конечной точкой. Это позволяет сократить линейно возрастающую стоимость размещения нескольких моделей и повторно использовать инфраструктуру во всех моделях. Вы платите за время безотказной работы экземпляра. |
Задержка вывода |
SageMaker с Triton Inference Server специально разработан для максимального увеличения пропускной способности и использования оборудования при сверхнизкой (однозначное число миллисекунд) задержке логического вывода. Он имеет широкий спектр поддерживаемых платформ машинного обучения (включая TensorFlow, PyTorch, ONNX, XGBoost и NVIDIA TensorRT) и серверных частей инфраструктуры, включая графические процессоры NVIDIA, ЦП и Вывод AWS. Благодаря поддержке MME для GPU с помощью SageMaker Triton Inference Server вы можете развернуть тысячи моделей глубокого обучения за одной конечной точкой SageMaker. SageMaker загружает модель в память контейнера NVIDIA Triton на экземпляре с ускорением на GPU и обслуживает запрос на вывод. Ядро графического процессора совместно используется всеми моделями экземпляра. Если модель уже загружена в память контейнера, последующие запросы обслуживаются быстрее, поскольку SageMaker не нужно загружать и загружать ее снова. |
Увеличить пропускную способность |
MME предлагают возможности для запуска нескольких моделей глубокого обучения или машинного обучения на графическом процессоре одновременно с Triton Inference Server. Это позволяет легко использовать мультиплатформенную высокопроизводительную службу логических выводов NVIDIA Triton с полностью управляемым развертыванием модели SageMaker. Triton поддерживает все логические выводы на основе NVIDIA GPU, x86, Arm® CPU и AWS Inferentia. Он предлагает динамическую пакетную обработку, одновременные запуски, оптимальную конфигурацию модели, ансамбль моделей и потоковые аудио- и видеовходы для максимального увеличения пропускной способности и использования. Другие факторы, такие как сеть и размер полезной нагрузки, могут играть минимальную роль в накладных расходах, связанных с выводом. |
Масштабирование сложности конфигурации |
MME могут масштабироваться горизонтально с помощью политики автоматического масштабирования и предоставлять дополнительные вычислительные экземпляры графического процессора на основе таких показателей, как С помощью сервера логических выводов Triton вы можете легко создать собственный контейнер, включающий вашу модель с помощью Triton, и перенести его в SageMaker. SageMaker Inference будет обрабатывать запросы и автоматически масштабировать контейнер по мере увеличения использования, упрощая развертывание модели с помощью Triton на AWS. |
Схема движения |
MME идеально подходят для предсказуемых моделей трафика с моделями, работающими как DAG на одной и той же конечной точке. SageMaker позаботится о формировании трафика к конечной точке MME и поддерживает оптимальные копии моделей на инстансах GPU для наилучшего соотношения цены и качества. Он продолжает направлять трафик к экземпляру, в котором загружена модель. Если ресурсы экземпляра достигают предела из-за высокой загрузки, SageMaker выгружает наименее используемые модели из контейнера, чтобы освободить ресурсы для загрузки более часто используемых моделей. |
Лучшие практики
Рассмотрите следующие рекомендации:
- Высокая сплоченность и низкая связанность между моделями – Разместите модели в одном и том же контейнере, который имеет высокую связность (обеспечивает функциональность для одного бизнеса) и инкапсулируйте их вместе для простоты обновления и управляемости. В то же время отделите эти модели друг от друга (разместите их в другом контейнере), чтобы можно было легко обновить одну модель, не затрагивая другие модели. Размещайте несколько моделей, использующих разные контейнеры, за одной конечной точкой и вызывайте их независимо друг от друга или добавляйте логику предварительной и постобработки модели в виде конвейера последовательного вывода.
- Задержка вывода – Сгруппируйте модели, ориентированные на функциональные возможности одного бизнеса, и разместите их в одном контейнере, чтобы свести к минимуму количество переходов и, следовательно, свести к минимуму общую задержку. Есть и другие предостережения, например, если сгруппированные модели используют несколько фреймворков; вы также можете выбрать размещение в нескольких контейнерах, но работать на одном хосте, чтобы уменьшить задержку и минимизировать затраты.
- Логически группируйте модели машинного обучения с высокой связностью – Логическая группа может состоять из моделей, которые являются однородными (например, все модели XGBoost) или разнородными (например, несколько моделей XGBoost и несколько BERT). Он может состоять из моделей, которые являются общими для нескольких бизнес-функций, или могут быть специфичными для выполнения только одной бизнес-функции.
- Общие модели – Если логическая группа состоит из общих моделей, простота обновления моделей и задержка будут играть важную роль при проектировании конечных точек SageMaker. Например, если задержка является приоритетом, лучше разместить все модели в одном контейнере за одной конечной точкой SageMaker, чтобы избежать множественных переходов. Недостатком является то, что если какую-либо из моделей необходимо обновить, это приведет к обновлению всех соответствующих конечных точек SageMaker, на которых размещена эта модель.
- Неразделяемые модели – Если логическая группа состоит только из моделей, специфичных для бизнес-функций, и не используется совместно с другими группами, сложность упаковки и размеры задержки станут ключевыми для достижения. Эти модели рекомендуется размещать в одном контейнере за одной конечной точкой SageMaker.
- Эффективное использование оборудования (CPU, GPU) – Сгруппируйте модели на основе ЦП вместе и разместите их на одном хосте, чтобы можно было эффективно использовать ЦП. Точно так же сгруппируйте модели на основе графического процессора, чтобы их можно было эффективно использовать и масштабировать. Существуют гибридные рабочие нагрузки, требующие использования ЦП и ГП на одном хосте. Размещение моделей только для процессора и только для графического процессора на одном хосте должно быть обусловлено высокими требованиями к связности и задержке приложений. Кроме того, ключевыми параметрами, на которые следует обратить внимание, являются стоимость, возможность масштабирования и радиус взрыва при столкновении в случае отказа.
- Фитнес-функции – Используйте фитнес-функции в качестве ориентира при выборе варианта хостинга машинного обучения.
Заключение
Когда дело доходит до хостинга машинного обучения, универсального подхода не существует. Практикам машинного обучения необходимо выбрать правильный шаблон проектирования для решения своих проблем с хостингом машинного обучения. Оценка фитнес-функций дает рекомендации по выбору правильного варианта хостинга машинного обучения.
Дополнительные сведения о каждом из вариантов хостинга см. в следующих сообщениях этой серии:
Об авторах
Дхавал Патель является главным архитектором машинного обучения в AWS. Он работал с организациями, начиная от крупных предприятий и заканчивая стартапами среднего размера, над проблемами, связанными с распределенными вычислениями и искусственным интеллектом. Он специализируется на глубоком обучении, включая домены NLP и Computer Vision. Он помогает клиентам добиться высокопроизводительного логического вывода модели в SageMaker.
Дипали Раджале является специалистом по AI/ML, техническим менеджером по работе с клиентами в Amazon Web Services. Она работает с корпоративными клиентами, предоставляя технические рекомендации по внедрению решений машинного обучения с учетом передового опыта. В свободное время она любит ходить в походы, смотреть фильмы и проводить время с семьей и друзьями.
Саураб Триканде является старшим менеджером по продуктам Amazon SageMaker Inference. Он увлечен работой с клиентами и мотивирован целью демократизации машинного обучения. Он фокусируется на основных проблемах, связанных с развертыванием сложных приложений машинного обучения, мультитенантных моделей машинного обучения, оптимизацией затрат и обеспечением более доступного развертывания моделей глубокого обучения. В свободное время Саураб любит ходить в походы, узнавать об инновационных технологиях, следить за TechCrunch и проводить время со своей семьей.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- Платоблокчейн. Интеллект метавселенной Web3. Расширение знаний. Доступ здесь.
- Источник: https://aws.amazon.com/blogs/machine-learning/model-hosting-patterns-in-amazon-sagemaker-part-1-common-design-patterns-for-building-ml-applications-on-amazon-sagemaker/
- 1
- 10
- 100
- 11
- 39
- 7
- 70
- a
- способность
- в состоянии
- О нас
- ускоренный
- доступ
- Доступ
- доступной
- вмещать
- Учетная запись
- точный
- Достигать
- достижение
- через
- Действие
- активно
- дополнение
- дополнительный
- Дополнительно
- адрес
- продвижение
- продвинутый
- плюс
- Реклама
- влиять на
- После
- агрегирование
- Агрегатор
- агрессивный
- соглашения
- AI
- AI / ML
- Часы работы
- алгоритмы
- Все
- Позволяющий
- позволяет
- уже
- всегда
- Amazon
- Amazon EC2
- Создатель мудреца Амазонки
- Amazon Web Services
- количество
- анализ
- анализировать
- и
- и инфраструктура
- годовой
- Другой
- апаш
- API
- Apple
- Применение
- Приложения
- подхода
- соответствующий
- Программы
- архитектура
- ARM
- искусственный
- искусственный интеллект
- аспекты
- оценки;
- связанный
- Атрибуты
- аудио
- аудит
- автоматический
- Автоматизированный
- Автоматический
- автоматически
- свободных мест
- доступен
- в среднем
- AWS
- назад
- со спинкой
- Банковское дело
- Использование темпера с изогнутым основанием
- основанный
- , так как:
- становиться
- становится
- до
- за
- не являетесь
- польза
- ЛУЧШЕЕ
- лучшие практики
- Лучшая
- между
- биомедицинских
- Заблокировать
- Заимствование
- Границы
- Коробка
- нарушение
- Ломать
- приносить
- Приносит
- Бюджеты
- строить
- Строительство
- построенный
- встроенный
- бизнес
- Бизнес-приложения
- Бизнес-процесс
- бизнес
- Кэш
- рассчитанный
- призывают
- под названием
- гость
- кандидатов
- возможности
- Пропускная способность
- заботится
- случаев
- случаев
- категории
- Причины
- определенный
- Сертифицированные
- проблемы
- изменение
- изменения
- характеристика
- заряженный
- Chatbot
- проверка
- чип
- выбор
- выбор
- Выберите
- Выбирая
- класс
- классификация
- классифицировать
- клиент
- клиентов
- Закрыть
- облако
- Кластер
- код
- придумано
- коллеги
- собирать
- борьбы с
- сочетание
- объединять
- сочетании
- Общий
- Компании
- Компания
- сравненный
- полный
- полностью
- комплекс
- сложность
- Соответствие закону
- компоненты
- состоящие
- скомпрометированы
- вычислительная мощность
- Вычисление
- компьютер
- Компьютерное зрение
- вычисление
- сама концепция
- Беспокойство
- параллельный
- Конфигурация
- связи
- последовательный
- потребленный
- Потребители
- Container
- Контейнеры
- содержит
- продолжать
- продолжается
- (CIJ)
- контроль
- Основные
- соответствующий
- Цена
- экономия на издержках
- рентабельным
- Расходы
- может
- Создайте
- создает
- критической
- решающее значение
- Текущий
- изготовленный на заказ
- клиент
- Клиенты
- DAG
- данным
- обработка данных
- наука о данных
- ученый данных
- База данных
- Наборы данных
- день
- занимавшийся
- решения
- преданный
- глубоко
- глубокое обучение
- По умолчанию
- определяющий
- доставить
- Спрос
- запросы
- Демократизация
- в зависимости
- зависит
- развертывание
- развернуть
- развертывание
- развертывание
- развертывания
- Проект
- шаблоны проектирования
- предназначенный
- подробность
- подробнее
- обнаружение
- Определять
- Застройщик
- Развитие
- диаграммы
- различный
- трудный
- размеры
- направлять
- отчетливый
- распределенный
- распределенных вычислений
- Разное
- Docker
- Документация
- не
- доменов
- Dont
- вниз
- скачать
- нижняя сторона
- управляемый
- упал
- Опустившись
- в течение
- динамический
- каждый
- Ранее
- легче
- легко
- Эффективный
- фактически
- эффективность
- Эффективность
- эффективный
- эффективно
- усилие
- или
- уничтожение
- включить
- позволяет
- шифрование
- впритык
- Конечная точка
- Проект и
- Инженеры
- достаточно
- обеспечивать
- обеспечивает
- Предприятие
- предприятий
- Весь
- Окружающая среда
- ошибка
- ошибки
- особенно
- оценивается
- оценки
- Даже
- События
- многое
- эволюция
- пример
- Примеры
- обмена
- Экспонаты
- ожидать
- ожидаемый
- опыт
- Впечатления
- Больше
- выражения
- и, что лучший способ
- дополнительно
- Face
- факторы
- Ошибка
- достаточно
- семей
- семья
- быстрее
- Особенность
- Особенности
- кормление
- несколько
- окончательный
- First
- Впервые
- фитнес
- ФЛОТ
- Трансформируемость
- поток
- колебаться
- фокусируется
- после
- следующим образом
- Ford
- форма
- формы
- дробный
- Рамки
- каркасы
- мошенничество
- обнаружение мошенничества
- Бесплатно
- частота
- часто
- друзья
- от
- Фрукты
- полный
- полностью
- функция
- функциональные возможности
- функциональность
- Функции
- далее
- GDPR
- Общие
- генерируется
- порождающий
- получить
- Дайте
- данный
- цель
- Цели
- хорошо
- GPU / ГРАФИЧЕСКИЙ ПРОЦЕССОР
- Графические процессоры
- график
- большой
- большой
- значительно
- группы
- Группы
- Расти
- инструкция
- обрабатывать
- Ручки
- удобный
- Аппаратные средства
- имеющий
- Медицина
- здравоохранение
- помощь
- помощь
- помогает
- здесь
- High
- высокая производительность
- высокое разрешение
- высший
- Удар
- горизонтальный
- кашель
- состоялся
- хостинг
- расходы на хостинг
- услуги хостинга
- Как
- Однако
- HTML
- HTTPS
- Сотни
- Гибридный
- идеальный
- Личность
- Idle
- изображение
- Классификация изображений
- изображений
- неизменный
- Влияние
- влияние
- Воздействие
- осуществлять
- в XNUMX году
- Осуществляющий
- важную
- улучшать
- улучшение
- in
- включают
- включает в себя
- В том числе
- Входящий
- Увеличение
- расширились
- Увеличивает
- повышение
- независимые
- самостоятельно
- individual
- информация
- Инфраструктура
- начальный
- инновационный
- инновационные технологии
- вход
- Установка
- пример
- вместо
- интегрировать
- интеграции.
- Интеллекта
- интерактивный
- включать в себя
- ISO
- изоляция
- IT
- работа
- Джобс
- Основные
- ключи
- Знать
- известный
- большой
- больше
- Задержка
- запуск
- запускает
- запуск
- вести
- ведущий
- Лиды
- УЧИТЬСЯ
- изучение
- Оставлять
- привело
- уровень
- библиотеки
- Подтяжка лица
- Ограниченный
- рамки
- Список
- жить
- загрузка
- погрузка
- грузы
- расположение
- Длинное
- дольше
- посмотреть
- потери
- серия
- Низкий
- машина
- обучение с помощью машины
- сделанный
- Главная
- поддерживать
- поддерживает
- основной
- сделать
- ДЕЛАЕТ
- Создание
- управлять
- управляемого
- управление
- менеджер
- управляет
- управления
- многих
- Маркетинг
- математический
- Вопрос
- Максимизировать
- максимальный
- означает
- Встречайте
- Память
- метод
- методы
- метрический
- Метрика
- может быть
- минимальный
- минимальный
- Минут
- Смешивание
- ML
- режим
- модель
- Модели
- монитор
- Мониторинг
- Месяц
- месяцев
- БОЛЕЕ
- самых
- мотивированные
- Кино
- Мультимодельная конечная точка
- с разными
- множество
- природа
- необходимо
- Необходимость
- потребности
- сеть
- Новые
- следующий
- НЛП
- уведомление
- Уведомления
- номер
- Nvidia
- объект
- цель
- целей
- получение
- случайный
- предлагают
- Предложения
- оффлайн
- ONE
- онлайн
- с открытым исходным кодом
- работать
- работает
- операционный
- оперативный
- Операционный отдел
- Операторы
- оптимальный
- оптимизация
- Оптимизировать
- оптимизированный
- оптимизирует
- оптимизирующий
- Опция
- Опции
- Апельсин
- заказ
- организации
- Другое
- выдающийся
- общий
- собственный
- собственность
- пакет
- коробок
- параметры
- часть
- особый
- партнер
- Прошло
- страстный
- Патчи
- шаблон
- паттеранами
- ОПЛАТИТЬ
- Вершина горы
- Выполнять
- производительность
- выполнения
- период
- периодический
- периодов
- воплощение
- Персонализированные
- выбирать
- трубопровод
- Часть
- Мест
- запланированный
- Планы
- Платформа
- Платформы
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- Играть
- плюс
- сборах
- политика
- Популярное
- возможное
- После
- Блог
- мощностью
- практика
- практиками
- предсказуемый
- прогнозирования
- прогноз
- Predictions
- привилегированный
- предварительно
- цена
- Основной
- приоритет
- частная
- Проблема
- проблемам
- процесс
- Обработанный
- Процессы
- обработка
- процессоры
- Продукт
- Менеджер по продукции
- Производство
- Продукция
- Профиль
- правильный
- обеспечивать
- при условии
- приводит
- обеспечение
- обеспечение
- полномочие
- цель
- Push
- pytorch
- быстро
- ассортимент
- ранжирование
- быстро
- Обменный курс
- Стоимость
- достигать
- доходит до
- Читать
- готовый
- реальные
- реальный мир
- реального времени
- Получать
- получила
- получает
- рекомендовать
- Рекомендация
- рекомендаций
- Управление по борьбе с наркотиками (DEA)
- рекомендуя
- рекомендует
- повторяющихся
- уменьшить
- снижает
- понимается
- Несмотря на
- регулярный
- Связанный
- публикации
- соответствующие
- остатки
- хранилище
- представленный
- представляет
- запросить
- Запросы
- требовать
- обязательный
- требование
- Требования
- требуется
- ресурс
- Полезные ресурсы
- ответ
- ОТДЫХ
- результат
- в результате
- Итоги
- розничный
- Возвращает
- обзоре
- Снижение
- Роли
- корень
- дорога
- Правило
- Run
- Бег
- SaaS
- sagemaker
- Вывод SageMaker
- заработная плата
- то же
- Сохранить
- экономия
- экономия
- масштабируемые
- Шкала
- Весы
- масштабирование
- Сценарии
- график
- считаться
- Наука
- Ученый
- Во-вторых
- секунды
- Раздел
- разделах
- безопасно
- безопасность
- выбор
- выбор
- старший
- чувствительный
- Последовательность
- последовательный
- Серии
- служить
- Serverless
- Серверы
- служит
- обслуживание
- Услуги
- выступающей
- набор
- установка
- несколько
- формирование
- Поделиться
- общие
- Смены
- должен
- Шоу
- значительный
- существенно
- аналогичный
- Аналогичным образом
- просто
- одинарной
- Размер
- Размеры
- небольшой
- меньше
- So
- Software
- Решение
- Решения
- некоторые
- Источники
- Space
- специалист
- специализированный
- конкретный
- конкретно
- указанный
- скорость
- Расходы
- шипы
- стабильный
- стек
- Стеки
- Начало
- и политические лидеры
- начинается
- ввод в эксплуатацию
- Стартапы
- устойчивый
- Шаг
- Шаги
- По-прежнему
- Останавливает
- диск
- магазин
- стратегий
- потоковый
- Строгий
- сильно
- последующее
- успех
- успешный
- такие
- достаточный
- подходящее
- поддержка
- Поддержанный
- Поддержка
- возникает
- ТАБЛИЦЫ
- взять
- принимает
- цель
- целевое
- Сложность задачи
- задачи
- команда
- команды
- TechCrunch
- Технический
- технологии
- арендатор
- tensorflow
- тестXNUMX
- Тестирование
- Ассоциация
- их
- сами
- тем самым
- следовательно
- тысячи
- три
- порог
- Через
- по всему
- пропускная способность
- время
- раз
- в
- вместе
- слишком
- инструментом
- Всего
- TPS
- Отслеживание
- трафик
- Train
- специалистов
- Обучение
- транзакционный
- Сделки
- Transform
- трансформация
- превращение
- транзит
- прозрачный
- вызвать
- Тритон
- ОЧЕРЕДЬ
- Типы
- типичный
- типично
- под
- лежащий в основе
- понимать
- созданного
- единиц
- непредсказуемый
- неиспользованный
- Обновление ПО
- Updates
- модернизация
- повышен
- Провел на сайте
- Применение
- использование
- прецедент
- Информация о пользователе
- пользователей
- обычно
- использовать
- использовать
- VALIDATE
- ценностное
- Наши ценности
- Вариант
- различный
- с помощью
- Видео
- Видео
- Вид
- Виртуальный
- видение
- объем
- Голос
- голосов
- Снизить отходы
- Web
- веб-сервисы
- неделя
- Что
- Что такое
- который
- в то время как
- широкий
- Широкий диапазон
- будете
- в
- без
- Работа
- работавший
- работник
- рабочие
- работает
- работает
- Мир
- бы
- XGBoost
- год
- Ты
- ВАШЕ
- зефирнет
- нуль