Paddle 【PFCC-Roadmap】API单测增强

kq4fsx7k  于 4个月前  发布在  其他
关注(0)|答案(1)|浏览(79)

Roadmap

PaddlePaddle是一个深度学习框架,开发者通过使用 PaddlePaddle 对外暴露的API,进行模型的搭建,训练,推理,部署以及存储。在这个通过众多API组合构建的系统中,如果其中某个API出现了异常,大概率会影响到整个系统的正确运行。如果我们针对整个系统进行测试和监控,即便发现了问题,也很难定位到具体是哪里出现了问题,同时测试整个系统的效率也非常低下。所以,针对API级别的测试(即单元测试)显得格外重要,可以大幅提高执行效率和问题定位效率,进而有力的保障系统的正确运行。

API的单测,就相当于模拟并覆盖API在真正使用场景下可能出现的各种使用方式,以此来保障API行为的正确性和稳定性。在API的单测编写上,我们需要尽可能覆盖到API的使用场景,以及API自身的参数组合使用,边界值和异常值的处理,并保证在这些情况下,API的行为符合设计预期。API的单测要尽可能的可靠,精简和解耦,做到针对性的验证和高效的运行。

而在飞桨框架开发早期,API的单元测试并不全面,有些API会存在测试样例缺失的问题,因此,我们需要按照最新的单测标准( 新增API 测试及验收规范 )补全API单测。在补全单测的过程中,可能会发现有API会有bug(由于缺失单测而没有发现的bug),这时,你可以 提ISSUE 报 BUG ,反馈这个问题;如果你也愿意修复,可以提ISSUE后,提PR修复该问题。 石墨表格《PFCC-Roadmap》之 【API单测】 为当前在Paddle中部分需要完善API单测的案例,飞桨团队也在不断地进行增强。如果你对这方面有兴趣,欢迎参加此项活动。

kuhbmx9i

kuhbmx9i1#

附录

【方向说明】

  • 技术标签:深度学习框架,Python,C++
  • 详细描述:在飞桨框架开发早期,API的单元测试并不全面,有些API会存在测试样例缺失的问题。请根据 新增API 测试及验收规范 评测单测的完整度,补齐缺失的单测,如有发现bug,对API进行修复。

【参与指南】:

  • 飞桨成立了 PFCC(Paddle Framework Contributor Club) ,是一个有兴趣、正在、或者已经为飞桨开源框架做开源贡献的贡献者而成立的虚拟组织,在这里,飞桨开源框架的贡献者进行讨论、交流和分享,并为飞桨框架做出持续的贡献。欢迎你持续关注并加入(我们会定向邀请 Paddle repo 提交PR的开发者加入)。
  • 如果你对API单测增强方向感兴趣,可以在 石墨表格《PFCC-Roadmap》之【报名页】 填入你的 GitHub ID,之后一起讨论后续规划和分工。

【提交流程】

【提交内容】

  1. 单测评测结果,在 石墨表格《PFCC-Roadmap》之【API单测】 中填写。前四行(paddle.quantile和paddle.linalg.cholesky_solve)为评测示例,不符合的项目请飘蓝。
  2. 单测修复代码,在Paddle repo的 python/paddle/fluid/tests/unittests 目录。
  3. 算子修复代码(如有),在Paddle repo的 paddle/fluid/operators 目录 或 paddle/phi/kernels 目录 或 python/paddle/fluid 目录。
  4. 单测完善 或 算子修复之后,在PR描述中(可参考 PR41191 )写明每个算子缺失的单测、问题定位及修复思路的简单描述。

【合入标准】

  1. 按照 API单测贡献指南_TBD 要求提交PR,并通过所有PR的CI检测
  2. PR描述中针对每个单测需给出缺失的样例、修复的问题及解决办法

【技术要求】

  1. 熟悉Paddle框架的AI算子测试
  2. 熟练掌握 Python,C++

【参考内容】

  1. 文档: 新增API 测试及验收规范
  2. 文档:API单测贡献指南_TBD

相关问题