下载
中文
注册
Awesome_RecSystem_ID2951-PyTorch

基本信息

发布者(Publisher):Huawei

应用领域(Application Domain): Click-Through-Rate

版本(Version):1.1

修改时间(Modified) :2022.10.26

大小(Size):237KB

框架(Framework):Pytorch 1.5.0

精度(Precision):Mixed

处理器(Processor):昇腾910

应用级别(Categories):Official

描述(Description):基于Pytorch框架的广告点击率预测模型xDeepFM训练代码

概述

xDeepFM模型是用于预测广告点击率的模型,为了实现自动学习显式的高阶特征交互,同时使得交互发生在向量级上,xDeepFM首先提出了一种新的名为压缩交互网络(Compressed Interaction Network,简称CIN)的模型 。

默认配置

  • 训练数据集、测试数据集预处理:

    • 运行 data/forXDeepFM/xDeepFM_dataPreprocess_PyTorch.py 实现数据集预处理
    • 运行命令(切换到forXDeepFM目录):python3 xDeepFM_dataPreprocess_PyTorch.py
  • 训练超参

    • Batch size: 2048
    • Learning rate(LR): 0.01
    • Optimizer: apex.optimizers.NpuFusedSGD
    • Train epoch: 5

支持特性

特性列表 是否支持
分布式训练
混合精度
并行数据

混合精度训练

昇腾910 AI处理器提供自动混合精度功能,可以针对全网中float32数据类型的算子,按照内置的优化策略,自动将部分float32的算子降低精度到float16,从而在精度损失很小的情况下提升系统性能并减少内存使用。

开启混合精度

已默认开启混合精度。

训练环境准备

快速上手

  • 数据集准备
  1. 模型训练使用Criteo数据集

  2. 数据集训练前需要做预处理操作。

  3. 数据集处理后,对应路径下会产生训练集和测试集数据。

模型训练

  • 单击“立即下载”,并选择合适的下载方式下载源码包。

  • 启动训练之前,首先要配置程序运行相关环境变量。

    环境变量配置信息参见:

    Ascend 910训练平台环境变量设置

  • 单卡训练

    1. 配置训练参数。

      首先准备好超参数:指定具体NPU, 若果是GPU则不需要指定

    2. 启动训练。

      启动单卡GPU训练(切换到Model目录)

      [object Object]

      启动单卡NPU训练(切换到Model目录)

      [object Object]

迁移学习指导

  • 数据集准备。

    数据集要求如下:

    1. 获取数据。

      将下载的train.txt文件放到 data/Criteo 目录后,进行预处理数据集,产生的数据集存放路径如下:

      • 训练集: /forXDeepFM/train_data
      • 测试集: /forXDeepFM/test_data
    2. 数据集文件结构,目录参考:

      [object Object]

高级参考

示例代码

[object Object]

训练过程

  • 训练日志中包括如下信息。
[object Object]

运行结果

  • GPU
Epochs AUC LogLoss Train(单步耗时s)
1st 0.79872 0.45048 0.06606
2nd 0.79959 0.44973 0.06581
3rd 0.80052 0.44896 0.06576
4th 0.80058 0.44855 0.06581
5th 0.80064 0.44814 0.06621
  • NPU
Epochs AUC LogLoss Train(单步耗时s)
1st 0.79868 0.45095 0.08454
2nd 0.79981 0.44992 0.08446
3rd 0.80034 0.44933 0.08444
4th 0.80041 0.44931 0.08471
5th 0.80045 0.44927 0.08438
使用模型资源和服务前,请您仔细阅读并理解透彻 《昇腾深度学习模型许可协议 3.0》