Page 132 - 《软件学报》2026年第6期
P. 132

舒善富 等: 基于自适应知识蒸馏的代码大模型轻量化                                                       2451


                 性能, 具有很好的泛化能力.

                  5   结论与未来工作

                    大语言模型虽然在代码生成任务中表现出色, 但其巨大的参数规模和显存需求限制了其实际部署. 小参数大
                 语言模型仅需大参数大语言模型约            15%  的计算资源, 但直接使用小参数大语言模型会导致性能下降. 由于数据质
                 量等因素, 直接采用      SFT  方法无法提升小参数大模型性能, 无法满足实际应用需求. 本文针对代码生成任务中大
                 模型因需要大量计算资源而难以在实际环境中应用的问题, 提出了一种自适应的知识蒸馏方法                               (AKD).
                    AKD  方法通过自适应地结合         KL  和  RKL  散度, 成功地将教师模型的知识蒸馏到学生模型中. 实验结果验证
                 了  prompt 的重要性, 合适的   prompt 能提升教师模型的代码生成质量, 提高学生模型学习的有效性; 相较于使用单
                 一的  KD  或  RKD  方法, AKD  方法显著降低了学生模型相较于教师模型的精度损失, 正确率仅牺牲                      5.1%. 同时,
                 AKD  方法能减少简单且常见的错误, 鼓励模型尝试新的编程思路, 生成高质量代码. 在资源消耗方面, AKD                             方法
                 的显存较   KD  与  RKD  方法训练所需显存的      54.7 GB  仅增加  3 GB, 训练时间增加   30%, 但额外的资源开销能大幅
                 降低学生模型的精度损失.
                                          β 值的学习策略进行调整, 在        HumanEval 及  MBPP  数据集上进行多组实验, 证明
                    本文还通过对自适应学习中
                 了自适应学习     β 值的必要性和有效性. 此外, 对不同架构和预训练数据的模型进行实验评估, 发现                        AKD  方法在多
                 种模型都展现出更低的精度损失, 证明其在模型上的泛化能力. 最后引入指令微调数据集                            Magicoder-OSS-Instruct
                 和难度更高的     HumanEval+评估数据集, 进一步验证       AKD  方法在其他数据集上的泛化能力.
                    因此  AKD  方法能够灵活调整教师模型与学生模型之间的知识传递方式, 有效降低学生模型的精度损失, 具
                 备实际应用价值.
                    本文未来的工作主要包括以下           5  个方面.
                    (1) 提高代码生成质量: 本文将在降低学生模型精度损失的基础上, 提高代码生成的整体质量.
                    (2) 研究更大规模的模型蒸馏: 由于计算资源有限, 当前的研究主要针对参数规模在                         1B–7B  的模型. 未来, 本
                 文计划扩展硬件资源, 进行更大规模的模型蒸馏.
                    (3) 优化资源消耗与训练效率: 未来工作将优化算法结构, 减少资源消耗与训练时间, 提高蒸馏的效率.
                    (4) 拓展到不同模型架构之间的蒸馏学习: 本文计划将知识蒸馏方法拓展到不同模型架构之间的蒸馏学习, 验
                 证  AKD  方法在跨架构模型间的适用性和有效性.
                    (5) 扩展到更多软件工程领域任务: 本文计划将             AKD  方法应用于更多的软件工程领域任务, 进一步验证该方
                 法在其他领域的应用效果.


                 References
                  [1]   OpenAI. GPT-4 technical report. arXiv:2303.08774, 2024.
                  [2]   Zhang SS, Roller S, Goyal N, Artetxe M, Chen MY, Chen SH, Dewan C, Diab M, Li X, Lin XV, Mihaylov T, Ott M, Shleifer S, Shuster
                     K, Simig D, Koura PS, Sridhar A, Wang TL, Zettlemoyer L. OPT: Open pre-trained Transformer language models. arXiv:2205.01068,
                     2022.
                  [3]   Touvron H, Lavril T, Izacard G, Martinet X, Lachaux MA, Lacroix T, Rozière B, Goyal N, Hambro E, Azhar F, Rodriguez A, Joulin A,
                     Grave E, Lample G. LLaMA: Open and efficient foundation language models. arXiv:2302.13971, 2023.
                  [4]   Alkhulaifi A, Alsahli F, Ahmad I. Knowledge distillation in deep learning and its applications. PeerJ Computer Science, 2021, 7: e474.
                     [doi: 10.7717/peerj-cs.474]
                  [5]   Gemini Team Google. Gemini: A family of highly capable multimodal models. arXiv:2312.11805, 2024.
                  [6]   Zhang PY, Zeng GT, Wang TD, Lu W. TinyLlama: An open-source small language model. arXiv:2401.02385, 2024.
                  [7]   Lei KM, Jin YY, Zhai MS, Huang KZ, Ye HX, Zhai JD. PUZZLE: Efficiently aligning large language models through light-weight
                     context  switch.  In:  Proc.  of  the  2024  USENIX  Conf.  USENIX  Annual  Technical  Conf.  Santa  Clara:  USENIX  Association,  2024.
                     127–140.
                  [8]   Yang YZ, Sun HS, Li JW, Liu RH, Li YH, Liu YH, Gao Y, Huang HY. MindLLM: Lightweight large language model pre-training,
   127   128   129   130   131   132   133   134   135   136   137