LLong Wanbin安全问题修改
699b8881创建于 2025年8月4日历史提交
文件最后提交记录最后更新时间
!1047 安全问题修改10 个月前
delete name10 个月前
delete name10 个月前
bug fix10 个月前
README.md

EffBench

该文档介绍如何在NPU进行EffBench的profiling。

主要依赖

TensorFlow: 1.15.0

数据集准备

  1. 对于 Criteo 数据集, 我们采用 AFN 的预处理,根据其提供的链接下载libsvm格式的数据集,进一步将其转换为tfrecord格式。

  2. download url 'https://worksheets.codalab.org/rest/bundles/0x8dca5e7bac42470aa445f9a205d177c6/contents/blob/', 替换到download_criteo.py中的url。 注:请保障url的可靠性,避免url不可信、返回超大结构体、OOM等问题。

    cd feature_interaction/data/
    python download_criteo.py
    python libsvm2tfrecord.py
    
  3. 对于 Ali-CCP 数据集, 我们提供了一套完整的 预处理流程 :

    cd behaviour_and_multi_task/data/aliccp/
    bash run.sh
    

训练

首先需要在train.sh中修改PREPROCESSED_DATASET为数据集的路径。

  1. For feature interaction learning models:

    cd feature_interaction/src/
    bash train.sh
    
  2. For behaviour sequence modeling and multi-task learning models:

    cd behaviour_and_multi_task/src/
    bash train.sh
    

Profiling

Profiling方法参考自CANN官网

  1. 添加环境变量:

    export PROFILING_MODE=true
    export PROFILING_OPTIONS='{"output":"/home/ma-user/work/EffBench/feature_interaction/profiling/train","training_trace":"on","task_trace":"on","aicpu":"on","fp_point":"","bp_point":"","aic_metrics":"PipeUtilization"}'
    
  2. 若profiling模型的训练过程,运行profiling_train.sh脚本,以特征交互模型为例:

    cd feature_interaction/src/
    bash profiling_train.sh
    # 推理
    # bash profiling_infer.sh
    
  3. 使用msprof工具解析:

    export MSPORF_TOOL=/usr/local/Ascend/ascend-toolkit/latest/tools/profiler/profiler_tool/analysis/msprof/msprof.py
    
    python $MSPORF_TOOL import -dir <profile的output路径> (比如:/home/ma-user/work/EffBench/feature_interaction/profiling/train/PROF_000001_20241116222226387_LMAKGCJJFNJORPKC)
    
  4. 查询性能数据信息,找到最大的Iteration Number对应的Model ID

    python $MSPORF_TOOL query -dir <profile的output路径>
    
  5. 使用msprof工具导出profiling文件:

    python $MSPORF_TOOL export timeline -dir <profile的output路径> --iteration-id 100 --model-id <上一步找到的Model ID>
    
    python $MSPORF_TOOL export summary -dir <profile的output路径> --iteration-id 100 --model-id <上一步找到的Model ID>