Amazon SageMaker

最近人工智能爆火啊,前有AIGC后有ChatGPT,ChatGPT倒是可以很简单的体验到,但是AIGC这个似乎需要一点动手能力,而且还要考虑下我们本地的环境了。恰好我最近受邀参加了亚马逊云科技【云上探索实验室】的活动,基于他们的Amazon SageMaker服务来做了以下三个小实验,有包括AIGC,Deepracer还有图像分类,整体流程体验下来比想象中好太多了,即便是一个新手也可以通过Amazon SageMaker来掌握下面三个实验,而且不需要您再考虑基础环境配置了,可以更加专注于业务。那么就让我们来跟着下面的实验手册和演示视频一起来操作吧!

最近我恰好受邀参与了亚马逊云科技[云上探索实验室]活动,利用Amazon SageMaker平台搭建了自己的 AIGC 应用,整个过程只用了不到20分钟。同时还为您准备好了活动链接,您可以通过由AWS和CSDN共同举办的活动领取精美礼品:https://dev.amazoncloud.cn/experience?trk=cndc-detail&sc_medium=corecontent&sc_campaign=product&sc_channel=csdn

这个动手实验室会通过三个不同类型的实验引导您如何使用Amazon SageMaker,让您感受SageMaker的非凡之处。

  • 使用Amazon SageMaker构建Stable-Diffusion 这个实验会引导您通过Amazon SageMaker NoteBook实例来构建AIGC环境,同时您可以体验到使用提示词来使AI生成图片,在后续环节中还会引导您构建前后端Web应用,让您直接在Web端也可以体验到自己的AIGC
  • 使用Amazon SageMaker加速你的Deepracer小车 这个实验会引导您通过Amazon SageMaker使用开源库来加速您的DeepRacer小车,更加简化您的智能驾驶流程.
  • Amazon SageMaker JumpStart构建图像分类 通过这个实验,会引导您使用Amazon SageMaker JumpStart构建图像分类,JumpStart 支持一键式部署以及对这些模型进行微调,因此您可以在部署前逐步训练和调整模型,在本实验中,您将使用Amazon SageMaker JumpStart 构建图像分类模型,并使用该模型对花卉的图像进行分类.

如果您想获取更多有关Amazon SageMaker的知识,请阅读亚马逊 SageMaker.

一、使用Amazon SageMaker构建Stable-Diffusion

使用Amazon SageMaker构建Stable-Diffusion:https://www.bilibili.com/video/BV1c24y1E7a5?p=1

区域: ap-northeast-1(东京)

服务配额

Service-Quota配额控制台:https://ap-northeast-1.console.aws.amazon.com/servicequotas/home/services/sagemaker/quotas
本次实验需要用到GPU实例,如果您使用的是个人账号,请先确认您有ml.g4dn.xlarge的服务配额

申请提高配额

选中需要提高的服务配额,单击右上角 请求增加配额
在这里插入图片描述

更改配额值为 1
在这里插入图片描述

创建Amazon SageMaker Notebook实例

打开Amazon SageMaker控制台

直达链接:https://ap-northeast-1.console.aws.amazon.com/sagemaker/home?region=ap-northeast-1
在这里插入图片描述

创建Notebook实例

需要滑动左侧的服务框,找到笔记本–>笔记本实例—右上角创建笔记本实例
在这里插入图片描述

设置笔记本实例的名称、选择笔记本实例、以及存储的大小
在这里插入图片描述

对于权限和加密,点击角色下拉框,然后点击 创建新角色

在本次实验中需要用到S3存储桶来存放模型文件,在此处可以选择任意存储桶或者特定的存储桶
在这里插入图片描述

点击创建笔记本实例
在这里插入图片描述

等待大约4分钟左右,笔记本实例的状态为InService,我们就可以点击JupyterLab进行实验了
在这里插入图片描述

构建Stable-Diffusion环境

**查看Jupyter Lab控制台,选择最下面的 Terminal **
在这里插入图片描述

在此处我们需要下载本次实验的Notebook代码文件

cd SageMaker
wget https://static.us-east-1.prod.workshops.aws/public/648e1f0c-f5e0-40eb-87b1-7f3638dba539/static/code/notebook-stable-diffusion.ipynb

双击打开刚刚下载的Notebook文件,需要注意我们要选择内核,请选择conda_pytorch_p39
在这里插入图片描述

修改提示词,生成新图片
在这里插入图片描述

利用Amazon Cloud 9 构建前后端Web应用

创建Cloud 9 环境

在这里插入图片描述

根据自己的需求设置名称,选择实例的大小以及实例的系统
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

构建Web应用

这里步骤就是 下包解压装依赖,服务一跑出图片

wget https://static.us-east-1.prod.workshops.aws/public/73ea3a9f-37c8-4d01-ae4e-07cf6313adac/static/code/SampleWebApp.zip
unzip SampleWebApp.zip
pip install Flask boto3

等待Web应用运行起来后,开始使用描述词来生成我们的图片
在这里插入图片描述

在这里插入图片描述

清理

请删除对应的Notebook实例,以及推理里面的终端节点

结论

在本次实验中,您可以轻松的通过Amazon SageMaker来完成本次实验,并且您无需动手添加额外代码,为考虑到用户的体验,亚马逊云科技工程师还提供了Web端应用,确实更加方便。

