Proceedings of the 61st Annual Meeting of the Association for Computational Linguistics (ACL2023)で気になった論文とそのメモ。
GPT3やGPT4ではZero shotでタスクを解けるが、実はBERTやRoBERTaなどのEncoderモデルも工夫すればZero shotで解けるのでは?という話。
普通だと上図のOriginal inputを入力して[CLS]トーク ンの出力から予測します。
この研究では、例えばトピック分類タスクの場合、後続のTemplateに答えさせたい内容を[MASK]トーク ンにして抽出するTemplateを作成します。
Original inputとTemplateを結合してLMに通し、[MASK]に何が入るかを予測させます。
トピック分類の場合SPORTS, SCIENCEなどの分類先のトピックが用意されています。
それごとにword embeddingの類似度から関連した語彙を集めます。
[MASK]が予測したトーク ンのlogitsについて、各トピックの関連語彙についてaggregationして、一番高い値になったトピックを予測結果とします。
Knowledgeable Prompt-tuning: Incorporating Knowledge into Prompt Verbalizer for Text Classification (ACL2022) とだいぶ近いが...
普通のEnsembleと違って、CLSを様々な形になるように学習することで、Fine-TuningとInferenceが1回で済む、ということらしい。
EMNLP2020のQuickThought (QT、連続する2文から取った[CLS]の出力のnegative coine similarityを取るらしい)に割と依っている部分がありそう。
BERTのckptから学習を続ける形でマルチタスク をやっていそう。
図が分かりづらくて読む気が進まず、、、
In-Cotext Learning (ICL)において、あんまり似ていないというか役に立たない例をfilter outして、良いのを使おうという話。
SelectionはTopK (embeddingで近いもの)、RankingはMinimum Description Length (MDL)が良いらしい。
LLM時代にだいぶ必要となりそうなものなので、MDLについては勉強したほうが良さそう。
labeledデータがないcold-start時には、labelの分布などもわからないためbias等問題が発生しやすい。
それを解決するPATRONを提案。
さらに、情報量の多いサンプルを抽出するプロンプトベースの不確実性を伝播させる手法と、多様性と情報量のバランスを確保するpartition-then-rewrite (PTR)ストラテジー を提案。
各ラベルについて推定された確率が高いk個ずつのサンプルを取ってきておいて、そこから語彙の各単語について[MASK]に対して予測されやすい確率のバイアスの分布的なものを求める。
それを用いて入力に対する不確実性を表すエントロピー を算出できる式(論文中ではeq.5)を求められる。
サンプルxに対してk近傍(KNN)の距離を用いて不確実性と距離を考慮した式に修正する。
などと、不確実性とKNNを利用した距離をmixした式を構築して、距離が近すぎず不確実性も低いようなサンプルを取ってくる(という話のはず)。
Fine-tuningのときだけLMをscaling upする。FFNでLoRAの逆(rank rを大きくする)的なこと。
精度は上がっているが、大きな上昇という感じはしない。
TransformerのFFNにdomain用のadapterをくっつける
FFNなのは、FFNに知識が蓄積されるから(introの2段落頭)。
adapterは2種類:domain用とtask用。
2.4の MoEの参考文献が多分参考になるので後で読む。
2023.acl -long.280-fig1
Stage 1では今までのpre-trainingコーパス に加えてDomain-specific knowledge (タスクのターゲット)を用いて学習する。
Domain-specific knowledgeのlossは普通のMLM loss。
old domainのFFNからのlossは、Domain Adapterと元のFFNの距離を小さくするためのloss。
Stage 2ではlabel付きのデータセット で学習するため、task-adapterとMoA Gateを追加して学習する。
task-adapterは各layerのタスクspecificな知識を学習し、MoA GateはDomain adapterの出力と元のFFNの出力をconcatして元のFFNの出力の形に合うようにlinear projectionする。
英語の学習をテーマに、生徒の知識レベルや難易度を予測しながら、excerciseを生成するタスクを解く。
Knowledge TracerとExcercise Generatorを順に更新していくところがELECTRAっぽい。
実問題を扱いつつ定式化が丁寧。
タイトルの通り大規模モデルからの蒸留と、アノテーション のどちらがよりコスト最適か?という話。
より効率的な推論のために蒸留するとのことだが、フロントエンドとか速度を要求されない限り大きいモデルのまま使えば良いような、、、
結論としては一部アノテーション してそれ以降は蒸留するのが良いとのこと。
self-pretrainingは、下流 タスクのコーパス で事前学習すること。
TAPTは下流 のタスク以外のデータセット も入っているから違うらしい。
ELECTRAとRoBERTaで実験、ただcomputing resource的にハイパラがかなり小さめに設定されている。
TAPTとoffshelf(事前学習の元のコーパス で事前学習)はTAPTの方が良さそうに見えるが確実な傾向ではなかった。
self-pretrainingがoffshelfに比べて比較的良かった(これも全部ではないが平均するとoutperform)。
また、self-pretrainingとoffshelfをensembleしても多少よくはなる。
なお、ensembleの際はtemperature scaling (Guo et al., 2017)を用いている。
French domain-specific RoBERTa。
コーパス とモデルの公開がメイン?これで通るんだと思ってしまった、、
adaptationのためにembeddingだけをretrain。
embeddingのアンサンブルとして、単純平均やattention (meta-embedding)を比較。
tokenizerが変わったときの統合の仕方も3種提案 (Table 1)。ただこれはWordPieceでしか使えないことに留意。