收益:
- 能够了解 MLOps 阶段(发布、部署、监控、再训练、回滚)和模型漂移并规划受监控的部署
- 能够应用模型公平性、透明度和问责制的原则,并区分统计准确性和道德可接受性
- 能够根据 KVKK/GDPR 原则保护个人数据,并在影响重大的决策中将最终责任分配给人员
训练模型并获得高分并不是结束,而是中间。当模型投入生产并可靠运行、随着时间的推移受到监控而不会恶化,并且整个过程在道德和法律范围内进行时,真正的价值才会出现。这个闭幕单元结合了三个主题:MLOps(上线、监控和维护模型的纪律)、道德(公平、透明、非恶意)和隐私(保护个人数据)。人工智能在这些领域生成代码、清单和蓝图;但模型是否上线、谁会受到影响以及可以使用哪些数据是由人类决定的。这些决定不是技术决定,而是责任决定。
MLOps:模型像产品一样存在
MLOps(机器学习操作 - 在生产中运行、监控和更新机器学习模型的实践)是软件开发中 DevOps 对数据科学的适应。基本思想:模型不是训练一次就忘记的文件,而是需要不断维护的活产品。主要阶段:
1.版本控制:代码(Git)、数据和模型一起进行版本控制;它记录了哪个模型是用哪些数据和代码生成的。
2. 部署:模型作为 API 或批处理作业投入使用。它通常首先提供给一小部分观众(阴影/金丝雀分布)。
3. 监控:持续监控模型的性能和输入数据。
4.重新训练:当性能下降时,使用更新的数据重新训练模型。
模式转换:无声失真
生产中最大的危险是模型漂移(模型漂移/数据漂移)。世界变了;您训练模型的条件(客户行为、价格、季节、立法)会随着时间的推移而发生变化,模型开始变得过时。例如,疫情前训练的需求模型在疫情期间就完全错误。漂移有两种形式:数据漂移(输入数据分布变化)和概念漂移(输入与目标变化之间的关系)。捕获这些的方法是监控:不断跟踪输入分布、预测分布以及(如果可能)与实际结果相比的性能。
注意:投入生产的型号会自行老化;这不是“如果”的问题,而是“何时”的问题。在不设置监控的情况下部署模型就像在不控制发动机的情况下驾驶汽车一样;有一天,它就静静地坐在那里,你没有注意到。
MLOps 元素
目的
如果被忽视
版本控制
知道生产什么
不可复制、不可追踪
监控
早发现滑落
模型悄然崩溃
再培训
保持最新状态
预测已经过时
回滚
返回到坏模型
有缺陷的模型仍然存在
文档
透明度、营业额
信息被困在一个人身上
道德:模型决策影响人们
数据模型越来越多地用于影响人们生活的决策:信贷、招聘、保险、司法。权力伴随着责任。主要道德风险:
偏见和歧视:该模型可以学习并延续历史数据中的不公正现象。如果某个群体过去获得的信用较少,该模型就会假定这是一条“规则”并自动进行歧视。这就是为什么公平性分析(检查模型对于不同群体(性别、年龄、地区)的表现是否相似)至关重要。
透明度和可解释性:您应该能够解释为什么模型拒绝一个人。 “黑匣子是这么说的”在道德上和法律上往往都是不可接受的。这就是为什么可解释性工具(特征重要性、SHAP 值)很有价值。
责任:如果模型做出错误的决定,谁负责?答案始终是个人/机构,而不是模特。在高影响力的决策中应保留人为监督(人在环——人批准最终决策)。
注意:模型可能在统计上是“正确的”,但在道德上是不可接受的。系统性地使某一群体处于劣势的高精度模型并不是一个好模型。诚实不能代替正义。
隐私:个人数据受到精心保护
数据科学的原材料通常是个人数据,这些数据受法律保护:土耳其的 KVKK、欧洲的 GDPR。基本原则是:目的限制(数据不用于收集目的以外的目的)、数据最小化(不收集/保留不必要的数据)、匿名化(删除识别信息)和安全性(数据保持加密并限制访问)。使用人工智能工具时的关键规则:切勿将真实的个人数据粘贴到公共人工智能工具中。大多数时候,图表和匿名/合成样本足以进行分析。
在信息安全方面的另一个重点是:仅在您有权访问的数据和系统上使用数据科学工具和技术,以达到防御和合法分析的目的。未经授权访问他人的数据、重新识别个人身份(从匿名数据中提取身份)或未经授权的分析既非法又不道德。
三个迷你箱子
案例 1——未追踪的倒塌。一家电子商务公司上线了其推荐模型,但没有设置跟踪。 4个月后产品目录发生了较大变化;模型持续推荐过时产品,转化率悄然下降30%。几个月来没有人注意到。教训:没有监控的部署是盲目的。
案例2——隐藏的歧视。招聘筛选模型了解了历史数据中的性别失衡,并系统地低估了女性候选人。因为没有进行公平性分析,所以没有被注意到;审计发现,该机构面临严重的声誉/法律风险。教训:基于群体的公平控制在高影响力模型中至关重要。
案例 3——违反保密规定。一位分析师将包含真实客户电子邮件和购买历史记录的文件加载到公共人工智能工具中,并说:“总结细分市场。”个人数据已离开机构; KVKK 流程已启动。正确的方法是删除身份字段并仅共享匿名属性。教训:真实的个人数据不会进入开放工具。
四个可复制模板
1) 部署前检查表:
您的角色:MLOps 顾问。列出在将模型投入生产之前需要检查的内容:版本控制、监控指标、回滚计划、性能阈值、数据漂移警报、负责人。为每一项添加一句话“为什么它很重要”的解释。我会决定。
2)模型移位跟踪设计:
为生产中的分类模型建议一个漂移监控计划:(1) 我应该监控哪些输入分布,(2) 预测分布的警报是什么,(3) 当实际结果到达时如何比较性能,(4) 应在什么阈值下触发重新训练。还提供了代码框架。
3)公平控制:
编写代码来比较我的模型在不同组(例如年龄带、地区)的性能:每个组的召回率/精确率和积极决策率。如果组间存在显着差异,则发出警告。做出因果/政治解释;只要告诉我差异,我就会考虑这个决定。
4)隐私预检查:
在向人工智能工具提供数据之前,请检查:下面的列列表中是否有个人/身份数据(姓名、电子邮件、ID、电话、地址、IP)?如果是这样,请列出哪些应该被删除或匿名。列:[列表]。目的:仅共享匿名模式。
弱提示/强提示
弱提示:
我的模型已准备就绪,可以上线了。
部署不是一步到位;没有监控、回滚、公平和隐私控制的上线是无声的灾难。
强力提示:
您的角色:负责任的 MLOps 顾问。我的模型已经训练完毕,我想在上线前做好充分的准备。生成:(1)预部署清单,(2)漂移监控计划,(3)基于组的公平性检查代码,(4)隐私检查(是否有个人数据)。还建议如何在高影响力的决策中保护人类的同意。最终的决定是我的。
在这里,分发、监控、公平和隐私被视为一个单一的负责任的过程。
常见错误
- 部署模型而不设置监控。模型悄无声息地滑动并扭曲;可能需要几个月的时间才能注意到。
- 绕过司法检查。高保真模型可能会系统性地使某个群体处于不利地位。
- 做出无法解释的黑匣子决定。高影响力的决策必须是可以解释的; “模型是这么说的”是不够的。
- 为开放AI工具提供真实的个人数据。违反 KVKK/GDPR;图表和匿名示例就足够了。
- 将决策委托给模型。责任总是在一个人身上;维持高影响力的人类监视。
提示:在使用每个模型之前,请大声问一个问题:“如果这个模型明天悄然崩溃或不公平地惩罚某个群体,我将如何注意到并回滚它?”如果您对这个问题没有明确的答案,则该模型尚未准备好投入生产。
总之
模特的工作并不是以高分结束,而是以在生产中可靠、负责任的工作结束。 MLOps 是一门关于上线、监控漂移、重新训练和回滚模型的学科;没有跟踪的部署就是无声的崩溃。道德要求模型的公平性、透明度和问责制;统计准确性并不能替代道德可接受性。隐私意味着按照 KVKK/GDPR 原则保护个人数据,并使真实数据远离开放工具。所有这些决定都不是技术性的,而是责任性的决定,并且始终属于人类。
应用任务
想象一下,如果您要将已构建(或假设)的模型投入生产,并填写四个列表:(1)部署前清单,(2)您将跟踪的漂移指标,(3)基于组的公平控制计划,(4)隐私控制。然后写下这个问题的具体答案:“如果明天它默默地坏了,我将如何注意到它并把它找回来?”
清单
- [ ] 我是否使用监控(失误警报)和回滚计划来部署模型?
- [ ] 我是否检查过不同群体的公平性/绩效差距?
- [ ] 我是否在高影响力的决策上保持了人机参与?
- [ ] 我是否按照 KVKK/GDPR 原则保护个人数据并使其远离开放工具?
- [ ] 我是否将最终责任归于人类而不是模型?
模块考试
1. 数据科学家询问人工智能:“随机森林对这些数据的准确度如何?”根本不训练模型,直接把“89%”的答案放到presentation中。这种方法的根本错误是什么?
- A)等待指标而不将数据和模型交给人工智能;忽略它产生的数字是假的,并且真正的指标只能通过训练和测试才能找到✔
- B)必须使用逻辑回归而不是随机森林
- C) 准确率必须始终保持在90%以上。
- D) 严禁在演示文稿中包含指标
说明:人工智能在不访问模型和数据的情况下无法产生指标;他给出的数字是幻觉(捏造的)。该指标是在模型经过实际训练和测试后,由数据科学家自己计算得出的。未经验证的输出就像未经签名的报告。
2. 在收集客户流失预测数据时,包含“账户关闭原因”栏;此栏仅在客户离开后填写。该模型在测试集上的准确率为 97%,但在生产中不起作用。这种情况的名称和原因是什么?
- A)过度学习;模型太复杂
- B) 数据泄露; ✔ 使用预测时不可用但目标结果的信息作为特征
- C) 学习不够;模型太简单
- D) 选择偏差;小样本量
解释:这是一个典型的数据泄漏:“关闭原因”是目标的结果,并且在预测时仍然为空。该模型利用这些未来的知识来实现这一点,它在测试集上看起来很棒,但在生产中却崩溃了,因为该列是空的。应该向每一列询问“我在预测时是否拥有它”这个问题。
3. 分析师用均值填写收入栏中的缺失值;但失踪人员实际上属于从未申报收入的低收入阶层(系统性失踪)。为什么这个填写不正确?
- A)平均数总是大于中位数,所以这是不正确的
- B) 永远不应该填写缺失值,而应该删除它们
- C)用均值填补系统缺口会人为地代表该组,从而扭曲数据;填充完成时没有问“为什么它是空的?”的问题。 ✔
- D)计算平均值会产生性能问题,因为它太慢
说明: 缺陷的原因决定了解决方案。当系统性缺失(缺口集中在某个群体)被平均数填补时,该群体就被人为地变成了“平均收入”,数据就被扭曲了。在填充之前,应该问“为什么它是空的”;不应填充系统/显着缺失的均值。
4. 团队发现“广告支出”和“销售额”之间的相关性为 0.78,并将预算加倍;然而,真正触发这两者的是季节性活动。统计学中的什么原理可以解释这个错误?
- A)相关性不是因果关系;隐藏的第三个变量可能会影响这两个变量 ✔
- B) 由于 0.78 的相关性太低,因此应忽略该关系
- C) 相关性总是能证明因果关系,团队是对的
- D) 广告和销售之间的相关性无法用数学方法计算。
说明:相关性不是因果关系。这两个变量可能会一起起作用,因为隐藏的第三个变量(此处为季节性活动)会同时影响它们。一个导致另一个的结论只能通过实验和现场知识才能成立;相关性的数量本身并不能证明因果关系。
5. 欺诈检测模型的准确率达到 99.2%,团队庆祝;然而,数据中的虚假交易率仅为0.8%,模型的召回率为6%。这张表显示了什么?
- A) 该模型是完美的,因为准确率超过 99%
- B) 数据不平衡导致准确性产生误导;该模型错过了几乎所有假货(低召回率),应查看适当的指标✔
- C)没有问题,因为模型的召回率很高
- D)不需要建立模型,因为假货率低
说明:“准确性”在不平衡数据中具有误导性。当模型将几乎每笔交易称为“干净”时,它会获得很高的准确性,因为假货很少,但它无法捕获假货,而这是其主要目的(召回率 6%)。因此,在不平衡问题中,重点不是准确性,而是适合工作目的的混淆矩阵和指标,例如召回率/精确率。
6. 在需求预测项目中,时间相关数据被随机分为训练/测试。该模型的准确率达到 93%,但在生产中会崩溃。正确的划分方法应该是什么?
- A)扩大测试集,例如分割50%/50%
- B)使用更复杂的模型
- C) 完全删除分区并使用所有数据进行训练
- D)按时间顺序分裂:用旧时期进行训练,用新时期进行测试,从而防止模型看到未来✔
说明:如果对时间序列数据进行随机划分,则模型在训练中看到未来并预测过去;这是一个漏洞,并产生了实际上并不存在的成功。正确的做法是按时间顺序拆分:用旧时期训练,用新时期测试,模仿生产中的真实情况(从过去预测未来)。
7. 在特征工程中应该根据哪些数据计算缩放(StandardScaler)参数以及如何应用它们?
- A)应该根据所有数据(训练+测试一起)计算,这样更准确
- B)应该根据每一行自己的值单独计算
- C) 应仅根据测试数据计算
- D) 应仅根据训练数据计算,然后将相同的参数应用于测试数据;不然会漏水✔
说明:所有变换(均值、标准差等)的参数(例如缩放、编码和填充)应仅从训练数据中学习,然后同样应用于测试数据。考虑到测试数据也会导致测试信息干扰训练,即泄漏,并使模型看起来比实际情况更好。使用 Pipeline 可以确保这一点。
8. 模型在训练集上的准确度为 98%,在测试集上的准确度为 72%。这种症状表明什么以及应该做什么?
- A)学习不够;模型应该变得更复杂
- B) 数据泄露;测试集必须改变
- C) 过拟合;应简化模型,应用正则化和交叉验证✔
- D) 正常情况;反正学历总是比较高,预防措施没必要
解释:训练中的得分非常高,而测试中的得分明显很低,这是过度拟合的典型症状:模型记住了训练数据的噪声,而不是真实的模式。解决方案包括简化模型、更多数据、正则化以及通过交叉验证来验证状态。仅仅依靠教育分数掩盖了这个陷阱。
9. 在管理层演示中,销售额从 1,000 增加到 1,020 的条形图的 y 轴从 980 开始,以使增加显得巨大。实际增幅为2%。为什么这是一个道德问题?
- A) 截断的 y 轴在视觉上夸大了微小的差异并误导了观看者;为了公平起见,比较栏中的轴应从 0 ✔
- B) 条形图永远不能用于销售数据
- C)没有问题;让图表看起来令人印象深刻总是好的
- D) Y 轴应始终从数据的最大值开始
说明:在用于比较目的的条形图中,y 轴通常应从 0 开始。切割轴并从 980 开始会使 2% 的小差异在视觉上看起来很大,并误导观看者。数据专业人员的道德责任是绘制诚实的图表,不夸大或低估数据。
10、分析师将订单与产品表JOIN 3次后,查出总成交额;线路数量从24万条增加到69万条。应该采取什么措施来防止这种无声错误?
- A) 将总营业额除以 3
- B) 始终使用单独的查询而不是 JOIN
- C) 完全删除产品表
- D) 检查合并/连接后的行数并验证它们是否通过正确的键连接;尽早发现复制✔
说明:当产品表中每个产品(例如不同颜色)有多行时,通过错误的键 JOIN 将重复每个订单并夸大总计。代码运行没有错误,但结果是错误的。避免这种情况的方法是在每次合并/连接后检查行数并使用正确的键进行合并。
11. 招聘筛选模型了解历史数据中的性别失衡,并系统地降低女性候选人的分数,但其总体准确性很高。这意味着什么?
- A)没有问题,因为模型精度高
- B) 统计准确性不能替代道德可接受性;模型已经了解了过去的歧视,需要基于群体的公平性检查✔
- C) 进一步提高模型的精度解决了问题
- D)公平性超出了数据科学的范围
解释:即使模型在统计上是正确的,它在道德上也可能是不可接受的。该模型了解过去数据中的不公正现象并自动进行歧视。高度正直不能代替正义;在高影响力模型中,衡量不同群体的表现/决策差异的公平控制至关重要,最终责任在于人类。
12. 一名员工将包含真实客户电子邮件和购买历史记录的文件上传到公共人工智能工具中,并说“汇总细分”。为什么这是一个严重的错误,正确的方法是什么?
- A)没有问题;人工智能工具从不存储数据
- B) 错误是文件太大;应该减少
- C) 向开放工具提供真实个人数据违反 KVKK/GDPR;身份字段应已删除,并且仅共享匿名架构/属性 ✔
- D) 应该使用 CSV 而不仅仅是 Excel
说明:当真实的个人数据(如电子邮件、姓名等)被给予公开可用的人工智能工具时,将出现 KVKK/GDPR 范围内的隐私侵犯行为;数据离开组织。大多数时候,图表和匿名/合成样本足以进行分析。正确的方法是删除身份字段并仅共享匿名属性。
13、推荐模型投入生产但未建立跟踪;当4个月后产品目录发生变化时,模型继续推荐旧产品,转化率悄然下降了30%。这种现象的名称是什么?
- A)过度学习;模型记忆训练集
- B) 模型漂移;随着世界的变化,该模型会悄然过时,因为没有建立监控而未被注意到✔
- C) 选择偏差;样本偏差
- D) 数据最小化违规
解释:这是模型漂移(模型/数据漂移):当世界发生变化(目录、行为、季节)时,模型训练的条件发生变化,模型就会悄然崩溃。投入生产的模型会自行恶化;这是一个“何时”的问题。没有监控(跟踪输入和性能)的部署使得无法检测性能下降。
14. 在单次训练/测试分割中获得 88% 准确率的模型的 5 倍交叉验证分数分别为 88%、71%、83%、64%、79%。这表明什么以及为什么交叉验证很重要?
- A)模型稳定; 88%是真实表现
- B) 不需要交叉验证;一格就够了
- C) 分数波动较大表明模型不稳定;交叉验证的性能基于多个 bin 的平均值和分布,而不是单个幸运 bin ✔
- D) 最好报最高分(88%)
说明:单个隔间可能是幸运的,也可能是不幸的; 88%就是简单除法的结果。交叉验证将数据分割多次,基于平均值(此处约为 77%)的性能并显示分数的波动性。这里的高波动性表明模型不稳定;依赖单个隔间是有误导性的。