翻译 | Maglish
编辑 | Vincent
论文原文
TFX: A TensorFlow-based production scale machine learning platform Baylor et al., KDD’17
地址:
http://www.kdd.org/kdd2017/papers/view/tfx-a-tensorflow-based-production-scale-machine-learning-platform
我并不是说以上所有平台你都必须要自己搭建一个。我更多指的是应该将它们作为日常实践的一部分来使用,对于企业来说,能够使用租赁的平台通常会是最好的选择。
实现机器学习模型的代码只是生产系统中使用机器学习的一小部分。 我们在《机器学习:技术债务的高息信用卡》一文中看到了大量应用机器学习的经验教训。数据需要转换和验证,模型验证需要与数据验证相结合,以防止不良的(尚未验证的)模型进入生产。并且,你还需要一个可扩展的服务基础架构。机器学习平台(TFX)的关键组成部分如下图所示:
图 1:机器学习平台高级组件概览
“我们的平台对这些组件的实现能够将生产计划中的最佳实践进行编码。通过将上述组件集成到一个平台中,我们能够标准化组件,简化平台配置,并且将生产时间从数月缩短到数周,同时提供平台稳定性,最大程度地减少中断。”
数据处理将影响一个机器学习平台的优劣。在数据的异常情况扩散之前发现它们,将节省大量时间。
数据中的小错误可能会在一段时间内以难以检测的方式显著降低模型质量(不像一些灾难性的错误会导致明显的故障,因此易于追踪),所以为了长远考虑,都任何一个机器学习平台都应始终保持对数据的警惕性。
为了建立基准并监控改动,TFX 会为每个输入数据集生成一组描述性统计信息。这些信息包括特征状态和价值、跨特征统计信息,以及可配置片段。这些统计数据需要大规模高效计算,并且在大型训练数据上进行精确计算是十分耗费资源的。 在这种情况下,可以使用提供近似结果的分布式流算法。
TFX 还包括支持特征冲突的一套数据转换函数。例如,TFX 可以生成称为“词汇“的特征到整数的映射。当数据转换在训练和服务之间仅有细微差别时,很容易弄乱一切。TFX 可以自动导出任何数据转换作为训练模型的一部分,以避免这些问题。
执行验证时,TFX 依赖于提供模版化描述预期数据的模式。该模式描述特征及其预期类型、价和域。TFX 可以帮助用户自动生成其模式的第一个版本。
图 2: 样本验证案例
TFX 会提供有用且详实的信息异常警报,让用户不会忽视它们。
我们希望用户对待数据错误能像处理代码错误一样严谨和认真。为了推动用户这么做,我们允许用户提交异常数据,就像任何能够被记录、追踪并且最终解决的软件错误一样。
一旦你模型中的代码(当然是在 TensorFlow 中写的)被整合到 TFX 中,你就能轻松地转换学习的算法。不断的训练和导出机器学习模型是一个常见的生产使用情况,但是在许多场景下,每次都从头开始再训练模型,将会消耗大量的时间和资源。。
对于许多生产应用情况,机器学习模型的新鲜度至关重要... 很多这样的应用情况也有巨大的训练集(复杂度为 100B 的数据点),这可能需要几个小时(或几天)的训练…这导致要在模型质量与模型新鲜度之间进行取舍。热启动是抵消这种取舍的一项实用技术,如果正确使用,它可以在更短的时间和更少的资源消耗下,获得与此前需要几个小时的训练才能获得的相同质量的模型。
TFX 中内置了热启动,并且 TensorFlow 中也实现并开源了对网络中的热启动特征进行选择的功能。当使用热启动训练新版本的网络时,对应于热启动特征的参数会从先前训练的模型中初始化,并且从那里开始微调。
TFX 包含了一个模型评估和验证组件,旨在确保将模型提供给用户之前是“好”的。
机器学习的模型通常是包含大量数据源和交互组件的复杂系统的一部分,这些组件通常纠缠在一起。这会使问题的影响扩大,还可能会导致意外的交互问题,最终可能发展为机器学习模型的退化,对终端用户体验造成损害。
新模型如何推广到生产中?当然通过 A / B 测试!模型首先通过持续的数据进行评估,以确定它们是否有望开始实时测试,TFX 提供了可以近似业务指标的代理指标。对于通过此测试的模型,团队再部署到特定产品上进行 A/B 测试,以确定模型在实时流量和相关业务指标上的实际效果。
一旦将模型开始进行生产并不断更新,则使用自动验证来确保更新的模型是好的。我们使用简单的 canary 程序来验证一个模型是否安全。我们通过将模型质量与固定阈值以及基线模型(例如当前生产模型)进行比较,来评估预测质量。
如果模型更新验证失败,则不会将其推送到服务中,并且会为所属产品团队生成警报。最开始团队都不太确定他们是否需要或者想要这项验证功能,但是在遇到了本可以通过验证功能避免的实际生产问题后,他们突然都变得十分热衷于使用此项功能。
TensorFlow 服务为将要部署到生产环境的机器学习模型提供了完整的服务解决方案。生产为需求服务,包括低延迟和高效率在内的许多特性。大多数模型使用常见的 TensorFlow 数据格式,但对于数据密集型(与 CPU 密集型相对)网络,如线性模型,我们用惰性解析构建了专门的协议缓冲区解析器。
在实现该系统时,我们特别注意最小化数据复制。这对于稀疏数据配置来说尤其具有挑战性。专用协议缓冲区解析器的应用能够在基准数据集上得到了 2-5 倍的加速。
Google 内部开始使用 TFX 平台的首批团队之一是 Google Play,他们将其用于推荐系统。该系统在 Play 应用程序的用户访问商店主页时,会向他们推荐相关的 Android 应用程序。训练数据集包含数百亿个示例,在生产过程中,系统必须以严格的延迟要求(几十毫秒)来响应每秒数千个查询。
当我们将 Google Play 排名系统从之前的版本转移到 TFX 时,我们在新的测试中发现,迭代速度有所增加,减少了技术负债,提高了模型质量。
随着机器学习变得越来越普遍,对于可理解性有强烈需求,即模型可以向用户解释其决策和行为(以及 GDPR-AC 等新法律成立后,许多情况下法律也要求做到这一点)。我们相信我们从部署 TFX 中学到的经验教训为构建交互式平台提供了基础,可为用户提供更深入的见解。
https://blog.acolyer.org/2017/10/03/tfx-a-tensorflow-based-production-scale-machine-learning-platform/
点击下方图片即可阅读
AI 一周热闻盘点
关注人工智能的落地实践,与企业一起探寻 AI 的边界,AICon 全球人工智能技术大会火热售票中,6 折倒计时一周抢票,报名链接请参看【阅读原文】