Page 128 - 《软件学报》2026年第6期
P. 128
舒善富 等: 基于自适应知识蒸馏的代码大模型轻量化 2447
如表 11 所示, M1 仅采用自适应知识蒸馏方法, β 值虽是可学习参数, 但未进行额外的控制, 在 HumanEval 和
MBPP 数据集上的准确率分别为 18.9% 和 25.2%, 虽相较原始学生模型精度有所提升, 但增幅有限.
β 值控制策略对基于 AKD 方法的模型性能的影响 (%)
表 11
HumanEval MBPP
模型 方法
Pass@1 精度损失 Pass@1 精度损失
StarCoder-7B 教师模型 29.3 - 32 -
学生模型 13.4 54.2 14.0 56.3
M1 18.9 35.4 25.2 21.3
StarCoder-1B
M2 19.5 33.4 27.8 13.1
M3 20.7 29.3 30.4 5.0
M2 在 M1 基础上引入负损失函数作为 β 值的学习目标, 如公式 (15)–(17) 所述, 该策略的引入旨在引导 β 值向
最大化模型损失的方向优化. 该策略在 HumanEval 上将准确率提升至 19.5%, 在 MBPP 上达到 27.8%, 较 M1 提
升 2.6%, 说明负损失函数有助于优化模型性能.
M3 在 M2 基础上, 在每个训练轮次开始前重置 β 值及其学习率, 以增强参数的探索能力, 避免陷入局部最优.
实验结果显示, M3 在 HumanEval 上准确率升至 20.7%, 为 3 种策略中最高; 在 MBPP 上达到 30.4%, 精度损失降
至 5.0%. 相较 M2, M3 在 HumanEval 和 MBPP 数据集上的精度损失进一步降低了 4.1% 和 8.1%.
综上所述, 对于 AKD 方法, 参数 β 学习策略中的自适应学习、负损失函数和参数重置都是必要的, 均会对
AKD 方法的代码生成效果产生显著影响.
4.4.7 RQ7: AKD 方法的学习策略学习的参数是否优于固定参数?
为验证自适应学习的 β 值能够学习到更优的参数, 本文进一步探讨了固定 β 值对模型性能的影响. 通过将 β
值固定为特定值, 直接评估在不同 KL 和 RKL 散度权重组合下模型的表现, 验证 AKD 方法的优势.
本文在实验中保持 β 为固定值, 并以 0.2 为采样点在数据集上进行测试, 实验结果如表 12 所示.
β 值对基于 AKD 方法的模型性能的影响 (%)
表 12 固定
HumanEval MBPP
模型 β值
Pass@1 精度损失 Pass@1 精度损失
StarCoder-7B 教师模型 29.3 - 36.2 -
学生模型 13.4 54.2 14.0 56.3
0 (KD) 17.1 41.7 24.6 23.1
0.2 18.9 35.4 8.2 74.4
0.4 17.1 41.7 18.6 41.9
StarCoder-1B
0.6 18.9 35.4 16.6 48.1
0.8 18.3 37.5 11.8 63.1
1 (RKD) 16.4 44.0 19.4 39.4
AKD 20.7 29.3 30.4 5.0
实验结果表明, 固定的 θ 值难以实现最优性能. 当 β = 0 (仅用 KD 方法) 时, 模型在 HumanEval 和 MBPP 上的
准确率分别为 17.1% 和 24.6%; 而 β = 1 (仅用 RKD 方法) 时, 准确率降至 16.4% 和 19.4%. 随着 β 从 0 增至 1, 性能
呈先升后降趋势. KD 擅长捕捉代码细节, RKD 则有助于建模趋零概率区域的分布, 二者各有优势, 但固定 β 难以
兼顾, 限制了性能.
相比之下, AKD 方法通过自适应学习 β, 显著提升了效果. 在 HumanEval 中, 精度损失降至 29.3%, 比固定 β =
0.6 的方法低 6.1%; 在 MBPP 中, 精度损失为 5.0%, 较 KD 方法低 18.1%. AKD 通过动态调整 KD 与 RKD 权重, 在
高概率区域依赖 KD 提升精度, 在低概率区域借助 RKD 提取有用信息, 从而整体提升模型表现.
此外, AKD 克服了固定 β 的局限性. 如 MBPP 中, 当 β 偏向 KD (0.2) 或 RKD (0.8) 时, 性能均明显下降. 说明
固定权重难以适应不同数据特性, 而 AKD 能根据数据分布灵活调整策略, 有效避免性能瓶颈. 总体来看, AKD 的