二、使用Amazon SageMaker加速你的Deepracer小车

使用Amazon SageMaker加速你的Deepracer小车:https://www.bilibili.com/video/BV1c24y1E7a5?p=2

创建Amazon SageMaker NoteBook实例

需要滑动左侧的服务框,找到笔记本–>笔记本实例—右上角创建笔记本实例
在这里插入图片描述

设置笔记本实例的名称、选择笔记本实例、以及存储的大小
在这里插入图片描述
对于权限和加密,点击角色下拉框,然后点击 创建新角色
在这里插入图片描述
在这里插入图片描述

等待实例服务状态为InService即可打开JupyterLab
在这里插入图片描述

运行Notebook实验手册

克隆存储库

cd SageMaker
git clone https://github.com/dgnzlz/Capstone_AWS_DeepRacer.git

在这里插入图片描述

在这里插入图片描述

运行Notebook

在这里插入图片描述
根据自己的需求设置赛道
在这里插入图片描述

查看生成的奖励函数和ActionSpace

在这里插入图片描述

结论

在本次实验中,可以以极低的时间成本完成,无需考虑底层的环境以及线上的一个依赖库,极大的简化了用户的操作流程,同时有免费套餐覆盖本次实验内容,用户无需担心费用问题。

清理

请删除对应的Notebook实例

三、Amazon SageMaker JumpStart构建图像分类

Amazon SageMaker JumpStart构建图像分类:https://www.bilibili.com/video/BV1c24y1E7a5?p=3

启动Amazon SageMaker Studio

创建 域名

在这里插入图片描述

设置域名名称,用户配置文件名称,执行角色
在这里插入图片描述
在这里插入图片描述
等待SageMaker 域创建成功
在这里插入图片描述

部署/微调预训练图像分类模型

进入到MobileNet V2模型页面

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

训练/部署模型

在这里插入图片描述

训练模型

在这里插入图片描述
在这里插入图片描述

部署模型

确认模型训练完成
在这里插入图片描述

部署模型
在这里插入图片描述

使用微调模型对图像进行分类

在这里插入图片描述
在这里插入图片描述

在第一个代码单元格下方插入一个新单元格以显示示例花卉图像

import boto3
from IPython.core.display import HTML

roses_jpg, sunflowers_jpg, roses2_jpg, sunflowers2_jpg = "roses.jpg", "sunflowers.jpg", "roses2.jpg", "sunflowers2.jpg"
HTML('<table><tr><td> <img src="roses.jpg" alt="roses" style="height: 250px;"/> <figcaption>roses.jpg</figcaption>'
     '</td><td> <img src="sunflowers.jpg" alt="sunflowers" style="height: 250px;"/> <figcaption>sunflowers.jpg</figcaption>'
     '</td><td> <img src="roses2.jpg" alt="roses" style="height: 250px;"/> <figcaption>roses2.jpg</figcaption>'
     '</td><td> <img src="sunflowers2.jpg" alt="sunflowers" style="height: 250px;"/> <figcaption>sunflowers2.jpg</figcaption>'
     '</td></tr></table>')

在这里插入图片描述

插入一个新单元格并添加代码以打开图像并将它们加载到内存中

images = {}
with open(roses_jpg, 'rb') as file: images[roses_jpg] = file.read()
with open(sunflowers_jpg, 'rb') as file: images[sunflowers_jpg] = file.read()
with open(roses2_jpg, 'rb') as file: images[roses2_jpg] = file.read()
with open(sunflowers2_jpg, 'rb') as file: images[sunflowers2_jpg] = file.read()

在这里插入图片描述

查看模型是否正确地对玫瑰和向日葵图像进行了分类
在这里插入图片描述

清理

请删除对应的用户配置文件,

结论

在本实验中,您已经部署了预训练图像分类模型来运行推理,然后在新数据集上微调预训练图像分类模型以对不属于预训练数据集的对象进行分类。借助 JumpStart,您无需代码即可完成两个模型的训练和部署

总结

通过本次的Amazon SageMaker Hands-on,即便是新手也可以根据视频和博客的引导,快速的完成本次实验,增加对Amazon SageMaker的一个了解。同时亚马逊云科技官方也考虑到了不同用户的水平以及经济情况,提供了很多的workshop以及一些免费的产品额度,极大的提高了用户使用体验,为用户节省了时间、金钱成本。虽然实验非常简单,但是从整个Amazon SageMaker来看,其提供了非常强大的功能,需要更加专业的实验才可以完整的体验到Amazon SageMaker的强大能力。那么在最后也希望同志们可以更进一步的去了解Amazon SageMaker,比如通过一些亚马逊云科技官方提供的workshop或者研讨会来学习到更多的知识。希望这篇博文能够帮助到您,感谢阅读。

参考资料

  1. 端到端体验AIGC-从SageMaker到Web应用:https://catalog.us-east-1.prod.workshops.aws/workshops/3b86fa89-da3a-4e5f-8e77-b45fb11adf4a/zh-CN

  2. Amazon SageMaker JumpStart:https://catalog.us-east-1.prod.workshops.aws/workshops/63069e26-921c-4ce1-9cc7-dd882ff62575/en-US/lab9

  3. Capstone_AWS_DeepRacer:https://github.com/dgnzlz/Capstone_AWS_DeepRacer

更多推荐