写点什么

让 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:072836

评论

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

区块链商城系统开发模式制作

必须清除互联网世界的毒瘤:网络谣言背后存在病态心理

石头IT视角

IDC发布2021年中国云计算10大预测;Docker 桌面为 M1 推出技术预览版

京东科技开发者

云计算 AI 程序人生

天源迪科获2020年度中国产业供应链(中央企业集采供应链)百强企业荣誉

DT极客

2020年,关于【区块链运营】工作的11条思考

猫Buboo

比特币 区块链+

Spring Cloud微服务实战

田维常

微服务

【年终总结】mybatis常见注解

田维常

mybatis

源码解析Synchronized同步方法的八种使用场景,收藏

996小迁

Java 源码 架构 面试 synchronized

anyRTC加持AI,打造下一代实时音视频引擎

anyRTC开发者

人工智能 android 音视频 WebRTC RTC

阿里技术官亲荐“998页的应届生面试手册”看完才发现,原来求职也没那么难!

比伯

Java 程序员 面试 编程语言 计算机

区块链多币种钱包app系统开发

iOS 崩溃分析

ios 崩溃分析

被阿里、腾讯、华为追捧为最牛逼的 Java 框架你知道是什么吗?

Java架构师迁哥

KKR四币连发挖矿系统软件APP开发

系统开发

23 种设计模式的有趣见解

xcbeyond

设计模式 七日更

源码输出纯净版SSM架构,收藏直接CV使用它不香吗?

小Q

Java 学习 编程 面试 ssm

基于App SDK和API搭建无人自习室等无人场景

IoT云工坊

物联网 智慧琴房 24小时无人自习室 24小时自助游戏厅 共享办公室

5. 穿过拥挤的人潮,Spring已为你制作好高级赛道

YourBatman

Spring Framework 类型转换 Converter

Kafka的控制器controller详解

数据社

kafka 七日更

完全懵掉的电话面试

escray

面试 面经 七日更 十日谈

秒杀系统设计的挑战和问题(转载)

jorden wang

带宽、延时、吞吐率、PPS 这些都是啥?

小林coding

Linux 操作系统 网络

还记得你的时间胶囊吗?

熊斌

个人成长 七日更

SQL:我为什么慢你心里没数吗?

Java架构师迁哥

干货时间:聊聊DevOps下的技术系列之契约测试

华为云开发者联盟

DevOps 测试 交互

物联网打工人必备:LiteOS Studio图形化调测能力

华为云开发者联盟

互联网 LiteOS 打工人

菜鸟实时数仓2.0进阶之路

Apache Flink

flink 流计算

BitQy交易所软件系统开发|BitQy交易所APP开发

源码解析Synchronized同步方法的八种使用场景,收藏

小Q

Java 学习 架构 面试 多线程

IPFS质押挖矿系统开发方案

堪称完美!阿里架构师亲自手撕”Spring Boot实战笔记“用60个案例给你整的明明白白

比伯

Java 编程 程序员 架构 技术宅

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