Page 123 - 《软件学报》2026年第6期
P. 123

2442                                                       软件学报  2026  年第  37  卷第  6  期


                 80 GB  显存的  NVIDIA A800 Tensor Core, 操作系统为统信  UOS  服务器操作系统    V20, 单次训练用时    7.8 h.
                    本文的超参设置如下: (1) 使用基于小批量的            AdamW  优化器优化模型参数, 学习率为          0.000 01; (2) 训练数据
                 集的批次大小为      8, 验证数据集的批次大小为         8; (3) 数据集最大输入的文本长度为          512; (4) 使用基于小批量的
                 AdamW  优化器优化    β 值; (5)  β 值的初始值在{0.1, 0.6}之间调整; (6)  β 值的学习率为   0.01; (7) 在每个  epoch  训练
                 开始时对   β 值进行参数重置; (8)    β 值采用负损失的损失函数; (9) LoRA      相关的超参数如表       3  所示.

                                                   表 3 LoRA  超参数设置

                                                 超参数                  参数取值
                                            LoRA 修改的目标层                c_attn
                                               LoRA Rank                8
                                              LoRA Alpha值               32
                                             LoRA Dropout比例             0.1

                  4.2.3    基准方法
                    本文选择以下      4  种方法进行比较.
                    (1) KD [10] : 通过  KL  散度, 对教师模型的主要输出概率分布进行拟合. 当教师模型对某些概率分布赋予高概率
                 时, 学生模型侧重于学习这些高概率区域, 适合捕捉数据的主要特征.
                    (2) RKD [52] : 通过  RKL  散度最小化学生模型与教师模型之间输出概率分布以提升知识蒸馏的效果. 它具备零
                 强迫特性, 即当教师模型在某些区域的概率为              0  时, 它会促使学生模型在这些区域也趋于            0.
                    (3) RKD+PPO (MiniLLM) : 结合  RKL  散度知识蒸馏和强化学习中的         PPO (proximal policy optimization) 算
                                        [9]
                 法, 旨在通过蒸馏及策略优化技术, 提升学生模型的学习效果.
                    (4) SeqKD [42] : 使用教师模型生成的数据对学生模型进行知识蒸馏. 首先使用教师模型对任务进行生成, 然后
                 使用生成的内容指导学生模型训练.
                    本文根据    Gu  等人  [9] 的研究, 选取  KD、RKD、SeqKD  及  Gu  等人  [9] 提出的  MiniLLM  作为基准方法. 所有方
                 法的超参数设置与文中保持一致. 为了验证本文方法                 AKD  的有效性, 所有方法均基于        CodeAlpaca 数据集进行训
                 练. 其中, AKD  方法基于   KD  和  RKD  默认设置, 增加的自适应参数      β 的设置情况如第      4.2.2  节所述.
                  4.3   实验设计
                    为评估   AKD  方法在代码生成任务中的表现, 实验结果将回答以下                10  个问题.
                    RQ1: AKD  方法是否是必要的? 知识蒸馏的目标是构建一个性能更好的小参数代码大模型. 直接利用指令微
                 调  SFT  方法优化学生模型是直接可行的方法. 本研究问题分析                AKD  方法与   SFT  方法的效果, 论证   AKD  方法在
                 代码生成任务中的必要性.
                    RQ2: AKD  方法是否比前沿的知识蒸馏方法更好? 在通用模型领域, 学者提出了一系列知识蒸馏方法. 本研究
                 问题将前沿知识蒸馏方法应用到代码生成任务中, 并与                  AKD  方法效果对比, 论证     AKD  方法在代码生成任务上的
                 有效性.
                    RQ3: LoRA  方法能否进一步提高       AKD  方法的效果? LoRA    技术在   SFT  中表现较好, 但其在     AKD  方法的效
                 果缺乏验证. 本研究问题旨在讨论          LoRA  方法是否能够进一步提升        AKD  方法的性能, 分析其适用性及影响.
                    RQ4: AKD  方法相较于其他方法, 资源消耗的情况如何? 知识蒸馏方法需要消耗大量计算资源. 本研究问题分
                 析  AKD  方法是否引入过高的计算需求, 论证          AKD  方法在代码生成任务中的实用性.
                    RQ5: Prompt 对  AKD  方法的训练效果有什么影响? 在代码生成任务中, 提示词               prompt 模板的适用对模型推
                 理和知识蒸馏都有一定影响. 本研究问题分析不同提示词模板对                      AKD  方法的影响, 论证方法中采用的         Stanford-
                 Alpaca 模板的有效性.
                    RQ6: AKD  方法的学习策略是否对训练效果有影响? AKD              方法的效果依赖于参数         β 学习策略中的自适应学
   118   119   120   121   122   123   124   125   126   127   128