单位 1 / 11

机器学习工程中的人工智能:角色、边界、验证和责任

收益:

  • 根据任务风险级别,能够区分 ML 工作流程(代码、数据、文档)中人工智能的哪些位置可以节省时间且风险较低,而哪些决策(例如指标/数据/投入生产)则留给人类。
  • 能够应用一门学科,通过将每个人工智能输出连接到源、重新运行、测量并通过工程过滤器来验证它。
  • 能够养成不将原始机密和个人数据发送到外部工具、使用公司批准的工具以及仅出于防御目的处理安全问题的习惯。

机器学习工程中的人工智能:角色、边界、验证和责任

如今,机器学习工程师(ML 工程师:设计、训练模型并将其从数据中学习并应用于生产的软件专业人员)在其工作的每一步都需要使用另一种人工智能工具。编写代码时,编码助手发挥作用;探索数据时,对话模型发挥作用;生成文档时,大型语言模型(LLM:具有数十亿参数的神经网络,可以理解并生成文本)发挥作用。该模块将人工智能视为机器学习工程师开发的产品和日常工作工具。它的运作方式是明确划分责任边界,而不混合这两个角色。

在第一个单元中,我们回答了一个基本问题:在机器学习工程中,人工智能在哪些方面可以实时节省时间,以及我们在哪些方面必须将决定权留给人类?答案是工程学科的核心:制造者快,验证者负责。

人工智能在机器学习工程中的哪些方面可以派上用场?

一个ML项目大致经历以下几条线路:数据收集、数据清理、特征工程(将原始数据转换为模型可以理解的数字信号)、模型训练、评估、部署(部署:向真实用户开放模型)和监控。人工智能在这条线路的每一站提供帮助,但其权限级别各不相同。

高回报、低风险领域:生成代码框架、起草数据转换函数、解释日志消息、描述堆栈跟踪、总结实验笔记、编写文档和自述文件、提出测试用例。在这里,人工智能的错误是廉价的;因为输出已经经过测试和审查。

高风险领域:决定将哪些数据用于训练、确认模型是否应投入生产、判断指标“足够好”、决定处理个人数据、将安全漏洞视为“垃圾”。这些会影响金钱、隐私、法律责任和用户信任。人工智能在这里给出建议;该决定由主管工程师和负责团队做出。

提示:在将任务外包给人工智能之前,请问:“如果此输出错误,成本是多少?人们发现错误的容易程度如何?”如果价格低且容易捕获,则将其传递。如果价格高或捕获困难,则仅在草稿中使用 AI,然后由您决定。

验证纪律:三步

在机器学习工程中,人工智能输出从来都不是“完成的工作”;这是一个草案。通过以下三个步骤运行每个输出:

  1. 将其连接到源。如果模型表示一个数字、阈值或“最佳实践”,请将其基于官方文档、代码库中的实际值或测量指标。 “模型的拟合”(幻觉:语言模型自信地产生非真实信息)最常出现在这里。
  2. 重新启动并测量。运行生成的代码,重新计算它在您自己的测试集上生成的指标,在​​小样本上验证建议的 SQL 查询。不起作用的代码是毫无价值的,即使它看起来不错。
  3. 将其通过工程过滤器。输出是否能保持规模化?是否考虑了边缘情况(空数据、非常大的输入、缺失字段)?是否存在安全和隐私泄露?只有熟悉该领域的人才能做到这一步。

弱提示/强提示

弱提示:“给我写一些模型训练代码。”

强力提示:“用 scikit-learn 写一个二元分类的训练脚本。输入:data/train.parquet,目标列 is_churn。存在类不平衡(阳性率~8%),用 class_weight 处理。使用 PR-AUC(精确率-召回率曲线下面积)作为评估指标,因为准确性对于不平衡的数据会产生误导。将随机种子固定为 42。在代码打印集 PR-AUC 末尾进行测试。”

区别:第二个提示任务包含数据真​​实性、正确度量、不平衡信息和重复性要求。正是在这种情况下,输出是可验证和可用的。

隐私和数据安全:工程师的首要责任

机器学习工程师经常接触公司最敏感的数据:客户记录、交易历史、健康或财务数据、生产系统日志。向人工智能工具提供数据时的三个规则:

  • 请勿将原始个人数据和机密数据发送到外部工具。例如,不要将客户电子邮件粘贴到提示中,而是发送架构和虚拟(合成)样本。使用“ex: ahmet@example.com”等屏蔽示例而不是真实数据。
  • 使用公司批准的车辆。选择合同明确的工具,无论数据在何处处理、是否存储、是否用于教育。在大多数公司中,使用个人帐户处理公司数据都是违法行为。
  • 最低数据政策。给出解决任务所需的最少背景信息。不是整个表,而是相关的 5 列和架构。
