- 构建可靠的机器学习系统
- (美)凯茜·陈 (爱尔兰)尼尔·理查德·墨菲 (美)克兰蒂·帕里萨 (美)D.斯卡利 (美)托德·安德伍德
- 3072字
- 2025-06-26 18:00:41
2.5 数据完整性
有价值的数据应该被当作有价值的来对待。这意味着要尊重起源、安全性和完整性[10]。我们的数据管理系统从一开始就需要针对这些属性进行设计,以便保证我们能够提供适当的访问控制以及数据完整性。
数据完整性除了安全性和完整性之外,还有另外三个大主题:隐私、政策合规和公平性。值得花点时间从整体的角度来考虑这些主题。我们需要保证了解这些领域提出的要求,这样才能确保我们建立的存储系统和API可以提供所需的各种凭证。
2.5.1 安全性
有价值的机器学习数据通常从私人数据开始。一些组织选择建立流程来简单地将所有PII(个人身份信息)排除在数据存储之外。这是一个非常好的方法,原因主要有以下几个方面。首先它简化了访问控制的问题,其次它消除了数据删除请求的操作负担[11]。而且,它还消除了存储隐私信息带来的相关风险。正如我们所讨论的,准确来说,数据不仅应被视为一种资产,还应被视为一种责任。
我们可能已经成功地从机器学习数据存储中排除了PII。但我们也许不应该指望这一点,原因有二。一方面,我们可能没有像我们认为的那样有效地排除PII。正如前面提到的,如果没有经过深思熟虑的分析,识别PII是出了名地困难,所以除非对所有添加到特征库的数据进行仔细耗时的人工审查,否则在一些数据与其他数据的组合中极有可能含有PII。另一方面,对于许多组织来说,从数据存储中合理地排除所有的PII也许根本不可行。因此,这些组织有义务与责任严格保护其数据存储。
除了对PII的关注,团队可能会发展出对于特定类型数据的特殊用途。对数据存储的合理使用将限制最可能需要和使用该数据的团队对某些数据的访问。如果模型开发者可以很容易地访问(并且只访问)他们最有可能用来构建模型的数据,那么对访问的缜密限制实际上会提高生产力。
在所有情况下,系统工程师都应该跟踪元数据,了解哪些开发团队构建了哪些模型,哪些模型依赖于特征库中的哪些特征,这实际上是一种审计跟踪。这种元数据对于操作和安全性相关的目的来说,即使不是必需的,也是有用的。
2.5.2 隐私
如果机器学习数据是关于个人的,那么存储系统需要有保护隐私的特性。将数据从资产转化为负债的最快方式之一是泄露客户或合作伙伴的私人信息。
对于私人数据的处理,在架构上有两种方案供我们选择:消除它或锁定它。当我们在没有私人数据时仍能获得出色结果的情况下,消除私人数据是一个极其健全的策略。如果我们防止PII数据被存储在数据存储系统中,我们就消除了持有私人数据的大部分风险。
这可能是十分困难的——不仅因为识别私人数据并不总是容易的,而且还因为如果没有私人数据,那么不一定能得到很好的结果。
YarnIt推荐的隐私选项
让我们考虑一下YarnIt的推荐或发现系统。一般的想法是,我们希望在客户访问 yarnit.ai 网站的不同阶段向他们展示其可能有兴趣购买的商品。这可能包括他们登录页面、他们搜索某种类型的纱线或某种品牌的织针、他们把东西放入购物车,以及他们结账等阶段。理想情况下,我们会向他们提出其认为有吸引力的建议。那么,我们需要哪些信息作为系统的输入来确定他们可能也会考虑的产品呢?
历史悠久的方法之一是”购买 X 的人也购买 Y ”。这是有道理的,它允许我们对客户之间存在共性或同质性的大范围内的产品进行合理的推荐。如果每个购买特定类型马海毛纱线的人也购买特定类型的针,我们现在应该可以在没有任何关于单个用户的私人信息的情况下推荐它们。但是,如果我们的客户中存在一些多样性,事情就会变得更加有趣。
例如,如果一个客户对价格的敏感度比其他客户高得多或低得多怎么办?如果他们的预算比典型的马海毛纱线购买者少得多,他们可能选择不购买额外的针,或者只购买低于某个价格的针。或者,如果系统知道这个顾客在以前的交易中已经购买了这些针,那该怎么办?在这种情况下,推荐更多的针可能是在浪费屏幕空间和宝贵的注意力。应该推荐一些我们更有理由相信顾客实际上会有兴趣购买的东西。
然而,要做出这样的推荐,需要私人数据。具体而言,需要个人用户的购买历史。有了这些数据,我们可以很容易地确定某些东西,如大概的预算和以前购买的物品类型,包括已经购买的具体物品。如果我们断定自己的模型只有通过访问私人数据才能实现目标,那么我们将需要认真讨论存储、使用和最终删除这些私人数据的架构。最彻底的结构方法通常需要创建每个用户的数据存储,这些数据存储在静止状态下是加密的,并且通过仅由客户控制的密钥解锁。这在处理其他组织的数据时是最常见的,但对于运行自己训练系统的个人来说则不太常见。此外,使用这样的数据,需要再加上具有多个用户数据的一般数据集来进行联邦学习——这是一个高级话题,超出了本书的范围[12]。(参见图2-5,了解数据的类型和访问控制的含义)。

