时隔16年Jeff Barr重返10.23-25 QCon上海站,带你看透AI如何重塑软件开发! 了解详情
写点什么

让 AI 工程师的工作效率提升 100%:领英的机器学习规模化应用实践

  • 2019-11-29
  • 本文字数:3500 字

    阅读完需:约 11 分钟

让AI工程师的工作效率提升100%:领英的机器学习规模化应用实践

人工智能和机器学习仍然是全球持续增长的领域之一,近年来涌现出越来越多本科生或者非人工智能专业出身的工程师,他们努力学习和使用技术来改进产品,几乎每天都有新的机器学习技术和框架发布。这篇文章将讨论领英如何规模化利用技术,帮助更多工程师提升机器学习的效率。近日,领英中国机器学习研发经理李子在 IEEE 数据挖掘国际会议(ICDM)上分享了领英是如何规模化开展机器学习,介绍领英的核心产品以及如何利用技术帮助更多工程师提升机器学习的效率。

Pro-ML 提升机器学习效率


过去 10 年,领英把人工智能技术应用于各个方面来提升用户和客户体验,比如你可能认识的人(People You May Know),可以为你推荐能够给你的职业发展带来价值的人;Feed 可以帮你找到最相关的行业信息,比如最新的文章或联系人的最新动态;Recruiter Search 可以帮助企业了解趋势,更好地进行招聘;职位推荐系统(Job Recommendations System)可以帮你找到工作或者跳槽到更好的企业。机器学习推动着领英的核心产品。


但领英发现,过去每个团队用自己的 AI 技术堆栈开发各自的产品。这种做法无法有效实现规模化,因为每个团队使用的技术不同,从逻辑回归到深度学习,从 Pig 、 Hive、Spark 到 Scalding 等等,团队之间的 AI 技术堆栈很难共享协作。所以领英希望在招入新的工程师或是开发新功能、使用新技术时,尽可能减少大家的负担。此外,近年来很多人工智能领域的从业者其实并不是人工智能专业出身,领英的 AI 基础架构对他们来说过于复杂,难以用来构建、迭代模型。


为了高效地促进机器学习规模化,领英构建了名为“Productive Machine Learning”(高效机器学习)的项目,简称 Pro-ML。Pro-ML 的目标是将 AI 工程师的工作效率翻一番,让他们能更轻松、更高效地构建模型。在过去十年里领英发现,模型性能与模型更新速度直接相关。因此,如果能让工程师加快模型迭代速度,那么模型性能也会提高。


具体来说 Pro-ML 采用分层解决方案,目标是提高整个模型开发周期的效率,从模型探索和构建(Exploring and Authoring),到模型训练(Training)、模型部署(Deploying)、模型运行(Running),再到持续监控模型状态。领英希望把所有常规工作自动化,这样算法工程师就能更加聚焦于创新。



Pro-ML 中有两个工具贯穿刚刚提到的所有阶段:一个是 Feature Marketplace,另一个是 Health Assurance Layer。在 Feature Marketplace,领英使用先进的技术来生成、共享和管理新特征。AI 建模的核心是特征工程(Feature Engineering),领英有数百名工程师和数万种正在研究的特征。提高工程师生成、共享和管理特征的效率,对于提高他们的工作效率至关重要。


而 Health Assurance Layer 可以在整个开发周期中持续监控模型状态。比如,它确保用于模型训练的离线特征和用于在线推理的在线特征在统计意义上一致或近似,同时确保在线模型的良好性能。比如在预测分数的时候,工程师希望在线打的分与离线训练的分数精度一致。一旦 Health Assurance Layer 检测到异常,会自动提醒工程师,然后工程师可以介入,进行调试。Health Assurance Layer 还提供了很多有用的工具,帮助工程师进一步确认问题所在。是代码出错?还是数据缺失?还是仅仅因为模型老旧,需要重新训练?

探索与授权

建模过程实际上始于对问题的探索。目标是什么?目标函数是什么?有什么特征?数据有哪些?对于这些问题,工程师需要做无数个实验来探索数据,进行特征工程,调整模型和超参数。为了提高这一阶段的工作效率,领英构建了集成了 Pro-ML 内核的 Jupyter Notebook。在 Jupyter Notebook 的帮助下,工程师可以一步一步地进行数据探索、特征选择和模型绘制,并以交互的方式做实验。Jupyter Notebook 由领英的 Spark 集群提供计算资源,这样工程师就可以在线完成工作而不需要把数据下载到本地,不仅提高了他们的工作效率,同时也保护了用户隐私。



