From 6fb69ba3041a7ee2b9f24ffe3178ac69a46ad14d Mon Sep 17 00:00:00 2001 From: wangzhen38 Date: Fri, 19 Nov 2021 03:52:05 +0000 Subject: [PATCH 1/8] update rec --- docs/lwfx/ThesisReproduction_Rec.md | 67 +++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 docs/lwfx/ThesisReproduction_Rec.md diff --git a/docs/lwfx/ThesisReproduction_Rec.md b/docs/lwfx/ThesisReproduction_Rec.md new file mode 100644 index 0000000000..8dddc63e88 --- /dev/null +++ b/docs/lwfx/ThesisReproduction_Rec.md @@ -0,0 +1,67 @@ +# 论文复现指南 + +## 目录 + +- [1. 总览](#1) + - [1.1 背景](#1.1) + - [1.2 前序工作](#1.2) +- [2. 整体框图](#2) +- [3. 论文复现理论知识](#3) +- [4. 论文复现注意事项与FAQ](#4) + - [4.1 通用注意事项](#4.0) + + +## 1. 总览 + + +### 1.1 背景 + +* 以深度学习为核心的人工智能技术仍在高速发展,通过论文复现,开发者可以获得 + * 学习成长:自我能力提升 + * 技术积累:对科研或工作有所帮助和启发 + * 社区荣誉:成果被开发者广泛使用 + + +### 1.2 前序工作 + +基于本指南复现论文过程中,建议开发者准备以下内容。 + +* 熟悉paddle + * 文档和API + * 80%以上的API在功能上与pytorch相同 + * [PaddlePaddle文档链接](https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/index_cn.html) + * [Pytorch-Paddlepaddle API映射表](https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/08_api_mapping/pytorch_api_mapping_cn.html) + * [10分钟快速上手飞浆](https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/02_paddle2.0_develop/01_quick_start_cn.html) + * 数据处理[DataLoader](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/io/DataLoader_cn.html) +* 了解该数据格式。以Criteo数据集为例,该数据包含了13个连续特征和26个离散特征;还有一个标签,点击用1表示,未点击用0表示。 +* 准备好训练/验证数据集,用于模型训练与评估 +* 准备好fake input data以及label,与模型输入shape、type等保持一致,用于后续模型前向对齐。 + * 在对齐模型前向过程中,我们不需要考虑数据集模块等其他模块,此时使用fake data是将模型结构和数据部分解耦非常合适的一种方式。 + * 将fake data以文件的形式存储下来,也可以保证PaddlePaddle与参考代码的模型结构输入是完全一致的,更便于排查问题。 + * 在该步骤中,以AlexNet为例,生成fake data的脚本可以参考:[gen_fake_data.py](https://github.com/littletomatodonkey/AlexNet-Prod/blob/master/pipeline/fake_data/gen_fake_data.py)。 +* 在特定设备(CPU/GPU)上,跑通参考代码的预测过程(前向)以及至少2轮(iteration)迭代过程,保证后续基于PaddlePaddle复现论文过程中可对比。 +* 在复现的过程中,只需要将PaddlePaddle的复现代码以及打卡日志上传至github,不能在其中添加参考代码的实现,在验收通过之后,需要删除打卡日志。建议在初期复现的时候,就将复现代码与参考代码分成2个文件夹进行管理。 + + +## 2. 整体框图 +可参考[cv部分](https://github.com/PaddlePaddle/models/blob/tipc/docs/lwfx/ThesisReproduction_CV.md) + + +## 3. 论文复现理论知识 +可参考[cv部分](https://github.com/PaddlePaddle/models/blob/tipc/docs/lwfx/ThesisReproduction_CV.md) + + + +## 4. 论文复现注意事项与FAQ + +本部分主要总结大家在论文复现赛过程中遇到的问题,如果本章内容没有能够解决你的问题,欢迎给该文档提出优化建议或者给Paddle提[ISSUE](https://github.com/PaddlePaddle/Paddle/issues/new/choose)。 + + +### 4.1 通用注意事项 + +* 常见问题和误区 + * 不要主动调参,目的是复现而不是提升精度 + * 不要加论文中没提到的模型结构 + * 数据和指标先行对齐 +* 数据集获取 + * PaddleRec提供了大量推荐数据集,可优先从[这里查找](https://github.com/PaddlePaddle/PaddleRec/tree/master/datasets) From ff8676198191e42426052ffd8e4478e2a7695fe9 Mon Sep 17 00:00:00 2001 From: wangzhen38 Date: Fri, 19 Nov 2021 03:53:33 +0000 Subject: [PATCH 2/8] update rec --- docs/lwfx/ThesisReproduction_Rec.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/lwfx/ThesisReproduction_Rec.md b/docs/lwfx/ThesisReproduction_Rec.md index 8dddc63e88..f296a3f105 100644 --- a/docs/lwfx/ThesisReproduction_Rec.md +++ b/docs/lwfx/ThesisReproduction_Rec.md @@ -50,7 +50,6 @@ ## 3. 论文复现理论知识 可参考[cv部分](https://github.com/PaddlePaddle/models/blob/tipc/docs/lwfx/ThesisReproduction_CV.md) - ## 4. 论文复现注意事项与FAQ From adec447ac418a2f0085f04e16d6168c285a1591b Mon Sep 17 00:00:00 2001 From: wangzhen38 Date: Thu, 25 Nov 2021 13:25:52 +0000 Subject: [PATCH 3/8] update rec tipc --- docs/lwfx/ArticleReproduction_REC.md | 31 ++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/docs/lwfx/ArticleReproduction_REC.md b/docs/lwfx/ArticleReproduction_REC.md index 3452cd33e1..24467b50c4 100644 --- a/docs/lwfx/ArticleReproduction_REC.md +++ b/docs/lwfx/ArticleReproduction_REC.md @@ -15,6 +15,7 @@ - [3. 论文复现理论知识](#3) - [4. 论文复现注意事项与FAQ](#4) - [4.1 通用注意事项](#4.0) + - [4.2 TIPC基础链条测试接入](#4.1) ## 1. 总览 @@ -47,6 +48,8 @@ * 在该步骤中,以AlexNet为例,生成fake data的脚本可以参考:[gen_fake_data.py](https://github.com/littletomatodonkey/AlexNet-Prod/blob/master/pipeline/fake_data/gen_fake_data.py)。 * 在特定设备(CPU/GPU)上,跑通参考代码的预测过程(前向)以及至少2轮(iteration)迭代过程,保证后续基于PaddlePaddle复现论文过程中可对比。 * 在复现的过程中,只需要将PaddlePaddle的复现代码以及打卡日志上传至github,不能在其中添加参考代码的实现,在验收通过之后,需要删除打卡日志。建议在初期复现的时候,就将复现代码与参考代码分成2个文件夹进行管理。 +* 飞桨训推一体认证 (Training and Inference Pipeline Certification, TIPC) 是一个针对飞桨模型的测试工具,方便用户查阅每种模型的训练推理部署打通情况,并可以进行一键测试。论文训练对齐之后,需要为代码接入TIPC基础链条测试文档与代码,关于TIPC基础链条测试接入规范的文档可以参考:[链接](https://github.com/PaddlePaddle/models/blob/tipc/docs/tipc_test/development_specification_docs/train_infer_python.md)。更多内容在`4.2`章节部分也会详细说明。 + ## 2. 整体框图 @@ -70,3 +73,31 @@ * 数据和指标先行对齐 * 数据集获取 * PaddleRec提供了大量推荐数据集,可优先从[这里查找](https://github.com/PaddlePaddle/PaddleRec/tree/master/datasets) + + +### 4.2 TIPC基础链条接入 + +**【基本流程】** + +* 完成模型的训练、导出inference、基于PaddleInference的推理过程的文档与代码。参考链接: + * [insightface训练预测使用文档](https://github.com/deepinsight/insightface/blob/master/recognition/arcface_paddle/README_cn.md) + * [PaddleInference使用文档](https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/05_inference_deployment/inference/inference_cn.html) +* 基于[TIPC基础链条测试接入规范](https://github.com/PaddlePaddle/models/blob/tipc/docs/tipc_test/development_specification_docs/train_infer_python.md),完成该模型的TIPC基础链条开发以及测试文档/脚本,目录为`test_tipc`,测试脚本名称为`test_train_inference_python.sh`,该任务中只需要完成`少量数据训练模型,少量数据预测`的模式即可,用于测试TIPC流程的模型和少量数据需要放在当前repo中。 + + +**【注意事项】** + +* 基础链条测试接入时,只需要验证`少量数据训练模型,少量数据预测`的模式,只需要在Linux下验证通过即可。 +* 在文档中需要给出一键测试的脚本与使用说明。 +* 接入TIPC功能是需安装[特定版本paddle](https://paddleinference.paddlepaddle.org.cn/master/user_guides/download_lib.html#python)。 + +**【实战】** + +TIPC基础链条测试接入用例可以参考:[PaddlRec TIPC基础链条测试开发文档](https://github.com/PaddlePaddle/PaddleRec/tree/master/test_tipc), [InsightFace-paddle TIPC基础链条测试开发文档](https://github.com/deepinsight/insightface/blob/master/recognition/arcface_paddle/test_tipc/readme.md)。 + + +**【验收】** + +* TIPC基础链条测试文档清晰,`test_train_inference_python.sh`脚本可以成功执行并返回正确结果。 + + From 903428fd152dde4b9e5b117d4955763c9933164a Mon Sep 17 00:00:00 2001 From: wangzhen38 Date: Thu, 25 Nov 2021 13:27:09 +0000 Subject: [PATCH 4/8] rm rec --- docs/lwfx/ThesisReproduction_Rec.md | 66 ----------------------------- 1 file changed, 66 deletions(-) delete mode 100644 docs/lwfx/ThesisReproduction_Rec.md diff --git a/docs/lwfx/ThesisReproduction_Rec.md b/docs/lwfx/ThesisReproduction_Rec.md deleted file mode 100644 index f296a3f105..0000000000 --- a/docs/lwfx/ThesisReproduction_Rec.md +++ /dev/null @@ -1,66 +0,0 @@ -# 论文复现指南 - -## 目录 - -- [1. 总览](#1) - - [1.1 背景](#1.1) - - [1.2 前序工作](#1.2) -- [2. 整体框图](#2) -- [3. 论文复现理论知识](#3) -- [4. 论文复现注意事项与FAQ](#4) - - [4.1 通用注意事项](#4.0) - - -## 1. 总览 - - -### 1.1 背景 - -* 以深度学习为核心的人工智能技术仍在高速发展,通过论文复现,开发者可以获得 - * 学习成长:自我能力提升 - * 技术积累:对科研或工作有所帮助和启发 - * 社区荣誉:成果被开发者广泛使用 - - -### 1.2 前序工作 - -基于本指南复现论文过程中,建议开发者准备以下内容。 - -* 熟悉paddle - * 文档和API - * 80%以上的API在功能上与pytorch相同 - * [PaddlePaddle文档链接](https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/index_cn.html) - * [Pytorch-Paddlepaddle API映射表](https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/08_api_mapping/pytorch_api_mapping_cn.html) - * [10分钟快速上手飞浆](https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/02_paddle2.0_develop/01_quick_start_cn.html) - * 数据处理[DataLoader](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/io/DataLoader_cn.html) -* 了解该数据格式。以Criteo数据集为例,该数据包含了13个连续特征和26个离散特征;还有一个标签,点击用1表示,未点击用0表示。 -* 准备好训练/验证数据集,用于模型训练与评估 -* 准备好fake input data以及label,与模型输入shape、type等保持一致,用于后续模型前向对齐。 - * 在对齐模型前向过程中,我们不需要考虑数据集模块等其他模块,此时使用fake data是将模型结构和数据部分解耦非常合适的一种方式。 - * 将fake data以文件的形式存储下来,也可以保证PaddlePaddle与参考代码的模型结构输入是完全一致的,更便于排查问题。 - * 在该步骤中,以AlexNet为例,生成fake data的脚本可以参考:[gen_fake_data.py](https://github.com/littletomatodonkey/AlexNet-Prod/blob/master/pipeline/fake_data/gen_fake_data.py)。 -* 在特定设备(CPU/GPU)上,跑通参考代码的预测过程(前向)以及至少2轮(iteration)迭代过程,保证后续基于PaddlePaddle复现论文过程中可对比。 -* 在复现的过程中,只需要将PaddlePaddle的复现代码以及打卡日志上传至github,不能在其中添加参考代码的实现,在验收通过之后,需要删除打卡日志。建议在初期复现的时候,就将复现代码与参考代码分成2个文件夹进行管理。 - - -## 2. 整体框图 -可参考[cv部分](https://github.com/PaddlePaddle/models/blob/tipc/docs/lwfx/ThesisReproduction_CV.md) - - -## 3. 论文复现理论知识 -可参考[cv部分](https://github.com/PaddlePaddle/models/blob/tipc/docs/lwfx/ThesisReproduction_CV.md) - - -## 4. 论文复现注意事项与FAQ - -本部分主要总结大家在论文复现赛过程中遇到的问题,如果本章内容没有能够解决你的问题,欢迎给该文档提出优化建议或者给Paddle提[ISSUE](https://github.com/PaddlePaddle/Paddle/issues/new/choose)。 - - -### 4.1 通用注意事项 - -* 常见问题和误区 - * 不要主动调参,目的是复现而不是提升精度 - * 不要加论文中没提到的模型结构 - * 数据和指标先行对齐 -* 数据集获取 - * PaddleRec提供了大量推荐数据集,可优先从[这里查找](https://github.com/PaddlePaddle/PaddleRec/tree/master/datasets) From 2b826ba4465241bd6af7c6e569ee8237508b7d59 Mon Sep 17 00:00:00 2001 From: wangzhen38 Date: Thu, 25 Nov 2021 13:32:27 +0000 Subject: [PATCH 5/8] update rec --- docs/lwfx/ArticleReproduction_REC.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/lwfx/ArticleReproduction_REC.md b/docs/lwfx/ArticleReproduction_REC.md index 24467b50c4..c6e467fe1f 100644 --- a/docs/lwfx/ArticleReproduction_REC.md +++ b/docs/lwfx/ArticleReproduction_REC.md @@ -82,6 +82,7 @@ * 完成模型的训练、导出inference、基于PaddleInference的推理过程的文档与代码。参考链接: * [insightface训练预测使用文档](https://github.com/deepinsight/insightface/blob/master/recognition/arcface_paddle/README_cn.md) * [PaddleInference使用文档](https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/05_inference_deployment/inference/inference_cn.html) + * [PaddleRecInference使用文档](https://github.com/PaddlePaddle/PaddleRec/blob/master/doc/inference.md) * 基于[TIPC基础链条测试接入规范](https://github.com/PaddlePaddle/models/blob/tipc/docs/tipc_test/development_specification_docs/train_infer_python.md),完成该模型的TIPC基础链条开发以及测试文档/脚本,目录为`test_tipc`,测试脚本名称为`test_train_inference_python.sh`,该任务中只需要完成`少量数据训练模型,少量数据预测`的模式即可,用于测试TIPC流程的模型和少量数据需要放在当前repo中。 From b0592520b299affbfd486a4d4778c1ac70cb8f42 Mon Sep 17 00:00:00 2001 From: wangzhen38 Date: Mon, 29 Nov 2021 04:01:57 +0000 Subject: [PATCH 6/8] update rec tipc para --- docs/lwfx/ArticleReproduction_REC.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/lwfx/ArticleReproduction_REC.md b/docs/lwfx/ArticleReproduction_REC.md index c6e467fe1f..bac0c8e50a 100644 --- a/docs/lwfx/ArticleReproduction_REC.md +++ b/docs/lwfx/ArticleReproduction_REC.md @@ -90,6 +90,7 @@ * 基础链条测试接入时,只需要验证`少量数据训练模型,少量数据预测`的模式,只需要在Linux下验证通过即可。 * 在文档中需要给出一键测试的脚本与使用说明。 +* 禁止修改通用参数 * 接入TIPC功能是需安装[特定版本paddle](https://paddleinference.paddlepaddle.org.cn/master/user_guides/download_lib.html#python)。 **【实战】** From 7e1ca5116c23ce2cc49b4f8034a07460a712cdb4 Mon Sep 17 00:00:00 2001 From: wangzhen38 Date: Thu, 2 Dec 2021 07:54:00 +0000 Subject: [PATCH 7/8] add pr benmaik --- docs/lwfx/ArticleReproduction_REC.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/lwfx/ArticleReproduction_REC.md b/docs/lwfx/ArticleReproduction_REC.md index bac0c8e50a..a0cc092a66 100644 --- a/docs/lwfx/ArticleReproduction_REC.md +++ b/docs/lwfx/ArticleReproduction_REC.md @@ -16,6 +16,7 @@ - [4. 论文复现注意事项与FAQ](#4) - [4.1 通用注意事项](#4.0) - [4.2 TIPC基础链条测试接入](#4.1) +- [5. 合入代码规范要求](#5) ## 1. 总览 @@ -48,6 +49,7 @@ * 在该步骤中,以AlexNet为例,生成fake data的脚本可以参考:[gen_fake_data.py](https://github.com/littletomatodonkey/AlexNet-Prod/blob/master/pipeline/fake_data/gen_fake_data.py)。 * 在特定设备(CPU/GPU)上,跑通参考代码的预测过程(前向)以及至少2轮(iteration)迭代过程,保证后续基于PaddlePaddle复现论文过程中可对比。 * 在复现的过程中,只需要将PaddlePaddle的复现代码以及打卡日志上传至github,不能在其中添加参考代码的实现,在验收通过之后,需要删除打卡日志。建议在初期复现的时候,就将复现代码与参考代码分成2个文件夹进行管理。 +* 除了精度符合要求之外,还需要符合代码规范(详见第五章)。 * 飞桨训推一体认证 (Training and Inference Pipeline Certification, TIPC) 是一个针对飞桨模型的测试工具,方便用户查阅每种模型的训练推理部署打通情况,并可以进行一键测试。论文训练对齐之后,需要为代码接入TIPC基础链条测试文档与代码,关于TIPC基础链条测试接入规范的文档可以参考:[链接](https://github.com/PaddlePaddle/models/blob/tipc/docs/tipc_test/development_specification_docs/train_infer_python.md)。更多内容在`4.2`章节部分也会详细说明。 @@ -102,4 +104,9 @@ TIPC基础链条测试接入用例可以参考:[PaddlRec TIPC基础链条测 * TIPC基础链条测试文档清晰,`test_train_inference_python.sh`脚本可以成功执行并返回正确结果。 + +## 5. 合入代码规范要求 + +验收的最后一道标准是需要符合合入官方套件的要求,具体要求见[链接](https://github.com/PaddlePaddle/PaddleRec/blob/master/doc/contribute.md) + From 35d304b89240b687f015be6f95a94dc0445fabe6 Mon Sep 17 00:00:00 2001 From: wangzhen38 Date: Thu, 2 Dec 2021 08:14:45 +0000 Subject: [PATCH 8/8] update rec tipc --- docs/lwfx/ArticleReproduction_REC.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/lwfx/ArticleReproduction_REC.md b/docs/lwfx/ArticleReproduction_REC.md index a0cc092a66..2e2d061105 100644 --- a/docs/lwfx/ArticleReproduction_REC.md +++ b/docs/lwfx/ArticleReproduction_REC.md @@ -92,7 +92,7 @@ * 基础链条测试接入时,只需要验证`少量数据训练模型,少量数据预测`的模式,只需要在Linux下验证通过即可。 * 在文档中需要给出一键测试的脚本与使用说明。 -* 禁止修改通用参数 +* 禁止修改通用参数, 比如train_infer_python.txt中的enable_tensorRT,enable_mkldnn等。 * 接入TIPC功能是需安装[特定版本paddle](https://paddleinference.paddlepaddle.org.cn/master/user_guides/download_lib.html#python)。 **【实战】**