其他

【解读谷歌TFX】基于TensorFlow可大规模扩展的机器学习平台

2017-10-04 新智元

2017 年 11 月 8 日,在北京国家会议中心举办的 AI WORLD 2017 世界人工智能大会开放售票!早鸟票 5 折 抢票倒计时 4 天开抢。还记得去年一票难求的AI WORLD 2016盛况吗?今年,我们邀请了冷扑大师”之父 Tuomas 亲临现场,且谷歌、微软、亚马逊、BAT、讯飞、京东和华为等企业重量级嘉宾均已确认出席。


AI WORLD 2017 世界人工智能大会“AI 奥斯卡”AI Top 10 年度人物、 AI Top10 巨星企业、AI Top10 新星企业、AI Top 10 创投机构、AI 创新产品五个奖项全部开放投票。谁能问鼎?你来决定。


关于大会,请关注新智元微信公众号或访问活动行页面:http://www.huodongxing.com/event/2405852054900?td=4231978320026了解更多

1新智元推荐  


来源:blog.acolyer.org

编译:常佩琦  弗格森


【新智元导读】 作者详细分析了Google通用机器学习平台和其实现过程。通过将上述组件集成到一个平台中,能够对组件进行标准化,简化平台配置,并将生产时间从数月缩短到数周,同时提供平台稳定性,最大程度地减少服务中断。 





