⛏️

LLMにおけるMulti-Task Learning vs Fine-tuning(STILTs)

2024/05/19に公開

マルチタスク学習(Multi-Task Learning)とFine-tuning(後述するSTILTs)をどう使い分けたら良いだろうかとぼんやり考えていた時に、2022年ACLの「When to Use Multi-Task Learning vs Intermediate Fine-Tuning for Pre-Trained Encoder Transfer Learning」という論文を発見したので、メモ書きを残しておく。

https://arxiv.org/abs/2205.08124

論文の概要

現代的なNLP研究では、事前学習した言語モデルを目的タスクにFine-tuningすることが一般的である。その際に、目的タスク以外の教師ありデータセット(以下、補助データセット)を利用できる場合があるが、どのように活用すれば良いかは自明でない。この文献では、3種類の活用方針を比較し、それらをどのように選択すれば良いかを調査している。

  1. STILTs(Supplementary Training on Intermediate Labeled-data Tasks): ある補助データセットにFine-tuningした後に、目的タスクにFine-tuningする。
  2. マルチタスク学習: ある補助データセットと目的タスクに同時にFine-tuningする。
  3. マルチタスク学習(複数データセット): 複数の補助データセットと目的タスクにFine-tuningする。

GLUEの9つのデータセットでこれらの方針を調査した結果、単純なデータサイズの経験則(simple size heuristic)を発見したと報告している。それは、「目的タスクのデータセットが補助データセットよりも大きい場合、STILTsを採用し、それ以外はマルチタスク学習を採用する。」というもので、マルチタスク学習(複数データセット)はほとんどの場合で最も悪い結果だっと報告している。

実験結果について

STILTsとマルチタスク学習の比較

Figure 3は、DistilRoBERTaをマルチタスク学習/STILTsしたとき[1]の「マルチタスク学習時のスコア - STILTs時のスコア」を可視化したものである。データセットはサイズ準に並べられており、MNLI(393K)が最も大きくWNLI(0.6K)が最も小さいデータセットである。データセットのサイズ差が小さい対角付近は性能差が小さいことがわかる。また、左上の領域(=目的タスクのデータサイズ < 補助タスクのデータサイズ)ではマルチタスク学習が優勢で、右下の領域(=目的タスクのデータサイズ > 補助タスクのデータサイズ)ではSTILTsが優勢であることがわかる。例外な組み合わせも存在しているが、前述の「データサイズの経験則」に従えば、92%(49/53)のaccuracyで正しい方針を選択できている。

著者らは仮説として、STILTsにおいて、補助タスクのデータセットが小さい場合は目的タスクにとって良い初期化を与えられているが、補助タスクが大きい場合には重みの変化が大きくなり過ぎてしまい、マルチタスク学習に劣っていると述べている。また、マルチタスク学習において、目的タスクのデータサイズが十分に大きい場合、補助タスクから得られる利益が少なく、破壊的な干渉に繋がっている恐れがあるとしている。

マルチタスク学習とマルチタスク学習(複数データセット)の比較

Table 1は、以下の5つの方針の性能を示している(異なるrandomシードの5回平均)。

  • MTL_{ALL}: マルチタスク学習(複数データセット)
  • Avg. STILTs: 目的タスク以外のそれぞれを補助データセットにSTILTsを行なった平均
  • Avg. MTL: 目的タスク以外のそれぞれを補助データセットにマルチタスク学習を行なった平均
  • Avg. S.H.: 目的タスク以外のそれぞれを補助データセットに、「データサイズの経験則」に従った際の平均
  • Pairwise Oracle: 最も良い補助データセット、マルチタスク学習 or STILTsを選択した場合

表の結果から、「マルチタスク学習(複数データセット)」は、RTEを除き最も低い性能だったと結論づけている。

所感

この文献ではタスク間の関係性については除外しているが、データサイズに着目した手法の選択は有用であるように思う。

一つ気になった点としては、マルチタスク学習(複数データセット)の損失関数部分で、文献で詳しく述べられていないが、実装をざっくり見た限りでは、各タスクのロスが等価値で扱われており、タスク数を増やしたときに目的タスクの損失の貢献度合いが1/タスク数になっていることが大きく不利になっていそうなことである。損失の重み付け和/平均等を利用すると結果が異なるかもしれない。

引用

@inproceedings{weller-etal-2022-use,
    title = "When to Use Multi-Task Learning vs Intermediate Fine-Tuning for Pre-Trained Encoder Transfer Learning",
    author = "Weller, Orion  and
      Seppi, Kevin  and
      Gardner, Matt",
    booktitle = "Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics (Volume 2: Short Papers)",
    month = may,
    year = "2022",
    address = "Dublin, Ireland",
    publisher = "Association for Computational Linguistics",
    url = "https://aclanthology.org/2022.acl-short.30",
    doi = "10.18653/v1/2022.acl-short.30",
    pages = "272--282",
}
脚注
  1. BERTでの実験結果も報告している。 ↩︎

Discussion