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

软件学报 ISSN 1000-9825, CODEN RUXUEW                                        E-mail: jos@iscas.ac.cn
                 2026,37(6):2431−2454 [doi: 10.13328/j.cnki.jos.007462] [CSTR: 32375.14.jos.007462]  http://www.jos.org.cn
                 ©中国科学院软件研究所版权所有.                                                          Tel: +86-10-62562563



                                                                   *
                 基于自适应知识蒸馏的代码大模型轻量化

                 舒善富  1 ,    刘    超  1 ,    孙毓忠  2 ,    张洪宇  1 ,    高翠芸  3 ,    张小洪  1


                 1
                  (重庆大学 大数据与软件学院, 重庆 401331)
                 2
                  (中国科学院 计算技术研究所, 北京 100190)
                  (哈尔滨工业大学    (深圳) 计算机科学与技术学院, 广东 深圳 518055)
                 3
                 通信作者: 刘超, E-mail: liu.chao@cqu.edu.cn

                 摘 要: 以大语言模型      (large language model, LLM) 为基座的软件编程助手   (如  Copilot), 能够显著提升程序员开发
                 效率, 但  LLM  的计算和存储需求大、本地化部署难. 构建轻量化小参数                 LLM  能够满足计算、存储、部署需求, 但
                 其代码生成的精度损失比大参数            LLM 大. 知识蒸馏    (knowledge distillation, KD) 技术, 让小参数  LLM (学生模型)
                 在目标训练数据集上拟合大参数            LLM (教师模型) 的生成分布, 降低代码生成精度损失. 人工智能领域前沿的                    KD
                 技术基于    Kullback-Leibler (KL) 散度损失函数, 度量并缩小因学生/教师模型的生成分布差异导致的精度损失, 但
                 学生模型难以学习教师模型的趋零分布区域. 随后, 学者利用反向                     KL  散度损失  (RKL) 函数解决该趋零分布区域
                 的学习问题. 研究发现, RKL      在高概率分布区域存在学习问题, 与           KL  散度损失函数存在互补性; 对于一些数据, 教
                 师模型生成质量低, 导致学生模型学习效果差. 提出一种自适应知识蒸馏 (adaptive knowledge distillation, AKD) 方
                 法, 通过  prompt 提升教师模型的生成质量, 并构造自适应损失函数, 根据学生/教师模型之间的生成分布差异自适
                 应调整学习的优先级, 确保学生模型在主要概率区域和趋零概率区域均具备学习能力. 基于                                AKD  方法, 利用
                 StarCoder-1B/7B (学生/教师模型) 和  CodeAlpaca 数据, 训练了轻量化代码大模型, 并评估代码大模型的精度损失
                 及生成代码的质量问题. 实验结果显示, 轻量化代码大模型规模降低                     85.7%, 在  HumanEval 和  MBPP  数据集上, 任
                 务提示明确的     prompt 可以提高教师模型的代码生成质量, 使训练的学生模型降低                  6%  的平均精度损失; AKD     方法
                 训练的模型较教师模型        (StarCoder-7B) 的平均精度损失为    17.14%, 较原始学生模型平均降低        30.6%; AKD  方法训
                 练的模型较前沿的       KD  和  RKD  方法的精度损失平均降低       19.9%; 关于推理显存需求情况, KD        和  RKD  方法需要
                 54.7 GB, 而  AKD  方法仅增加  3 GB. 关于训练时间方面, AKD     方法所需训练时间增加        30%; 相较而言, 即使    KD  和
                 RKD  方法训练至相同时长, 它们的平均效果仅提升              3%, 相比  AKD  方法低  16.9%. 因此, AKD  方法增加的训练成本
                 是值得的. 此外, 将    AKD  方法应用到    Code Llama 和  CodeGen  系列模型, 相较前沿的  KD  及  RKD  方法的精度损失
                 平均降低   19.2%, 证明了  AKD  方法的泛化能力.
                 关键词: 代码生成; 大语言模型; 知识蒸馏
                 中图法分类号: TP311

                 中文引用格式: 舒善富, 刘超, 孙毓忠, 张洪宇, 高翠芸, 张小洪. 基于自适应知识蒸馏的代码大模型轻量化. 软件学报, 2026, 37(6):
                 2431–2454. http://www.jos.org.cn/1000-9825/7462.htm
                 英文引用格式: Shu SF, Liu C, Sun YZ, Zhang HY, Gao CY, Zhang XH. Adaptive Knowledge Distillation for Lightweight Large Code
                 Models. Ruan Jian Xue Bao/Journal of Software, 2026, 37(6): 2431–2454 (in Chinese). http://www.jos.org.cn/1000-9825/7462.htm






                 *    基金项目: 国家自然科学基金  (62202074, 62372071); 中国博士后科学基金  (2022M710519); 重庆市技术创新与应用发展专项重点项目
                  (CSTB2023TIAD-STX0015, CSTB2022TIAD-KPX0068); 重庆市出站留  (来) 渝博士后择优资助项目  (2021LY23)
                  收稿时间: 2024-11-03; 修改时间: 2025-01-05, 2025-03-03, 2025-04-07; 采用时间: 2025-05-06; jos 在线出版时间: 2025-12-03
                  CNKI 网络首发时间: 2025-12-04
   107   108   109   110   111   112   113   114   115   116   117