Day 35 - Amazon SageMaker 简介

Day 35 - Amazon SageMaker 简介

Day 34 - 实作 S3 驱动 Lambda 函数进行 Yolo 物件辨识中,我们使用 AWS Lambda 来进行物件辨识,结果辨识时间长达一分钟左右,与 Day 16 - 进行影像辨识训练 中使用 g4dn 类型的 EC2 来进行辨识,时间不到 0.1 秒比较,差距太大,且不适合作为线上辨识观赏鱼的应用,於是我们试着在 AWS 的服务中来找寻其他节省成本又可以达到要求的服务。

对於人工智慧 (AI) 在云端的的使用,AWS 已经提供了很多这方面的服务,简列如下表:

  • 电脑视觉 – Amazon Rekognition 为图像和影片提供物体和脸部识别;Amazon Textract 可以从图像中提取文字。
  • 语音 - Amazon Polly 可以将文字转换成语音;Amazon Transcribe 则是可以将录音档转换成文字。
  • 语言 - Amazon Comprehend 利用 NLP 技术找到文字中的意义以及相关性;Amazon Translate 则是可以翻译多种不同语言。
  • 对话机器人 - Amazon Lex 是一项帮助构建使用语音或文字的交互式对话应用程序服务。
  • 预测 - Amazon Forecast 使用机器学习将时间序列数据与附加变量相结合来构建预测。
  • 推荐 - Amazon Personalize 是利用机器学习来帮助客户创建个性化的推荐服务。

https://ithelp.ithome.com.tw/upload/images/20211108/2012951010mdDFiRHC.png
图 1、AWS 所提供的人工智慧服务

而以上这些服务都是针对需求明确,没有资料分析人员的使用者而言,如果使用者打算建立自己的机器学习模型,并将其部署在云端的话,AWS 推出了 Amazon SageMaker 这项服务来满足使用者的需求。根据 AWS 官方网站,对於 Amazon SageMaker 的服务是这样定义的:Amazon SageMaker 透过整合专门为 ML 建置的一组广泛的功能,协助资料科学家和开发人员快速准备、建置、培训和部署高品质的机器学习 (ML) 模型。下图是 Amazon SageMaker 的登录画面首页,可以看出 Amazon SageMaker 的服务包含了资料准备、建置、训练与调整以及最後的部署与管理

https://ithelp.ithome.com.tw/upload/images/20211108/20129510gvZ7dQLjJ0.png
图 2、Amazon SageMaker 服务概览

因为我们已经在训练好的资料,所以现在需要的就只是进行布署,而最好的入口就是透过 Amazon SageMaker Studio,这是 AWS 於 2020 年 re:invent 推出适用於机器学习的整合式开发环境(IDE),让使用者可以轻松建立、训练、侦错、部署并监控机器学习模型 ,并专注於开发机器学习模型,而非环境的设置与开发工具的转换。

包含了以下功能:

  • 在 Jupyter 笔记本中编写和执行程序码
  • 建立和训练机器学习模型
  • 部署模型并监控模型预测的性能
  • 调校并改进机器学习模型成效

而 Amazon SageMaker Studio Notebooks 操作起来就是平时我们常用的 Jupyter Notebook 或是 Jupyter lab,但请注意的是它需要运行在一个实体之上,所以一但启用 Amazon SageMaker Studio Notebooks 就要收费的,观念就跟 EC2 是一样的,开着不用还是要收钱的,下图是我在 2021/10 所使用的 Amazon SageMaker Studio Notebooks 的收费情形。主机是位於新加坡地区 (ap-southeast-1),使用的机型是 ml.t2.medium,开了 138.77 小时,每小时收费 0.0584 美元,很多时候都是忘了关机,其实真正使用时间远少於 138 个小时,不过从帐单来看,它应该是以分钟来算的,所以才会有小数点;而因为把权重档案也放在 Studio Notebooks 中,所以才会出现第一笔使用硬碟空间的钱,每个月 1G 的使用费是 0.168 美元。

https://ithelp.ithome.com.tw/upload/images/20211108/20129510apU5mbAgbY.png
图 3、Amazon SageMaker Studio Notebooks 收费

接下来操作一次如何使用 Amazon SageMaker Studio Notebooks ,主要是参考 AWS 官方教学 建立、训练和部署机器学习模型 - 使用 Amazon SageMaker,内容为:

  1. 建立笔记本执行个体
  2. 操作笔记本

接下来这句话很重要:在本教学建立和使用的资源符合 AWS 免费方案资格,请记得终止您的资源。不然 AWS 将向您帐户收取费用

步骤 1.建立笔记本执行个体

进入 Amazon SageMaker 主控台,并在左边功能列中点击 笔记本->笔记本执行个体,右边主画面中点击 建立笔记本执行个体,如下图所示。

https://ithelp.ithome.com.tw/upload/images/20211108/20129510cW5wrgY28u.png
图 4、启动 Amazon SageMaker 笔记本

在建立笔记本执行个体页面上,在 笔记本执行个体名称 栏位中输入名称。本教学使用 ithomeSM 做为执行个体名称,不过如有需要,您可以选择其他名称。笔记本执行个体类型 保留 ml.t2.medium 的预设。

IAM 角色栏位中,选择建立 新角色,在 建立 IAM 角色 视窗中,使用预设值,不需改变,直接点击 建立角色 按钮,让 Amazon SageMaker 建立的角色具有必要的许可并将其分配给您的执行个体,或者,也可以为此在帐户中选择一个现有的 IAM 角色,最後点击 建立笔记本执行个体 按钮。如下图所示。

https://ithelp.ithome.com.tw/upload/images/20211108/20129510AaxF8Dwjtt.png
图 5、建立笔记本执行个体

新建的笔记本执行个体需要等待数分钟才会从待处理 (pending) 转换到服务中 (InService) 状态。当状态变为服务中後,选取 ithomeSM 并使用 动作 下拉式功能表将其开启,或选择服务中状态旁的 开启 Jupyter。如下图所示。

https://ithelp.ithome.com.tw/upload/images/20211108/20129510bYlXpZV0lm.png
图 6、透过 Jupyter 进入笔记本执行个体

开启 Jupyter 後,在画面右手边单击 New 按钮,出现下拉选单,选择 conda_python3。如下图所示。

https://ithelp.ithome.com.tw/upload/images/20211108/20129510ktJc8T3Sk9.png
图 7、透过 Jupyter 进入笔记本执行个体

步骤 2.操作笔记本

这里使用简单的一个 KNN 近临的案例,只是要体验一下 Amazon SageMaker 笔记本的操作,而相关於观赏鱼辨识模型的操作,将於下一篇文章中示范。

这是一个使用KNN算法实现对一组电影的分类,电影数据包含 10 条数据集的测试集和 2 条数据的训练集,这批电影共有两个画面:动作镜头数和接吻镜头数,这两个特徵,每部电影都对应一个分类标签值,共有“动作”,“爱情”两个类别。程序码与运行结果如下。

# 引入函式库
from sklearn.neighbors import KNeighborsClassifier
import numpy as np

# 准备资料
X_train=np.array([[19,1],[2,18],[25,1],[24,3],[3,17],[5,10],[7,8],[5,4],[5,3]])
Y_train=np.array(['动作','爱情','动作','动作','爱情','爱情','爱情','动作','动作'])
X_test=np.array([[13,10],[5,10]])

# 进行模型训练
knnclf=KNeighborsClassifier(n_neighbors=5)
knnclf.fit(X_train,Y_train)

# 测试、推估
knnclf.predict(X_test)

https://ithelp.ithome.com.tw/upload/images/20211108/20129510jyUCJAFU4d.png
图 8、在笔记本执行个体中使用 Jupyter

AWS 提供很多 Amazon SageMaker 笔记本的范例,可以在页签中 Amazon SageMaker Examples 中找到,开发者其实可以试着找到相关案例来参考。

https://ithelp.ithome.com.tw/upload/images/20211108/20129510C7C1ZJ8EN5.png
图 9、Amazon SageMaker 笔记本范例的集合

参考资料


<<:  今天来瞄一眼龙与雀的科技:知觉共享技术 Body-sharing

>>:  零信任架构-可扩展存取控制标记语言(XACML)是用於授权的最佳存取控制策略语言

自动化 End-End 测试 nightwatch-html-reporter

nightwatch-html-reporter: https://github.com/jls/n...

Day 29 - 到客户端执行弱点扫瞄并修复的心得分享 第十六天

由於客户长官要求要连同低风险弱点也要一起修补,所以时间会再拉长1~2天 不过也还来得及在期限内将这个...

【学习笔记】 .NET 5/Core Console 在 Linux 平台排程运行

这次尝试用 .NET5 在 Linux 做 Console 排程器并定期发送每日剩余零花钱讯息到我跟...

Android Studio初学笔记-Day8-元件客制化

元件客制化(LinerLayout和Button) 前几天讲了EditText和Button,不过这...

WhatsApp Business API 功能|绝对不会被block的广播工具?

你的 WhatsApp Business 帐号有试过被 WhatsApp 封锁吗?相信有不少企业都试...