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模型通常需要耗费大量的时间和金钱。为了解决这一问题,研究人员近期开始聚焦于复用现有DNN模型——借鉴软件工程中代码复用的思想。然而,复用整个模型可能会导致额外开销或继承非期望功能的弱点。因此,现有工作提出将已训练的模型分解为模块(即训练后模块化),并实现模块复用。由于已训练模型并非为模块化而构建,训练后模块化会导致巨大的开销和模型精度损失。本文提出一种将模块化融入模型训练过程的新方法,即训练中模块化(MwT)。我们通过两个损失函数优化模块内聚性和模块间耦合性,训练模型实现结构模块化。本文已实现针对卷积神经网络(CNN)模型的模块化方法。在代表性模型上的评估结果表明,MwT优于当前最先进的方法。具体而言,MwT导致的精度损失仅为1.13个百分点,比基线方法低1.76个百分点。MwT生成模块的核保留率仅为14.58%,较最先进方法降低74.31%。此外,训练和模块化所需的总时间成本仅为108分钟,仅为基线方法的一半。