How Do Deep Learning Models Evolve? A Comprehensive Study of the Evolution of Deep Learning Model Code in Open Source Repositories
Modern software is increasingly incorporating a new kind of component, the deep learning (DL) model, to implement functionalities that have defied traditional programming. Like traditional components, these deep learning models also evolve over the lifetime of a software project, but we do not entirely understand this evolution process. What are the common changes made to DL applications? How do they impact model evolution and maintenance? How do changes compare across different model types? Motivated by this and other questions, in this work, we have performed a comprehensive study of deep learning model evolution by manually examining 250 code patches of top-rated DL applications written in three widely used libraries, TensorFlow, PyTorch, and Keras, in Github. Our investigation makes several important revelations, identifying weaknesses in library design and developer practices that adversely affect the model evolution. Moreover, we also offer insights on several areas of enhancement for libraries and identify areas requiring new or enhanced tool support. Surprisingly, we observe the epidemic of quality issues in the DL applications and propose several remedies thereof. Finally, we find that recurrent neural models are harder to maintain and require more change effort and offer insights on the underlying factors to facilitate their easier maintenance.
Committee: Hridesh Rajan (major professor), Myra Cohen, Hongyang Gao, Wei Le, and Pavan Aduri
Join on Zoom: https://iastate.zoom.us/j/93761940272