DeepRec

稀疏模型业务场景的训练/预测引擎
授权协议 Apache-2.0
开发语言 C/C++ Python HTML/CSS
所属分类 神经网络/人工智能、 机器学习/深度学习
软件类型 开源软件
地区 国产
投 递 者 锺离飞飙
操作系统 跨平台
开源组织 阿里巴巴
适用人群 未知
 软件概览

DeepRec 是基于 TensorFlow1.15, Intel-TensorFlow和NVIDIA-TensorFlow之上构建的针对搜索、推荐、广告场景的训练、推理引擎。

背景

稀疏模型,是指在模型结构中离散特征计算逻辑占比较高的一类深度学习模型的统称。离散特征通常表现为id、tag、文字、词组等算法不能直接处理的非数值化特征,其广泛应用于搜索、广告、推荐等高价值业务中。

DeepRec(PAI-TF) 作为阿里巴巴集团统一的稀疏模型业务场景的训练/预测引擎,支持了淘宝搜索、猜你喜欢、定向广告、直通车广告等核心业务,支撑着千亿特征、万亿样本超大规模的稀疏训练。积累了核心的稀疏场景的功能及性能优化。针对稀疏模型在分布式、图优化、算子、Runtime等方面进行了深度的性能优化,同时提供了稀疏场景下特有的Embedding相关的功能。

DeepRec项目从2016年开发至今,由阿里巴巴集团内AOP团队、XDL团队、PAI团队、RTP团队以及蚂蚁集团AIStudio Infra团队等共建,并且得到了首猜、主搜、广告等算法团队的支持。DeepRec是NVIDIA、Intel相关深度学习团队合作共建项目。

关键功能

DeepRec支持超大分布式训练的能力,支持着阿里巴巴集团内部千亿特征、万亿样本的超大规模的训练场景,针对搜索、推荐、广告场景进行了定制的深度优化,主要包含以下三类的优化:

稀疏功能

  • 动态弹性特征(Embedding Variable)
  • 动态弹性维度(Dynamic Dimension Embedding Variable).
  • 自适应动态弹性特征(Adaptive Embedding Variable).
  • 多Hash Variable(Multiple Hash Embedding Variable).
  • EmbeddingVariable多级混合存储(Multi-tier Hybrid Embedding Storage).

性能优化

  • 分布式训练优化,包括grpc+seastar,FuseRecv,StarServer,HybridBackend等等。
  • Runtime优化,包括内存分配器(PRMalloc),显存分配器,基于cost-model和关键路径的执行引擎等.
  • 算子优化,包括BF16混合精度优化,稀疏算子优化,算子的GPU/CPU实现等.
  • 图优化,包括自动子图融合(AutoGraphFusion),自动流水线(SmartStage),结构化特征(StructureFeature),MicroBatch等.
  • 编译优化,支持BladeDISC,XLA等.

部署及推理

  • 增量模型导出及加载.
  • 超大模型分布式Serving.
  • 超大模型多级混合存储Serving支持.
  • 在线深度学习支持.
  • 高性能Serving框架SessionGroup支持.
  • DeepRec简单介绍 近几年,深度学习在很多领域都有了突破性的成功,在推荐系统领域也不例外。目前很多企业已经将推荐系统的架构从传统的方法切换到了深度学习的方法。 作为一个快速发展的领域,每年出来的文章不计其数,作为一个科研人员, 我们需要去实现别人的方法去进行对比试验,这无疑增加了入门的难度。因此,deeprec给大家提供了一个工具,这里我们实现了很多先进的基于深度学习的推荐系统算法,我们可以直

 相关资料
  • 我已经在AWS SageMaker上使用内置算法语义分割训练了一个模型。这个名为model.tar.gz的训练模型存储在S3上。所以我想从S3下载这个文件,然后使用它在我的本地电脑上进行推断,而不使用AWS SageMaker。 以下是三个文件: > :包括网络架构、数据输入和训练的参数。请参阅语义分割超参数。 我的代码: 错误:

  • 在之前的描述中,我们通常把机器学习模型和训练算法当作黑箱子来处理。如果你实践过前几章的一些示例,你惊奇的发现你可以优化回归系统,改进数字图像的分类器,你甚至可以零基础搭建一个垃圾邮件的分类器,但是你却对它们内部的工作流程一无所知。事实上,许多场合你都不需要知道这些黑箱子的内部有什么,干了什么。 然而,如果你对其内部的工作流程有一定了解的话,当面对一个机器学习任务时候,这些理论可以帮助你快速的找到恰

  • 在之前的描述中,我们通常把机器学习模型和训练算法当作黑箱子来处理。如果你实践过前几章的一些示例,你惊奇的发现你可以优化回归系统,改进数字图像的分类器,你甚至可以零基础搭建一个垃圾邮件的分类器,但是你却对它们内部的工作流程一无所知。事实上,许多场合你都不需要知道这些黑箱子的内部有什么,干了什么。 然而,如果你对其内部的工作流程有一定了解的话,当面对一个机器学习任务时候,这些理论可以帮助你快速的找到恰

  • 我使用以下代码将预先训练的ResNet50 keras模型导出到tensorflow中,以便为tensorflow提供服务: 最后,我使用以下函数对tensorflow服务进行预测: 然后,我从一个ipython shell中使用上面的两个函数从ImageNet的val集中选择随机的imagenes,我已经在本地存储了这些ImageNet。问题是tensorflow服务总是为我发送的所有图像返回相

  • 引言 这篇文档会介绍如何用 darknet 训练一个 YOLOv2 目标检测模型,看完这篇文档会发现:模型训练和预测都非常简单,最花时间的精力的往往是训练集的数据预处理。 这里先简单介绍一下 目标分类 (Classification) 和 目标检测 (Detection) 的区别?什么是 YOLO?以及什么是 darknet? 下面这张图很清晰地说明了目标分类: 一张图片作为输入,然后模型就会告诉

  • 我希望使用AWS Sagemaker工作流部署一个预训练的模型,用于实时行人和/或车辆检测,我特别想使用Sagemaker Neo编译模型并将其部署在边缘。我想从他们的模型动物园中使用OpenVino的预构建模型之一,但是当我下载模型时,它已经是他们自己的优化器的中间表示(IR)格式。 > 如果没有,是否有任何免费的预训练模型(使用任何流行的框架,如pytorch,tenorflow,ONXX等)

  • 问题内容: 我像这样使用scikit-learn的SVM: 我的问题是,当我使用分类器预测训练集成员的班级时,即使在scikit- learns实现中,分类器也可能是错误的。(例如) 问题答案: 是的,可以运行以下代码,例如: 分数是0.61,因此将近40%的训练数据被错误分类。部分原因是,即使默认内核是(理论上也应该能够对任何训练数据集进行完美分类,只要您没有两个带有不同标签的相同训练点),也可

  • 本文向大家介绍Keras使用ImageNet上预训练的模型方式,包括了Keras使用ImageNet上预训练的模型方式的使用技巧和注意事项,需要的朋友参考一下 我就废话不多说了,大家还是直接看代码吧! 在以上代码中,我们首先import各种模型对应的module,然后load模型,并用ImageNet的参数初始化模型的参数。 如果不想使用ImageNet上预训练到的权重初始话模型,可以将各语句的中