本文为针对
推荐
方向的复现赛指南如果希望查阅
CV
方向的复现赛指南,可以参考:CV方向论文复现赛指南如果希望查阅
NLP
方向的复现赛指南,可以参考:NLP方向论文复现赛指南
- 以深度学习为核心的人工智能技术仍在高速发展,通过论文复现,开发者可以获得
- 学习成长:自我能力提升
- 技术积累:对科研或工作有所帮助和启发
- 社区荣誉:成果被开发者广泛使用
基于本指南复现论文过程中,建议开发者准备以下内容。
- 熟悉paddle
- 文档和API
- 80%以上的API在功能上与pytorch相同
- PaddlePaddle文档链接
- Pytorch-Paddlepaddle API映射表
- 10分钟快速上手飞浆
- 数据处理DataLoader
- 文档和API
- 了解该数据格式。以Criteo数据集为例,该数据包含了13个连续特征和26个离散特征;还有一个标签,点击用1表示,未点击用0表示。
- 准备好训练/验证数据集,用于模型训练与评估
- 准备好fake input data以及label,与模型输入shape、type等保持一致,用于后续模型前向对齐。
- 在对齐模型前向过程中,我们不需要考虑数据集模块等其他模块,此时使用fake data是将模型结构和数据部分解耦非常合适的一种方式。
- 将fake data以文件的形式存储下来,也可以保证PaddlePaddle与参考代码的模型结构输入是完全一致的,更便于排查问题。
- 在该步骤中,以AlexNet为例,生成fake data的脚本可以参考:gen_fake_data.py。
- 在特定设备(CPU/GPU)上,跑通参考代码的预测过程(前向)以及至少2轮(iteration)迭代过程,保证后续基于PaddlePaddle复现论文过程中可对比。
- 在复现的过程中,只需要将PaddlePaddle的复现代码以及打卡日志上传至github,不能在其中添加参考代码的实现,在验收通过之后,需要删除打卡日志。建议在初期复现的时候,就将复现代码与参考代码分成2个文件夹进行管理。
- 飞桨训推一体认证 (Training and Inference Pipeline Certification, TIPC) 是一个针对飞桨模型的测试工具,方便用户查阅每种模型的训练推理部署打通情况,并可以进行一键测试。论文训练对齐之后,需要为代码接入TIPC基础链条测试文档与代码,关于TIPC基础链条测试接入规范的文档可以参考:链接。更多内容在
4.2
章节部分也会详细说明。
可参考cv部分
可参考cv部分
本部分主要总结大家在论文复现赛过程中遇到的问题,如果本章内容没有能够解决你的问题,欢迎给该文档提出优化建议或者给Paddle提ISSUE。
- 常见问题和误区
- 不要主动调参,目的是复现而不是提升精度
- 不要加论文中没提到的模型结构
- 数据和指标先行对齐
- 数据集获取
- PaddleRec提供了大量推荐数据集,可优先从这里查找
【基本流程】
- 完成模型的训练、导出inference、基于PaddleInference的推理过程的文档与代码。参考链接:
- 基于TIPC基础链条测试接入规范,完成该模型的TIPC基础链条开发以及测试文档/脚本,目录为
test_tipc
,测试脚本名称为test_train_inference_python.sh
,该任务中只需要完成少量数据训练模型,少量数据预测
的模式即可,用于测试TIPC流程的模型和少量数据需要放在当前repo中。
【注意事项】
- 基础链条测试接入时,只需要验证
少量数据训练模型,少量数据预测
的模式,只需要在Linux下验证通过即可。 - 在文档中需要给出一键测试的脚本与使用说明。
- 接入TIPC功能是需安装特定版本paddle。
【实战】
TIPC基础链条测试接入用例可以参考:PaddlRec TIPC基础链条测试开发文档, InsightFace-paddle TIPC基础链条测试开发文档。
【验收】
- TIPC基础链条测试文档清晰,
test_train_inference_python.sh
脚本可以成功执行并返回正确结果。