Как только модель машинного обучения создана, в реальном мире мы хотим, чтобы пользователи так или иначе использовали ее. Ниже приведены шаги, как это сделать в AWS Sagemaker, одной из популярных платформ для развертывания моделей. На техническом языке это известно как серверная модель.
Шаги для обслуживания модели
- Режим обучения и сохраните его в среде AWS sagemaker.
- Модель может содержать различные файлы артефактов и файл модели. Его можно сохранить в ведре s3
- Напишите скрипт Python, чтобы предложить вывод модели.
- Создайте конфигурацию конечной точки Amazon SageMaker, которая определяет тип экземпляра, режим масштабирования и другие параметры для размещения модели.
- Создайте конечную точку Amazon SageMaker с помощью конфигурации конечной точки, которая запускает экземпляры и развертывает вашу модель в качестве конечной точки API.
- Пользователь может использовать модель с помощью этой конечной точки с помощью браузера или 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)