23

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

 4 years ago
source link: https://www.infoq.cn/article/mC6TJLddzisB1AGIacuX
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

Pro-ML 提升机器学习效率

aMreqqq.jpg!web

过去 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),再到持续监控模型状态。领英希望把所有常规工作自动化,这样算法工程师就能更加聚焦于创新。

EJrI733.jpg!web

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 集群提供计算资源,这样工程师就可以在线完成工作而不需要把数据下载到本地,不仅提高了他们的工作效率,同时也保护了用户隐私。

BRrY3ae.jpg!web

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

Mv6ZNfY.jpg!web

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

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

NjAz6zE.jpg!web

不过,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 模型建模就完成了。它可以直接部署到线上服务中。

ZJneaiY.jpg!web

Health Assurance Layer 保证算法顺利运行

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

Mzq6VrF.jpg!web

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

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

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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK