在LinkedIn上搭建机器学习模型

2018-10-12 18:36:05 浏览数 (1)

大规模的构建机器学习是一条充满挑战的道路,并且没有很多有详细记录的case可以作为参考。Invector Labs的团队最近发布了一个幻灯片,它总结了我们学习大规模构建机器学习解决方案的一些经验教训,同时我们也一直在努力研究该领域的其他公司如何解决这些问题。

LinkedIn是多年来一直将机器学习应用于大型场景的公司之一,但我们对于这家软件巨头使用的具体方法和技术知之甚少。最近,LinkedIn工程团队发布了一系列博客文章,提供了一些关于其机器学习基础架构和实践的非常有趣的见解。其中许多场景非常适合LinkedIn,并且这些技术和最佳实践适用于许多大型机器学习解决方案。

机器学习和人类

LinkedIn机器学习架构最有趣的方面是,他们利用人类作为机器学习工作流的一部分。例如,如何发现不同标题之间的关系,比如“高级软件工程师”或“首席开发人员”。LinkedIn使用人类分类法来标记标题之间的关系,这样它们就可以用于机器学习模型,比如有助于发现标题之间附加关系的长期-短期记忆网络。机器学习体系结构是LinkedIn知识图。

机器学习基础架构

LinkedIn机器学习基础架构的核心是一个名为Pro-ML的专有系统。从概念上讲,Pro-ML控制着机器学习模型从训练到监控的整个生命周期。为了扩大Pro-ML的规模,LinkedIn已经建立了一个架构,它将一些开源技术(如Kafka或Samza)与基础设施构建块(如SPark或Hadoop YARN)相结合。

尽管linkedin机器学习栈中使用的大多数技术都是众所周知的,但还有一些新的贡献值得进一步探索:

· Ambry: LinkedIn的Ambry是一种分布式的、不可变的BLOB存储系统,它高度可用,易于扩展,经过优化,可以向大小为多个GBs的不可变对象提供高吞吐量和低延迟的服务,并支持从客户端到存储层的端到端流,反之亦然。该系统的建立是为了在多个数据中心的主动设置下工作,并提供非常廉价的存储。

· TonY: TensorFlow on Say(TonY)是一个在ApacheHadoop上本地运行TensorFlow的框架。Tony允许作为Hadoop应用程序运行单个节点或分布式TensorFlow训练。

· PhotonMLPhotonML是一个基于ApacheSPark的机器学习库。目前,PhotonML支持训练不同类型的广义线性模型(GLMS)和广义线性混合模型(GLMS/GLMix模型):Logistic模型、线性模型和Poisson模型。

Hadoop上的TensorFlow

上个月,LinkedIn的工程团队开源的第一个版本的TensorFlow on Say(TonY)框架。发布的目标是使TensorFlow程序能够在分布式YARN集群上运行。虽然TensorFlow工作流在ApacheSPark这样的基础设施上得到了广泛的支持,但SEAR仍然被机器学习社区所忽略。TonY支持通过处理资源协商和容器环境设置等任务在Hadoop上运行TensorFlow作业。

TonY的核心是TensorFlow程序,并将其拆分为多个可在YARN集群上执行的并行任务。它同时保持对TensorFlow计算图的完全支持,这意味着TensorBoard等工具可以在TonY上使用而无需任何修改。

TonY是对TensorFlow生态系统的有趣贡献,可以改善大规模运行的TensorFlow应用程序的体验。此外,TonY可以从YARN生态系统中提供的各种工具和库中受益,为训练和运行TensorFlow应用程序提供高度可扩展的运行。

测试

LinkedIn运行着数以千计的并行机器学习模型,这些模型在不断地进化和版本迭代。在这些场景中,开发强大的测试方法对于优化运行时机器学习模型的性能至关重要。就LinkedIn而言,工程团队已将A / B测试作为其Pro-ML架构进行嵌入,机器学习工程师针对特定场景部署竞争算法,并评估产生最佳结果的算法。

像LinkedIn这样的互联网巨头处于实施大规模机器学习解决方案的最前沿,他们对这个主题的见解对于开始他们的机器学习之旅的公司来说是非常有价值的。 LinkedIn的工作清楚地表明,大规模开发机器学习是一项永无止境的练习,它将流行的开源库和平台与专有框架和方法相结合。

原文标题《Building Machine Learning at LinkedIn Scale》

作者:Jesus Rodriguez

译者:lemon

不代表云加社区观点,更多详情请查看原文链接

0 人点赞