图2-5:数据在机器学习系统中流动时的选择和处理
鉴于所有这些内容的复杂性,在提取数据时对其进行匿名化处理会大大改善,也更容易。如前所述,匿名化的主题在技术上很复杂,但每个构建机器学习系统的人都需要知道以下两个关键事实:
匿名化是困难的
这是一个正在研究和发展的主题。不要试图蒙混过关,应认真对待并正确处理它。
匿名化与上下文有关
如果不知道还有什么其他数据存在,以及这两块数据之间的关系如何,就无法保证能将数据匿名化。
匿名化是困难的,但并非完全不可能,如果做得好,它可以避免一系列相关问题。请注意,要持久地做到这一点,需要定期审查,以确保当前的匿名化仍然符合实施时对数据和访问权限的假设,还需要每次添加新数据源时的审查,以确保数据源之间的连接不会破坏匿名化。这个主题在第6章会有更广泛的论述。
2.5.3 政策与合规
政策与合规通常来自组织外的要求。在某些情况下,“组织外”实际上是指为YarnIt工作的老板或律师,执行某种外部法律要求,但在其他情况下,其便意味着国家政府的直接干预了。这些需求背后往往有强有力的原因,而在查看需求本身时,这些背后的故事通常并不明显。
这里有一个烦人但却有力的示例。欧洲关于在浏览器中发送cookie的规定,对于网络用户来说,往往显得很霸道、很粗暴,或者很愚蠢。网站在用户的机器上存储标识符应该得到明确的同意,这个想法可能看起来没有必要。但任何了解第三方广告cookie侵犯隐私的力量的人都可以证明,至少在对cookie的一些限制背后有一个真正强有力的理由。虽然“为每个网站询问每个用户”的方法可能不是最优雅和可扩展的,但当我们知道更多关于这些cookie被如何使用,以及防止它们的不良使用有多难时,它就更易于理解了。
应该认真对待数据存储的政策与合规要求。但如果只看要求或标准的文字而不了解其背后的意图,那就错了。通常情况下,简单的方法也可能是合规的,整个行业的顾问都制定了更复杂的合规实践。
如前所述,匿名化是一个潜在的合规捷径。如果数据需要优先特殊处理,可能有一种方法可以避免这些要求,只需确定(和记录)我们不存储任何私人数据。
关于政策和治理要求,还有两件事需要注意:管辖权和报告。
管辖权规则
世界上越来越多的政府主张对存储在其地理位置或来自其地理位置的数据的处理进行控制。虽然这在原则上似乎是合理的,但它与过去几十年来世界上建立网络计算机系统的方式完全不一致。对于一些云计算提供商来说,甚至不可能确保在一个国家产生的数据会在该国得到处理。YarnIt计划在全球范围内销售,尽管我们可能在开始时只推出几个支持的国家。所以我们将不得不仔细考虑需要遵守哪些数据存储和处理的要求。
报告要求
请记住,合规工作需要报告。在许多情况下,报告可以被整合到我们监控服务的方式中。合规性要求是SLO(服务等级目标),报告包括建立实现状态的SLI(服务等级指标),这些SLI与合规性SLO有关。这样想可以使这项工作与我们需要做的其他可靠性的工作与实践一起标准化。