注意:假设您提供给语言模型的文本无法撤消。不要发送原始个人数据并想着“我稍后会删除它”;风险在发出的那一刻就发生了。

安全领域的防御性使用

机器学习工程师经常安装安全系统:欺诈检测、恶意流量分类、身份验证。在本模块中,我们仅讨论出于防御目的的安全问题:检测攻击、强化系统、消除漏洞。利用人工智能进行未经授权的访问、数据泄露或未经授权干预他人系统既违法又违反职业道德。当您发现漏洞时,正确的方法是负责任地报告并修复它;不利用。

三个迷你箱子

案例 1 - 节省时间。机器学习工程师通常会花半天时间对 40 列数据集进行探索性数据分析 (EDA)。他将模式和 df.describe() 输出提供给人工智能,并询问:“哪些列具有较高的异常值和缺失率,您建议进行哪些转换?” 20 分钟后,他收到了一份优先级列表,用自己的代码验证了每个项目。保存:约 3 小时,错误风险低,因为对每项索赔都进行了测量。

情况 2 - 捕获错误。 “训练准确率达到 99%,太棒了,”该模型的一位聊天助理说道。工程师应用了第三步(工程过滤器)并意识到:目标列意外泄漏了属性(数据泄漏:模型看到了在训练中不应该看到的信息)。实际性能要低得多。工程师的怀疑,而不是人工智能的“伟大”解释,挽救了这份工作。

案例 3 - 防止隐私泄露。一个团队将生产错误日志粘贴到外部模型中并说“修复此错误”。日志中有客户识别号。该团队制定了一个规则,即编写一个小脚本,首先屏蔽日志(使其 ID 号为 ***),然后以这种方式发送它们。违规风险已经消失,援助速度没有改变。

可复制模板

任务:[做什么,单句话]上下文:[数据模式、大小、约束;没有实际的个人数据]限制:[语言/库、性能、再现性]指标:[如何衡量成功]期望的输出:[代码/描述/列表]以及为什么采用这种格式

查看此代码。不仅要评估它的工作原理,还要评估以下方面:1) 边缘情况(空输入、缺失列、非常大的数据)2) 数据泄漏风险3) 再现性(种子、版本)针对您发现的每个问题提出修复建议。在不确定的地方标记“验证”。代码:[代码]

解释该指标的结果,但首先要问:该指标对于该问题是否正确?问题:[平衡/不平衡分类、回归、排名...]报告的指标和值:[例如准确性 0.99]您会推荐哪个指标?为什么?我应该寻找哪些迹象让我怀疑当前的结果?

检查我将根据以下提示给出的数据中是否有个人/机密信息。列出下面文本中需要屏蔽的字段(姓名、电子邮件、身份证号码、电话、地址)。文字:[文字]

角色权限表

任务

人工智能的作用

决定的所有者

代码骨架/转换函数

草稿生成器

工程师(评论)

EDA/数据汇总

加速器

工程师(通过测量验证)

指标解释

建议

工程师

哪些数据将用于训练?

建议

团队+数据所有者

将模型投入生产

检查清单提醒

负责的工程师+团队

个人数据处理

无(未使用)

法律+数据控制者

常见错误

  • 使用输出而不验证它。最常见也是最昂贵的错误。看起来不错的代码或指标并不意味着它是正确的。
  • 将原始机密数据粘贴到工具中。一旦发送,就无法收回。
  • 依赖错误的指标。不兼容的指标(例如不平衡数据的准确性和排名问题中的 RMSE)具有误导性。
  • 误认为人工智能是决策者。他提出建议;责任由签字人承担。
  • 无上下文提示。诸如“编写模型”之类的模糊请求会产生无法验证的输出。

综上所述

人工智能既是机器学习工程师开发的产品,也是其日常复制器。它在低风险、易于验证的任务(例如代码-数据-文档)中价值最高;影响金钱、隐私和安全的决定仍由个人决定。将每个输出连接到源,再次测量,通过工程滤波器。保护机密数据、使用经批准的车辆、仅出于防御目的安全工作。该学科是所有后续单元的基础。

应用任务

从您自己的项目中选择一个任务(例如编写数据清理函数)。首先编写弱提示,然后使用本单元中的模板编写强提示。获取两个输出,应用三步验证(链接到源、重新运行、工程过滤器)。请注意哪个提示可以节省多少分钟以及多少次更正。

清单

  • [ ] 我已确定任务的风险级别(低/高)。
  • [ ] 我没有在提示中输入任何实际的个人/机密数据;我掩盖了它或使用了合成样本。
  • [ ] 我将输出连接到源,再次运行它,从工程角度对其进行过滤。
  • [ ] 我检查了我选择的指标是否正确。
  • [ ] 我自己/与团队一起做出了关键决策(将其投入生产、数据处理),我没有将其留给人工智能。
  • [ ] 我使用的是公司认可的车辆。