DLAI 机器学习工程师的生产实践笔记(七)
总结 ✨https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/b1bbc3b78b91a533047247d90aa0650a_4.png本节课中我们一起学习了机器学习监控中日志记录的核心知识。我们明确了日志是不可变的时间戳事件记录是系统可观测性的基础。我们探讨了实施日志记录的步骤、面临的挑战如性能影响和处理成本以及如何通过可查询的数据存储如数据库或 Elasticsearch来有效存储和分析日志数据以支持特征分析、趋势识别和根因分析。最后我们强调了收集预测数据对于模型迭代的重要性并简要介绍了直接标注、人工标注、主动学习和弱监督等数据标注技术。记住持续捕获真实环境中的数据是使模型适应动态世界的关键。157机器学习系统的追踪 ️https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/577ca64d43cec0bbcd1fcd131a33178a_0.png在本节课中我们将学习分布式机器学习系统中的追踪技术。追踪专注于监控和理解系统性能尤其是在基于微服务的应用程序中。我们将探讨为何在分布式系统中追踪变得至关重要以及如何通过追踪来诊断性能瓶颈和问题。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/577ca64d43cec0bbcd1fcd131a33178a_2.png从单体系统到分布式系统上一节我们介绍了追踪的基本概念。本节中我们来看看当系统架构从单体式转变为分布式时追踪面临的挑战。在单体系统中从系统的不同部分收集诊断数据相对容易。所有模块甚至可能在一个进程内运行并共享用于日志记录的公共资源。当考虑分布式系统时情况变得更有趣。假设你正在尝试排查一个预测延迟问题。你的系统由许多独立服务组成预测是通过许多下游服务生成的。你无法确定是哪些服务导致了速度变慢。你无法清楚地了解这是程序错误、集成问题、架构选择不当导致的瓶颈还是网络性能不佳。如果你的服务作为分布式系统中的独立进程运行解决这个问题会变得更加困难。你无法依赖那些有助于诊断单体系统的传统方法。你需要更细粒度地了解每个服务内部发生了什么以及它们在用户请求的生命周期内如何相互交互。分布式追踪的必要性从上一节可知在分布式系统中定位问题非常困难。本节我们将深入探讨为何需要专门的追踪技术。从前端网络服务器开始跟踪一个调用直到预测结果返回给用户这个过程变得更加困难。你会注意到我们真正关注的是在线服务。为了正确检查和调试分布式系统中请求的延迟问题你需要理解服务的顺序和并行性以及每个服务对系统最终延迟的贡献。Dapper分布式追踪的解决方案为了解决上述问题谷歌开发了分布式追踪系统Dapper用于检测和分析其生产服务。Dapper论文启发了许多开源项目如Zipkin和Jaeger。Dapper风格的追踪已成为行业范围内的标准。在基于服务的架构中Dapper风格的追踪通过在服务之间传播追踪数据来工作。每个服务用额外的数据注释追踪信息并将追踪头传递给其他服务直到最终请求完成。以下是其核心工作流程的简述请求进入系统生成一个唯一的追踪ID。该ID随请求在服务间传递。每个服务记录其操作的开始时间、结束时间和其他元数据称为一个Span。所有Span数据被收集到追踪后端。追踪的组成与可视化每个追踪都是一个调用树从请求的入口点开始到服务器的响应结束包括沿途所有的RPC调用。每个追踪由称为Span的小单元组成。服务负责将其追踪数据上传到追踪后端。追踪后端然后将相关的延迟数据像拼图一样组合在一起。追踪后端还提供用户界面用于分析和可视化追踪数据。总结https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/577ca64d43cec0bbcd1fcd131a33178a_4.pnghttps://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/577ca64d43cec0bbcd1fcd131a33178a_5.png本节课中我们一起学习了机器学习系统中追踪技术的重要性。我们了解到在分布式微服务架构中传统的日志调试方法难以定位性能瓶颈。通过引入类似Dapper的分布式追踪系统我们可以传播追踪上下文、记录每个服务单元的Span、并在后端聚合可视化从而清晰地洞察请求在系统中的完整路径和每个环节的耗时最终有效地诊断延迟等复杂问题。15829_什么是模型衰减 https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/03ce483dae121542e82b7f5f308380d5_0.png在本节课中我们将要学习机器学习模型在生产环境中面临的一个核心问题模型衰减。我们将探讨模型衰减发生的原因、主要类型以及如何预防它以确保模型在动态变化的环境中保持高性能。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/03ce483dae121542e82b7f5f308380d5_2.png模型衰减概述在许多应用领域中模型衰减是一个关键问题。模型衰减指的是随着时间的推移机器学习模型在生产环境中的性能逐渐下降的现象。这通常是因为模型所处的环境是动态变化的而静态的模型无法适应这些变化。上一节我们介绍了模型衰减的基本概念本节中我们来看看为什么模型衰减会发生以及如何理解它。生产环境中的机器学习模型通常在动态环境中运行。动态环境会发生变化这正是“动态”一词的含义。例如一个推荐系统试图推荐用户可能喜欢的音乐。音乐品味和流行趋势是不断变化的新音乐不断涌现人们的喜好也在改变。如果模型是静态的并持续推荐已经过时的音乐那么推荐的质量就会下降。模型逐渐偏离了当前的真实情况因为它没有针对当前的新趋势进行训练。模型衰减的两种主要类型模型衰减主要有两种类型数据漂移和概念漂移。以下是这两种类型的详细说明。数据漂移数据漂移发生在输入特征即模型接收的数据的统计属性发生变化时。随着输入数据的变化预测请求的输入数据会越来越偏离模型训练时使用的数据从而导致模型准确性下降。这类变化通常发生在人口统计特征上例如年龄分布这些特征可能会随时间而变化。右侧的图表展示了年龄特征的均值和方差如何增加。这就是数据漂移的一个例子。公式表示 若训练数据分布为P_train(X)而生产环境中的数据分布变为P_prod(X)当P_train(X) ≠ P_prod(X)时即发生数据漂移。概念漂移概念漂移发生在特征与标签之间的关系发生变化时。当模型被训练时它学习的是输入特征与真实标签之间的关系。如果这种关系随时间发生变化就意味着你试图预测的事物的“含义”本身发生了改变。世界已经变了但我们的模型并不知道。例如请看右侧的图表。你可以看到两个类别蓝点和红点的特征分布在时间间隔 T1、T2 和 T3 中发生了变化。如果你的模型仍然基于 T1 时期的关系进行预测而世界已经进入了 T3 时期那么它的许多预测将是错误的。公式表示 若训练时的条件分布为P_train(Y|X)而生产环境中的条件分布变为P_prod(Y|X)当P_train(Y|X) ≠ P_prod(Y|X)时即发生概念漂移。注还存在其他相关的漂移形式例如预测漂移仅模型预测结果发生漂移或标签漂移但本课程不会详细讨论它们。模型衰减的影响与应对策略如果不提前为漂移做好计划它会随着时间的推移慢慢渗透到你的系统中。系统漂移的速度取决于你所处领域的性质。有些领域如金融市场可能在几小时甚至几分钟内就发生变化而其他领域的变化则更为缓慢。如果未能检测到漂移无论是数据漂移、概念漂移还是两者兼有模型的准确性就会受损而你却可能对此一无所知。这可能导致需要对模型进行紧急重新训练这是应该尽量避免的情况。因此监控和提前规划至关重要。知道你已经提前做好了计划并建立了相应的系统可能会让你在晚上睡得更安稳。以下是应对模型衰减的关键步骤持续监控建立系统以持续监控模型输入数据的分布和模型预测性能。设定警报当检测到统计属性发生显著变化时触发警报。定期评估与再训练规划模型的定期评估周期并在性能下降时启动再训练流程。自动化管道构建自动化的模型再训练和部署管道以快速响应变化。总结https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/03ce483dae121542e82b7f5f308380d5_4.png本节课中我们一起学习了模型衰减的概念。我们了解到模型衰减是由于生产环境动态变化而导致的模型性能下降主要分为数据漂移和概念漂移两种类型。通过理解这些漂移发生的原因我们可以采取监控、预警和定期再训练等策略来预防和应对模型衰减从而确保机器学习系统能够长期稳定、有效地运行。提前规划应对机制是维持模型在生产环境中生命力的关键。159第30课 检测模型衰减 https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/d7aeef64c4a14fbdae588957974bdd98_0.png在本节课中我们将学习如何检测机器学习模型在生产环境中可能发生的性能衰减。模型衰减通常由数据漂移或概念漂移引起及时发现这些问题是维持模型有效性的关键。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/d7aeef64c4a14fbdae588957974bdd98_2.png概述检测模型衰减的方法上一节我们讨论了模型衰减是一个普遍存在的问题。本节中我们来看看如何具体地检测它。检测模型衰减无论是数据漂移还是概念漂移都始于收集当前数据。数据收集检测的基础以下是检测工作的第一步即数据收集的具体要求你应该收集所有传入模型的预测请求数据以及模型做出的预测结果。如果你的应用场景允许还应该收集模型本应预测出的正确标签或真实值。这对于后续的模型重新训练也极具价值。但至少你必须捕获预测请求数据这些数据可以用来通过无监督的统计方法检测数据漂移。检测流程与工具一旦你建立了持续监控和记录数据的机制检测过程就相当直接了。你将使用工具借助成熟的统计方法来比较当前数据与之前的训练数据。同时你还会使用仪表板来监控数据随时间变化的趋势和季节性。本质上你是在处理时间序列数据因为你的数据是有序的并且与时间成分相关联。在这方面你无需重复造轮子已有一些优秀的工具和库可以帮助你完成这类分析。以下是可用于此类分析的工具和库示例TensorFlow Data Validation (TFDV)River库原scikit-multiflow此外包括谷歌在内的云服务提供商也提供了托管服务来协助完成这项工作。云服务的持续评估功能以谷歌的 Vertex AI Prediction 为例它可以帮助你对预测请求进行持续评估。continuous_evaluation服务会定期从你部署到 Vertex Prediction 的已训练机器学习模型中对预测输入和输出进行采样。随后Vertex 的数据标注服务会分配人工审核员为你的预测输入提供真实值标签或者你也可以自行提供真实值标签。数据标注服务会将模型的预测结果与真实值标签进行比较从而持续提供关于模型随时间推移的性能表现反馈。Azure、AWS 和其他云服务提供商也提供类似的服务。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/d7aeef64c4a14fbdae588957974bdd98_4.png总结https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/d7aeef64c4a14fbdae588957974bdd98_5.png本节课中我们一起学习了检测模型衰减的核心步骤。关键在于系统地收集生产环境中的预测请求、模型输出以及如有可能真实标签数据。利用专门的工具如 TFDV、River或云平台的托管服务通过统计比较和时间序列分析可以有效地监控数据分布和模型性能的变化从而及时发现衰减迹象。16031_缓解模型衰减的方法 ️https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/b172d1d55df60354500d1c7d366b00ab_0.png在本节课中我们将学习当检测到模型性能衰减即模型衰减后可以采取哪些具体措施来缓解这一问题。模型衰减通常由数据漂移引起我们将探讨从数据管理、模型再训练策略到流程自动化的完整应对方案。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/b172d1d55df60354500d1c7d366b00ab_2.png检测到衰减后的基本步骤上一节我们讨论了如何检测模型衰减。本节中我们来看看检测到衰减后首先应该做什么。你需要将模型衰减的情况告知相关的运营和业务利益相关者并附上你对漂移严重程度的初步评估。随后你的工作重点是将模型的性能恢复到可接受的水平。构建新的训练数据集在着手恢复模型性能之前你需要决定如何处理新旧训练数据。以下是几种常见的方法。首先可以尝试使用无监督方法如聚类或统计方法如计算散度来确定旧训练数据中哪些部分仍然有效。可选的方法包括Kullback-Leibler (KL) 散度、Jensen-Shannon (JS) 散度或Kolmogorov-Smirnov (KS) 检验。这一步是可选的但在新数据不足时尽可能保留有效的旧数据尤为重要。另一种方法是直接丢弃训练数据集中某个日期之前收集的部分并加入新数据。或者如果你有足够新标注的数据可以直接创建一个全新的数据集。具体选择哪种方法通常取决于你的应用场景现实和收集新标注数据的能力。模型再训练策略现在你有了新的训练数据集。对于如何训练模型你基本上有两种选择微调或从头开始。你可以选择继续训练现有模型使用新数据从最后一个检查点开始进行微调。也可以选择重新初始化模型并完全重新训练。这两种方法都有效。选择哪种很大程度上取决于你拥有的新数据量以及自上次训练以来数据分布发生了多大程度的漂移。理想情况下如果你有足够的新数据应该尝试两种方法并比较结果。制定再训练策略为模型再训练制定明确的策略通常是个好主意。这里没有绝对正确或错误的答案一切取决于你的具体情况。你可以选择在必要时才重新训练模型例如检测到数据漂移时或者需要增删类别标签或特征时。你也可以按照固定的时间表重新训练模型无论是否需要。实践中很多人这样做因为它简单易懂并且在许多领域效果相当好。然而这可能导致不必要的训练和数据收集成本如果训练过于频繁或者允许模型衰减超出理想范围如果训练不够频繁。最后你可能受到新训练数据可用性的限制。在数据标注缓慢且昂贵的场景中尤其如此。因此你可能被迫尽可能长时间地保留旧训练数据并避免完全重新训练模型。实现自动化再训练流程如果能自动化检测需要模型再训练的条件那将是最理想的。这包括能够检测到模型性能下降并触发再训练或者检测到显著的数据漂移时自动触发。为了实现自动化再训练你应该有一个独立的流程来自动收集和标注数据并且只在有足够数据可用时才触发再训练。理想情况下你还应该设置持续训练、集成和部署流程使整个过程完全自动化。对于那些变化快速、需要频繁再训练的领域这些自动化流程不再是奢侈品而是必需品。模型架构与设计的重新考量当模型衰减超出可接受的阈值或者你试图预测的变量含义发生显著变化时你可能需要重新设计数据预处理步骤和模型架构。我喜欢将此视为一个改进的机会。你可能需要重新思考特征工程、特征选择等以使你的模型适应当前数据并选择从头开始重新训练模型而不是应用微调。你可能还需要研究其他潜在的模型架构我个人认为这非常有趣。这里的重点是没有模型可以永远有效。你需要定期回到起点重新开始并应用自上次更新模型以来所学到的一切。总结https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/b172d1d55df60354500d1c7d366b00ab_4.png本节课中我们一起学习了缓解模型衰减的一系列方法。我们从检测到衰减后的基本沟通步骤开始探讨了如何构建新的训练数据集比较了微调与完全重新训练两种策略并讨论了制定再训练计划的重要性。我们还了解了实现自动化再训练流程的价值以及在必要时重新考量模型架构与设计的必要性。记住应对模型衰减是一个持续的过程需要结合监控、策略和自动化来有效管理。161负责任的AI https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/48b4a3ac21e85043347f23f559732e35_0.png在本节课中我们将探讨负责任的AI这一新兴议题并了解作为开发者你可以采取哪些措施来确保你的模型和应用尽可能负责任。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/48b4a3ac21e85043347f23f559732e35_2.png概述人工智能的发展为改善世界各地人们的生活创造了新机遇从商业到医疗保健再到教育等领域。然而与此同时它也引发了关于如何最好地将公平性、可解释性、隐私和安全性融入这些系统的新问题。这些问题远未解决是当前极其活跃的研究和开发领域。构建负责任的AI系统上一节我们介绍了负责任AI的重要性本节中我们来看看构建此类系统时需要考虑的具体方面。关注用户体验评估系统预测、推荐和决策的真实影响关键在于实际用户的体验。例如你应该在设计功能时就内置适当的披露说明。清晰度和可控性对于良好的用户体验至关重要。考虑辅助与建议在答案很可能满足多样化用户和用例的情况下提供单一答案是合适的。但在其他情况下系统向用户建议几个选项可能更好。事实上这样做有时甚至更容易因为要确保单一答案Top-1的高精确度通常比确保前几个答案例如Top-3的精确度要困难得多。规划与测试在设计过程的早期就应尝试规划对潜在负面反馈的建模。随后在全面部署之前应对一小部分流量进行具体的实时测试和迭代。吸纳多元反馈最后与多样化的用户群体和不同的用例场景互动并在项目开发之前和整个过程中吸纳他们的反馈。这将在项目中融入丰富的用户视角增加从技术中受益的人数并帮助你及早发现潜在问题。评估与度量上一节我们讨论了构建过程中的考量本节中我们来看看如何评估系统的表现。以下是评估系统时可以考虑的一些关键度量指标用户反馈 包括来自用户调查的反馈。系统性能 跟踪整体系统性能的量化指标。产品健康度 短期和长期的产品健康指标例如点击率和客户终身价值。错误率分析 在不同子群体中切分的假阳性率和假阴性率。当然你选择的度量指标至关重要。你应该努力确保你的指标适合系统的背景和目标。例如火灾报警系统应该具有高召回率即使这意味着偶尔会有误报。数据的重要性正如我们一直强调的一切最终都回到数据上。机器学习模型将反映它们所训练的数据因此请仔细分析你的原始数据以确保你理解它。理解你的数据在无法直接分析原始数据的情况下例如涉及敏感数据应在尊重隐私的前提下尽可能理解你的输入数据。例如可以通过计算聚合的匿名摘要来实现。检查数据代表性考虑你的数据采样方式是否能代表你的用户。例如如果你的应用将被所有年龄段的人使用但你的训练数据仅来自老年人那么它可能对其他年龄段的用户效果不佳。想象一下当你所有的数据都来自老年人时去做音乐推荐我的猜测是它对青少年可能效果不佳。注意代理标签有时你会使用模型来预测你感兴趣的实际目标的代理标签因为对实际目标进行标注很困难或不可能。在这些情况下请考虑你拥有的数据标签与你试图预测的实际事物之间的关系。是否存在有问题的差距例如如果你使用数据标签X作为代理来预测目标y那么在哪些情况下x和y之间的差距会成为问题总结https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/48b4a3ac21e85043347f23f559732e35_4.png本节课中我们一起学习了负责任的AI的核心概念。我们探讨了在构建AI系统时关注用户体验、进行多元化测试与反馈的重要性。我们了解了评估系统时使用多种度量指标的必要性并再次强调了深入理解数据、检查其代表性以及注意代理标签潜在问题的基础性作用。虽然构建完全负责任的AI系统是一个持续的挑战但通过应用这些原则和不断发展的工具开发者可以显著提升其模型和应用的负责任程度。162安全私密AI的法律要求 ⚖️在本节课中我们将探讨实践负责任AI所涉及的法律层面。我们将了解现有的法律要求、数据隐私的重要性以及如何保护机器学习模型免受攻击确保用户数据的安全与私密。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_1.png法律要求概览实践负责任AI存在法律层面。一些国家和地区已有法律要求且这一趋势正在增长。承担民事责任的风险是另一个需要关注的问题。现在我们来探讨一些具体问题。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_1.png敏感数据的隐私保护训练数据、预测请求或两者都可能包含关于个人的非常敏感的信息。对于预测请求这些人就是你的用户。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_3.png敏感数据的隐私应受到保护。这不仅包括遵守法律和监管要求还需考虑社会规范和个人的普遍期望。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_4.png考虑到机器学习模型可能会记住或暴露它们所接触数据的某些方面你需要采取哪些保障措施来确保个人隐私需要哪些步骤来确保用户对其数据拥有足够的透明度和控制权这并非仅由你决定需要什么。例如在欧洲你需要遵守《通用数据保护条例》GDPR在加利福尼亚州你需要遵守《加州消费者隐私法案》CCPA。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_3.pnghttps://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_4.pnghttps://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_6.png主要法规介绍上一节我们提到了数据隐私的重要性本节中我们来看看两项重要的法律框架。《通用数据保护条例》GDPR由欧盟于2016年颁布并成为欧盟以外许多国家法律的范本包括智利、日本、巴西、韩国、阿根廷和肯尼亚。它规范了欧盟和欧洲经济区的数据保护与隐私。GDPR赋予个人对其个人数据的控制权并要求公司保护员工和消费者的数据。当数据处理基于同意时数据主体通常为个人有权随时撤销其同意。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_8.png《加州消费者隐私法案》CCPA以GDPR为范本具有相似的目标包括增强加州居民的隐私权和消费者保护。它规定用户有权知道正在收集关于他们的哪些个人数据包括个人数据是否被出售或以某种方式披露、谁提供了他们的数据以及谁接收了他们的数据。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_6.pnghttps://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_10.png用户可以访问公司持有的关于他们的个人数据阻止其数据被出售并要求企业删除其数据。机器学习中的安全与隐私危害安全与隐私对于机器学习中的某些问题或危害是紧密相连的。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_10.pnghttps://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_12.png信息危害是指信息从模型中泄露所造成的危害。至少存在三种不同类型的信息危害以下是不同类型信息危害的列表成员推断攻击者能够确定某个个体的数据是否包含在训练集中。模型反演攻击者实际上能够重建训练集。模型提取攻击者能够重建模型本身。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_12.pnghttps://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_14.png行为危害是指攻击者能够改变模型本身行为所造成的危害。这包括https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_16.png以下是不同类型行为危害的列表投毒攻击攻击者能够将恶意数据插入训练集。规避攻击攻击者对预测请求进行微小更改导致模型做出错误预测。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_14.png因此保护你的模型免受攻击同时确保用户数据的隐私和安全至关重要。防御攻击的方法了解了可能面临的危害后本节我们来看看如何防御这些攻击。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd461e1f78d28771d8f93190cec9a_16.png在训练和服务模型时你应该考虑隐私增强技术例如安全多方计算SMC或全同态加密FHE。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_18.png简而言之SMC使多个系统能够安全地协作来训练和/或服务模型同时通过使用共享秘密来确保实际数据的安全。另一方面FHE使开发人员能够在加密数据上训练模型而无需先解密。特别是FHE允许用户发送加密的预测请求并接收加密的结果。在整个过程中数据除了用户之外从未被解密。然而你应该意识到目前FHE的计算成本非常高。这里的目标是通过使用密码学你可以保护训练数据的机密性。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_18.png差分隐私简介https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_20.png粗略地说如果一个攻击者看到模型的预测结果后无法判断某个特定用户的信息是否包含在训练数据中那么这个模型就是差分隐私的。通过实现差分隐私你可以在私有数据上负责任地训练模型。它提供了可证明的隐私保证降低了暴露敏感训练数据的风险。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_22.pnghttps://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_20.png让我们简要讨论实现差分隐私的三种不同方法以下是三种差分隐私实现方法的列表差分隐私随机梯度下降DP-SGD教师模型集合的私有聚合PATE保密与隐私协作学习CAPChttps://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_22.png差分隐私随机梯度下降DP-SGD如果攻击者能够获得一个正常训练的模型的副本那么他们可以利用权重来提取私有信息。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_24.png差分隐私随机梯度下降DP-SGD通过在训练过程中应用差分隐私来消除这种可能性。它通过在小批量随机优化过程中添加噪声来实现这一点。结果是得到一个训练好的模型由于差分隐私的后处理免疫特性该模型保留了差分隐私。后处理免疫是差分隐私的一个基本属性意味着无论你如何处理模型的预测都不会影响其隐私保证。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_24.png教师模型集合的私有聚合PATE接下来我们看看教师模型集合的私有聚合PATE。PATE首先将敏感数据划分为K个不重叠的分区。然后分别在每个分区数据上训练K个模型作为教师模型然后将它们的结果聚合到一个聚合教师模型中。这与用于知识蒸馏的师生模型类似。在聚合教师模型的聚合过程中你会以一种不影响最终预测结果的方式向输出添加噪声。所有这些模型和敏感数据对最终用户包括攻击者都是不可用的。对于部署你将创建一个学生模型。为了训练学生模型你将获取未标记的公共数据并将其输入聚合教师模型。此过程的输出是标记数据且保持了隐私性。你将使用这些数据作为学生模型的训练集。训练完成后你将丢弃本图左侧的所有内容仅部署学生模型供使用。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_26.pnghttps://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_26.png保密与隐私协作学习CAPC保密与隐私协作学习CAPC使使用不同数据的多个开发人员能够协作提高模型准确性而无需共享信息。这同时保护了隐私和机密性。为了实现这一点它应用了密码学和差分隐私的技术与原理。这包括使用同态加密HE来加密每个协作模型接收的预测请求从而不泄露预测请求中的信息。然后它使用PATE向每个协作模型的预测添加噪声并使用投票来得出最终预测同样不泄露信息。CAPC应用的一个很好的例子是考虑一组希望协作改进彼此模型和预测的医院。由于医疗隐私法他们不能直接共享信息但使用CAPC他们可以在保护患者隐私和机密性的同时获得更好的结果。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_28.png总结https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/94fd4461e1f78d28771d8f93190cec9a_28.png本节课中我们一起学习了实践安全私密AI的法律要求。我们了解了GDPR和CCPA等关键法规认识了机器学习中信息危害和行为危害的类型并探讨了通过安全多方计算、全同态加密以及差分隐私技术如DP-SGD、PATE和CAPC来防御攻击、保护用户数据隐私和安全的方法。遵守法律要求并实施强有力的隐私保护措施是构建负责任且可信赖的AI系统的基石。163匿名化与伪匿名化 https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/0c1ebacf25c73cba4b9e37d4659c5adc_1.png在本节课中我们将学习数据隐私保护中的两个核心概念匿名化与伪匿名化。我们将探讨它们的定义、区别、实现方式以及在《通用数据保护条例》GDPR框架下的应用。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/0c1ebacf25c73cba4b9e37d4659c5adc_3.png《通用数据保护条例》GDPR包含了许多旨在保护用户数据隐私的法规并对其使用的诸多术语进行了定义。其中我们将重点讨论两个术语匿名化与伪匿名化。匿名化不可逆的隐私保护上一节我们提到了GDPR的隐私保护目标本节中我们来看看匿名化的具体含义。匿名化是指从数据集中移除所有个人可识别信息PII使得数据所描述的个人身份保持匿名。GDPR第26条序言将可接受的匿名化定义为不可逆的过程其实现方式必须达到无法识别具体个人的程度。这意味着即使是负责匿名化的一方也无法从数据中推导出任何见解或离散的个人信息。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/0c1ebacf25c73cba4b9e37d4659c5adc_5.png一旦数据被成功匿名化GDPR的法规将不再适用于该数据。核心概念匿名化数据 原始数据 - 所有个人可识别信息(PII)且此过程不可逆。伪匿名化可逆的标识符处理https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/0c1ebacf25c73cba4b9e37d4659c5adc_7.png了解了不可逆的匿名化后我们再来看看另一种可逆的处理方式。伪匿名化则有所不同。这是一个可逆的过程意味着如果获得了正确的附加信息仍然可以识别出具体的个人。伪匿名化可以通过数据掩码、加密或令牌化等技术来实现。它的有效性依赖于对附加识别信息访问权限的严格控制。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/0c1ebacf25c73cba4b9e37d4659c5adc_9.png核心概念伪匿名化数据 原始数据 - 直接标识符 加密密钥/映射表此过程可逆。核心区别可逆性为了更清晰地理解匿名化与伪匿名化之间最大的区别在于伪匿名化数据可以通过一组附加信息或加密密钥进行还原而匿名化则是不可逆的。数据隐私的连续光谱多年来业界已经发展出许多方法、机制和工具能够产生具有不同匿名程度和可识别能力的数据。这构成了一个从“个人可识别”到“完全匿名”的连续光谱。以下是这个光谱的主要组成部分个人可识别数据包含姓名、地址、电话、邮箱等直接标识符。伪匿名化与去标识化数据构成了光谱的中间类别。它们确实是保护数据隐私某些方面的一种方式但尚未达到真正匿名化数据的级别。需要注意的是去标识化数据与伪匿名化数据之间的界限并不十分明确许多讨论会将它们归为一类。真正的匿名化数据符合GDPR指南不包含任何个人可识别信息PII并且即使拥有附加信息也无法与PII关联。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/0c1ebacf25c73cba4b9e37d4659c5adc_11.png需要匿名化的数据范围那么数据的哪些部分应该被匿名化呢基本上所有属于个人可识别信息PII的部分都需要处理。这包括任何能够揭示个人身份的数据即所谓的“标识符”。这里的“标识符”指任何在世或已故的自然人或法人包括其家属、祖先和后代。此外也包括那些可能通过直接或间接关系被识别的其他相关人员。例如需要处理的标识符特征包括姓氏、父姓、名字、婚前姓、别名地址、电话号码银行账户详情、信用卡信息税号等https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/0c1ebacf25c73cba4b9e37d4659c5adc_13.png本节课中我们一起学习了匿名化与伪匿名化这两个关键的数据隐私保护技术。我们明确了匿名化是不可逆的移除PII的过程而伪匿名化则是可逆的标识符替换或加密过程。理解它们在数据隐私连续光谱中的位置以及明确哪些数据属于需要处理的PII对于在GDPR等法规框架下合规地处理用户数据至关重要。16435_被遗忘权 ➡️️https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/3e7f8cac00212a51bd079dfaa04e25fb_1.png在本节课中我们将学习《通用数据保护条例》GDPR中的“被遗忘权”。我们将了解其定义、适用场景、例外情况以及如何在实践中实施数据删除。理解这些内容对于负责任地处理用户数据和构建合规的机器学习系统至关重要。概述与术语澄清首先我们需要澄清一些关键术语。在GDPR的语境中数据主体指个人。控制者指控制包含个人可识别信息PII数据集的个人或组织。明确了这些术语后我们可以开始探讨核心问题。被遗忘权的适用场景那么个人在什么情况下拥有被遗忘权呢GDPR列举了一系列个人有权要求删除其个人数据的原因。以下是主要情形列表个人数据对于组织最初收集或处理它的目的而言不再必要。组织依赖个人同意作为处理数据的合法依据而该个人撤回了同意。组织以合法利益为由处理个人数据个人对此提出反对且组织没有压倒性的合法利益来继续处理。组织为直接营销目的处理个人数据个人对此提出反对。组织非法处理了个人数据。组织必须删除个人数据以遵守法律裁决或义务。组织处理了儿童的个人数据以向其提供信息社会服务例如社交网络。通常如果满足上述任一条件就必须删除该个人的数据。这些规定大多符合常识。被遗忘权的例外情况然而在某些情况下组织处理个人数据的权利可能优先于个人的被遗忘权。以下是GDPR中列举的例外情况数据被用于行使言论自由和信息自由权。数据被用于遵守法律裁决或义务。数据被用于执行符合公共利益的任务或行使组织的官方职权。被处理的数据对于公共卫生目的和公共利益是必要的。被处理的数据对于执行预防性或职业性医学是必要的仅适用于由受职业保密法律义务约束的健康专业人员处理数据时。数据代表了服务于公共利益、科学研究、历史研究或统计目的的重要信息删除数据可能会损害或阻碍实现处理目标。数据被用于建立法律辩护或行使其他法律主张。此外如果组织能证明删除请求是毫无根据或过度的可以收取合理费用或拒绝该请求。但一般而言除非你明确符合上述例外条件之一否则应避免凌驾于个人的被遗忘权之上。如有疑问应以保护隐私为先。其他相关数据权利GDPR还规定了数据主体拥有的其他一系列权利。上一节我们讨论了被遗忘权本节中我们来看看这些补充性权利它们共同构成了个人数据保护的核心。更正权个人有权要求更正其不准确的个人信息。这在信用记录、健康记录或就业记录等场景中尤为重要。访问权数据主体有权访问其个人数据。限制处理权数据主体有权限制对其数据的处理。数据可携权数据主体有权以结构化、通用和机器可读的格式接收其提供给控制者的个人数据并有权将这些数据传输给另一个控制者。反对权数据主体有权反对基于特定情况对其个人数据进行的处理。作为一般规则最好以保护隐私为先将数据中的所有个人信息都视为敏感信息。应限制对其的访问并确保其安全。最重要的是应将其视为信息所属者的财产并尊重他们的意愿。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/3e7f8cac00212a51bd079dfaa04e25fb_3.png实施数据删除的要求https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/3e7f8cac00212a51bd079dfaa04e25fb_5.png当你收到有效的删除个人信息请求时需要执行一系列操作。以下是需要完成的步骤列表识别所有相关信息识别与请求删除内容相关的所有信息。删除关联元数据识别并删除与该个人相关的所有元数据。处理衍生数据如果你进行过任何分析或训练过任何模型则衍生的数据、日志和模型也必须被删除或修正。此处的目标是尽可能做到仿佛你从未拥有过他们的数据。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/3e7f8cac00212a51bd079dfaa04e25fb_7.png数据删除的两种方法基本上有两种删除数据的方法可以满足GDPR的要求。1. 数据匿名化正如之前所见匿名化将使数据在GDPR条款下不再具有个人可识别性。GDPR将不再适用于匿名化后的数据。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/3e7f8cac00212a51bd079dfaa04e25fb_9.png2. 硬删除即实际删除数据包括数据库中可能包含它的任何行。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/3e7f8cac00212a51bd079dfaa04e25fb_11.png通常你的第一反应可能总是进行硬删除。但这通常会带来问题因此匿名化是另一个选择。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/3e7f8cac00212a51bd079dfaa04e25fb_13.png匿名化与硬删除的考量https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/3e7f8cac00212a51bd079dfaa04e25fb_15.png在数据库或任何类似的关系型数据存储中删除记录可能会造成严重破坏。部分原因是用户数据通常被多个表引用。删除这些记录会破坏连接这在大型复杂数据库中尤其困难。例如它可能破坏外键约束。另一方面匿名化保留记录只对包含PII的字段进行匿名化处理同时仍能满足GDPR的要求。这通常能更好地维持数据完整性和系统稳定性。实施被遗忘权的挑战https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/3e7f8cac00212a51bd079dfaa04e25fb_17.png实施被遗忘权面临几个挑战。识别数据隐私是否被侵犯的过程本身就是一项艰巨的任务。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/3e7f8cac00212a51bd079dfaa04e25fb_19.png为了执行GDPR需要进行一些组织变革包括政策变更和培训员工如何执行被遗忘权。还有一个最后需要考虑的棘手问题。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/3e7f8cac00212a51bd079dfaa04e25fb_21.png备份数据的处理如果你的组织维护数据的多个备份实际上你应该这样做确保个人数据已从所有备份中删除是具有挑战性的。你可能需要改变数据存储和备份实施方案以保持对GDPR的合规性。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/dlai-ml-engi-prod-prac/img/3e7f8cac00212a51bd079dfaa04e25fb_23.png总结本节课中我们一起学习了GDPR中的“被遗忘权”。我们了解了它的定义、触发条件、例外情况以及其他相关的数据主体权利如更正权。我们还探讨了实施数据删除的两种主要方法匿名化与硬删除及其各自的考量并指出了在数据库关系维护和备份处理中可能遇到的挑战。像GDPR和被遗忘权这样的问题在商业环境中运营已经至关重要。理解围绕它们的机器学习问题只会变得越来越重要。我们已经为你提供了该领域现状的基本理解但我强烈建议你持续关注新的发展。同时我认为尊重客户隐私、极其谨慎地对待你拥有的任何信息或PII始终是重要的我强烈建议你这样做。