在亨利 • 福特的公司于 1913 年建造第一条用于生产传奇的福特 T 型汽车的流水线后,每架汽车底盘的组装时间从 12 小时降至约 90 分钟。这条流水线大大降低了成本,使福特 T 型汽车成为历史上第一款大众可购买的汽车。它也实现了量产化,因此在不久之后,路上便出现了大量的福特 T 型汽车。

当生产过程被定义为一系列清晰的步骤时(这个系列又称为流水线),如果将一部分步骤自动化,则可以节省很多时间和金钱。在今天,汽车的生产大部分是依赖机器完成的。

然而,节省时间和金钱并不是自动化的全部目的。对于大部分重复性的工作来说,机器比工人更稳定,进而保证了最终产品的可预期性、一致性和可靠性。同时,当工人们不再需要在重型机械旁工作时,生产安全极大地提高了,他们也可以从无聊的工作中解放出来,从事更有价值的工作了。

从另一个角度来看,搭建一条流水线既耗时又耗材。如果只想生产小批量或高度定制化的产品,流水线并不是理想的选择。福特曾有一句名言:“当汽车只有黑色一种颜色时,客户便没有定制颜色的权利。”

在过去的几十年中,我们可以在软件行业看到汽车量产史的影子:今天大部分的重要软件是由 Jenkins 或者 Travis 等自动化工具构建、测试和部署的。然而,福特 T 型汽车的例子并不能完全反映软件行业的现状。与投放汽车不同,软件不仅需要部署,还需要日常的监测、维护和升级。软件开发流水线更像是灵动的循环,而不是缺少变化的生产线。快速、可靠地升级软件或者流水线是非常重要的。任何软件都比福特 T 型汽车更能被个性化,软件可以“拥有”各种各样的颜色(打个比方,你可以算算微软 Office 有多少个版本)。

可惜的是,“传统”的自动化工具不能满足机器学习流水线的需求。实际上,机器学习模型并不是传统意义上的软件。

第一,机器学习模型的大部分行为由训练数据驱动。因此,训练数据本身必须是某种意义上的“代码”(比如需要版本控制)。对数据进行版本控制是个非常棘手的问题,因为每天都会出现大量的新数据,这些数据会随着时间而变化,通常还掺杂着隐私数据,而且必须进行标注后才能用于监督式学习算法。

第二,这些模型的行为往往不够透明。它们可能在一些测试数据上通过所有检测,但在另一些测试数据上无法通过。因此,你需要保证测试样例能够反映模型在生产环境中所接触的所有数据。特别需要防范模型对某一部分用户的歧视。

因为某些原因,数据科学家和软件工程师在早期都是用“小作坊”的方式手动构建和训练机器学习模型的。许多人至今仍然保持着手动开发模型的工作方式。但近几年的新型自动化工具,比如 TensorFlow Extended(TFX)和 Kubeflow,可以用来应对机器学习流水线中的各种挑战。越来越多的组织开始用这些工具创建机器学习流水线,进而将大部分(甚至全部)机器学习模型的构建步骤和训练步骤自动化。和汽车行业的自动化一样,机器学习的自动化可以节省成本和时间,构建更好、更可靠、更安全的模型。人们可以将更多的时间用在有价值的工作上,而不是在简单的复制数据或者分析数据的任务上浪费时间。但是,构建机器学习流水线并不是一件简单的事情。该如何开始呢?

答案就在这本书中!

在这本书中,汉内斯和凯瑟琳提供了清晰的机器学习流水线自动化指南。作为通过上手实操学习技术内容的坚定支持者,我特别享受这本书一步一步带你完成示例项目的过程。有了大量的代码示例和简洁明了的解释,你很快就能架设和使用自己的机器学习流水线,并且知道如何将它用在各种应用场景中。强烈建议你在阅读的同时在计算机上进行实操练习,这样会学得更快。

2019 年 10 月,我在美国加利福尼亚州圣克拉拉市举办的 TensorFlow World 会议上第一次见到了汉内斯和凯瑟琳。会上我演说了如何用 TFX 搭建机器学习流水线。他们当时正在撰写这本书,而且我们的编辑是同一个人,所以我们聊了很多共同话题。演讲结束时,一些与会者问了我很多关于 TensorFlow Serving(TFX 的一个部件)的技术问题,汉内斯和凯瑟琳帮我找到了这些问题的答案。汉内斯甚至接受了我的临时邀请,在会上介绍了 TensorFlow Serving 的进阶特性。他的演说简直就是宝藏,充满了深刻见解和实用的建议。你可以在这本书中学到这些见解和建议,以及更多丰富精彩的内容。

开始创建专业的机器学习流水线吧!

 

——Aurélien Géron

前 YouTube 视频分类团队主管

《机器学习实战:基于 Scikit-Learn、Keras 和 TensorFlow 》作者

2020 年 6 月 18 日于新西兰奥克兰市