Облако — это просто чей-то компьютер

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

Поставщики гипероблаков (AWS, Azure, GCP) могут предложить меньшую общую стоимость владения, предоставляя при этом превосходные функции от масштабируемости до безопасности. Не имеет финансового смысла создавать все своими силами, когда вы можете получить его с полки только на то время, когда вам это нужно. Поставщики облачных услуг постоянно внедряют инновации, предлагая такие решения, как серверы, стоимость которых зависит только от времени их использования, а не от времени, в течение которого они работают и ждут запросов. Они также могут привлекать таланты, специализирующиеся, например, в масштабируемость и безопасность способами, которые были бы невозможны для любого другого поставщика в отдельности.

Облако и машинное обучение

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

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

  1. Вам нужна вычислительная мощность 24/7 (например, из-за больших команд или больших моделей)
  2. У вас есть конфиденциальные данные, которые не могут покинуть ваши центры обработки данных из соображений соответствия или по другим причинам.

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

Три основные причины для машинного обучения в облаке:

  1. Гибкое использование ресурсов для борьбы со скачкообразными потребностями в аппаратных ресурсах
  2. Доступ к новейшему оборудованию одним нажатием кнопки
  3. Развязанная архитектура, не привязанная к конкретному оборудованию

Лучшие практики для облачных реализаций машинного обучения

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

  • Существуют различия между облачными провайдерами, особенно для предприятий, которым нужна конфиденциальность данных — найдите лучшего для себя.
  • Убедитесь, что ваши данные находятся в том же облачном центре обработки данных, что и вычисления, которые вы собираетесь использовать. Модели обучения на больших наборах данных становятся медленными, если ваши данные необходимо перенести, например, из локальное хранилище данных по всему миру для расчетов. Храните свои данные в S3, если вы используете AWS EC2, чтобы свести к минимуму задержку и т. д.
  • Для структурированных данных (табличных данных в базе данных или кластере Spark) используйте этап предварительной обработки, который сначала выводит данные в плоские файлы. Файлы обеспечивают уровень сохранения для запросов к базе данных и, таким образом, улучшают контроль версий и повторное использование при обучении моделей. Следуйте золотому принципу «извлеки один раз, тренируйся бесконечно».
  • Лучше всего использовать гибридные решения: если у вас уже есть локальное оборудование, будь то один Tesla V100 или серверная ферма Titan RTX, используйте их. Переход в облако не происходит в одночасье, и это нормально.
  • Получите платформу машинного обучения, которая абстрагирует аппаратное обеспечение от ваших специалистов по данным.
  • Пусть ваши специалисты по данным сосредоточатся на науке о данных, а не на DevOps или MLOps, независимо от того, какое облачное или локальное оборудование они используют.

Первоначально опубликовано на https://blog.valohai.com.