Сравнение Azure ML и AWS SageMaker: управление данными, вычисления, среда.

Azure ML против AWS SageMaker: подробный анализ обучения моделей — Часть 1

Сравните структуру проекта машинного обучения, управление разрешениями и хранение данных в Azure и AWS.

Делиться

110f499d0fa7e9e2bc2f156a6468d5a6

Microsoft Azure и Amazon Web Services (AWS) — две крупнейшие в мире платформы облачных вычислений, предоставляющие ресурсы баз данных, сетей и вычислительных ресурсов в глобальном масштабе. Вместе они занимают около 50% мирового рынка корпоративных облачных инфраструктурных сервисов — AWS на 30%, а Azure на 20%. Azure ML и AWS SageMaker — это сервисы машинного обучения, которые позволяют специалистам по обработке данных и инженерам машинного обучения разрабатывать и управлять всем жизненным циклом машинного обучения, от предварительной обработки данных и проектирования признаков до обучения моделей, развертывания и мониторинга. Вы можете создавать и управлять этими сервисами машинного обучения в AWS и Azure через консольные интерфейсы, облачный CLI или комплекты разработки программного обеспечения (SDK) на предпочитаемом вами языке программирования — подход, описанный в этой статье.

Вакансии по обучению работе с Azure ML и AWS SageMaker

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

Хотя блокноты Jupyter ценны для экспериментов и исследований в интерактивном процессе разработки на одном устройстве, они не предназначены для внедрения в производство или распространения. На этом этапе задачи обучения (и другие задачи машинного обучения) становятся важными в рабочем процессе машинного обучения, поскольку их выполнение может занимать больше времени и обрабатывать больший объем данных. Это требует настройки данных, кода, вычислительных экземпляров и среды выполнения для обеспечения согласованных результатов, когда задача больше не выполняется на одной локальной машине. Представьте себе разницу между разработкой рецепта ужина (блокнот Jupyter) и наймом команды кейтеринга для приготовления блюд для 500 клиентов (задача машинного обучения). В первом случае все члены команды кейтеринга должны иметь доступ к одним и тем же ингредиентам, рецепту и инструментам, следуя одной и той же процедуре приготовления.

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

Определить задачу обучения Azure ML

from azure.ai.ml import command job = command( code=… command=… environment=… compute=… ) ml_client.jobs.create_or_update(job)

Создать обучающий инструмент оценки стоимости работ в SageMaker

from sagemaker.estimator import Estimator estimator = Estimator( image_uri=… role=… instance_type=… ) estimator.fit(training_data_s3_location)

Мы разделим сравнение на следующие параметры:

  • Управление проектами и получением разрешений
  • хранение данных
  • Вычислить
  • Среда

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

Управление проектами и получением разрешений

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

Azure ML

d614b978352a401475176599ed5825f4

Управление проектами в Azure ML ориентировано на рабочие пространства . Начинается всё с создания рабочего пространства (в рамках вашей подписки Azure и группы ресурсов) для хранения соответствующих ресурсов и активов, которое затем становится доступным для всей проектной команды для совместной работы.

Доступ к ресурсам и управление ими предоставляются на уровне пользователя в зависимости от его роли — то есть, используется управление доступом на основе ролей (RBAC). К общим ролям в Azure относятся владелец, участник и читатель. Специализированные роли для машинного обучения включают AzureML Data Scientist и AzureML Compute Operator, которые отвечают за создание и управление вычислительными экземплярами, поскольку они, как правило, являются самым затратным элементом в проекте машинного обучения. Цель создания рабочей области Azure ML — создать изолированную среду для хранения данных, вычислительных ресурсов, моделей и других ресурсов, чтобы только пользователи в рабочей области имели соответствующий доступ к чтению или редактированию данных, использованию существующих или созданию новых вычислительных экземпляров в соответствии со своими обязанностями.

В приведенном ниже фрагменте кода мы подключаемся к рабочей области Azure ML через MLClient, передавая идентификатор подписки рабочей области, группу ресурсов и учетные данные по умолчанию — Azure следует иерархической структуре: Подписка > Группа ресурсов > Рабочая область.

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

from azure.ai.ml import MLClient from azure.identity import DefaultAzureCredential subscription_id = '' resource_group = '' workspace = '' # Подключение к рабочей области credential = DefaultAzureCredential() ml_client = MLClient(credential, subscription, resource_group, workspace)

Когда разработчики запускают код во время интерактивной сессии разработки, подключение к рабочей области аутентифицируется с помощью личных учетных данных разработчика. Они смогут создать задание обучения, используя команду ml_client.jobs.create_or_update(job), как показано ниже. Для отсоединения личных учетных данных в производственной среде рекомендуется использовать учетную запись субъекта службы для аутентификации в автоматизированных конвейерах или запланированных заданиях. Дополнительную информацию можно найти в этой статье «Аутентификация в рабочей области с помощью субъекта службы».