为了定义模型,除了 Jupyter Notebook,领英还构建了一种领域特定语言(Domain-specific Language, DSL)叫做 Quasar。本质上来说,机器学习模型就是有向无环图(DAG),它定义了输入特征和在这些特征上的转换。Quasar DSL 是领英用来定义模型的语言,它为建模者提供了几乎所有常见的特征转换函数。因此 AI 工程师们可以专注于新特征或者特征组合实验,而不需要书写大量重复代码来做特征转换。Quasar 的另一个优势是离线训练出来的模型可以直接部署到线上,大大简化了模型从离线到在线的过渡。


多种工具高效协助模型训练

众所周知,一个模型实际上有两个关键组成部分,一个是特征,另一个是算法。首先来看一下特征。如前所述,特征工程是 AI 建模的核心所在。在领英,为了提高学习效率,领英构建的框架 Feature Marketplace 可以让工程师可以有效地生成、发现、共享和管理特征。工程师可以将特征共享到 Feature Marketplace 上以便其他人使用,也可以按名称搜索特征,发现该特征并获取关于该特征的所有信息,例如特征的创建者、特征是如何生成的、特征应用在哪些领英的模型中以特征的统计分布等等,所有这些问题都可以在 Feature Marketplace 找到答案。Feature Marketplace 还为工程师提供了诸多切实有用的工具,帮助工程师选择特征以及持续监控和验证特征。通过 Feature Marketplace,工程师可以快速找到建模所需的特征。



不过,Feature Marketplace 也面临着挑战:如何确保工程师能够得到他们所需要的,比如在线和离线特征是一致的。如果做了大量离线实验,收集好的特征用于建模,那么这个模型可能会表现得很好,但不能保证在线的时候这个特征是稳定的,如果不稳定,那模型性能可能会下降。事实上,这种事故在过去几年屡见不鲜。为了解决这个问题,领英构建了一个工具称为 Frame。Frame 是一个基于相同配置和相同公共库离线和在线生成特征的平台,保证了离线和在线的一致性。领英向工程师提供操作细节,工程师只需要在 Quasar 模型中指定特征的名称,就可以保证在线和离线获取特征的一致性。


特征集齐后就需要算法。领英支持深度学习、决策树算法、Generalized Linear Mixed Model (GLMix)等多种算法。在深度学习的场景中,领英使用 Tensorflow;在决策树算法的场景中使用 XGBoost,两者都是第三方库。对于 GLMix,领英研发并开源了一个机器学习库叫做 Photon。GLMix 模型大大提高了职位推荐系统的性能,成功使职位申请数量增加了 20%。


根据特征和算法,领英构建了 Photon Connect 训练引擎,把上述所有组件连接起来。Photon Connect 用 Frame 来访问特征,并将特征与标签数据连接起来,然后将数据传输至 Quasar 模型进行特征转换。在这个阶段,Quasar 模型的参数是未知的,领英利用 Quasar 模型进行特征转换,然后使用算法来学习这些参数。学习到的参数会插入到 Quasar 模型中。这样,一个 Quasar 模型建模就完成了。它可以直接部署到线上服务中。


Health Assurance Layer 保证算法顺利运行

模型训练和部署完成后,最后一个问题是:当模型实际运行的时候,如何保持它能够正常运行呢?根据过去的经验教训,在开发的早期阶段越重视这个问题,越容易在实际运行时保证模型正常运行。因此,在模型探索和训练等早期阶段,领英的 Health Assurance Layer 提供了一系列工具,用于持续监控和验证。有人可能会问,在实际运行中,所有在线特征都可用吗?特征更新的速度是否足够快?实际上,如果出现任何异样, Health Assurance Layer 将通知相应的工程师,他们会介入进行调试。Health Assurance Layer 为工程师提供了一系列工具,帮助他们快速锁定问题。


领英的机器学习与 Pro-ML 团队

经过十年的快速发展和实验后,领英将人工智能团队与产品团队紧密地联系在一起,使机器学习团队能够与致力于解决类似难题的同行专家合作并分享最佳实践。


