SageMaker - 構建機器學習模型



閱讀本章,瞭解如何使用 SageMaker 中的內建演算法構建機器學習 (ML) 模型。

在 Amazon SageMaker 中使用內建演算法

請按照以下步驟操作 -

步驟 1:選擇內建演算法

首先,您需要選擇一個內建演算法。Amazon SageMaker 提供了各種內建演算法,例如線性學習器(用於分類和迴歸)、XGBoost(用於分類的增強樹)和K-means(用於聚類)。

步驟 2:準備資料

接下來,您需要將資料上傳到 Amazon S3 儲存桶。SageMaker 從 S3 讀取資料並將其用於訓練模型。資料應為 CSV 或 SageMaker 支援的其他格式。

步驟 3:建立 SageMaker 會話

開啟您的 Jupyter Notebook。匯入必要的庫並建立一個 SageMaker 會話 -

import sagemaker
from sagemaker import get_execution_role

# Create a SageMaker session
session = sagemaker.Session()

# Define the S3 bucket and data path
bucket = 'your-s3-bucket-name'
prefix = 'your-data-prefix'
role = get_execution_role()

步驟 4:配置演算法和訓練作業

建立 SageMaker 會話後,我們需要配置內建的線性學習器演算法。

您可以使用SageMaker 的 LinearLearner 估算器。然後,設定超引數並按如下方式啟動訓練作業 -

from sagemaker.amazon.linear_learner import LinearLearner

# Configure the LinearLearner estimator
linear = LinearLearner(role=role, instance_count=1,
                       instance_type='ml.m4.xlarge',
                       predictor_type='binary_classifier',
                       output_path=f's3://{bucket}/{prefix}/output')

# Define the data channels (train and validation)
train_data = f's3://{bucket}/{prefix}/train/train.csv'
validation_data = f's3://{bucket}/{prefix}/validation/validation.csv'
data_channels = {'train': train_data, 'validation': validation_data}

# Train the model
linear.fit(inputs=data_channels)

步驟 5:部署模型以進行推理

訓練完成後,將模型部署到 SageMaker 端點以進行即時預測,如下所示 -

# Deploy the trained model
predictor = linear.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge')

# Make predictions
result = predictor.predict([[1.5, 2.5, 3.0]])
print(result)

將您自己的模型引入 Amazon SageMaker

Amazon SageMaker 還允許您引入您自己的預訓練模型並進行部署。請按照以下步驟將您自己的模型引入 Amazon SageMaker -

步驟 1:儲存您的模型

如果您使用 TensorFlowPyTorch 等框架訓練了模型,則可以將模型的權重和架構儲存到 S3 儲存桶。

請檢視以下示例 -

import torch
import boto3

# Save a PyTorch model locally
torch.save(model.state_dict(), 'model.pth')

# Upload the model to S3
s3 = boto3.client('s3')
s3.upload_file('model.pth', 'your-s3-bucket-name', 'model/model.pth')

步驟 2:建立 SageMaker 模型

接下來,我們需要建立一個模型物件並指定託管模型的容器。您可以使用 SageMaker 的 Model 類來實現此目的。您還可以使用自定義 Docker 映象來服務您的模型,如下所示 -

from sagemaker.model import Model

# Define the model
model = Model(model_data='s3://your-s3-bucket-name/model/model.pth',
              role=role,
              image_uri='your-custom-docker-image')

# Deploy the model
predictor = model.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge')

步驟 3:部署模型

建立模型後,將其部署到 SageMaker 端點以使其可用於推理,如下所示 -

# Perform inference using the deployed model
result = predictor.predict([[1.5, 2.5, 3.0]])
print(result)
廣告