AI 操作指南 [译]

作者:

Unintended Purposes

教育大众应对即将来临的 AI 革命

我曾撰写过一篇文章,阐述了为什么工人要迅速转型成为 AI 操作员,以适应劳动力市场的变化。在那篇文章中,我强调了迅速而广泛地向所有工作人员传授 AI 基础知识的必要性。我认为,我们需要简化的学习材料,这些关于 AI 系统的基本认识能帮助公众避免在使用 AI 时犯下代价高昂甚至危险的错误。

作为一名有着 4 年经验的机器学习工程师,我很幸运地拥有了丰富多样的工作经历。我曾在 AI 创业公司、FAANG 和财富 100 强公司任职。我为从快速成长的创业公司到财富 500 强的客户提供服务,帮助他们利用 AI 做出价值数千万的决策。我不仅向非技术人员,也向该领域顶尖的教授简明阐述过各类 AI 的工作原理。

我觉得自己非常幸运,能有机会听到外行人对机器学习的理解和看法。我了解了他们在做重要决策时所依赖的信服点。通过这些互动,我见证了许多关于 AI 工作方式及其解读的错误和不良观点。

在这篇博客文章中,我想总结一些在处理 AI 时人们容易陷入的思维陷阱。具体来说,我提议将这些陷阱定义为 AI 误区。这些误区可能出现在 AI 自身或人类的思考中。它们是错误的推理,会导致错误的结论。

我认为现在界定这些 AI 误区非常重要,因为我们与 AI 的互动在过去一年里发生了巨大的变化。与更传统的 AI 相比,由于它们结构简单、结果大多数值化或可量化,更易于理解和处理。而语言模型的广泛应用带来了新的失败模式。模型现在甚至可能主动误导你。

你是驾驶员,而非维修工

关于 AI 的工作和训练方式,避免做出任何假设。否则很可能出错,就像过去人们错误地认为疾病源于不良空气一样。要明白,调试 AI 和操作 AI 是完全不同的事情。

症状和根本原因截然不同

在 AI 中,许多失败模式涉及到的 bug,无论是代码中的还是数据中的,往往只能在系统更深层次才能被诊断出来。只要数据不导致代码崩溃,你可能完全不知道问题的来源。举个简单例子:如果你引入了一个 bug,导致输入数据集中某个特征的值被赋为 0,模型的准确性会降低,但并不会引起明显的故障。你的模型虽然信息减少,但这种情况只有在整个流程的最后阶段才会显现出来。这里,症状和根本原因分布在流程的两端。

不要拟人化你的模型

不要给你的模型赋予个性。这样做往往会导致你对模型行为的错误假设。你可能会试图用人类的方式来解释模型的行为,但这几乎从来不是 AI 实际做出预测的方式。

每个模型都有其使用寿命

如果你不对模型进行重新训练,就不能期待它像以前那样保持良好的表现。要清楚,模型本身不会变化,但这正是问题的所在。这种现象被称为“漂移”。你的输入数据会发生变化,业务目标会变化,数据可能变得不平衡……当你用新数据评估一个旧模型时,通常会发现它的表现不如新训练的模型。

外推是困难的

机器学习模型通常是随机初始化的。这意味着,对于模型没有学习过的任何区域,其表现很可能会变得像随机噪声一样,尤其是在最极端的训练示例附近。模型从未因为在训练范围之外进行预测而受到惩罚或奖励。由于大多数机器学习模型的非线性特征,你会发现,一旦超出训练范围,错误率会迅速增长。

不要混淆定性错误和定量错误

当 AI 失败时,其表现与人类截然不同。我们很难预测,对人类而言轻而易举的任务是否对 AI 也同样简单。AI 在处理数字方面表现出色,而我们则更依赖经验。在你逐一分析每个错误时,可能会觉得 AI 很笨,但实际上,从数量上看,AI 的表现可能远超你的预期。是否满足你的需求,最终由你来决定。

AI 严格遵循你的训练指导

如果你的模型在训练阶段表现优异,但在预测时效果欠佳,那可能是因为你的训练目标和预测目标不匹配。如果你仅给 AI 提供了模糊的指引或目标,它无法理解你的真正意图。这里有一个生动的例子

数据中的偏见导致 AI 的偏见

你一开始可能没有意识到这一点,但当深入分析结果时就会发现。有些类别的错误率可能异常高,这时你会发现你的模型复制了数据中的偏见。你需要在数据中平衡各类别的占比。AI 如果更频繁地接触某种类型的数据,就会因为这种数据在训练中被赋予了更高的重要性而产生偏见。

