Deep neural network (DNN) models have become increasingly crucial components in intelligent software systems. However, training a DNN model is typically expensive in terms of both time and money. To address this issue, researchers have recently focused on reusing existing DNN models - borrowing the idea of code reuse in software engineering. However, reusing an entire model could cause extra overhead or inherits the weakness from the undesired functionalities. Hence, existing work proposes to decompose an already trained model into modules, i.e., modularizing-after-training, and enable module reuse. Since trained models are not built for modularization, modularizing-after-training incurs huge overhead and model accuracy loss. In this paper, we propose a novel approach that incorporates modularization into the model training process, i.e., modularizing-while-training (MwT). We train a model to be structurally modular through two loss functions that optimize intra-module cohesion and inter-module coupling. We have implemented the proposed approach for modularizing Convolutional Neural Network (CNN) models in this work. The evaluation results on representative models demonstrate that MwT outperforms the state-of-the-art approach. Specifically, the accuracy loss caused by MwT is only 1.13 percentage points, which is 1.76 percentage points less than that of the baseline. The kernel retention rate of the modules generated by MwT is only 14.58%, with a reduction of 74.31% over the state-of-the-art approach. Furthermore, the total time cost required for training and modularizing is only 108 minutes, half of the baseline.
翻译:深度神经网络模型在智能软件系统中已成为越来越关键的组成部分。然而,训练一个DNN模型通常需要耗费大量时间和金钱。为解决这一问题,研究人员近期将目光转向复用已有的DNN模型——借鉴软件工程中代码复用的思想。但完整复用整个模型可能带来额外开销,或继承非预期功能中的缺陷。因此,现有工作提出将已训练模型分解为模块(即"训练后模块化"),以实现模块复用。由于训练后的模型并非为模块化而构建,"训练后模块化"会导致巨大开销和模型精度损失。本文提出一种将模块化融入模型训练过程的新方法——"训练时模块化"。我们通过优化模块内聚性和模块间耦合性的两个损失函数,训练出结构模块化的模型。本研究实现了所提出方法在卷积神经网络模型上的应用。在代表性模型上的评估结果表明,MwT方法优于当前最优方法。具体而言,MwT造成的精度损失仅为1.13个百分点,比基线方法低1.76个百分点;其生成的模块核保留率仅14.58%,较当前最优方法降低74.31%;同时,训练与模块化的总耗时仅为108分钟,仅为基线方法的一半。