龙蜥社区(OpenAnolis)(以下简称“龙蜥社区”)正式成立 DeepRec SIG,将携手龙蜥社区开发者一道,致力于维护 Anolis OS 上的 DeepRec 组件,并将稀疏模型深度学习引擎引入龙蜥社区。
稀疏模型是指在模型结构中离散特征计算逻辑占比较高的一类深度学习模型的统称,其广泛应用于搜索、广告、推荐等高价值业务中。当下主流开源深度学习框架,对稀疏模型的支持不足。国内外公司在稀疏场景使用的方案在系统性和全面性上存在着问题,技术复用上的难度导致无法大面积推广,制约了不同场景下稀疏模型的探索和发展。
DeepRecSIG 作为负责龙蜥操作系统上 DeepRec 相关开源软件包的维护,构建搜索、推荐、广告场景模型的训练及预测生态的利器,现做如下介绍:
DeepRec 介绍
DeepRec(PAI-TF)是阿里巴巴集团统一的大规模稀疏模型训练/预测引擎,广泛应用于淘宝、天猫、阿里妈妈、高德、淘特、AliExpress、Lazada 等,支持了淘宝搜索、推荐、广告等核心业务,支撑着千亿特征、万亿样本的超大规模稀疏训练。
DeepRec 在分布式、图优化、算子、Runtime 等方面对稀疏模型进行了深度性能优化,同时提供了稀疏场景下特有的 Embedding 相关功能。
DeepRec 的优势
DeepRec 是基于 TensorFlow1.15、Intel-TF、NV-TF 构建的稀疏模型训练/预测引擎,针对稀疏模型场景进行了定制深度优化,主要包含以下三类功能优化:
1、模型效果
DeepRec提供了丰富的稀疏功能支持,提高模型效果的同时降低稀疏模型的大小,并且优化超大规模 下Optimizer 的效果。DeepRec 提供了动态弹性特征、动态弹性维度、自适应弹性特征、多 Hash Embedding、Embedding多级混合存储、AdamAsyncOptimizer 等功能,在内存占用、性能、模型效果等方面为业务带来实际的帮助。
2、训练性能
DeepRec 针对稀疏模型场景在分布式、图优化、算子、Runtime 等方面进行了深度性能优化。其中:
- DeepRec 对不同的分布式策略进行了深度的优化,包括异步训练、同步训练、半同步训练等
- DeepRec提供了丰富的针对稀疏模型训练的图优化功能,包括自动流水线SmartStage、结构化特征、自动图 Fusion 等等
- DeepRec 中优化了稀疏模型中数十个常见算子,并且提供了包括Embedding、Attention等通用子图的 Fusion 算子
- DeepRec 中 CPUAllocator 和 GPUAllocator 能够大大降低内存/显存的使用量并显著加速 E2E 的训练性能。在线程调度、执行引擎方面针对不同的场景提供了不同的调度引擎策略
3、部署及Serving
针对搜索、推荐、广告场景中特有的部署和 Serving 的特点,DeepRec 支持 Online Deep Learning 的完整链路,包括增量模型的导出、加载,Serving 的模型自动发现等。DeepRec 中支持 Embedding 多级混合存储,使得单机进行超大模型预测时避免分布式 Serving 带来的 latency 增大问题,提高大模型的预测性能的同时降低成本。
SIG 规划
DeepRec 计划每隔 1-2 个月进行版本更新,后续发布的重点功能包括:
Serving:开源完整的 Online Deep Learning(ODL),并持续优化 DeepRec 的 Serving 性能。
Embedding:优化各个 Embedding 功能的可用性,提供 Embedding 的各种调试工具,并持续优化 Embedding 多级混合存储的性能。
Runtime:提供统一的调度框架,优化多场景下任务调度的性能。持续优化内存、显存、持久化内存分配器性能,并针对不同分配场景提供不同的内存分配器。
分布式:持续优化异步训练、同步训练、半同步训练的性能。
硬件及算子加速:结合编译优化、手动优化等手段优化计算性能;针对新的硬件进行持续优化,协同硬件团队推动新型硬件在 DeepRec 落地。
此外 DeepRec 正在和内核团队合作,针对稀疏模型的训练/预测任务的特点,在内核调度、内存管理上进行针对性的优化。
龙蜥社区希望通过这个开放平台,和外部开发者开展广泛合作,进一步推动稀疏模型训练/预测框架的发展,为不同业务场景中的搜推广模型训练和预测带来业务效果和性能提升。
今天 DeepRec 的开源只是我们迈出的一小步。我们非常期待得到您的反馈。最后,如果你对 DeepRec 感兴趣,欢迎你加入我们一起共建(文末扫描钉钉入群交流),为我们的框架贡献一点你的代码和意见,这将是我们莫大的荣幸。
欢迎更多开发者加入 DeepRec SIG:
网址:https://openanolis.cn/sig/deeprec
邮件列表:deeprec@lists.openanolis.cn
—— 完 ——
加入龙蜥社群
加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。欢迎开发者/用户加入龙蜥社区(OpenAnolis)交流,共同推进龙蜥社区的发展,一起打造一个活跃的、健康的开源操作系统生态!
关于龙蜥社区
龙蜥社区(OpenAnolis)是由企事业单位、高等院校、科研单位、非营利性组织、个人等在自愿、平等、开源、协作的基础上组成的非盈利性开源社区。龙蜥社区成立于 2020 年 9 月,旨在构建一个开源、中立、开放的Linux 上游发行版社区及创新平台。
龙蜥社区成立的短期目标是开发龙蜥操作系统(Anolis OS)作为 CentOS 停服后的应对方案,构建一个兼容国际 Linux 主流厂商的社区发行版。中长期目标是探索打造一个面向未来的操作系统,建立统一的开源操作系统生态,孵化创新开源项目,繁荣开源生态。
目前,龙蜥OS 8.4已发布,支持 X86_64 、Arm64、LoongArch 架构,完善适配飞腾、海光、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密支持。
欢迎下载:
https://openanolis.cn/download
加入我们,一起打造面向未来的开源操作系统!