- AWS 上的生成式 AI 教程
- AWS 上的生成式 AI - 首页
- AWS 上的生成式 AI - 简介
- AWS 上的生成式 AI - 环境设置
- AWS 上的生成式 AI - SageMaker
- AWS 上的生成式 AI - Lambda
- AWS 上的生成式 AI - EC2
- AWS 上的生成式 AI - 监控和优化
- AWS 上的生成式 AI 资源
- AWS 上的生成式 AI - 快速指南
- AWS 上的生成式 AI - 资源
- AWS 上的生成式 AI - 讨论
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()