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

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


                 使优化过程更容易.

                  3.2   KL  散度及  RKL  散度
                    知识蒸馏的目标是设计合适的散度. 在深度学习领域, 度量散度在模型训练和知识转移中扮演着重要角色.
                 KL  散度倾向于对分布的主要部分进行建模, 要求当              p > 0 时,  q 也必须大于  0. 这种对主要质量的建模特性, 使        KL
                 散度在需要捕捉数据主要特征时非常有用. 但当分布差距大时, KL                   散度会导致学生模型对教师模型中趋零分布区
                 域分配不合理的高概率, 导致生成错误. Minka 等人            [46] 深入分析了  KL  散度的性质, 指出    RKL  散度具备零强迫特
                 性, 即当原始分布     p 在某些区域为    0  时, 它会强制近似分布     q 在这些区域也为     0. 这一特性使得    RKL  散度在处理分
                 布的尾部或低概率事件时非常有效.
                                         t 中第   个词的         teacher , 通过软化教师模型的  logits, 可以得到教师模型的输
                                              i
                    本文定义教师模型在位置                     logits 为  z i,t
                                  (    )
                 出概率分布, 定义为      p y t |y <t , x . 软化后的概率分布定义如下:

                                                               (     )
                                                            exp z teacher /T
                                                  (    )        t
                                                            V    (      )
                                                 p y t |y <t , x = ∑                                  (2)
                                                              exp z teacher /T
                                                            i=1   i,t
                                                                        {               }
                 其中,  x 表示输入样本,   y t  表示教师模型在位置   上生成的目标输出,         y t ∈ z teacher ,z teacher ,...,z teacher  ,  V  是词汇表的大小,
                                                     t
                                                                         1,t  2,t    V,t
                                                   V
                                                 ∑      (     )
                       t−1                               teacher
                                                                              t
                 y <t = {y j }  j=1  , 温度参数  T  控制软化的程度.   i=1 exp z i,t  /T  为教师模型在位置   对所有词  logits 值的指数和. 较高
                   T  值会使得概率分布更加平滑, 有助于知识的传递.
                 的
                    Kim  等人  [42] 将传统的  KL  散度首次应用于序列级任务上, 本文中采用相同的序列级               KL  散度, 定义如下:

                                                                    ( (     ) )
                                                      ∑              p y|y <t , x
                                                         |y|  (  )
                                            L KL (p,q θ ) = −  p y|y <t , x log  (  )                 (3)
                                                         t=1         q θ y|y <t , x
                 其中,  p(x) 是教师模型生成的概率分布,        q θ (x) 是学生模型生成的概率分布,   是学生模型的参数.
                                                                          θ
                    RKL  散度的定义如下:

                                                                     (  (   ))
                                                      ∑               q θ y|y <t , x
                                                         |y|  (  )
                                           L RKL (p,q θ ) = −  q θ y|y <t , x log  (  )               (4)
                                                         t=1          p y|y <t , x
                                                  (    )
                                                   p(x)
                    对于  L KL (p,q θ ), 定义   f (p,q θ ) = p(x)log  , 当  p(x) 趋向  0  时, 有如下推导公式:
                                                   q θ (x)
                                               (    )        (   )/
                                                p(x)          p(x)  1
                                      lim p(x)log    = lim log         = − lim p(x) = 0               (5)
                                     p(x)→0     q θ (x)  p(x)→0  q θ (x)  p(x)  p(x)→0
                    因此, 当学生模型难以拟合教师模型概率分布时, KL                散度会导致学生模型高估教师模型的低概率区域, 造成
                 生成错误.
                                                                p(x)  趋向  0  时,         ∞, RKL  散度会让学
                    对于  L RKL (p,q θ ), 定义   f (p,q θ ) = q θ (x)log(q θ (x)/p(x)),  当   f (p,q θ )  会趋向
                 生模型侧重关注教师模型中的低概率区域, 即零强迫特性. RKL                   散度的零强迫特性, 使其在领域适应任务中得到
                 了广泛应用. 例如, Nguyen   等人  [47] 在其研究中使用   RKL  散度来减少源域和目标域表示分布之间的差异, 提高模型
                 在目标域上的泛化能力. Czarnecki 等人      [48] 探索了强化学习领域如何通过策略蒸馏传递知识, 涉及从教师策略到学
                 生策略的知识转移, 也是利用了          RKL  散度的零强迫特性. 同理, 当      q θ (x) 趋向  0  时,  q θ (x)log(q θ (x)/p(x)) = 0. 因此,
                 在  RKL  散度中, 存在学生模型很难拟合教师模型分布的主要概率的问题.
                  3.3   自适应知识蒸馏损失函数
                    在使用知识蒸馏方法对模型训练的过程中, 学生模型需要有效地学习教师模型的输出概率分布. RKL                                散度展
                                             p 在某些区域为     0                  q  在这些区域也为     0. 这与  KL  散度
                 现了一种零强迫特性, 即当原始分布                         时, 它会强制近似分布
                 形成对比, 后者倾向于对分布的主要部分进行建模, 要求当                 p 大于  0  时,  q 也必须大于  0. 由于在训练过程中这两种
                 分布特性都会出现, 单纯使用一种散度度量无法全面捕捉教师模型的分布, 因此本文提出了结合                               KL  散度和  RKL
                 散度的自适应知识蒸馏方法.
                    本文提出了一种自适应知识蒸馏方法, 通过可学习的自适应参数                      β 动态调整   KL  散度和  RKL  散度的学习优
   113   114   115   116   117   118   119   120   121   122   123