Как Amazon Search реализует масштабные и устойчивые проекты машинного обучения с помощью Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Как Amazon Search реализует крупномасштабные устойчивые проекты машинного обучения с помощью Amazon SageMaker

Если вы искали товар для покупки на amazon.com, вы использовали сервисы Amazon Search. В Amazon Search мы отвечаем за возможности поиска и обнаружения для наших клиентов по всему миру. В фоновом режиме мы индексируем наш всемирный каталог продуктов, развертываем масштабируемые парки AWS и используем расширенное машинное обучение (ML), чтобы сопоставлять релевантные и интересные продукты с каждым запросом клиента.

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

В этом посте мы расскажем, как мы построили систему управления вокруг Создатель мудреца Амазонки обучающие рабочие места, что позволяет нашим ученым запустить и забыть тысячи экспериментов и получать уведомления, когда это необходимо. Теперь они могут сосредоточиться на важных задачах и устранении алгоритмических ошибок, экономя 60 % своего времени.

Задача

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

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

Мы разработали архитектуру с системой управления заданиями, чтобы снизить вероятность сбоя задания из-за недоступности ресурсов или ошибок алгоритма. Это позволяет ученым запускать и забывать тысячи учебных заданий, автоматически повторять их в случае временного сбоя и получать уведомления об успехе или неудаче, если это необходимо.

Обзор решения

На следующей диаграмме решения мы используем обучающие задания SageMaker в качестве базовой единицы нашего решения. То есть задание представляет собой сквозное обучение модели машинного обучения.

Рабочий процесс высокого уровня этого решения выглядит следующим образом:

  1. Ученые вызывают API для отправки нового задания в систему.
  2. Работа зарегистрирована в New статус в хранилище метаданных.
  3. Планировщик заданий асинхронно извлекает New заданий из хранилища метаданных, анализирует их ввод и пытается запустить обучающие задания SageMaker для каждого из них. Их статус меняется на Launched or Failed в зависимости от успеха.
  4. Монитор через регулярные промежутки времени проверяет ход выполнения заданий и сообщает об их выполнении. Completed, Failedили InProgress состояние в хранилище метаданных.
  5. Уведомление срабатывает, чтобы сообщить Completed и Failed рабочих мест ученым.

Сохранение истории заданий в хранилище метаданных также позволяет нашей команде проводить анализ тенденций и отслеживать ход выполнения проекта.

В этом решении для планирования заданий используются слабосвязанные бессерверные компоненты, основанные на AWS Lambda, Amazon DynamoDB, Amazon Простая служба уведомлений (Amazon SNS) и Amazon EventBridge. Это обеспечивает горизонтальную масштабируемость, позволяя нашим ученым запускать тысячи рабочих мест с минимальными трудозатратами. На следующей диаграмме показана бессерверная архитектура.

Обзор архитектуры нашего решения

В следующих разделах мы более подробно рассмотрим каждую услугу и ее компоненты.

DynamoDB как хранилище метаданных для выполнения заданий

Простота использования и масштабируемость DynamoDB сделали естественным выбором сохранение метаданных заданий в таблице DynamoDB. Это решение хранит несколько атрибутов заданий, отправленных учеными, тем самым помогая отслеживать ход выполнения и организовывать рабочие процессы. Наиболее важные атрибуты следующие:

  • Идентификатор задания – Уникальный идентификатор задания. Он может быть сгенерирован автоматически или предоставлен ученым.
  • Рабочий статус - Статус работы.
  • JobArgs – Другие аргументы, необходимые для создания задания обучения, такие как путь ввода в Amazon S3, URI обучающего изображения и т. д. Полный список параметров, необходимых для создания задания обучения, см. СоздатьTrainingJob.

Лямбда для основной логики

