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 方法的效果依赖于参数 β 学习策略中的自适应学

