Полное машинное обучение

Введение

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

Для тех, кто не знает, SageMaker — это решение Amazon для создания, обучения и развертывания моделей машинного обучения. И у Google, и у Microsoft есть конкурирующие решения, но у меня нет опыта их использования, поэтому я не смогу сравнить и сопоставить разные решения, но, надеюсь, смогу сделать это в будущем.

Если вы хотите узнать больше о SageMaker или получить более глубокое представление о его технической архитектуре, не стесняйтесь читать о нем больше на официальном сайте AWS, в противном случае продолжайте читать!

Делитесь моделями через API

SageMaker, как только вы начнете его использовать, проделает большую работу по внедрению шаблона проектирования, согласно которому любая модель машинного обучения, однажды построенная и полностью обученная, должна взаимодействовать только через API. Теперь это может показаться немного экстремальным, поскольку возможность взаимодействовать с моделью машины только через API, а не через Jupyter Notebook или двоичный файл модели, но это очень выгодно по одной причине: клиенты, которым вы создаете свою модель машинного обучения. for сможет взаимодействовать с вашей моделью только через API, так что не нужно быть активным и убедиться, что ваша модель машинного обучения предоставляет его.

Обучение модели без инфраструктуры

Одна из самых сложных вещей в обучении моделей машинного обучения заключается в том, что для их масштабирования требуется сложная вычислительная инфраструктура. К счастью, SageMaker может запускать и отключать эту инфраструктуру по мере необходимости. Нет необходимости настраивать серверы EC2, CloudWatch Alarms, ELB или что-либо еще, поскольку SageMaker предоставит вам эти услуги по мере необходимости, чтобы вы могли обучать свою модель машинного обучения. Что еще лучше, так это то, что эту инфраструктуру можно адаптировать для каждой модели, чтобы вычислительные ресурсы, необходимые для обучения модели, не были выделены излишними или недостаточными.

Грубый по краям

Хотя SageMaker — это решение для создания, обучения и развертывания моделей машинного обучения, вам необходимо время от времени подключаться к другим сервисам AWS, таким как ECR, чтобы использовать SageMaker. Когда это происходит, вам обычно приходится запускать кучу команд CLI AWS, вызывать API AWS или работать с консолью AWS, что может привести к тому, что SageMaker будет казаться намного более неуклюжим, чем он есть на самом деле. В этом, как и в других сервисах AWS, нет ничего необычного, однако это немного усложняет изучение и использование, если у вас уже нет опыта работы с AWS.

Простое начало, сложный финал

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

Вывод

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

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

Я лично с нетерпением жду продолжения использования SageMaker в моих существующих и будущих проектах.