aws训练快速入门教程

AWS 相关核心概念

简洁地介绍一下AWS训练云服务的核心关联概念:

  1. AWS核心服务层:
  • 基础设施层: EC2(计算), S3(存储), RDS(数据库)等
  • 人工智能层: SageMaker(训练平台), AI服务等
  1. 机器学习服务分级:
  • 高层: 预构建AI服务(开箱即用)
  • 中层: SageMaker(主要训练平台)
  • 底层: 框架和基础设施(最大自由度)
  1. SageMaker平台核心功能:
  • 开发: JupyterNotebook环境
  • 训练: 内置算法+自定义训练
  • 部署: 模型托管服务
  1. 基本工作流:

    数据准备(S3) → 开发(Notebook) → 训练(SageMaker) → 部署(Endpoints)

  2. 入口文档

    文档:https://docs.aws.amazon.com/zh_cn/

什么是EC2?(弹性云服务器)

Amazon Elastic Compute Cloud (Amazon EC2) 是一种提供可调节计算容量的 Web 服务 -- 简单来说,就是 Amazon's 数据中心内的服务器 -- 您可以使用它来构建和托管您的软件系统。

Amazon Elastic Compute Cloud(Amazon EC2)在 Amazon Web Services(AWS)云中按需提供可扩展的计算容量。使用 Amazon EC2 可以降低硬件成本,因此您可以更快地开发和部署应用程序。您可以使用 Amazon EC2 启动所需数量的虚拟服务器,配置安全性和联网以及管理存储。您可以添加容量(纵向扩展)来处理计算密集型任务,例如月度或年度进程或网站流量峰值。如果使用量减少,您可以再次减少容量(缩减)。

EC2 实例是 AWS 云中的虚拟服务器。启动 EC2 实例时,您指定的实例类型决定了用于您的实例的主机硬件。每种实例类型以不同方式兼顾计算、内存、存储和网络资源。有关更多信息,请参阅 Amazon EC2 实例类型指南。

(下图右边是实例命名规则)

当前EC2支持的一些实例类型:

更多可参考:https://aws.amazon.com/cn/ec2/instance-types/

什么是S3?(对象存储服务)

Amazon Simple Storage Service(Amazon S3)是一种对象存储服务,提供行业领先的可扩展性、数据可用性、安全性和性能。各种规模和行业的客户都可以使用 Amazon S3 存储和保护任意数量的数据,用于数据湖、网站、移动应用程序、备份和恢复、归档、企业应用程序、IoT 设备和大数据分析。Amazon S3 提供了管理功能,使您可以优化、组织和配置对数据的访问,以满足您的特定业务、组织和合规性要求。

详见:https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/Welcome.html

什么是 Amazon SageMaker AI?(机器学习平台)

Amazon SageMaker AI 是一项完全托管的机器学习 (ML) 服务。借助 SageMaker AI,数据科学家和开发人员可以快速、自信地构建、训练 ML 模型并将其部署到可用于生产的托管环境中。它提供了运行 ML 工作流的 UI 体验,使 SageMaker AI ML 工具可在多个集成开发环境 (IDE) 中使用。

借助 SageMaker AI,您可以存储和共享数据,而无需构建和管理自己的服务器。这样,您或您的组织就有更多时间协作构建和开发 ML 工作流程,并更快地完成。SageMaker AI 提供托管 ML 算法,可在分布式环境中高效处理大量数据。SageMaker AI 内置对自带算法和框架的支持,可提供灵活的分布式训练选项,以适应您的特定工作流程。只需几个步骤,您就可以从 SageMaker AI 控制台将模型部署到安全且可扩展的环境中。

SageMaker平台核心功能:

  • 开发: JupyterNotebook环境
  • 训练: 内置算法+自定义训练
  • 部署: 模型托管服务

通俗来讲: 数据存在S3(硬盘)里,用SageMaker(实验室)处理数据训练模型,需要更多算力时,自动调用EC2(计算机)

pytorch 训练入门

写在前面,建议速读:
pytorch sagemaker入门训练文档
PyTorch 与 Amazon A SageMaker I 配合使用的资源

脚本训练:
使用sagemaker脚本模式创建你的训练
将 PyTorch 与 SageMaker Python SDK 结合使用

自定义镜像:
Building your own algorithm container
使用 SageMaker AI 自定义 Docker 容器
https://github.com/aws/deep-learning-containers/blob/master/available_images.md
dockerfile 编写入门

整体的逻辑图:

大白话总结:

Studio可以作为提交训练任务的入口,通过xx.ipynb作为提交任务的引子,比如以下PyTorch任务代码提交任务的流程是:

打包source_dir -> 在指定机器解压source -> 指定机器使用image_uri的运行环境 -> 执行 entry_point

python 复制代码
from sagemaker.pytorch import PyTorch
from sagemaker import get_execution_role
role = get_execution_role()

