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

Шаги для обслуживания модели

  1. Режим обучения и сохраните его в среде AWS sagemaker.
  2. Модель может содержать различные файлы артефактов и файл модели. Его можно сохранить в ведре s3
  3. Напишите скрипт Python, чтобы предложить вывод модели.
  4. Создайте конфигурацию конечной точки Amazon SageMaker, которая определяет тип экземпляра, режим масштабирования и другие параметры для размещения модели.
  5. Создайте конечную точку Amazon SageMaker с помощью конфигурации конечной точки, которая запускает экземпляры и развертывает вашу модель в качестве конечной точки API.
  6. Пользователь может использовать модель с помощью этой конечной точки с помощью браузера или API.

Образец кода:

import boto3

# Create a SageMaker client
sagemaker_client = boto3.client('sagemaker')

# Specify the model artifact S3 location
model_artifact = 's3://your-bucket/your-model/model.tar.gz'

# Specify the inference code file
inference_code = 's3://your-bucket/your-code/inference.py'

# Create a SageMaker model
model_name = 'your-model-name'
sagemaker_client.create_model(
    ModelName=model_name,
    PrimaryContainer={
        'Image': 'your-container-image',
        'ModelDataUrl': model_artifact,
        'Environment': {
            'SAGEMAKER_PROGRAM': inference_code
        }
    }
)

# Create an Endpoint Configuration
endpoint_config_name = 'your-endpoint-config-name'
sagemaker_client.create_endpoint_config(
    EndpointConfigName=endpoint_config_name,
    ProductionVariants=[
        {
            'VariantName': 'your-variant-name',
            'ModelName': model_name,
            'InstanceType': 'ml.m4.xlarge',
            'InitialInstanceCount': 1,
            'InitialVariantWeight': 1
        }
    ]
)

# Create an Endpoint
endpoint_name = 'your-endpoint-name'
sagemaker_client.create_endpoint(
    EndpointName=endpoint_name,
    EndpointConfigName=endpoint_config_name
)

# Wait until the endpoint is created and in service
sagemaker_client.get_waiter('endpoint_in_service').wait(EndpointName=endpoint_name)

# Make an inference request to the endpoint
runtime_client = boto3.client('sagemaker-runtime')
endpoint_response = runtime_client.invoke_endpoint(
    EndpointName=endpoint_name,
    ContentType='application/json',
    Body='{"data": "your-data"}'
)

# Process the inference response
inference_result = endpoint_response['Body'].read()
print(inference_result)