Page 130 - 《软件学报》2026年第6期
P. 130
舒善富 等: 基于自适应知识蒸馏的代码大模型轻量化 2449
10 个错误. 这些数据表明, 知识蒸馏方法会提升模型创新性, 促进模型对递归等包含循环算法的尝试.
在“试图访问序列范围外的索引”错误中, AKD 的错误数为 7 个, 高于原始学生模型的 3 个, 低于 KD 方法的
12 个和 RKD 方法的 11 个. 类似趋势在其他蒸馏方法中亦有体现, 说明知识蒸馏引导模型尝试新解法.
在完整性评估中, 学生模型和教师模型生成的代码有 321 和 197 个不完整, AKD 方法只有 104 个. 在生成完
整的代码中, AKD 方法通过测试用例的比率为 33.2%, AKD 方法最高.
综合以上分析, AKD 方法相较于其他方法, 显著提高了代码生成的正确率, 并能生成质量更高的代码. 与学生
模型和教师模型相比, AKD 生成的代码在完整性上表现更好, 测试通过率与教师模型的差距更小.
4.4.9 RQ9: AKD 方法在不同代码生成模型上的泛化能力如何?
为验证 AKD 方法的泛化能力, 本文在 Code Llama 和 CodeGen-Mono 模型上进行了扩展实验以评估 AKD 方
法在不同模型规模和任务上的表现, 进一步确认其在多样化模型中的有效性与适应性.
实验涵盖从中小模型 (Code Llama-1.1B、CodeGen-Mono-350M) 到大模型 (Code Llama-7B、CodeGen-Mono-
6.1B), 在 HumanEval 和 MBPP 的 Pass@1 任务中系统评估 AKD 方法的表现, 实验结果如表 14 所示.
表 14 AKD 方法在 Code Llama 及 CodeGen 上的泛化实验 (%)
HumanEval MBPP
模型 方法
Pass@1 精度损失 Pass@1 精度损失
Code Llama-7B 教师模型 22.6 - 41.4 -
学生模型 5.5 75.7 2.8 93.2
MiniLLM 7.3 67.6 5.8 86.0
RKD 9.7 57.0 5.4 87.0
Code Llama-1.1B
KD 10.3 54.3 5.4 87.0
SeqKD 7.3 67.6 8.0 80.7
AKD 11.0 51.2 11.2 72.9
CodeGen-Mono-6.1B 教师模型 24.0 - 32.5 -
学生模型 12.11 49.5 14.6 55.1
MiniLLM 12.8 46.7 9.0 72.3
RKD 12.1 49.6 11.8 63.7
CodeGen-Mono-350M
KD 13.4 44.2 12.6 61.2
SeqKD 11.6 51.7 12.0 63.1
AKD 18.3 23.8 21.0 35.3
在 Code Llama 模型上, AKD 在 HumanEval 任务中相较其他知识蒸馏方法将精度损失降低了 3.1%–16.4%,
在 MBPP 任务中降低了 7.8%–14.1%. 在 CodeGen-Mono 模型中, AKD 的优势更为显著, HumanEval 任务中精度损
失降低幅度达 20.4%–27.9%, MBPP 任务中则达 25.9%–37.0%, 展现出卓越的稳定性和任务适应性.
实验结果表明, 相比现有方法, AKD 能更有效地降低学生模型精度损失, 具备良好的跨模型泛化能力. 现有蒸
馏方法虽能在缩小模型规模时保留部分性能, 但在大规模差异条件下效果受限. 相比之下, AKD 通过灵活调整知
识传递机制, 显著提升了小模型在多样架构与预训练数据下的性能表现.
4.4.10 RQ10: AKD 方法在其他数据集上的泛化能力如何?
为讨论 AKD 方法在其他数据集上的泛化能力, 本文引入了开放指令微调数据集 Magicoder-OSS-Instruct [55] 进
行实验, 并采用更具挑战性的评估数据集 HumanEval+ [56] 对模型进行测试. 该数据集相较于原始 HumanEval 基准
测试用例, 规模扩大了 80 倍, 能够充分探究代码功能上的不足或极端情况.
为了评估 AKD 方法的泛化能力, 本实验以生成效果最好的 StarCoder 作为基座模型, 增加了 DeepSeek-Coder ,
[57]
对比 AKD 方法在不同基座模型上的效果.
已有的实验表明, MiniLLM 及 SeqKD 方法消耗的资源及训练时间远大于其他方法, 本实验中不再比较.
CodeAlpaca 数据集上的实验结果如表 15 所示, Magicoder-OSS-Instruct 数据集上的实验结果如表 16 所示.
从表 15 的实验结果可以得知, AKD 方法在 StarCoder 和 DeepSeek-Coder 上均显著降低了精度损失. 对于

