敵対的学習を用いた知識蒸留への中間層蒸留と対照学習の導入

BERT[1]やRoBERTa[2]のような事前学習済み言語モデルは，様々な言語処理タスクにおいて，高い性能を発揮しているが，近年では，GPT-3[3]や，PaLM[4]に見られるように，パラメータ数が大幅に増加し，通常のデバイスでは扱えなくなっている．知識蒸留(KD)[5]は，ニューラルネットワークを圧縮する手法の一つである．パラメータ数の大きい教師モデルの出力と，パラメータ数の小さい生徒モデルの出力のKLダイバージェンスを小さくする学習をすることで，生徒モデルが教師モデルと同様の出力が出来るようにする．先行研究により，知識蒸留は，教師モデルと生徒モデルの最終的な出力間だけでなく，中間層の出力間の誤差の利用[6,7,8]，データ拡張と敵対的学習の導入[9]，対照学習の導入[10]により，性能が向上することが報告されている．Haidarら[11]は知識蒸留に中間層の利用，敵対的学習，対照学習を導入したCILDAと呼ばれる手法を提案し，GLUEタスクにおいてSOTAを達成した．しかし，Haidarらの研究[11]では，データ拡張と敵対的学習に用いられるGeneratorの学習にのみ中間層の利用と対照学習の導入を行っており，生徒モデルの学習については通常のKDから改良されていない．本研究ではCILDAの生徒モデルの学習時に中間層の利用と対照学習を導入し，さらに性能を向上させることを目指す．本研究のソースコードはGitHub1）にて公開している.