# Определяем задачу обучения Azure ML из azure.ai.ml import command job = command( code=… command=… environment=… compute=… ) ml_client.jobs.create_or_update(job)

AWS SageMaker

e24a744b3d916a650625d195ce13b280

Роли и разрешения в SageMaker разработаны на основе совершенно иного принципа, в основном с использованием «ролей» в сервисе AWS Identity Access Management (IAM). Хотя IAM позволяет создавать доступ на уровне пользователя (или учетной записи), аналогично Azure, AWS рекомендует предоставлять разрешения на уровне задания на протяжении всего жизненного цикла машинного обучения. Таким образом, ваши личные разрешения AWS не имеют значения во время выполнения, и SageMaker принимает на себя роль (т.е. роль выполнения SageMaker) для доступа к соответствующим сервисам AWS, таким как корзина S3, конвейер обучения SageMaker, вычислительные экземпляры для выполнения задания.

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

import sagemaker from sagemaker.estimator import Estimator # Получаем роль выполнения SageMaker role = sagemaker.get_execution_role() # Определяем оценщик estimator = Estimator( image_uri=image_uri, role=role, # принимаем роль выполнения SageMaker во время выполнения instance_type=»ml.m5.xlarge», instance_count=1, ) # Начинаем обучение estimator.fit(«s3://my-training-bucket/train/»)

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

Управление разрешениями в AWS — это сложная область сама по себе, и я не буду делать вид, что могу полностью объяснить эту тему. Я рекомендую прочитать эту статью, чтобы узнать больше о лучших практиках из официальной документации AWS: « Управление разрешениями ».

Что это означает на практике?

  • Azure ML : Управление доступом на основе ролей (RBAC) в Azure подходит для компаний или команд, которые управляют тем, какому пользователю необходим доступ к каким ресурсам . Оно более интуитивно понятно и полезно для централизованного управления доступом пользователей.
  • AWS SageMaker AI : AWS подходит для систем, которым важно, какой задаче нужен доступ к каким сервисам . Разделение прав доступа отдельных пользователей и выполнения задач обеспечивает лучшую автоматизацию и внедрение методов MLOps. AWS подходит для больших команд специалистов по анализу данных с детальным определением задач и конвейеров, а также изолированными средами.

Ссылка

  • https://docs.aws.amazon.com/whitepapers/latest/sagemaker-studio-admin-best-practices/permissions-management.html
  • https://github.com/MicrosoftDocs/azure-ai-docs/blob/main/articles/machine-learning/how-to-assign-roles.md

Хранение данных

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

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

Хранилища данных содержат информацию о подключении, тогда как активы данных представляют собой версионированные снимки данных, используемые для обучения или вывода результатов. AWS, с другой стороны, в значительной степени полагается на корзины S3 в качестве централизованных мест хранения, которые обеспечивают безопасный, надежный доступ к данным в разных регионах, и пользователи могут получать доступ к данным через уникальный URI-путь.

Azure ML

Хранилище данных Azure ML

В рабочих областях Azure ML рассматривает данные как подключенные ресурсы и активы, при этом при создании каждой рабочей области автоматически создается одна учетная запись хранения и четыре встроенных хранилища данных для хранения файлов (в Azure File Share) и наборов данных (в Azure Blob Storage).

242b20f51e64a88a043bd5accd579d28

Поскольку хранилища данных надежно хранят информацию о подключении к данным и автоматически обрабатывают учетные данные/идентификацию, это отделяет местоположение данных и права доступа от кода, так что код остается неизменным, даже если базовое подключение к данным изменяется. Доступ к хранилищам данных осуществляется через их уникальный URI. Вот пример создания объекта Input типа uri_file с передачей пути к хранилищу данных.

# Создание обучающих данных с использованием Datastore training_data=Input( type=»uri_file», path=»«, )

Затем эти данные можно использовать в качестве обучающих данных для задачи классификации AutoML.

classification_job = automl.classification( compute='aml-cluster', training_data=training_data, target_column_name='Survived', primary_metric='accuracy', )

Доступ к данным в задании машинного обучения с помощью Data Asset — это еще один вариант, особенно когда важно отслеживать несколько версий данных, чтобы специалисты по анализу данных могли определить правильные снимки данных, используемые для построения модели или экспериментов. Вот пример кода для создания объекта Input с типом AssetTypes.URI_FILE, передав путь к данным в Data Asset «azureml:my_train_data:1» (который включает имя данных в Data Asset + номер версии) и используя режим InputOutputModes.RO_MOUNT для доступа только для чтения. Дополнительную информацию можно найти в документации «Доступ к данным в задании».

# Создание обучающих данных с использованием Data Asset training_data = Input( type=AssetTypes.URI_FILE, path=»azureml:my_train_data:1″, mode=InputOutputModes.RO_MOUNT )

AWS SageMaker

хранилище данных AWS SageMaker

