Page 124 - 《软件学报》2026年第6期
P. 124
舒善富 等: 基于自适应知识蒸馏的代码大模型轻量化 2443
习、负损失函数和参数重置. 本研究问题分析学习策略中 3 个方面对 AKD 效果的影响, 论证学习策略设置的合
理性.
RQ7: AKD 方法的学习策略学习的参数是否优于固定参数? AKD 方法自适应体现在参数 β 随着知识蒸馏过
β 对代码生成效果的影响, 并与自适应学习策略对比, 论证
程中数据的不同而变化. 本研究问题分析不同固定参数
AKD 方法中学习策略的必要性.
RQ8: AKD 方法生成代码的质量如何? 本研究问题旨在分析 AKD 和基准方法在代码生成任务的正确性, 论
证 AKD 方法能够生成更高质量代码的原因. 与此同时, 本研究问题也分析当前基于知识蒸馏代码大模型的缺点,
为将来进一步研究提供依据.
RQ9: AKD 方法在不同代码生成模型上的泛化能力如何? AKD 方法以 StarCoder 为代码大模型基座. 本研究
问题旨在分析 AKD 方法在其他基座大模型 Code Llama 和 CodeGen 的应用效果, 论证 AKD 方法的泛化能力.
RQ10: AKD 在其他数据集上的泛化能力如何? AKD 方法在不同代码生成模型上展现了良好的性能. 本研究
问题旨在讨论 AKD 方法在其他的训练数据集 Magicoder 和更具挑战性的评测数据集 HumanEval+上的适应能力.
4.4 实验结果与分析
4.4.1 RQ1: AKD 方法是否是必要的?
为验证这个问题的结果, 本文将 AKD 方法训练的模型与原始学生模型及指令微调后的模型进行了对比实验.
如表 4 所示, 本文使用 HumanEval 和 MBPP 数据集作为评测基准, 使用指标为 Pass@1 的通过率和相对于教师模
型的精度损失. 教师模型是 StarCoder-7B, 学生模型为 StarCoder-1B, 其中, 教师模型的分别为 29.3% 和 32.0%, 学
生模型 HumanEval Pass@1 和 MBPP Pass@1 分别为 13.4% 和 14.0%. 原始学生模型较教师模型在 HumanEval 和
MBPP 数据集上的精度损失下降了 54.0% 和 56.0%.
表 4 学生模型、教师模型及不同训练方法在 HumanEval 与 MBPP 数据集上的性能对比 (%)
HumanEval MBPP
模型 方法
Pass@1 精度损失 Pass@1 精度损失
StarCoder-7B 教师模型 29.3 - 32.0 -
学生模型 13.4 54.0 14.0 56.0
SFT 14.0 52.2 20.2 36.9
StarCoder-1B
SFT_LoRA 16.4 44.0 25.8 19.4
AKD 20.7 29.3 30.4 5.0
本文首先对原始学生模型进行 SFT (supervised fine-tuning) [53] , 期望直接利用高质量的监督数据提升模型性能.
SFT 通常是首选的方法, SFT 技术能让模型在特定任务的数据集上更新所有参数以达到任务适应性.
实验所使用的 SFT 代码来自 Gu 等人 [9] 的研究, 本文使用其代码并在其数据集上验证了方法的正确性, 调用
该方法对代码大模型进行复现, 其中学习率为 1E–4, 文本输入最大长度 512, 批量大小为 8, 不进行梯度累计, 在
CodeAlpaca 数据集训练 10 个 epoch. 模型的准确率降至 0, 无法正确生成代码.
为进一步验证 SFT 方法的有效性, 本文尽力优化 SFT 实验参数. 优化后的 SFT 学习率为 1E–5, 文本输入最大
长度 1 024, 批量大小为 8, 训练模型 18 轮, 每轮 2 240 步, 每 4 步进行梯度累计. 基于以上参数设置, SFT 训练收敛
于 18 轮, 如图 3 所示部分学习率设置下损失值变化. 进一步调整其他参数如批量大小、优化器类型, 未获得更好
的准确率, 可能受到数据质量与覆盖面等方面的限制. 实验效果如表 4 所示, 调参后 SFT 准确率仍然较低, 对小参
数模型准确率的提升不到 4%.
为进一步探究是否存在其他优化策略能够有效提升 SFT 的性能, 本文使用 LoRA [54] 技术进行微调, 超参数设
置见第 4.2.2 节表 3 所示, 结果表明 SFT 效果有所提升, 验证了所选微调方法的有效性和实现的正确性. 然而, 尽
管 LoRA 有所改善, 其提升幅度仍然有限, 且需额外的优化技术支持.
鉴于 SFT 方法的局限性无法满足学生模型性能的需求, 本文采用知识蒸馏方式训练模型, 并且提出 AKD 方
法, 成功地将教师模型的知识迁移到了学生模型上. 表 4 结果显示, AKD 方法使模型的准确率提升至 20.7% 和

