AWS 上的生成式 AI - SageMaker



SageMaker 是一款完全託管的 機器學習 (ML) 服務,專門設計用於簡化構建、訓練和部署機器學習模型的過程。它還包括 生成式 AI (Gen AI) 模型。

像 GPT(生成式預訓練轉換器)和 GAN(生成式對抗網路)這樣的生成式 AI 模型,需要大量的計算資源才能有效地進行訓練。AWS SageMaker 提供了一個整合的環境,簡化了從資料預處理到模型部署的過程。

SageMaker 如何支援生成式 AI?

SageMaker 提供了一系列在生成式 AI 中非常有用的功能 -

預構建演算法

SageMaker 提供了用於自然語言處理、影像分類等任務的預構建演算法。它節省了使用者為 Gen AI 模型開發自定義程式碼的時間。

分散式訓練

SageMaker 支援分散式訓練,允許您在多個 GPU 或例項上訓練大型 Gen AI 模型。

SageMaker Studio

SageMaker Studio 是一個開發環境,您可以在其中準備資料、構建模型並嘗試不同的超引數。

內建 AutoML

SageMaker 包含 AutoML 功能,藉助這些功能,您可以自動調整超引數並最佳化 Gen AI 模型的效能。

託管 Spot 訓練

AWS SageMaker 允許您使用EC2 Spot 例項進行訓練。它可以降低執行資源密集型 Gen AI 模型的成本。

使用 SageMaker 訓練 Gen-AI 模型

訓練生成式 AI 模型需要強大的計算能力,尤其是在處理 GPT 或 GAN 等大型模型時。AWS SageMaker 透過提供GPU 加速例項分散式訓練功能簡化了這一過程。

使用 SageMaker 部署 Gen-AI 模型

模型訓練完成後,您可以使用 AWS SageMaker 以可擴充套件且經濟高效的方式進行部署。

您可以使用SageMaker 端點部署您的模型,該端點根據流量提供自動擴充套件。此功能確保您的 Gen AI 模型能夠處理不斷增長的需求。

使用 SageMaker 訓練和部署 Gen AI 模型的 Python 程式

這裡我們重點介紹了一個 Python 示例,該示例展示瞭如何使用 AWS SageMaker 使用預構建演算法來訓練和部署生成式 AI 模型。

在本示例中,我們將使用一個基本的Hugging Face預訓練轉換器模型,例如GPT 2,用於文字生成。

在執行此示例之前,您必須擁有一個 AWS 賬戶、必要的 AWS 憑證以及已安裝的sagemaker庫。

步驟 1:安裝必要的庫

使用以下命令安裝必要的 Python 包 -

pip install sagemaker transformers

步驟 2:設定 SageMaker 和 AWS 配置

匯入必要的庫並設定 AWS SageMaker 環境。

import sagemaker
from sagemaker.huggingface import HuggingFace
import boto3

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

# Set your AWS region
region = boto3.Session().region_name

# Define the execution role (replace with your own role ARN)
role = 'arn:aws:iam::YOUR_AWS_ACCOUNT_ID:role/service-role/AmazonSageMaker-ExecutionRole'

# Define the S3 bucket for storing model artifacts and data 
bucket = 'your-s3-bucket-name'

步驟 3:定義 Hugging Face 模型引數

在這裡,我們需要定義使用 SageMaker 訓練GPT-2 模型的模型引數。

# Specify the Hugging Face model and its version
huggingface_model = HuggingFace(
    entry_point = 'train.py',  		# Your training script
    source_dir = './scripts',  		# Directory containing your script
    instance_type = 'ml.p3.2xlarge',# GPU instance
    instance_count=1,
    role = role,
    transformers_version = '4.6.1', # Hugging Face Transformers version
    pytorch_version = '1.7.1',
    py_version = 'py36',
    hyperparameters = {
        'model_name': 'gpt2',  		# Pre-trained GPT-2 model
        'epochs': 3,
        'train_batch_size': 16
    }
)

步驟 4:準備訓練資料

在本示例中,我們需要將預處理後的資料儲存在 Amazon S3 儲存桶中。資料可以是 CSV、JSON 或純文字格式。

# Define the S3 path to your training data
training_data_s3_path = f's3://{bucket}/train-data/'

# Launch the training job
huggingface_model.fit(training_data_s3_path)

步驟 5:部署已訓練的模型以進行推理

模型訓練完成後,將其部署到 SageMaker 端點以進行即時推理。

# Deploy the model to a SageMaker endpoint
predictor = huggingface_model.deploy(
   initial_instance_count=1,
   instance_type='ml.m5.large'
)

步驟 6:使用已部署的模型生成文字

模型部署後,您可以透過向端點發送提示以進行文字生成來進行預測。

# Define a prompt for text generation
prompt = "Once upon a time"

# Use the predictor to generate text
response = predictor.predict({
    'inputs': prompt
})

# Print the generated text
print(response)

步驟 7:清理資源

完成任務後,建議刪除已部署的端點,以避免產生不必要的費用。

predictor.delete_endpoint()
廣告