[TOC]
embedx 是基于 c++ 开发的、完全自研的分布式 embedding 训练和推理框架。它目前支持 图模型、深度召回模型和图与排序、图与召回的联合训练模型等。
embedx 是腾讯 AI 领域开源协同项目,获得过 开源协同优秀奖
、微信 T 计划优秀文章
和 微信最具技术价值文集奖
等。
经过近 3 年的迭代,已经趋向稳定和成熟,在设计和开发的过程中,参考了业界开源项目的大量经验,现将其开源反哺业界,希望该项目能持续的进行迭代。
-
大规模图引擎
- 我们设计并实现了支持十亿节点、千亿边的大规模图引擎
- 以 op 形式提供了包括
random walk
、negative sampling
和neighbor sampling
等多种分布式采样接口 - 通过层次化采样解决分布式负例采样一致性、拒绝采样解决动态随机游走效率低、partial sum 解决异构的邻居采样等问题大幅的提升了分布式采样的效率
-
高性能计算引擎
- 基于 deepx_core 实现神经网络计算,deepx_core 提供了能自动求导的静态图引擎
- 该引擎支持一百余个 op, 它具备大规模稀疏、高性能、跨平台等优点
- deepx_core 已经对外开源,请参考deepx_core
总结我们的解决方案的性能普遍是开源框架的数倍,机器节省 30%-60%
。
-
丰富的模型
- 支持
十亿级节点
、千亿级边
的图模型如 deepwalk、graphsage 等 - 支持
百亿级样本
、百亿级特征
的深度排序、召回模型如 deepfm、din、youtubednn、dssm 等 - 创新性的提出并支持
图与排序的联合建模模型
graphdeepfm、图与召回的联合建模模型
graphdssm 等
- 支持
-
模型创新
- 解决了深度模型与图模型在排序、召回等场景中的两阶段使用方式带来的优化目标不一致等难题
- 公司内首次落地了图与排序、图与召回等模型的离线训练与在线推理,在业务中取得了不错的效果
总结,我们沉淀了推荐、搜索、风控等领域内累计 近 20 个
常用的模型。
-
实时流程
- 为捕获用户的实时行为,我们搭建了分钟级的 online learning 流程
- 即从实时数据流消费、召回实时训练与推理、排序实时训练与推理,全流程在分钟级内生效
-
流程改进
- 通过
模型参数增量导出
解决了模型训练结束后导出的效率问题 - 通过
模型参数异步更新
解决了复杂模型在线推理的效率问题 - 通过
重要性采样纠偏
实时样本的偏移分布解决了模型效果问题
- 通过
总结,我们的解决方案具备全流程分钟级的实时能力,在多个推荐业务成功落地。