Introduction to SageMaker

Python
机器学习
Amazon SageMaker
技领云博主
0
0
SageMaker 的核心是一项完全托管的服务,提供构建、训练和部署机器学习模型的工具。 这是一个非常简洁的使命宣言,说明了 SageMaker 可以帮助您实现的目标。 它包含一些组件,例如管理笔记本以及帮助标记和训练模型,但从本质上讲,SageMaker 应该被视为您需要构建、训练和部署模型时可以使用的地方。 您拥有一些简单的预训练机器学习模型,可能允许进行一些调整和调整。 应用程序服务的下一层是平台服务。 应用程序服务就像去面包店买一块饼干,而平台服务则更像是购买附带食谱的蛋糕粉。 它为您提供了制作机器学习产品的工具,但您需要利用您的专业知识来组装和微调它以获得最佳结果。 在这一层中,SageMaker 与其他一些非常流行的服务一起存在,例如 Spark、EMR,也许您听说过 Databricks 或 DataRobot。 这些都属于平台服务范围。 尽管有时具有一些更高级的功能,但它们可能会转向应用程序服务。 再次,为了将其与机器学习内容路径联系起来,平台服务实际上是二级以上的每个人都会使用的。 一旦您开始涉足并制作自己的模型并准备自己的数据,您就开始真正需要一个平台来开始。 现在,应用程序和平台下面是框架和硬件。 许多平台允许您使用这些框架来改进您的机器学习产品,而无需从头开始编码。 诸如 TensorFlow、MXNet 和 Pytorch 之类的东西都附带了四个模型的代码,您必须开始向其提供数据中的超参数。 所以这不像你从数学论文开始,你可以导入库。 云学院其实有很多关于如何使用这些具体框架的内容。 因此,请在本课结束后随时检查一下。 这里还有诸如计算选项之类的东西。 总的来说,SageMaker 和 Amazon 在将整个生态系统整合在一起方面做得非常好。 因此,如果您希望能够引入诸如图形处理单元之类的东西,那就是 p3 实例,如果您想谈论特定服务器或附加额外的 CPU 或内存,亚马逊允许您添加硬件以帮助加速您的解决方案并更改其 当您成为更高级的用户时的性能特征。 所以这实际上是你应该如何思考亚马逊机器学习生态系统的堆栈。 它实际上适用于所有云,但这里列出的产品更特定于 AWS。 现在,为了真正了解 SageMaker 作为平台的定位,我们来讨论一下机器学习工作流程。 实际上,这就是机器学习的全部内容,正在逐步完成这四个步骤。 现在,对于那些熟悉流程或数据科学家的人来说,您可能会意识到我简化整个工作流程的做法是高度简化的,但作为一种思维练习,它确实…我们应该以某种方式来思考它 四个步骤。 正如你们许多人可能已经意识到的那样,制作机器学习模型的第一步是准备数据。 这项广泛的任务包括数据工程师要做的一切,例如收集数据、清理数据、使其可访问、注释和转换数据。 这一步有点矛盾,因为它既是人们最容易接近的,对于机器学习来说相对较新,但也是最难的。 虽然入门并开始手动清理数据很容易,但学习如何高效、可靠和一致地执行此操作却很困难。 ### 准备数据 从左侧开始,您会看到 Ground Truth。 正如我们之前讨论的,数据准备确实是任何机器学习项目的基础。 以至于亚马逊甚至将其数据准备阶段标记为“Ground Truth”。 现在,如果您以前尝试过标记或创建数据集,那么如果数据集很小,您可能已经取得了一些成功。 如果您非常了解少量数据,您通常可以自己处理。 但是,当您开始处理数千或数百万条记录,或者可能有许多图像需要自定义注释时,这将成为一项难以管理的任务。 当然,现在您将有一些选择。 你的公司可以扩大规模并雇用一些临时帮助,但亚马逊通过 Ground Truth 提供了半自动化、半人类驱动的解决方案。 该平台的这一部分实际上允许您通过创建工作流程来注释数据集。 这些工作流程可以使用前面提到的一些机器学习模型。 因此,在这种情况下,Amazon SageMaker 作为一个平台实际上是在引用应用程序,或者它实际上有一种方法可以将您路由到接受过如何标记数据(他们称之为人类劳动力)和完全人类智能任务的培训的人员。 因此,无论如何,如果您只想为自己提供一些帮助,也许可以通过预先训练的框架获得一些机器学习帮助或雇用其他人,那么这是处理任何这些任务的不错选择。 点击“Ground Truth”,您遇到的第一件事是关于如何标记数据的大量选项。 在顶部,您会看到一个下拉列表,允许您选择是文本还是图像等,但在每种类型的数据中,您可以执行不同类型的标签。 标签的类型确实可以决定您的解决方案的成败。 因此,首先要考虑的是整个图像分类还是有界分类。 因此,您在顶部看到的单个标签或多标签的整个图像分类只是这张图片作为一个整体描述了我的机器学习模型应该检测的内容。 正如您在左上角看到的,我们将其标记为“篮球”。 非常重要的是,我们不会缩小该图像的任何特定部分来描述篮球。 我们没有把注意力集中在球上。 我们并没有把注意力集中在篮筐或球员身上。 我们只是说这整个图像代表了篮球。 与右侧非常相似,我们说整个图像描述了人和车辆。 有时可能会有点令人困惑,但在多层次成像中,并不是说只看人或只看车辆。 它说这整个事物作为一个实体既是一个拥有车辆的人类。 现在,如果您想要开始更具体,并说您想要非常具体地调用图像的一部分,或者这个元素可能会在其他图像中重新混合,那么您需要开始考虑边界框和语义分割。 它的作用是告诉机器学习图像,查看该片段中的内容或查看该框中的内容,然后将标签应用于该图像。 当然,当您在此选择中从左上角移动到右下角时,它会变得越来越困难。 语义分割精确到像素级,而整个图像显然就是整个图像。 如果您选择任务类别是文本,您还将看到各种类似的选项。 再次,您可以进行整个文本分类,例如单标签或多标签,并且还可以进行命名实体识别。 现在这样说有点异端,但实际上命名实体识别与在图像上放置边界框非常相似。 您基本上是说文本的这一部分应用了特定的标签。 它可以是一个人、一个短语或一个表达式,但基本上单标签和多标签文本分类是整个文本,而命名实体识别是将短语或人和对象从文本中分离出来的能力。 快速完成最后两种类型。 基本上,视频与图像和文本非常相似,只是添加了时间序列的元素。 因此,您可以对整个剪辑和剪辑内的对象进行分类,也可以对视频进行非常独特的分类。您可以跟踪一个对象在多个帧(也称为多个图像)中移动时的情况。 根据一般经验,视频分类比图像分类更耗时且困难。 当然,当您有时间序列并且可以在上下文中查看对象时,您可以添加更多详细信息。 如果您有视频,则不一定需要进行视频机器学习。 您可以隔离特定的帧并将其视为图像机器学习。 但这有点超出了一些机器学习的范围,但要知道 Amazon Ground Truth 能够根据图像数据的实际来源来处理图像和视频。 ### 构建模型 工作流程中的下一步就是构建模型。 SageMaker 笔记本基本上是托管的 Jupyter 笔记本设置。 如果您从未听说过,Jupyter Notebook 是 IPython 笔记本几年前重新命名的名称。 它们还与名为 Zeplin 的服务竞争,但 SageMaker 使用预安装的 Jupyter 托管版本。 此笔记本基本上允许您在服务器上运行 Python 代码,在本例中为 SageMaker,或者如果您自己设置它,并且基本上可以通过 Web 浏览器访问 Python 代码,请通过设置可编程 您的网络浏览器,但在远程环境上执行。 这非常理想,因为您的笔记本电脑不需要执行所有繁重的工作,SageMaker 或您自己的服务器可以自行配置资源。 因此,单击“笔记本”,您将看到以下两种情况之一:要么已经设置了一些笔记本,要么根本没有。 请记住,SageMaker 是由拥有此 Amazon 帐户的每个人共享的,而不仅仅是 IAM 帐户,这意味着总体帐户。也可以通过单击右上角的亮橙色“创建笔记本实例”按钮来开始。 在设置基本内容(例如名称)后创建实例时,这里实际上有一些细微差别。 在选择笔记本实例类型时,基本上您可以选择越来越强大的硬件以及弹性接口,这允许您将 GPU 或图形处理单元等东西附加到笔记本设置中。 在云中,更昂贵的硬件成本更高,但它的性能也更好,因此您不会坐在那里太久。 因此,如果您从事稍微强度更大的工作,那么选择功能更强大的硬件是有意义的,但请记住,选择大型、重型冲浪器会产生一些成本影响。 您还可以开始选择一些内容,例如更微调的安全角色、网络权限,甚至将获取存储库附加到您的实例。 较大的组织可能有策略,您的 DevOpsps 团队(如果您有单独的团队)将拥有一些强大的权限,但一般来说,默认选项非常好,特别是如果您处于隔离环境中,并且在选择了所有内容之后 ,点击创建实例,又称右下角的大按钮。 创建实例后,您当然无法立即连接。 在状态下,您会看到它正在部署并正在设置。 但过了一会儿,您会看到它已投入使用,并且您可以左键单击它以打开 Jupyter Notebooks 或 JupyterLab。 基本上,JupyterLab 的界面有更多细微差别,而 Jupyter 本身只是直接的 Jupyter Notebook 环境。 单击 Jupyter 将带您进入最默认的 Jupyter Notebook 环境。 起初,您不会看到任何文件,也没有任何运行,但随着时间的推移,当您在不同的部分创建不同的笔记本时,您将开始看到这个填满,甚至开始看到一些统计数据和描述笔记本的方法。 当然,现在您可以启动一个空笔记本并直接开始编码,但 SageMaker 更进一步,实际上为您提供了示例笔记本的完整列表。 事实上,这些示例非常广泛且数量众多,您实际上可以使用它们作为模板来开始制作一些最常见的机器学习模型。 这组示例加上基本事实使您实际上能够在整个过程中的每一步获得帮助,并且在任何时候您都不需要从零开始使用空白的开发界面并从头开始编写 Python。 这是 SageMaker 的最大优势之一。 现在,对于那些更具创意的人来说,您可能会注意到您实际上可以使用 SageMaker 来制作自己的数据标签,并且您可以直接跳过 Ground Truth,特别是如果您有一些已经很干净的数据标签 数据,或者您可能想在 Python 中标记和清理数据。 因此,如果您更具创意,请记住这一点,但只知道主要的收获是 Jupyter Notebooks 能够存储注释、Python、机器学习,甚至开始执行 bash 等操作 使用 Linux 命令编写脚本以开始加载数据。 ### 训练模型 选择模型后,下一步当然是训练它。 老实说,对于较小的数据集,您可以在笔记本实例中对其进行训练。 您没有理由必须超越它。 但特别是当你变得更大,或者如果你需要一种更加编码、可重复的方式和许多排列,那么去亚马逊平台的培训部分是有意义的。 这是一个单独的部分,可以再次通过核心仪表板进行评估。 因此,假设您正在处理相当中等或大型的数据集,您的笔记本电脑还不够。 通过单击训练,您会看到很多选项,但其核心作用是临时创建一个分布式计算集群,以进行训练并在完成后存储工件。 如果你还记得的话,亚马逊上的任何资源使用都会开始计费,就像出租车和培训部分一样,通过旋转许多昂贵的资源然后自动删除它们,让你只使用你需要的,以获得良好的效果 大部分计算已完成。 因此,在作业设置中,当然首先要设置名称和安全性,然后还必须选择模型。 现在,您可以使用他们的许多预制模型之一,使用您自己制作的模型,或者也可以访问他们的市场,这允许您使用免费模型或支付少量订阅费来使用其他人的预制模型 一。 选择模型或从市场订阅后,系统会要求您描述您的工作将如何扩展。 基本上,您想在其后面放置什么类型的实例? 您希望它运行多少个实例以及运行多长时间? 这更多的是一个 DevOps 问题,但即使作为数据科学家或数据工程师,对运行工作的正确基础设施有一个基本的了解也确实很有帮助,因为它可以让你就规模大小做出明智的决定。 一个实例及其含义。 之后,系统会要求您开始调整超参数。 现在,这是非常特定于模型的,并且可能会变得非常混乱。 当然,使用笔记本预先探索不同的超参数含义是非常有帮助的。 但只要知道这些参数真正定义了模型在高级概念上的行为方式,例如它应该尝试创建多少个集群。 最后,当然,您需要选择数据的来源,为此,您很可能实际上会选择 S3,特别是如果您之前使用 GroundTruth 或笔记本进行过训练工作。 ### 模型部署 最后,经过所有这些努力,经过所有这些训练、创建和标记,我们实际上能够开始使用模型(AKA)来推理它。 当然,SageMaker 有一个专门用于此目的的部分。 其核心是,您要做的就是创建一个可以在其中调用模型的端点。 但让我们通过单击 SageMaker 的推理部分来检查一下。 当然,可以再次通过中心(又称仪表板)进行评估。 深入探讨这一点,亚马逊鼓励您与 SageMaker 模型交互的方式基本上是通过 HTTP 斜线 HTTPS 端点。 您可以对其进行调用、向其发送数据并获得响应。 当然,从训练工作中出来,尤其是从笔记本中出来后,您还可以使用 Python 对象或更确切地说是框架的对象,并将它们导入到其他机器学习框架中。 因此,不要认为您需要使用 SageMaker 的端点系统才能使用您的模型。 它实际上可以直接编码到您现有的应用程序中,尤其是在导出之后。 但这是一种将机器学习和生产实例解耦的非常强大的方法,因为您的应用程序开发人员和编码人员只需要call api电话即可获得推理结果。 因此,基本上,在设计端点时,请考虑您是否希望它成为一个端点,完全独立且像微服务一样隔离,或者您是否想导出模型并让它更像应用程序中的库。 假设您想使用端点,则可以使用 Amazon 设置配置,当然,只是没有太多选项,但您可以配置它的行为方式,但更重要的是,您需要选择,您是否要捕获数据 ? 我的意思是,如果您想捕获数据并以数据科学家或机器学习创建者的身份启用它,您就会想要捕获它。 您将想要捕获传入的预测和您给出的响应。 当然,您可以增加采样百分比,并确保根据音量或仅按其百分比来存储所有内容。 但这可以让您了解消费者在现实世界中如何与您的模型互动。 但有一个巨大的警告。 我在这里所说的是个人经历。 某些应用程序极其敏感,您无法查看传入数据或 SageMaker 允许您存储的传出预测。 也许您只是向他们提供预测结果,以便您可以测试随时间推移的预测偏差。 但假设隐私安全和许可,您可以捕获传入和传出的结果。 我真的鼓励您至少在一开始就这样做,因为它允许您调试模型,并且非常重要的是,寻找您在测试中可能没有看到的边缘条件。 ![1.png](https://dev-media.amazoncloud.cn/ad1b9e765a814a1a9e724931c699a4c0_1.png "1.png")
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