作者:Jesus Rodriguez
翻译:王闯(Chuck)校对:欧阳锦本文约1700字,建议阅读5分钟本文介绍了全球知名职业社交平台领英(LinkedIn)背后的大规模机器学习基础设施,从中我们得以一窥硅谷互联网大厂的机器学习架构和工程技术实践前沿。
标签:机器学习、架构、TensorFlow、领英、LinkedIn
图片来源:
https://solutionsreview.com/business-intelligence/machine-learning-linkedin-groups/
构建大规模机器学习是⼀条充满挑战的道路,没有多少过往案例可以参考。我在Invector Labs(译者注:一家使用人工智能改进软件开发的公司)的团队最近发布了一份PPT报告,总结了我们在构建⼤规模机器学习解决⽅案过程中学到的⼀些经验教训,当然我们也⼀直在学习该领域的其他公司是如何解决这些问题的。
领英(LinkedIn)是多年来⼀直将机器学习应⽤于⼤规模场景的公司之⼀,但我们对这家软件巨头使⽤的具体⽅法和技术却知之甚少。最近,领英⼯程团队发布了⼀系列博客⽂章,就他们的机器学习基础设施和实践提出了⼀些⾮常有趣的⻅解。虽然说领英的很多应用场景是特定的,但这些技术和最佳实践方案普遍适⽤于许多⼤型的机器学习解决⽅案。
人机闭环
领英的机器学习架构最有意思的其中一点是考虑了如何引入“人”作为机器学习⼯作流的⼀部分。让我们以⼀个场景为例,领英需要发现不同职位头衔之间的关系,比如“高级软件⼯程师”或“⾸席程序员”,从而用来改善搜索体验。领英会让人工分类专家来标记头衔之间的关系,以便⽤于机器学习模型,例如有助于发现头衔之间其他关系的⻓短记忆⽹络(Long-Short-Term-Memory networks)。该机器学习架构就是领英知识图谱(LinkedIn Knowledge Graph)的基础。
⼤规模机器学习基础设施
领英机器学习基础设施的核⼼是⼀个名为Pro-ML的专有系统。从概念上来讲,Pro-ML控制机器学习模型从训练到监控的整个⽣命周期。为了扩展Pro-ML,领英自建了⼀个架构,整合了⼀些开源技术(如Kafka或Samza)和其他一些基础设施构建模块(如Spark或Hadoop YARN)。
图片来源:
https://engineering.linkedin.com/blog/2018/09/open-sourcing-tony--native-support-of-tensorflow-on-hadoop
尽管领英机器学习技术栈中的⼤多数技术都是众所周知的,但仍有⼀些新的贡献值得进⼀步探索:
- Ambry:领英的Ambry是⼀个分布式不可变blob存储系统,它具有高可⽤性,非常易于扩展,经过优化能够提供下至KB、上至GB⼤⼩的不可变对象,具备高吞吐和低延迟特性,并⽀持从客户端到存储层的相互传输。该系统已经被部署在跨多个数据中⼼,能在主动-主动设置(active-active setup)模式下⼯作,存储成本大大降低。
- TonY:TensorFlow on YARN(TonY)是⼀个原⽣运行在Apache Hadoop上的TensorFlow框架。TonY⽀持将单节点或分布式TensorFlow训练作为Hadoop应⽤程序运行。
- PhotonML:Photon ML是⼀个基于Apache Spark的机器学习库。⽬前,Photon ML⽀持训练不同类型的⼴义线性模型(GLM)和⼴义线性混合模型(GLMMs/GLMix),如:逻辑回归、线性回归和泊松回归。
Hadoop 上的 TensorFlow
上个⽉,领英⼯程团队在YARN(TonY)框架上开源了其TensorFlow的第⼀个版本。该版本的⽬标是使TensorFlow程序能够在分布式YARN集群上运行。虽然TensorFlow⼯作流已经在 Apache Spark等基础设施上得到⼴泛⽀持,但YARN仍然在很⼤程度上被机器学习社区所忽视。TonY能够通过处理资源协商和容器环境设置等任务,对在Hadoop上运行的TensorFlow作业提供一流的支持。
图片来源:
https://engineering.linkedin.com/blog/2018/09/open-sourcing-tony--native-support-of-tensorflow-on-hadoop
TonY的核心是一个TensorFlow程序,将其拆分为多个可以在YARN集群上并行的任务。这样做的同时还可以保持对TensorFlow计算关系图的完全支持,这意味着TensorBoard等工具无需做任何修改即可在TonY上使用。
图片来源:
https://engineering.linkedin.com/blog/2018/09/open-sourcing-tony--native-support-of-tensorflow-on-hadoop
TonY是对TensorFlow生态系统的一项有趣贡献,它可以改善大规模运行TensorFlow应用程序的体验。此外,TonY还受益于YARN生态系统中提供的各种工具和库,为训练和运行 TensorFlow应用程序提供了高可扩展的内存管理/运行时(runtime)。
测试
领英背后运行着数千个并发的机器学习模型,这些模型不断进行更新和版本迭代。在这些情况下,开发出一套稳健的测试⽅法对于优化机器学习模型的运行性能来说⾄关重要。在领英的实践中,⼯程团队将A/B测试视为其Pro-ML架构的重中之重,它允许机器学习⼯程师针对特定场景部署各自的算法,就像竞赛,最后经过评估得到效果最佳的算法。
图片来源:
https://engineering.linkedin.com/blog/2018/09/open-sourcing-tony--native-support-of-tensorflow-on-hadoop
尾声
像领英这样的互联⽹巨头是⼤规模机器学习解决⽅案实施的最前沿玩家,他们关于这⼀主题的⻅解对于许多刚开始机器学习之旅的公司来说⾮常有价值。本文中我们清楚地了解了领英如何开发大规模机器学习,将流行的开源库和平台与其专有的框架和⽅法相结合,这是⼀项永⽆⽌境的⼯作。
原文标题:
Inside LinkedIn’s Machine Learning Infrastructure
- An overview of the architecture and techniques powering machine learning at LinkedIn.
原文链接:
https://pub.towardsai.net/inside-linkedins-machine-learning-infrastructure-125076417ee0
编辑:王菁
校对:林亦霖
译者简介
王闯(Chuck),台湾清华大学资讯工程硕士。曾任奥浦诺管理咨询公司数据分析主管,现任尼尔森市场研究公司数据科学经理。很荣幸有机会通过数据派THU微信公众平台和各位老师、同学以及同行前辈们交流学习。
翻译组招募信息
工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。
你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。
其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。
点击文末“阅读原文”加入数据派团队~
转载须知
如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。
发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。
点击“阅读原文”拥抱组织