亚马逊云科技【云上探索实验室】使用 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) 构建[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)应用、基于 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) 构建细粒度情感分析应用、使用 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) 基于 Stable Diffusion 模型,快速搭建你的第一个 AIGC 应用
![image.png](https://dev-media.amazoncloud.cn/6a225979e32d4e92b293e9757dcf7ef5_image.png "image.png")
> 文章作者:薛定谔的猴子铁链
## 实验前准备:
1. 确保自己处于稳定的网络环境。
2. 请确保自己的 DNS 设置为8.8.8.8或国外 DNS 地址,这一步主要是确保你访问亚马逊云会快一点。
3. 文中提到的一些坑需要注意一下。
4. 申请额度需要一定时间,可以点击[这里](https://support.console.aws.amazon.com/support/home#/case/history?trk=cndc-detail)查看额度申请记录
5. 如果要使用代理网络,请确保不要频繁切换其他国家节点,否则会触发"未经授权活动"的假阳性系统报警。
*PS:我就是那个大冤钟,半夜做实验网络不好疯狂切换代理网络,后面风控报警还以为号真的被盗了,紧急改了 root 密码、检查用户、日志和资源并且设置了两步验证(两步验证还是有必要开启一下)。*
![image.png](https://dev-media.amazoncloud.cn/3d23ca4979a74c4da18bd8d24df3a80b_image.png "image.png")
**这里点名表扬亚马逊,应急响应速度反应很快,客服也很尽责,回消息很快。**
## 第一个实验【使用 Amazon SageMaker 构建机器学习应用】
前面根据手册上的步骤进行部署即可,文章写了很详细,按照步骤来就可以做完。
手册链接:[使用 Amazon SageMaker 构建机器学习应用](https://dev.amazoncloud.cn/column/article/63ff329f4891d26f36585a9c)
**注意:instance 创建完成之后会 Pending 5分钟左右才会变成 inService**
![image.png](https://dev-media.amazoncloud.cn/69250a0a11f848bbb08d471dc75b2815_image.png "image.png")
打开 Jupyter Notebook 界面
![image.png](https://dev-media.amazoncloud.cn/74136ffbcc54479bbf65f9a9e1dda09b_image.png "image.png")
点击 cell,并插入 cell,建议每执行手册中提供的命令或者代码就在 below 下插入一个 cell
![image.png](https://dev-media.amazoncloud.cn/f1e523cabc7e41eab15eb3003ce242d7_image.png "image.png")
下载并解压数据:
```js
!wget -N https://archive.ics.uci.edu/ml/machine-learning-databases/00222/bank-additional.zip
!unzip -o bank-additional.zip
```
后续参考部署手册:[使用 Amazon SageMaker 构建机器学习应用](https://dev.amazoncloud.cn/column/article/63ff329f4891d26f36585a9c)
## 第二个实验【基于 Amazon SageMaker 构建细粒度情感分析应用】
步骤可以参考文章:[基于 Amazon SageMaker 构建细粒度情感分析应用](https://dev.amazoncloud.cn/column/article/6309e3bcafd24c6ba216ff9e)
注意:这篇文中步骤部署写的不是很详细,而且还有一点问题,可以参考我这里建议的方法
**前提:这里会使用 ml.p3.2xlarge,请确保 ml.p3.2xlarge 有额度,点击这里:[Service Quotas](https://us-east-1.console.aws.amazon.com/servicequotas/home/services/sagemaker/quotas?region=us-east-1#?trk=cndc-detail)查看**
**在搜索框中输入ml.p3.2xlarge for endpoint usage 如果没有额度请申请**
根据文章:[基于 Amazon SageMaker 构建细粒度情感分析应用](https://dev.amazoncloud.cn/column/article/6309e3bcafd24c6ba216ff9e) 创建 instance 点开 Open Jupyter
![image.png](https://dev-media.amazoncloud.cn/b6b9f1f74da24741806d5f2f7fa2f74d_image.png "image.png")
部署完成后,打开 Jupyter Notebook 界面,点击 new 新建一个 terminal
![image.png](https://dev-media.amazoncloud.cn/64a2b3ebe75a4adfae3cfb6f6c8d98a2_image.png "image.png")
terminal 中执行以下命令。下载 GAS-Sagemaker 数据
```js
cd ~/SageMaker
git clone https://github.com/HaoranLv/GAS-SageMaker.git
```
具体数据可以在这里查看这个目录
```js
cd ~/SageMaker/data/tasd/
```
打开 Jupyter Notebook 界面、进入 Sagemaker 目录,打开 gabsa.ipynb 选择内核为 conda_pytorch
然后逐行运行。
可以查看这个视频,这里没有使用部署手册里面的代码:
<video src="https://s3.cn-north-1.amazonaws.com.cn/dev-media.amazoncloud.cn/14978e3f-be0e-4e8b-b646-ed4e331b7bdf_%E5%9F%BA%E4%BA%8E%20Amazon%20SageMaker%20%E6%9E%84%E5%BB%BA%E7%BB%86%E7%B2%92%E5%BA%A6%E6%83%85%E6%84%9F%E5%88%86%E6%9E%90%E5%BA%94%E7%94%A8.mp4" class="bytemdVideo" controls="controls"></video>
第二个实验视频
需要注意以下:
1、在执行 hyperparameters 这一行时需要注意,epochs 的参数为30,这意味着后续训练次数会训练30次,经过我自己的训练训练了一个小时才训练了19次,如果担心会影响后续扣费。
建议调低一下这个数值,如10次即可。
修改"num_train_epochs":“30”,为"num_train_epochs":“10”
![image.png](https://dev-media.amazoncloud.cn/aeaaba480b7c4aa78b04a2cb8db7f5f1_image.png "image.png")
2、如果使用手册提供的代码,请注意这里的单引号有问题需要注意一下。
![image.png](https://dev-media.amazoncloud.cn/14b6f2ed3229494893b59d4e11f5b283_image.png "image.png")
以下为手册和 github 下载的代码对比
下图是手册里面提供的代码,使用手册的代码没有跑通
![image.png](https://dev-media.amazoncloud.cn/67460118b0e045c2af94245020bf6975_image.png "image.png")
以下为 gabsa.ipynb 内置的代码,博主用的是自带的代码。
![image.png](https://dev-media.amazoncloud.cn/e5ad235c405d418099df9bf55c9824a9_image.png "image.png")
3、response = estimator.fit(inputs) 启动模型训练,开始训练会比较久,注意训练时间。
![image.png](https://dev-media.amazoncloud.cn/b517742a8fb3443b865dcd259d6e163b_image.png "image.png")
后续逐行执行即可,训练完成之后,可以在这里看到训练任务和创建的端点
![image.png](https://dev-media.amazoncloud.cn/697ede756d564fd7ba5e3a97aed7688e_image.png "image.png")
点开终端节点,往下滑可以看到监控状态。
![image.png](https://dev-media.amazoncloud.cn/27cd80af56f4445e8daed22a6b4b46d6_image.png "image.png")
## 第三个实验 【基于 Stable Diffusion 模型,快速搭建你的第一个 AIGC 应用】
部署参考手册:[基于Stable Diffusion模型,快速搭建你的第一个AIGC应用](https://catalog.us-east-1.prod.workshops.aws/workshops/3b86fa89-da3a-4e5f-8e77-b45fb11adf4a/zh-CN) 这个手册写的很详细,但是也需要注意一个地方,后续会提到。
**前提:这里会使用ml.g4dn.xlarge,请确保 ml.g4dn.xlarge有额度,点击这里:[Service Quotas](https://us-east-1.console.aws.amazon.com/servicequotas/home/services/sagemaker/quotas?region=us-east-1#?trk=cndc-detail) 查看,在搜索框中输入 ml.g4dn.xlarge for endpoint usage,如果没有额度请申请**
注意:
根据手册要求上传 ipynb 文件之后,选择内核为 conda_pytorch,逐行执行命令部分手册未详细说明。
这里逐行执行命令即可。我这里简单录制了一段视频
<video src="https://s3.cn-north-1.amazonaws.com.cn/dev-media.amazoncloud.cn/74749d6a-97ba-4b8a-a87e-d5ca41f990e0_%E5%9F%BA%E4%BA%8EStable+Diffusion%E6%A8%A1%E5%9E%8B%EF%BC%8C%E5%BF%AB%E9%80%9F%E6%90%AD%E5%BB%BA%E4%BD%A0%E7%9A%84%E7%AC%AC%E4%B8%80%E4%B8%AAAIGC%E5%BA%94%E7%94%A8.mp4" class="bytemdVideo" controls="controls"></video>
第三个实验
后面部署的时候会很慢,耐心等待即可。
检查终端节点是否创建,如下图
![image.png](https://dev-media.amazoncloud.cn/2f273de703b24a8dbc242a2e4f3cdb71_image.png "image.png")
ipynb部分部署完毕之后再参考手册:[基于Stable Diffusion模型,快速搭建你的第一个AIGC应用](https://catalog.us-east-1.prod.workshops.aws/workshops/3b86fa89-da3a-4e5f-8e77-b45fb11adf4a/zh-CN?trk=cndc-detail) Cloud9 创建前后端 Web 应用部分,进行后续部署
部署完成之后,这里用了两个简单的 prompt:
```js
a beauty girl
```
```js
a china superman
```
![image.png](https://dev-media.amazoncloud.cn/822dcc0abb324ad19d633ed5fe571762_image.png "image.png")
![image.png](https://dev-media.amazoncloud.cn/55931c6184d44818b015107c7e0b78d8_image.png "image.png")
![image.png](https://dev-media.amazoncloud.cn/9104d98aa37a4f7cb68458b77f48a8a3_image.png "image.png")
![image.png](https://dev-media.amazoncloud.cn/adccde4a3cbe4d808a795c93a4ca5cbc_image.png "image.png")
弱弱吐槽一句。输入的 prompt 生成的图有点搞笑,酷似马云=_=
来个正常点的 prompt:
```js
a cartoon style cute monkey wearing a space suit, star background; clear portrait of a superhero concept between spiderman and batman, cottagecore
```
![image.png](https://dev-media.amazoncloud.cn/2a9db4c47ec743e199907551ad233a22_image.png "image.png")
### 可能遇到的问题:
1. 如果打开 preview running application
![image.png](https://dev-media.amazoncloud.cn/3cd0a9273a1d4d899de5ecf272815c53_image.png "image.png")
提示:“You can’t access preview functionality because your browser blocks third-party cookies (also known as cross-site tracking). To use previews, allow third-party cookies and reload your IDE.”
解决方法:在 cloud9 页面里把已阻止的勾选为允许,如下图
![image.png](https://dev-media.amazoncloud.cn/b5b46acff847432995f2c03cc9052344_image.png "image.png")
### 关于扣费
**重要的事情说三遍**
做完实验,停止实例之后记得删除实例、训练任务等等!!!\
做完实验,停止实例之后记得删除实例、训练任务等等!!!\
做完实验,停止实例之后记得删除实例、训练任务等等!!!
**如果触发扣费怎么解决:**
先检查account账户账单,如果有扣费点击[这里](https://support.console.aws.amazon.com/support/home#/case/history?trk=cndc-detail)新建 case 找客服解决。
在此期间检查一下以下链接,把能删除任务删除。
https://console.aws.amazon.com/s3/?trk=cndc-detail \
https://console.aws.amazon.com/iam/?trk=cndc-detail \
https://us-east-1.console.aws.amazon.com/sagemaker/home?region=us-east-1#/processing-jobs?trk=cndc-detail \
https://console.aws.amazon.com/cloudwatch/?trk=cndc-detail
删除带 /aws/sagemaker/. 的日志
**参考文档:https://docs.aws.amazon.com/sagemaker/latest/dg/ex1-cleanup?trk=cndc-detail**
## 总结
这三个实验总体来说并不是很难,文章写的很详细,容易上手,我是第一次使用 Amazon Sagemaker,也算小白一个,之前用过谷歌的 colab,在部署中耽误时间的点主要是阅读手册时,理解可能会有误差,如第三个实验没有部署 ipynb 导致后面cloud9部署后不能正常生图,后面返回去部署 ipynb 才解决;在部署第二个实验时,发现有手册中的步骤和实际操作有出入,发现错误需要有一点点代码经验来排查才能顺利完成整个实验,中途遇到问题时很正常的,根据提示来排查问题然后解决这是一项必备的技能。解决问题后把遇到的问题总结起来,以后遇到可以用类似的思路来解决,总结经验。最后感谢亚马逊能提供这样的一个活动,让我们可以随时体验到科技带了的便利,别忘了做完实验之后停止并删除实例以及训练任务等等,大家遇到什么问题可以在文章后面评论,如文中有错误也希望大家能够指出改进,我们共同交流学习。
*该动手实验方案由亚马逊云科技解决方案架构师团队提供 - 点击查看[实验手册内容](https://catalog.us-east-1.prod.workshops.aws/workshops/3b86fa89-da3a-4e5f-8e77-b45fb11adf4a/zh-CN?trk=cndc-detail)*