【wip】AdapterFusion:Non-Destructive Task Composition for Transfer Learning
https://scrapbox.io/files/64bb50614f677d001bdd71b6.png
論文リンク
文献情報
EACL 2021
Jonas Pfeiffer, Aioshwarya Kamath, Andreas Ruckle, Kyunghyun Cho, Iryna Gurevych
要は何?
複数の学習済みadapterをスタックすることで,
複数のタスクでの知識を他のタスクに効率的に盛り込むtransfer learning
問題意識と解決策
転移学習は獲得済みの知識をリソースの少ないタスクへ適用する.
その方法と問題点としては以下の通り.
Fine-tuning
あるタスクで学習したモデルを他のタスクに対して再学習し,適用する
性能は高くなるが基本的に転移できるのは一つのタスクのみ
Sequencial fine-tuning
fine-tuningをくりかえす
破滅的忘却のおそれあり
マルチタスク学習
パラメータを複数のタスクで共有し,同時に複数タスクを解く
学習が難しい.特にタスク間関係性が低いと性能がかえって悪化する.(とくにlow resourceなタスクにoverfitする)
Adapter
一部のみを学習する(追加層の挿入)
Single task adapter (ST-A)
パラメータは効率的に学習できるが,マルチタスクには非対応
Multi-task adapter(MT-A)
複数のタスクを一つのadapterで解く?
複数のタスクからの知識を活用できていない
そこで,Adapterをベースに,複数の学習済みAdapterを融合させるAdapterfusionを提案.
pretrain modelの知識を保持したまま,マルチタスク学習のように複数の知識を活用する.
関連研究
Houlsby et al.
手法
ST-A,MT-Aどちらにも利用可能.
https://scrapbox.io/files/64bb6d5b64d85d001b00c078.png
1. まずはあらかじめadapterを複数のタスクで学習させておく.
数学的な記述
N個のタスクをもとに基盤モデルのパラメータ$ \ThetaとAdapterのパラメータ$ \Phiを固定したまま,複数タスクを統合するための新たなパラメータ$ \Psiを導入する.
$ \Psi_m \leftarrow \argmin_{\Psi}L_m (D_m; \Theta,\Phi_1,...,\Phi_N, \Psi)
そしてあるタスクmに対してロスのargminをとった$ \Psi_mをそのタスクのモデルとする.
2.対象の基盤モデルのEncoderの中に学習済みAdapterをスタックする
https://youtu.be/_Z9qNT-g14U
https://scrapbox.io/files/64bb6ea547a005001b4a3b8e.png
https://scrapbox.io/files/64bb6deb7c1a83001c3312c7.png
実験とその結果
コメント