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分钟,为基线方法的一半。