LoRAを活用した言語モデルの中間層蒸留

事前学習言語モデルは様々な言語処理のタスクにおいて，高い性能を実現した．しかし，近年では，パラメータサイズ1750億のGPT-3[1]や，4050億のLlama3.1[2]，パラメータ数は不明だがGPT-4[3]などに見られるように，言語モデルのパラメータ数が巨大化し，計算コストが大きく増加したため，モデルの性能を保ったままパラメータ数を削減する手法が求められている．知識蒸留[4]は，モデル圧縮の手法の一つである．パラメータ数の大きい教師モデルの出力と，パラメータ数の小さい生徒モデルの出力を用いて損失関数を計算し，出力同士の差が小さくなるように学習をすることで，生徒モデルが教師モデルと同様の出力が出来るようにする．通常，知識蒸留はモデルの最終出力を用いるが，中間層同士の出力でも損失関数を計算する中間層蒸留(ILD)が存在し，より性能を向上させることが出来ると先行研究で主張されている[5,6,7]．中間層蒸留では，教師モデルと生徒モデルの中間層出力の次元数が異なる場合，そのままでは損失関数を計算できない．先行研究では，この問題を，線形写像を用いて次元数を揃えることで解決した[7]．しかし，この線形写像は学習時のみで用いられ，推論時には無視される．この方法では線形写像の存在を前提とした学習が行われるため，推論の為に有効な学習となっている保証がない．本研究では，LoRAのアダプターをこの線形写像の代わりとして用いることで，推論時にも線形写像が維持されるLoRAILDを提案し，実験を行った．しかし，LoRAILDは既存手法を上回らず，さらに，先行研究の手法も性能を再現できなかった．また，中間層出力のクラスター分析を行い，その結果から，言語モデルにおいて中間層蒸留は有効でないと結論付けた．本研究のソースコードはGitHub1）にて公開している.