Machine Learning Architecture and Design Patterns

Last update: December 18th, 2021

Practitioners and researchers study best practices to design machine learning (ML) application
systems and software to address quality and constraint problems. Such practices are often
formalized as design patterns. In this study, a multi-vocal literature review identified 15 software engineering design patterns for ML applications. A questionnaire survey inquired about ML developers’ use of the ML design patterns to validate them in practice. 118 ML developers responded to our survey. Results show that developers were unfamiliar with most of the patterns, although there are several major patterns already used by 20+% of the respondents. For all patterns, most of the respondents would consider using them in future designs. As the respondents became more consistent in their approach to design problems by reuse, the pattern usage ratio increased. These findings suggest that there are opportunities to increase the patterns’ adoption in practice by raising awareness of such patterns within the community.

Project members

  • Hironori Washizaki, Dept. of Computer Science and Engineering, Waseda University, Tokyo, Japan, National Institute of Informatics, Tokyo, Japan
  • Yann-Gael Gueheneuc, Ptidej Team, DGIGL, Ecole Polytechnique de Montreal, Quebec, Canada
  • Foutse Khomh, Ptidej Team, DGIGL, Ecole Polytechnique de Montreal, Quebec, Canada
  • Hironori Takeuchi
  • Naotake Natori
  • Takuo Doi
  • Satoshi Okuda
  • Nobukazu Yoshioka

Funds and Grants

This work was supported by JST-Mirai JPMJMI20B8 Engineerable AI Project, JSPS JPJSBP 120209936, and KAKENHI 21KK0179.


Others and Data


Project leader: Hironori Washizaki, washizaki [at]