使用 Amazon SageMaker 特征存放区存储、发现和共享机器学习特性!
今天,我们非常高兴地宣布推出 Amazon SageMaker 特征存放区,这是 Amazon SageMaker 的一项新功能,可帮助数据科学家和机器学习工程师轻松、安全地存储、发现和共享训练和预测工作流程中使用的精选数据。
选择正确的算法来训练机器学习 (ML) 模型固然非常重要,但经验丰富的从业人员深知为其提供高质量数据的重要性。清理数据是很好的开始,机器学习工作流程通常包括填充缺失值、删除异常值等步骤。然后,通常需要继续使用常用技术和名为特征工程的高端技术来转换数据。
简而言之,特征工程的目的是转换数据并增强其可表达性,以便算法可以更好地学习。例如,许多列式数据集都包含字符串,例如街道地址。对于大多数机器学习算法来说,字符串毫无意义,它们需要以数字表示形式进行编码。因此,您可以用 GPS 坐标替换街道地址,这是一种可表达性更高的方式,更利于学习定位概念。换句话说,如果数据是新的油类,那么特征工程就是将其提炼为高辛烷值喷气燃料的过程,从而帮助模型达到极高的精度。
事实上,机器学习从业人员花费了大量时间来制作特征工程代码、将其应用于初始数据集、在工程数据集上训练模型以及评估模型准确性。鉴于这项工作的实验性质,即使是最小的项目也会导致发生多次迭代。相同的特征工程代码通常会反复运行,这会浪费时间和计算资源来重复相同的操作。在大型组织中,这可能导致更大的生产力损失,因为不同的团队通常运行相同的作业,甚至因为他们不了解之前的工作,而去编写重复的特征工程代码。
机器学习团队还必须解决另一个难题。由于模型是基于工程数据集训练的,因此必须对那些发送以用于预测的数据应用相同的转换。这通常意味着会重写特征工程代码(有时会使用另一种语言),将其集成到预测工作流程中,然后在预测时运行这些代码。整个过程不仅耗时,还可能导致出现不一致,因为即使是数据转换中最微小的变化也可能对预测产生巨大影响。
为了解决这些问题,机器学习团队有时会构建一个特征存放区,这是一个中央存储库,他们可以在其中保存和检索训练和预测作业中使用的工程数据。尽管特征存放区非常实用,但构建和管理您自己的特征存放区需要执行大量的工程设计、基础设施和运营工作,这会花费本该用于机器学习工作的宝贵时间。客户要求我们提供更好的解决方案,我们做到了!
推出 Amazon SageMaker 特征存放区
Amazon SageMaker 特征存放区是适用于您的机器学习特征的完全托管的集中式存储库,可帮助您轻松、安全地存储和检索特征,而无需管理任何基础设施。它是 Amazon SageMaker(完全托管的机器学习服务)的一部分,支持所有算法。它还与我们基于 Web 的机器学习开发环境 Amazon SageMaker Studio 集成。
此外,Amazon SageMaker 特征存放区中存储的特征已分组,并使用元数据进行标记。因此,您可以快速发现哪些特征可用,以及它们是否适合您的模型。多个团队还可以轻松共享和重复使用特征,从而降低开发成本并加速创新。
在存储后,您可以在模型训练、批量转换和低延迟实时预测等 SageMaker 工作流程中检索并使用这些特征。您不仅可以避免重复工作,还可以构建一致的工作流程:使用存储在离线和在线商店中的相同一致特征。
The Climate Corporation(下文简称“Climate”)是 Bayer 的子公司,在为农民提供数字创新方面,该公司是行业领导者。
Climate 坚信能为全世界的农民提供准确的信息,以便他们做出基于数据的决策,并最大限度地提高他们的每英亩产出。为了实现这一目标,我们投资了机器学习工具等技术,利用名为特征(例如种植者的田地产出)的可衡量实体来构建模型。
借助 Amazon SageMaker 特征存放区,我们可以通过中央特征存放区加速机器学习模型的开发,以便在多个团队中轻松访问和重复使用这些特征。使用 Amazon SageMaker 特征存放区,可以轻松使用在线商店实时访问特征,或者使用离线商店针对不同的使用案例按计划运行特征,而且我们可以更快地开发机器学习模型。
——Climate 数据和分析副总裁 Daniel McCaffrey
全球领先的高质量家庭护理查找和管理平台 Care.com 也在使用 Amazon SageMaker 特征存放区。
一个供需高度匹配的强大护理行业对于个体家庭乃至国内生产总值的经济增长都至关重要。我们对 Amazon SageMaker 特征存放区和 Amazon SageMaker 管道充满期待,我们相信它们将帮助我们在数据科学和开发团队中更好地扩展,我们可以使用一组一致的精选数据构建从数据准备到部署的可扩展的端到端机器学习模型管道。
利用新发布的 Amazon SageMaker 功能,我们可以针对不同的应用程序加快开发和部署机器学习模型,从而能够通过更快的实时建议帮助客户做出更明智的决策。
——Care.com 数据科学经理 Clemens Tummeltshammer
现在,我们了解一下如何开始使用。
使用 Amazon SageMaker 特征存放区存储和检索特征
对数据运行特征工程代码后,您可以在 Amazon SageMaker 特征存放区中组织和存储您的工程特征,可将这些特征分为不同的特征组。特征组是记录的集合,类似于表中的行。每条记录都有一个唯一的标识符,并保存原始数据源某个数据实例的设计特征值。您还可以选择使用自己的 Amazon Key Management Service (KMS) 密钥加密静态数据,该密钥对于每个特征组都是唯一的。
如何定义特征组由您决定。例如,您可以为每个数据源(CSV 文件、数据库表等)创建一个特征组,然后使用便捷的唯一列作为记录标识符(主键、客户 ID、事务 ID 等)。
确定组后,应该对每个组重复执行以下步骤:(左滑查阅完整代码)
为了加快提取速度,您可以创建多个线程,然后并行执行此操作。
此时,特征将存储在 Amazon SageMaker 特征存放区中。借助离线存放区,您可以使用 Amazon Athena、Amazon Glue 或 Amazon EMR 等服务构建训练数据集:在 S3 中获取相应的 JSON 对象,选择所需的特征,然后采用 ML 算法所需的格式将其保存在 S3 中。之后,SageMaker 像往常一样运作!
此外,您还可以使用 get_record() API 访问存储在在线存放区中的各条记录,传递要访问的记录的组名称和唯一标识符,如下所示:
Amazon SageMaker 特征存放区旨在快速高效地访问实时推理,15KB 负载的 P95 延迟低于 10 毫秒。这样,可以在预测时查询工程特征,并将上游应用程序发送的原始特征替换为用于训练模型的完全相同的特征。在设计上,消除了特征不一致问题,从而您可以专注于构建最佳模型,而不是追踪错误。
最后,由于 SageMaker 特征存放区包含特征创建时间戳,因此您可以检索特征在特定时间点的状态。
由于 Amazon SageMaker 特征存放区与 SageMaker Studio 集成,因此我可以在 SageMaker Studio 中看到我的两个特征组。
右键单击“打开特征组详细信息”,我将打开身份特征组。
我可以查看特征定义。
最后,我可以为离线存放区生成查询,并将这些查询添加到 Amazon SageMaker Data Wrangler 工作流程中,以便在训练之前加载特征。
如何开始使用 Amazon SageMaker 特征存放区?
正如您所看到的, Amazon SageMaker 特征存放区使您可以轻松存储、检索和共享训练和预测工作流程所需的特征。
提供 Amazon SageMaker 的所有区域均提供 Amazon SageMaker 特征存放区。定价基于特征读取和写入次数以及存储的数据总量。这是示例笔记本(网址:https://github.com/aws/amazon-sagemaker-examples),可以帮助您立即开始使用。欢迎您试用并向我们反馈意见!
评论