Page 125 - 《软件学报》2026年第6期
P. 125
2444 软件学报 2026 年第 37 卷第 6 期
30.4%, 精度损失分别降低 24.7% 和 51.0%. 实验结果表明, AKD 方法可以在保持模型参数规模小的同时, 显著降
低精度损失.
η=1E−4
η=1E−5
1.2 η=5E−5
1.0
0.8
损失值 0.6
0.4
0.2
0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
训练轮数
图 3 部分学习率设置下 SFT 训练损失值变化曲线图
综上所述, 直接使用 SFT 微调小参数模型效果不佳, 参数调整对微调效果的提升有限, 且过程繁琐. 相较而言,
AKD 方法在大参数模型的指导下微调小参数模型, 无需针对数据集进行复杂的参数调整, 就能显著提升小参数模
型 11.9% 的准确率, 相较大参数模型精度损失仅 17.2%. 因此, AKD 方法是必要的.
4.4.2 RQ2: AKD 方法是否比前沿的知识蒸馏方法更好?
为验证 AKD 方法在代码生成任务中的有效性, 本文将其与多种先进的知识蒸馏方法进行对比实验, 结果如
表 5 所示. 原始学生模型在 HumanEval 数据集上的 Pass@1 准确率为 13.4%, 精度损失为 54.2%; 在 MBPP 数据集
上, 准确率为 14.0%, 精度损失为 56.3%.
表 5 AKD 方法与其他知识蒸馏方法在 HumanEval 与 MBPP 数据集上的性能对比 (%)
HumanEval MBPP
模型 方法
Pass@1 精度损失 Pass@1 精度损失
StarCoder-7B 教师模型 29.3 - 32.0 -
学生模型 13.4 54.2 14.0 56.3
MiniLLM 15.8 46.0 18.8 41.3
RKD 16.4 44.0 19.4 39.4
StarCoder-1B
KD 17.1 41.7 24.6 23.1
SeqKD 18.3 37.0 26.2 18.0
AKD 20.7 29.3 30.4 5.0
采用 RKD 方法后, 模型的精度有所提升, 在 HumanEval 和 MBPP 数据集上的精度损失分别下降至 44.0% 和
39.4%. KD 方法进一步改善了模型性能, 精度损失分别为 41.7% 和 23.1%. 然而, 结合了 RKD 和 PPO 技术的
MiniLLM 方法并未取得预期效果, 其精度损失在 HumanEval 和 MBPP 数据集上分别为 46.0% 和 41.3%, 表现不
如直接采用 RKD 或 KD. 这表明在代码生成任务中, 引入 PPO 并未带来显著的性能提升.
与 KD 和 RKD 方法相比, SeqKD 方法是基线模型中表现较佳的, 在 HumanEval 和 MBPP 数据集上的精度损
失分别降低至 37% 和 18%. 这是因为 SeqKD 方法的训练数据均由教师模型生成, 在训练时的输出概率分布集中
于主要概率, 采用 KL 散度可以有效地帮助学生模型学习教师模型的内容. 而 KD 或 RKD 方法训练时则存在趋零
概率区域或高概率区域的分布, 影响学生模型的学习效果.
相比之下, AKD 方法能显著提高模型性能, 在 HumanEval 数据集上的 Pass@1 准确率提升至 20.7%, 精度损
失降至 29.3%, 较次佳的 SeqKD 方法降低了 7.7% 的精度损失. 在 MBPP 数据集上, AKD 方法的准确率达到