AWS SageMaker тесно интегрирован с Amazon S3 (Simple Storage Service) для рабочих процессов машинного обучения, поэтому задания обучения SageMaker, конечные точки вывода и конвейеры могут обрабатывать входные данные из хранилищ S3 и записывать выходные данные обратно в них. Возможно, вы обнаружите, что для создания среды управляемого задания SageMaker (которая будет обсуждаться во второй части) в качестве ключевого параметра требуется указать местоположение хранилища S3; в противном случае будет создано хранилище по умолчанию, если оно не указано.

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

В этом фрагменте кода мы используем estimator.fit(train_data_uri) для обучения модели на обучающих данных, передавая непосредственно URI S3, затем генерируем выходную модель и сохраняем ее в указанном месте в S3-корзине. Больше примеров можно найти в их документации: «Примеры использования Amazon S3 с помощью SDK для Python (Boto3)».

import sagemaker # Определяем пути к S3 train_data_uri = «» output_folder_uri = «» # Используем в задании обучения estimator = Estimator( image_uri=image_uri, role=role, instance_type=»ml.m5.xlarge», output_path=output_folder_uri ) estimator.fit(train_data_uri)

Что это означает на практике?

  • Azure ML: использует Datastore для управления подключениями к данным, который обрабатывает информацию об учетных данных/идентификаторах в фоновом режиме. Таким образом, этот подход отделяет местоположение данных и разрешения доступа от кода, позволяя коду оставаться неизменным при изменении базового подключения.
  • AWS SageMaker: использование S3-хранилищ в качестве основного сервиса хранения данных для управления входными и выходными данными заданий SageMaker через их URI-пути. Такой подход требует явного управления разрешениями для предоставления роли выполнения SageMaker доступа к необходимому S3-хранилищу.

Ссылка

  • https://learn.microsoft.com/en-us/azure/machine-learning/tutorial-explore-data?view=azureml-api-2
  • https://learn.microsoft.com/en-us/azure/machine-learning/how-to-read-write-data-v2?view=azureml-api-2&tabs=python
  • https://docs.aws.amazon.com/code-library/latest/ug/python_3_s3_code_examples.html

Главный вывод

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

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

Дополнительные ресурсы

7 советов, как обеспечить перспективность проектов машинного обучения.

Источник: towardsdatascience.com

✅ Найденные теги: AWS SageMaker, Azure, Azure ML, Анализ, новости, Обучение Моделей, Часть 1

ОСТАВЬТЕ СВОЙ КОММЕНТАРИЙ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Каталог бесплатных опенсорс-решений, которые можно развернуть локально и забыть о подписках

галерея

Звёздное небо с галактиками и туманностями, космос, Вселенная, астрофотография.
Женщина с длинными тёмными волосами в синем свете, нейтральный фон.
Спутник исследует черную дыру в космосе, испускающий световой луч.
Пикачу использует электрический разряд на фоне неба.
Черный углеродное волокно с текстурой плетения, отражающий свет.
Круглый экран с изображением замка и горы, рядом электронная плата.
Код на экране компьютера, программирование, интерфейс разработчика.
Статистика использования видеокарт NVIDIA RTX, показывающая изменения за октябрь-февраль.
Макросъемка клетки под микроскопом, текстура и форма на голубом фоне.
Image Not Found
Звёздное небо с галактиками и туманностями, космос, Вселенная, астрофотография.

Система оповещения обсерватории Рубина отправила 800 000 сигналов в первую ночь наблюдений.

Астрономы будут получать оповещения о небесных явлениях в течение нескольких минут после их обнаружения. Теренс О'Брайен, редактор раздела «Выходные». Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в ленту новостей на главной…

Мар 2, 2026
Женщина с длинными тёмными волосами в синем свете, нейтральный фон.

Расследование в отношении 61-фунтовой машины, которая «пожирает» пластик и выплевывает кирпичи.

Обзор компактного пресса для мягкого пластика Clear Drop — и что будет дальше. Шон Холлистер, старший редактор Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в ленту новостей на главной странице вашего…

Мар 2, 2026
Черный углеродное волокно с текстурой плетения, отражающий свет.

Материал будущего: как работает «бессмертный» композит

Учёные из Университета штата Северная Каролина представили композит нового поколения, способный самостоятельно восстанавливаться после серьёзных повреждений.  Речь идёт о модифицированном армированном волокном полимере (FRP), который не просто сохраняет прочность при малом весе, но и способен «залечивать» внутренние…

Мар 2, 2026
Круглый экран с изображением замка и горы, рядом электронная плата.

Круглый дисплей Waveshare для креативных проектов

Круглый 7-дюймовый сенсорный дисплей от Waveshare создан для разработчиков и дизайнеров, которым нужен нестандартный экран.  Это IPS-панель с разрешением 1 080×1 080 пикселей, поддержкой 10-точечного ёмкостного сенсора, оптической склейкой и защитным закалённым стеклом, выполненная в круглом форм-факторе.…

Мар 2, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых