写点什么

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

评论

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

分布式事务的性能设计

穿过生命散发芬芳

分布式事务 7月月更

C++ Workflow 异步编程框架 - 性能优化上篇

1412

c++ GitHub 开源 异步编程 workflow

函数初认识-下

芒果酱

C语言 7月月更

【萌新解题】四数之和

面试官问

LeetCode

Zabbix 6.0 源码安装以及 HA 配置

耳东@Erdong

zabbix ha 7月月更 zabbix 6.0

zookeeper-watcher的javaApi相关使用

zarmnosaj

7月月更

Flutter 使用 AnimatedSwitcher 做场景切换

岛上码农

flutter ios 前端 安卓开发 7月月更

如何在Linux中比较多个文件?这12个优秀工具了解一下!

wljslmz

Linux 7月月更 文件比较

ArkUI开发框架组件的生命周期详解

坚果

HarmonyOS OpenHarmony Open Harmony 7月月更

Vscode 搭建 C / C++ 开发环境

攻城狮杰森

c c++ vscode 开发环境 7月月更

长安链学习研究-存储分析wal机制

长安链

uni-app进阶之自定义【day13】

恒山其若陋兮

7月月更

Okaleido或杀出NFT重围,你看好它吗?

BlockChain先知

实习是步入社会的一道坎

KEY.L

7月月更

Vue3 状态管理 Pinia 快速入门指南

程序员海军

Vue 状态管理 7月月更

模块1 作业

王者荣耀商城异地多活架构设计

地下地上

架构实战营

Qt | 控件之QComboBox

YOLO.

qt 7月月更

模块7(王者荣耀商城异地多活架构设计)

Geek_701557

C#入门系列(二十二) -- 面向对象之多态

陈言必行

7月月更

读书笔记之《深入理解Java虚拟机:JVM高级特性与最佳实践》(下)

蔡农曰

Java 后端 JVM 后端技术 Java 开发

Mysql 温故知新系列「触发器详解」

安逸的咸鱼

MySQL 7月月更

Linux tar打包

工程师日月

Linux tar 7月月更

Setup的使用技巧

bo

Vue 前端 7月月更

群里的初级工程师求助说,要采集采招数据,必须给他安排上

梦想橡皮擦

Python 爬虫 7月月更

你学会如何将项目部署到Linux系统上了吗?要不我带你耍耍。

Java学术趴

7月月更

排序子序列与倒置字符串

未见花闻

7月月更

C++ Workflow异步调度框架 - 性能优化网络篇

1412

c++ 开源 workflow 异步调度 网络框架

Istio XDS配置生成实现

阿泽🧸

envoy 7月月更

现场可程式化逻辑闸阵列 FPGA

贾献华

7月月更

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