第 4 章 数据工程 数据工程
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
简介
在前几章中,我们向你介绍了抽象概念。现在,我们将从技术介绍出发,讨论实施细节和更多主观选择。我将向你展示我们如何在实践中运用训练数据的艺术,同时介绍如何扩展到更大的项目并优化性能。
数据摄取是第一步,也是最重要的一步。数据摄取的第一步是建立和使用训练数据记录系统(SoR)。SoR的一个例子就是培训数据数据库。
为什么数据摄取很难?原因很多。例如,训练数据是一个相对较新的概念,存在各种格式和通信挑战。数据的数量、种类和速度各不相同,而且缺乏行之有效的规范,因此有很多方法。
此外,还有很多概念,比如使用训练数据数据库,以及谁想在什么时候访问什么;即使是经验丰富的工程师也未必清楚。输入决策最终会决定查询、访问和导出方面的考虑因素。
本章内容包括
谁想使用数据以及何时使用数据
为什么数据格式和通信方法很重要;想想 "电话游戏"
将培训数据数据库作为记录系统的介绍
入门的技术基础
存储、特定媒体需求和版本管理
格式化和映射数据的商业考虑
数据访问、安全性和预标签数据
要实现数据驱动或以数据为中心的方法,需要工具、迭代和数据。迭代器越多,数据越多,就越需要伟大的组织来处理。
您可以按照这个顺序摄取数据、探索数据和注释数据。也可能从摄取直接到调试模型。在流式训练之后,您可能会摄取新的预测,然后调试这些预测,然后使用注释工作流。你越能依靠数据库完成繁重的工作,你自己需要做的事情就越少。
谁需要数据?
在深入探讨挑战和技术细节之前,我们先来了解一下目标和相关人员,并讨论数据工程如何为这些最终用户和系统提供服务。之后,我将从概念上阐述建立训练数据数据库的原因。我将通过展示没有训练数据的默认情况和有了训练数据的默认情况来说明对训练数据的需求。
为了便于讨论,我们可以将其分为几组:
标注者
数据科学家
ML 程序(机器对机器)
应用工程师
其他利益相关者
注释器
注释者需要在正确的时间获得正确的数据和正确的权限。这通常是在单个文件级别完成的,并由范围非常明确的请求驱动。权限和授权是重点。此外,还需要在适当的时间交付数据,但什么是 "适当的时间 "呢?一般来说,就是按需或在线访问。这是指通过任务系统等软件流程识别文件,并在快速响应时间内提供服务。
数据科学家
数据科学通常在数据集层面上研究数据。他们更重视查询能力、处理大量数据的能力以及格式化能力。理想情况下,数据科学家还能深入研究特定样本,并对不同方法的结果进行定量和定性比较。
ML 程序
ML 程序的发展路径与数据科学类似。不同之处包括权限方案(通常程序比单个数据科学家有更多的访问权限),以及浮出水面的内容和时间的清晰度(通常更注重整合和流程,而不是按需分析)。通常,ML 程序可以采用软件定义的集成或自动化。
应用工程师
应用工程师关注的是:如何将数据从应用中获取到训练数据数据库,以及如何将注释和监督嵌入到终端用户中。每秒查询次数(吞吐量)和数据量往往是他们最关心的问题。有时会有一种错误的假设,即从 "摄取 "团队或应用程序到数据科学家之间存在线性数据流。
其他利益相关者
对培训数据感兴趣的其他利益相关者可能是安全人员、DevMLOps 专业人员、备份系统工程师等。这些群体通常具有跨领域的关注点,并与其他用户和系统的需求交叉。例如,前面已经提到,安全人员关心最终用户的权限。安全人员还担心单个数据科学家不会成为关键故障的单点,例如,在他们的机器上拥有整个数据集或对远程数据集的访问权限过大。 ...