Модели машинного обучения настолько эффективны, насколько эффективны их возможности развертывания и использования в реальных приложениях. Amazon SageMaker, мощный облачный сервис, предлагаемый Amazon Web Services (AWS), упрощает процесс развертывания моделей машинного обучения, делая его доступным как для новичков, так и для экспертов в этой области. В этой статье мы рассмотрим различные методы развертывания моделей в SageMaker, используя разговорный язык и практические примеры кода.
- Использование экземпляров SageMaker Notebook:
SageMaker предоставляет полностью управляемые экземпляры Jupyter Notebook, которые можно использовать для обучения, развертывания и размещения моделей машинного обучения. Вы можете написать код развертывания модели в блокноте Jupyter и выполнить его непосредственно в экземпляре блокнота SageMaker. Этот метод идеально подходит для быстрого прототипирования и экспериментов.
Пример кода:
from sagemaker import get_execution_role
from sagemaker.predictor import RealTimePredictor
from sagemaker.amazon.amazon_estimator import get_image_uri
role = get_execution_role()
container = get_image_uri(region_name='us-west-2', repo_name='xgboost')
predictor = RealTimePredictor(endpoint_name='my-endpoint', sagemaker_session=sagemaker.Session())
# Deploy the model
predictor.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge')
- Создание конечной точки SageMaker:
SageMaker позволяет создать конечную точку — размещенную службу прогнозирования, доступ к которой можно получить через API. Этот метод подходит для готовых к использованию моделей, которым необходимо обрабатывать прогнозы в реальном времени от нескольких пользователей или приложений.
Пример кода:
from sagemaker import Model
from sagemaker import get_execution_role
from sagemaker.amazon.amazon_estimator import get_image_uri
role = get_execution_role()
container = get_image_uri(region_name='us-west-2', repo_name='xgboost')
# Create a SageMaker model
model = Model(model_data='s3://my-bucket/model.tar.gz', image=container, role=role)
# Deploy the model as an endpoint
predictor = model.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge')
- Развертывание модели с помощью AWS Lambda:
AWS Lambda — это сервис бессерверных вычислений, который позволяет запускать код без выделения серверов и управления ими. Вы можете интегрировать SageMaker с Lambda, чтобы создать масштабируемую службу прогнозирования, управляемую событиями.
Пример кода:
import boto3
# Create a SageMaker client
sagemaker = boto3.client('sagemaker')
# Create an AWS Lambda function
lambda_client = boto3.client('lambda')
# Deploy the model with SageMaker and Lambda
response = sagemaker.create_endpoint(
EndpointName='my-endpoint',
EndpointConfigName='my-endpoint-config'
)
# Invoke the Lambda function to make predictions
lambda_client.invoke(FunctionName='my-lambda-function', InvocationType='Event')
- Развертывание модели с использованием AWS Elastic Beanstalk:
AWS Elastic Beanstalk — это полностью управляемый сервис, который упрощает развертывание и запуск приложений на нескольких языках. Вы можете использовать Elastic Beanstalk для развертывания моделей машинного обучения и создания масштабируемого веб-приложения с SageMaker в качестве серверной части.
Пример кода:
# Create an Elastic Beanstalk application
eb = boto3.client('elasticbeanstalk')
response = eb.create_application(ApplicationName='my-application')
# Create an environment in Elastic Beanstalk
response = eb.create_environment(
ApplicationName='my-application',
EnvironmentName='my-environment',
SolutionStackName='64bit Amazon Linux 2018.03 v2.11.5 running Python 3.7'
)
# Deploy the model to Elastic Beanstalk
response = eb.create_application_version(
ApplicationName='my-application',
VersionLabel='v1',
SourceBundle={'S3Bucket': 'my-bucket', 'S3Key': 'model.tar.gz'}
)
В этой статье мы рассмотрели несколько методов развертывания моделей машинного обучения в Amazon SageMaker. Мы рассмотрели развертывание моделей с помощью экземпляров SageMaker Notebook, создание конечных точек SageMaker, интеграцию SageMaker с AWS Lambda и развертывание моделей с помощью AWS Elastic Beanstalk. Каждый метод имеет свои преимущества и варианты использования, что позволяет вам выбрать тот, который лучше всего соответствует вашим требованиям к развертыванию. Благодаря универсальности и масштабируемости SageMaker вы можете легко воплотить свои модели машинного обучения в жизнь в реальных приложениях.