KDD2017上,谷歌发布了基于TensorFlow的可大规模扩展的产品级机器学习平台TFX。(论文地址:http://www.kdd.org/kdd2017/papers/view/tfx-a-tensorflow-based-production-scale-machine-learning-platform)


创建和维护一个生成和部署机器学习模型的平台需要在多个组成部分中细致协调,包括一个基于训练数据生成模型的学习器,用于分析和验证数据及模型的模块,以及用于为模型提供服务的设施。


当数据随时间变化而需要连续生产新的模型时,这变得尤其具有挑战性。不幸的是,这种编排通常是由使用个别团队开发的特殊用途的胶合代码和自定义脚本进行的,导致重复性工作和脆弱的高技术债务系统。


作者详细分析了Google通用机器学习平台和其实现过程。通过将上述组件集成到一个平台中,能够对组件进行标准化,简化平台配置,并将生产时间从数月缩短到数周,同时提供平台稳定性,最大程度地减少服务中断。

 

在论文中,作者介绍了在Google Play应用商店中平台部署的案例研究,随着新数据流入,机器学习模型将不断更新。通过优化数据和模型分析,部署平台促使自定义代码减少,实验周期更快,应用程序安装增加了2%。


以下是博客acolyer上更为详细的介绍:


TFX:基于TensorFlow的规模生产机器学习平台


过去几年中,世界一流的在线产品和服务开发发生了巨变。 我们最近一直在关注的一系列论文可以帮助您了解上限的位置。


*新基线:到目前为止,您已经接受了自动化测试,持续集成,持续交付,也许是持续部署,而且您已经熟练地逐步推陈出新,监控行为,并在发现问题时停及时停止。


*此外,您已经建立了一个复杂的指标系统和一个连续实验平台。


*由于系统复杂性的增加,您可能还需要将其扩展到通用黑箱优化平台。


*但你还没有完成! 您优化过的所有机器学习模型都需要接受训练,验证和服务。 你需要一个机器学习平台。 这就是今天文章的主题,它介绍了Google TFX中的机器学习平台。


我为什么需要一个机器学习平台?


实现机器学习模型的代码只是在生产系统中使用机器学习的一小部分。 我们在“机器学习:技术债务的高息信用卡”一文中看到了大量部署机器学习的经验教训。数据需要转换和验证,模型验证需要与数据验证相结合,防止不良(尚未验证的)模型进入生产。你还需要一个可扩展的服务基础架构。 机器学习平台(TFX)的关键组成部分如下图所示:


图1:机器学习平台高级组件概览


我们的平台能够实现这些组件,可将生产中的最佳实践进行编码...通过将上述组件集成到一个平台中,我们能够标准化组件,简化平台配置,并从生产时间从数月缩短到数周, 同时提供平台稳定性,最大限度地减少中断。


数据分析,转换和验证


你和你的数据一样。在局势恶化之前,发现数据异常,这将节省大量时间。


数据中的小错误可能会在一段时间内以难以检测的方式显着降低模型质量(一些灾难性的错误会导致明显的故障,因此易于追踪),所以为了长远考虑,都任何一个机器学习平台应始终保持对数据的警惕性。


为了建立基准并监控更改,TFX会为每个数据集生成一组描述性统计信息。 这些包括功能存在和价值,跨功能统计信息和可配置切片。 这些统计数据需要大规模高效计算,并且在大型训练数据上精确计算可能是昂贵的。 在这种情况下,可以使用提供近似结果的分布式流算法。


TFX还包括支持功能冲突的一套数据转换。例如,TFX可以生成称为“词汇“的特征到整数的映射。当数据转换在训练和服务之间微不可分时,很容易弄乱事情。 TFX自动导出任何数据转换作为训练模型的一部分,以避免这些问题。


要执行验证,TFX依赖于提供模版化描述预期数据的模式。该模式描述功能及其预期类型,价和域。 TFX可以帮助用户自动生成其模式的第一个版本。

 

图2: 样本验证案例 


TFX给用户提供有用的异常信息警告。


我们希望用户能够同样严谨地处理数据错误和代码错误。为了促进上述做法,我们允许用户提交异常数据,就像任何能够被记录、追踪和解决的软件错误一样。


训练


 一旦你模型中的代码(当然是在TensorFlow中写的)被融入到TFX中,你就能轻松地转换学习的算法。不断的训练和开发机器学习模型是一个常见的生产使用案例,但是在许多场景下,要每次都从头开始再训练模型,对于时间和资源的消耗都是巨大的。


对于许多生产用例,机器学习模型的新鲜度至关重要...很多这样的用例也有巨大的训练集(O(100B)数据点),这可能需要几个小时(或几天)的训练…这需要在模型质量与模型新鲜度之间取舍。热启动是抵消这种取舍的实用技术,如果使用正确,它可以在更短的时间和更少的资源消耗下,获得与此前需要几个小时的训练才能获得的相同质量的模型。


TFX中内置了热启动,对网络中的热启动特征进行选择的功能也被提供,且已经在TensorFlow中开源。当使用热启动训练新版本的网络时,对应于热启动特征的参数从先前训练的模型版本中初始化,并且从那里开始微调。


评估和验证

 

TFX包含了一个模型评估和验证组件,旨在确保模型在向用户提供服务之前是“好”的。


机器学习的模型通常是包含大量数据源和交互组件的复杂系统的一部分,这些组件通常被纠缠在一起。这会创建一个大的平面,在上面,bug的错误可以扩展,也可能会发展处意外的互动,最终会不得不对机器学习模型进行降维,进而损害终端的用户体验。


新模型如何推广到生产中?当然通过A / B测试!模型首先通过持续的数据进行评估,以确定它们是否有足够的前景开始实时测试,TFX提供可以近似业务指标的代理指标。对于通过此测试的模型,团队进行到特定于产品的A / B实验,以确定模型在实时流量和相关业务指标上的实际效果。


一旦将模型推出到产品并不断更新,则使用自动验证来确保更新的模型是好的。我们使用简单的canary process验证了一个模型是安全。我们通过将模型质量与固定阈值以及基线模型(例如当前生产模型)进行比较来评估预测质量。


如果模型更新验证失败,则不会将其推送到服务中,并为所属产品团队生成警报。 


服务


TensorFlow服务为将要部署到生产环境的机器学习型号提供完整的服务解决方案。生产为需求服务,其中包括低延迟和高效率。对于大多数模型,使用常见的TensorFlow数据格式,但对于数据密集型(对CPU CPU密集型)网络,如线性模型,专门的协议缓冲区解析器是用惰性解析构建的。


在实施该系统时,要特别注意最小化数据复制。这对于稀疏数据配置来说尤其具有挑战性。专用协议缓冲区解析器的应用导致基准数据集加速2-5倍。


TFX和Google Play

  

Google推出TFX平台的第一支团队之一是Google Play,他们将其用于推荐系统。该系统在访问商店主页时建议相关的Android应用程序播放应用用户。培训数据集具有数百亿个示例,在生产过程中,系统必须以严格的延迟要求(几十毫秒)每秒处理数千个查询。


当我们将Google Play排名系统从之前的版本转移到TFX时,我们看到对新实验的迭代速度有所增加,减少了技术负债,提高了模型质量。

下一步


解释性?

 

随着机器学习变得越来越普遍,对于可理解性的强烈需求,模型可以向用户解释其决策和行为(以及在许多情况下使用诸如GDPR-AC等新立法的法律要求)。我们相信我们从部署TFX中学到的经验教训为构建交互式平台提供了基础,可为用户提供更深入的见解。




【扫一扫或点击阅读原文抢购五折早鸟票”】

AI WORLD 2017 世界人工智能大会购票二维码: 



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存