类似地,Pro-ML 团队围绕五个主要支柱构建,每个支柱都支持模型开发生命周期的一个阶段。通常,每个支柱都有一个负责人(通常是一名工程师)、一个技术负责人和几个工程师。这些工程师也来自各个组织,包括产品工程组织、基础/工具组织和基础架构团队。Pro-ML 团队分布在世界各地,包括班加罗尔、欧洲和美国多个地方。领英还拥有一个领导团队,帮助制定项目愿景,并且最重要的是致力于消除摩擦,以便每一个支柱能够独立存在。


Pro-ML 将增加能够利用人工智能的产品数量,并扩大能够培训和部署模型的团队数量。此外,它将减少模型选择、部署等所需的时间,并使 Health Assurance 等关键领域自动化。领英现在已经花了一年多的时间来改造人工智能,使其能保持快速、高效和可操作性,扩展到所有工程领域。它让工程师有更多的时间去做他们最擅长的事情:利用领英独特的高度结构化的数据集,为棘手的技术问题找到创造性的解决方案。


2019-11-29 08:073020

评论

发布
暂无评论
发现更多内容

多国探路数字货币

CECBC

数字货币

区块链加速产业革命,打造畜禽养殖业发展新途径

CECBC

养殖业

Redis为什么用跳表而不用平衡树?

Java架构师迁哥

海阔天空的游戏出海,HMS生态提供的风帆与通路

脑极体

最简单的Go Dockerfile编写姿势,没有之一!

万俊峰Kevin

Docker Dockerfile Go 语言

使用LiteOS Studio图形化查看LiteOS在STM32上运行的奥秘

华为云开发者联盟

LiteOS 脚本 语言

一周信创舆情观察(11.30~12.6)

统小信uos

三分钟看懂新一代.Net Core3.1工作流引擎平台

Philips

敏捷开发 工作流

LeetCode题解:515. 在每个树行中找最大值,DFS,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

如何判断一个区块链项目是否优质?

CECBC

开源

话题讨论 | 程序员自己电脑中毒是甚么体验?

xcbeyond

话题讨论

我哭了!Centos6停止更新只能切换7,哪些习惯也需要切换

小Q

Java Linux centos 学习 面试

训练营第八周作业

大脸猫

极客大学架构师训练营

《迅雷链精品课》第十二课:PoW共识算法

迅雷链

区块链

分布式事务框架 seata-golang 通信模型详解

阿里巴巴云原生

数据库 微服务 云原生 Go 语言

云上的移动性能测试平台

移动研发平台EMAS

阿里云 测试 移动研发平台

开除AI伦理学家,谷歌如何从“不作恶”到“不宽容”?

脑极体

让垃圾分类开发“极快致简”的好物件,零基础的开发小白也能轻松驾驭它!

华为云开发者联盟

数据 分类

华为云亮相QCon2020深圳站,带你体会大厂的云原生玩法与秘诀

华为云开发者联盟

专家 华为云 深圳

【得物技术】MySQL多表关联同步到ES的实践

得物技术

MySQL 原理 配置 ES 多表join

训练营第八周总结

大脸猫

极客大学架构师训练营

什么是802.11ax(Wi-Fi 6)

跨专业零基础校招拿到网易18K*13薪Java岗offer全过程复盘总结

Java架构师迁哥

官方活动 | 盘点2020有奖征文

InfoQ写作社区官方

盘点2020 热门活动

构师训练营第八周学习笔记

李日盛

笔记

装机必备:借用IDM实现百度云高速下载

懒得勤快

我哭了!Centos6停止更新只能切换7,哪些习惯也需要切换

996小迁

Java 架构 面试 Centos6

Singleton手绘

raox

极客大学架构师训练营

滴滴DoKit-功能介绍之文件同步助手

工具 文件 DoKit

Spark-submit执行流程,了解一下

华为云开发者联盟

spark 技术 流程

Serverless 如何落地?揭秘阿里核心业务大规模落地实现

阿里巴巴云原生

阿里巴巴 阿里云 Serverless 开发者 云原生

让AI工程师的工作效率提升100%:领英的机器学习规模化应用实践_AI&大模型_李子_InfoQ精选文章