第 3 章. 建立第一条端到端管道
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
在第一部分中,我们 首先介绍了如何从产品需求到候选建模方法。然后,我们进入规划阶段,介绍了如何寻找相关资源并利用这些资源制定初步计划。最后,我们讨论了建立一个可运行系统的初始原型是取得进展的最佳途径。这就是我们将在本章介绍的内容。
第一次迭代的设计将是乏善可陈的。它的目标是让我们能够将管道的所有部分都准备就绪,这样我们就能优先考虑下一步要改进的部分。莫妮卡-罗加蒂在《莫妮卡-罗加蒂:如何选择并优先考虑 ML 项目》一书中描述了 影响瓶颈,而拥有完整的原型是识别这一瓶颈的最简单方法。
让我们从建立一个最简单的管道开始,它可以从输入中产生预测结果。
最简单的脚手架
在"从简单的流水线开始 "一文中,我们 描述了大多数 ML 模型如何由两个流水线组成 ,即训练和推断。训练使我们能够生成高质量的模型,而推理则是将结果提供给用户。有关训练和推理之间区别的更多信息,请参阅"从简单管道开始"。
对于 应用程序的第一个原型,我们将把重点放在能够向用户交付结果上。这意味着,在第 2 章所述的两个管道中,我们将从推理管道开始。这将使我们能够快速检查用户如何与模型的输出进行交互,从而收集有用的信息,使模型的训练更加容易。
如果 ,我们只关注推理,那么我们将暂时忽略训练。既然我们不是在训练一个模型,那么我们就可以编写一些简单的规则。编写此类规则或启发式方法通常是入门的好方法。它是构建原型的最快方法,可以让我们立即看到完整应用的简化版本。
如果我们的目标是实现一个 ML 解决方案(正如我们将在本书后面提到的那样),那么这看起来似乎是多余的,但它却是一个关键的强制功能,可以让我们直面问题,并就如何最好地解决问题设计出一套初步的假设。
建立、验证和更新 有关数据建模最佳方式的假设,是迭代模型构建过程的核心部分,在我们建立第一个模型之前就已经开始了!
备注
以下 是我在 Insight Data Science 指导过的研究员在项目中使用的几个优秀启发式方法的例子。
-
代码质量评估:当 建立一个旨在通过代码样本预测编码员在 HackerRank(一个具有竞争力的编码网站)上是否表现出色的模型时,丹尼尔首先计算了开合括号、括号和大括号的数量。
在大多数正常工作的代码中,开括号和闭括号的数量都是一致的,因此这条规则被证明是一个相当强大的基准。此外,这也给了他一种直觉,让他把建模的重点放在使用抽象语法树来捕捉更多的代码结构信息上。
-
树木计数在尝试通过卫星图像计算城市中的树木数量时,迈克在查看了一些数据后,首先根据给定图像中绿色像素所占的比例,设计了一条估算树木密度的规则。
结果发现,这种方法对分散的树木有效,但对成片的树木就失效了。这再次帮助确定了接下来的建模步骤,重点是建立一个可以处理密集成群树木的管道。
绝大多数 ML 项目都应从类似的启发式开始。关键是要记住根据专家知识和数据探索来设计启发式,并用它来确认初始假设和加速迭代。
有了启发式方法后,就需要创建一个管道来收集输入、预处理、应用规则并提供结果。这可以是一个可以从终端调用的 Python 脚本,也可以是一个网络应用程序,收集用户的摄像头画面,然后提供实时结果。
这里的重点是,对您的产品采取与我们对您的 ML 方法相同的做法,尽可能地简化它,并将其构建为一个简单的功能版本。这通常被称为 MVP(最小可行产品),是一种经过实战检验的方法,可以尽快获得有用的结果。