Мы используем три контейнерный Функции Lambda для организации рабочего процесса:

  • Отправить работу – Эта функция вызывается учеными, когда им нужно запустить новые рабочие места. Он действует как API для простоты. Вы также можете перед этим с Шлюз API Amazon, если нужно. Эта функция регистрирует задания в таблице DynamoDB.
  • Запуск заданий – Эта функция периодически извлекает New задания из таблицы DynamoDB и запускает их с помощью SageMaker СоздатьTrainingJob команда. Он повторяет попытки при временных сбоях, таких как ResourceLimitExceeded и CapacityError, чтобы обеспечить отказоустойчивость системы. Затем он обновляет статус задания как Launched or Failed в зависимости от успеха.
  • Отслеживание заданий – Эта функция периодически отслеживает ход выполнения задания с помощью ОписатьОбучениеРабота команда и соответствующим образом обновляет таблицу DynamoDB. Он опрашивает Failed задания из метаданных и оценивает, должны ли они быть повторно отправлены или помечены как окончательная ошибка. Он также публикует уведомления для ученых, когда их работа достигает терминального состояния.

EventBridge для планирования

Мы используем EventBridge для запуска Lambda-функций Launch Jobs и Monitor Jobs по расписанию. Для получения дополнительной информации см. Учебное пособие. Планирование функций AWS Lambda с помощью EventBridge.

Кроме того, вы можете использовать Потоки Amazon DynamoDB для триггеров. Для получения дополнительной информации см. DynamoDB Streams и AWS Lambda запускают.

Уведомления с Amazon SNS

Наши ученые уведомление по электронной почте с помощью Amazon SNS когда их задания достигают терминального состояния (Failed после максимального количества попыток) Completedили Stopped.

Заключение

В этом посте мы рассказали, как Amazon Search повышает отказоустойчивость рабочих нагрузок обучения модели машинного обучения, планируя их и повторяя их при нехватке емкости или ошибках алгоритма. Мы использовали функции Lambda в сочетании с таблицей DynamoDB в качестве центрального хранилища метаданных для организации всего рабочего процесса.

Такая система планирования позволяет ученым сдать свои работы и забыть о них. Это экономит время и позволяет им сосредоточиться на написании лучших моделей.

Чтобы продолжить обучение, вы можете посетить Потрясающий SageMaker и найдите в одном месте все актуальные и актуальные ресурсы, необходимые для работы с SageMaker.


Об авторах

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

Как Amazon Search реализует масштабные и устойчивые проекты машинного обучения с помощью Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Ишан Бхатт работает инженером-программистом в команде Amazon Prime Video. В основном он работает в сфере MLOps и имеет опыт создания продуктов MLOps в течение последних 4 лет с использованием Amazon SageMaker.

Как Amazon Search реализует масштабные и устойчивые проекты машинного обучения с помощью Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Абхинандан Патни является старшим инженером-программистом в Amazon Search. Он занимается созданием систем и инструментов для масштабируемого распределенного обучения глубокому обучению и логических выводов в реальном времени.

Как Amazon Search реализует масштабные и устойчивые проекты машинного обучения с помощью Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Эйман Эльнахрави — ведущий инженер-программист в Amazon Search, возглавляющий усилия по ускорению, масштабированию и автоматизации машинного обучения. Ее опыт охватывает несколько областей, включая машинное обучение, распределенные системы и персонализацию.

Как Amazon Search реализует масштабные и устойчивые проекты машинного обучения с помощью Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Софиан Хамити является специалистом по архитектуре решений AI / ML в AWS. Он помогает клиентам из разных отраслей ускорить переход на ИИ / МО, помогая им создавать и вводить в действие комплексные решения машинного обучения.

Роми ДаттаДоктор Роми Датта  является старшим менеджером по управлению продуктами в команде Amazon SageMaker, отвечающей за обучение, обработку и хранение функций. Он работает в AWS более 4 лет, занимая несколько руководящих должностей по управлению продуктами в SageMaker, S3 и IoT. До прихода в AWS он работал на различных руководящих должностях в области управления продуктами, проектирования и эксплуатации в IBM, Texas Instruments и Nvidia. Он имеет степень магистра и доктора философии. получил степень бакалавра электротехники и вычислительной техники Техасского университета в Остине и степень магистра делового администрирования Школы бизнеса Бута Чикагского университета.

Как Amazon Search реализует масштабные и устойчивые проекты машинного обучения с помощью Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.RJ — инженер команды Search M5, возглавляющей усилия по созданию крупномасштабных систем глубокого обучения для обучения и логического вывода. Вне работы он пробует разные кухни и занимается спортом с ракеткой.

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

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