避免篡改输入或输出

当你知道某个预测结果是错误的时,提供一个默认预测是可行的,但修改输入或输出永远不会带来好结果,尤其是输入。当你更改输入时,模型几乎肯定不会理解你的意图,因为它只期待接收到它已经见过的输入。你几乎不可能自行构建对模型有意义的输入。如果篡改输入是严重的错误,那么篡改输出则相对较轻,但这样做可能会误导用户。而且,如果你知道如何修改输出,那么你的应用可能更适合用一套固定的业务规则来处理,而不是依赖 AI。

模型的链式操作风险很高

在 AI 系统中串联超过三个模型是极具风险的。这会大幅增加系统的故障点。如果其中任何一个模型出现故障,整个系统都会受到影响。一般而言,如果两个独立的神经网络 (neural networks) 能共同完成一个任务,那么一个更大的单一模型也能同样轻松地完成这一任务。采用模型链 (chaining models) 的方式要求你精确定义每个模型的目标,这样一来,你的问题解决方案就被限制在了这种特定的理解框架之内。而单一模型能够更好地整合和利用所有提供的信息。

串联模型的误差呈指数式增长

即便你拥有准确率极高的模型,比如每个都达到了 95% 的准确率,将三个这样的模型组合在一起,最高准确率也只有 0.95 * 0.95 * 0.95 = 0.86。这已经是理想状态下的最佳结果。实际上,即使每个模型单独运行时准确率为 95%,由于它们之间传递的数据可能存在不准确性,这可能会使其他模型的误差远超 5%。在这种情况下,你可以将后续的模型用作校准器 (calibrators)。校准器不仅仅使用前一个模型的输出结果,而是理解前一个模型的偏差并尝试进行纠正。这就要求在训练后续模型时,将前面的模型纳入训练过程中。这样做虽然增加了复杂性,但可以降低误差。

确保模型间的接口不变

在使用串联模型时,确保模型间的接口定义清晰且可执行。当你改进其中一个模型时,必须保证它仍然遵守与其他模型间的接口协议。否则,数据对其他模型来说将变得毫无意义。例如,如果你的第一个模型输出美元价值,而你开始使用欧元,但未将其明确标记,那么后续的模型就无法识别它现在需要处理的是多种货币。这是一个显而易见的例子,但请记住,你的模型不会预期到任何变化。即使你改变了接口中的某些看似不重要的细节,也需要确保整个系统仍然如预期那样运行。

对你的 AI 负全责

在构建和运用 AI 系统时,你是唯一的负责人。

你的 AI 不会自动监控自己。目前还没有法律辩解说因为“AI 这么做了,我就无责任”。你必须对你的 AI 预测和建议承担责任。例如,如果你用 AI 替代了 10 名员工,你就必须承担原本需要这 10 人来检验和确认的预测责任。使用 AI 并不意味着你可以逃避你的专业和法律责任。

关注训练频率和数据的实时性

我发现非技术人员有一个误区:他们认为 AI 能像人一样,一看到新信息就能立刻反应。但实际上,除非你在进行在线学习(这种情况很少见),否则 AI 通常有两种模式:训练和推断。如果有新数据出现,即便模型已对其做出推断,但若未经训练,它仍会重复最初的预测。只有当数据进入训练阶段,并在训练时被模型吸收,模型才会调整其预测。有时,即使模型每月训练一次,当新行为没有被模型立即学习时,使用者也会感到惊讶。

设定防护机制

你不能让 AI 在没有监督的情况下自行做决策。你应该为合理的预期结果设定边界,以避免对你的业务目标产生负面影响。你的用户可能根本不知道他们正在使用由 AI 提供的预测和建议。为了用户的安全和信任,最好拒绝提供预测,而不是提供不切实际的建议。你可以从这里开始:首先设定不可能发生的结果的上限,然后设定不合理结果的上限。

在整个流程中进行合理性检查

你不应该仅仅依靠一个关于整体性能的指标。你需要检查流程中的每个部分是否仍然正常运作。有时,重大错误会在综合性能指标(KPI)中被掩盖,结果你可能会发现你的 AI 几个月来一直在提供错误的预测。

结论

我希望这篇博客能让你对 AI 的工作原理有所了解。希望这些信息能帮助你在准备使用 AI 时做出正确的决策。我的目标是在使用 AI 时,尽量减少负面结果,增加积极成果。我们很可能会在几年内从数千人使用 AI 发展到数百万人。我希望这篇文章能对你有所帮助,并且能根据你的反馈不断完善,为更多人提供更多的帮助。