image_uri = 'xxxx.dkr.ecr.us-east-1.xxxx
job_name='deepll-train'#勿使用"",可使用"-"

train_s3 = {
'model': sagemaker.inputs.TrainingInput(s3_data='s3://xxx-sagemakers/xx'),
'data': sagemaker.inputs.TrainingInput(s3_data='s3://xxxx-sagemaker/data/xxx')
}

#任务声明
pytorch_estimator = PyTorch(base_job_name=job_name,
	source_dir="./train_dir", # 训练代码目录
	entry_point="train.py", # the entry point that launch,入口脚本
	role=role,
	image_uri=image_uri, #训练使用的python镜像
	instance_type="ml.p4d.24xlarge", #训练机器类型
	instance_count=1,
	# hyperparameters=hyperparameters, # 超参
	# distribution=distribution,
	# checkpoint_s3_uri = checkpoint_s3_uri,	# s3 checkpoint 位置,默认对应存储到训练image的 /opt/ml/checkpoints
    # checkpoint_local_path=checkpoint_local_path, # 临时存储目录
	)
	
pytorch_estimator.fit(train_s3)

总的来说,在开发自己的训练任务之前,需要准备好3个模块:训练镜像、训练数据、调整训练代码

demo

创建 notebook 过程参考这里:创建 Amazon SageMaker 笔记本实例,这个我就不细讲了。

再重复一下一些重点概念:

  1. 核心组件
    SageMaker Studio/Notebook: 开发环境,类似 Jupyter Notebook
    Training Job: 训练任务
    S3: 数据存储服务,存放训练数据和模型
    IAM Role: 权限管理,控制访问权限
    ECR: 容器镜像仓库,存放训练环境镜像
  2. 关键参数解释
    entry_point: 训练脚本入口(比如 train.py
    source_dir: 代码目录,会自动上传
    role: IAM角色,用于权限控制
    instance_type: 训练使用的机器类型(如 ml.p3.8xlarge)

接下来,我们从官方的一个pytorch简单用例(https://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-python-sdk/pytorch_mnist/pytorch_mnist.ipynb)入手,快速熟悉使用流程:

bash 复制代码
# !yes | pip uninstall torchvison
# !pip install -qU torchvision
# !pip3 install -U sagemaker
# !pip3 install -U boto3
# !pip install sagemaker-studio-image-build

step1: 安装环境

step2: 初始化参数

step3: 获取数据

step4: 将数据传到 s3 上

通过 sagemaker_session.upload_data 接口,进行上传,也可以通过 aws 命令行指令。

step5: 准备训练脚本

python 复制代码
from sagemaker.pytorch import PyTorch

estimator = PyTorch(
    entry_point="mnist.py",
    role=role,
    py_version="py38",
    framework_version="1.11.0",
    instance_count=2,
    instance_type="ml.c5.2xlarge",
    hyperparameters={"epochs": 1, "backend": "gloo"},
)

step6: 开启训练

结束标志:

补充

训练数据输入方式

选择策略

Amazon A SageMaker I 管理的训练存储路径

下图显示了当您使用 SageMaker Python SDK 估算器类运行训练作业时 SageMaker AI 如何映射输入和输出路径的示例。

SageMaker AI 环境变量和训练存储位置的默认路径参考:https://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/model-train-storage-env-var-summary.html

更多相关:

dockerfile 编写入门
conda创建、查看、删除、重命名、迁移虚拟环境

相关推荐
₯㎕星空&繁华3 小时前
阿里云服务器安装MySQL服务器
服务器·ubuntu·阿里云·云计算
你的大佬99916 小时前
阿里云百炼ai模型
人工智能·阿里云·云计算
一只栖枝17 小时前
备考华为HCIA - 云计算,培训与自学到底该怎么选?
云计算·华为认证·hcia·考证·职业规划
数据与人工智能律师1 天前
AI的法治迷宫:技术层、模型层、应用层的法律痛点
大数据·网络·人工智能·云计算·区块链
荣光波比1 天前
Docker(三)—— Docker Compose 编排与 Harbor 私有仓库实战指南
运维·docker·容器·云计算
企鹅侠客2 天前
mysqldump导入备份数据到阿里云RDS会报错吗
阿里云·adb·云计算
iHero2 天前
【Jitsi Meet】阿里云Docker安装Jitsi Meet后的调整
阿里云·docker·云计算
荣光波比2 天前
Ansible(三)—— 使用Ansible自动化部署LNMP环境实战指南
运维·自动化·云计算·ansible
荣光波比2 天前
Docker(五)—— Docker Compose 一键搭建 LNMP 架构并部署 WordPress
运维·docker·容器·云计算
mjhcsp2 天前
深入解析 IDM 插件开发挑战赛:技术要点与实践指南
服务器·阿里云·云计算