Развертывание в облаке: AWS SageMaker
SageMaker Model, EndpointConfig, Endpoint, вывод в реальном времени, пакетное преобразование
«Развертывание в облаке: AWS SageMaker» — бесплатный урок Learn AI with Python на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn AI with Python, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn AI with Python содержит 4 уроков всего.
Зачем нужен SageMaker
Amazon SageMaker — управляемый сервис для обучения и развёртывания ML-моделей. Вместо самостоятельной подготовки серверов и балансировщиков нагрузки Вы описываете модель, а SageMaker автоматически создаёт масштабируемую конечную точку HTTPS.
Три компонента
Для развёртывания в SageMaker нужны три компонента:
- Образ контейнера идентификатор образа (ваш образ сервера в ECR или встроенный образ фреймворка)
- Обученные веса в виде данные модели — архива tar.gz в S3
- роль IAM, предоставляющая SageMaker доступ к этим ресурсам
Определение модели
Объект sagemaker.Model связывает образ контейнера с артефактом модели в S3.
import sagemaker
from sagemaker.model import Model
model = Model(
image_uri="123456789012.dkr.ecr.us-east-1.amazonaws.com/my-model:latest",
model_data="s3://my-bucket/models/model.tar.gz",
role="arn:aws:iam::123456789012:role/SageMakerRole",
)Что находится в model.tar.gz
При запуске SageMaker скачивает model_data и распаковывает его в /opt/ml/model внутри контейнера. Ваш код обслуживания считывает оттуда веса. Обычно архив содержит сохранённый файл модели и все необходимые ресурсы предварительной обработки.
# model.tar.gz contents
# model.pt
# tokenizer.json
# config.jsonРазвёртывание конечной точки реального времени
model.deploy запускает один или несколько экземпляров за постоянной конечной точкой HTTPS. Вы выбираете тип экземпляра и начальное количество экземпляров.
predictor = model.deploy(
initial_instance_count=1,
instance_type="ml.m5.xlarge",
endpoint_name="my-model-endpoint",
)Выбор типа экземпляра
Тип экземпляра определяет стоимость и задержку:
ml.m5.*— универсальный CPU, недорогой вариант для небольших моделейml.c5.*— оптимизирован для вычисленийml.g4dn.*/ml.g5.*— GPU для инференса глубоких моделей
Подбирайте экземпляр под модель: GPU нерационально использовать для небольшой модели scikit-learn.
Вызов predict()
После развёртывания predictor.predict() отправляет данные на конечную точку и возвращает результат инференса. SageMaker сериализует запрос и направляет его на работающий экземпляр.
result = predictor.predict({
"instances": [[5.1, 3.5, 1.4, 0.2]]
})
print(result)Удаление конечных точек
Плата за конечные точки реального времени начисляется посекундно, пока они работают. Всегда удаляйте конечные точки, которые Вам больше не нужны, иначе расходы будут начисляться даже при отсутствии трафика.
predictor.delete_endpoint()Пакетное преобразование для автономных заданий
Для однократного получения результатов для большого набора данных (а не для обслуживания запросов с малой задержкой) используйте пакетное преобразование. SageMaker запускает экземпляры, обрабатывает весь набор данных в S3, записывает результаты обратно в S3, а затем останавливает экземпляры. Постоянной конечной точки нет, поэтому нет и расходов на простой.
Запуск пакетного преобразования
Вы создаёте преобразователь на основе модели и указываете входные данные в S3.
transformer = model.transformer(
instance_count=1,
instance_type="ml.m5.xlarge",
output_path="s3://my-bucket/predictions/",
)
transformer.transform(
data="s3://my-bucket/input/batch.csv",
content_type="text/csv",
)
transformer.wait()Реальное время и пакетная обработка
Выбирайте подход в зависимости от рабочей нагрузки:
- Конечная точка реального времени: непрерывные запросы с малой задержкой (например, API рекомендаций)
- Пакетное преобразование: периодическое получение результатов для больших наборов данных (например, ночное прогнозирование оттока клиентов)
Пакетная обработка значительно дешевле, если мгновенные ответы не нужны.
Быстрая проверка
Когда следует использовать пакетное преобразование SageMaker вместо конечной точки реального времени?
Итоги
Вы развернули модель в AWS SageMaker:
sagemaker.Modelсвязывает идентификатор образа с данными модели в S3model.deployсоздаёт конечную точку реального времени с выбранным типом экземпляраpredictor.predict()отправляет запросы на инференс- Пакетное преобразование позволяет недорого обрабатывать большие автономные рабочие нагрузки
- Всегда удаляйте простаивающие конечные точки, чтобы избежать расходов
Часто задаваемые вопросы
Урок «Развертывание в облаке: AWS SageMaker» бесплатный?
Да — полный текст урока «Развертывание в облаке: AWS SageMaker» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn AI with Python, подпишись на CoddyKit PRO. Курс Learn AI with Python содержит 4 уроков всего.
Чему я научусь в уроке «Развертывание в облаке: AWS SageMaker»?
SageMaker Model, EndpointConfig, Endpoint, вывод в реальном времени, пакетное преобразование Ты практикуешь Learn AI with Python с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Learn AI with Python?
Предыдущий опыт не требуется. Learn AI with Python на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Развертывание в облаке: AWS SageMaker»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Learn AI with Python?
Да. Каждый урок Learn AI with Python включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Контейнеризация моделей машинного обучения с помощью Docker
- Развертывание в облаке: AWS SageMaker
- Высокопроизводительное предоставление моделей с Triton Inference Server
- Масштабирование и автоматическое масштабирование конечных точек моделей