Open4

LLMのFine-tuning周りの論文メモ

atfujitaatfujita

Finetuned Language Models Are Zero-Shot Learners

https://arxiv.org/abs/2109.01652

問題意識

  • LMタスクに似たデータセットではFine-tuningの性能が改善しない。
    • 冗長だから?

本論文のアプローチ

  • Zero-shot改善のためのInstruction-tuningを提案。

評価とAblation Study

  • 基本的にFine-tuningでのタスクを増やすほど性能は改善。
  • Instruction-tuningは8Bくらいまでの小さなモデルだとZero-shotの性能改善はあまり期待できない。
    • モデルのキャパシティを使い切っていて新しいタスクでの性能が低くなる?
  • 学習、検証時に生テキストそのままではなく、プロンプトテンプレート(Instruction)を使った方が性能が良くなる。
  • Few-shotで推論すると性能はさらに改善。またInstruction-tuningあり・なしで比較すると、ありの方がFew-shot性能の標準偏差が小さくなってsensitivityを減少させている。
  • Instruction-tuningありの方がprompt tuningの性能も良い。
  • 論文のAppendixにあるデータセットごとのContamination具合の図が良い(ベンチマーク評価は鵜呑みにできない)。
atfujitaatfujita

P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks

https://arxiv.org/abs/2110.07602

問題意識

  • prompt tuningはサイズが10B以下の小さなモデルだと性能改善があまり期待できない。
  • 埋め込み(prompt tuning) vs MLP reparameterization (prefix-tuning, P-tuning)
    • MLP reparameterizationの方がいいと言われているが、RTEとCoNLL04ではMLPが良く、BoolQとCoNLL12では埋め込みの方が良く一貫性はなかった。
    • 一方で、MLPの方が短い仮想トークン数で最適な結果が得やすいというfinding。

本論文のアプローチ

  • P-Tuning v2(Deep prompt)はP-tuningのように仮想トークンをNNで学習して埋め込むが入力プロンプトにだけでなく、Transformerレイヤにも埋め込む。
  • 追加するパラメータはモデルサイズの0.1-3.0%と他のPEFTに比べて大きめになる。

評価とAblation Study

  • 小さなモデルでもある程度機能する。
  • マルチタスク学習でも性能は良い。
  • 仮想トークンの長さは、分類など簡単なタスクでは小さく(20以下)、sequence taggingなど難しいタスクでは大きく(100前後)設定するのが良い。
  • トークン埋め込みを反映させるレイヤの深さは長い方がいいが、短くする場合は出力に近い方に適用する方がいい。
atfujitaatfujita

SteerLM: Attribute Conditioned SFT as an (User-Steerable) Alternative to RLHF

https://arxiv.org/abs/2310.05344

問題意識

  • SFTだけではRLHFほど人間の嗜好にあった応答ができない。学習時に応答の品質が高いか低いかを区別できない。
  • RLHFは一般的に単一の人間の嗜好しか学習できない上に学習手順が複雑。

本論文のアプローチ

  • 複数の属性スコア(人の嗜好を反映、品質を始めとして、有用性、創造性、ユーモア、毒性などをスコア化)がアノテーションされたデータセットで、RLHFのReward modelのような属性スコア予測モデル(APM, Attribute Prediction Model)を作成。論文ではOASSTデータセット(13の属性スコアのうち、7つを使用)を使用。入力文と応答文を入力にして、属性スコアを予測する。
  • APMを使用して、他のデータセットの属性を予測する(論文ではOASSTに加え、HH-RLHF, M-SID)。クラウドソーシングを使った人間のアノテーションよりもノイズが抑えられ、評価する人が異なることによる属性スコアのバイアスも小さくなる。
  • 入力文とAPMでアノテーションされた属性スコアをプロンプトへの入力にして、LLM(論文では独自に学習した43BとLlama2 13Bを使用)をSFT(Attribute Conditioned SFT)する。RLHFと異なり、オフラインで嗜好を学習できるので、学習手順が簡素化され、計算効率も良い。
  • LLMで応答を生成したら、APMで属性スコアの中の品質スコアを予測する。品質スコアが高いサンプルを使って、再度SFTする。
  • 実験は16 nodeのDGX A100(80GB)を使用して、BS=128, 5 epochs, 最大シーケンス長は4096。APMは検証データセットで損失最小化された重みを選択。 Attribute Conditioned SFT Modelは検証データセットで最も高い品質を得られた重みを選択。
  • 推論時は入力文と属性スコアをプロンプトに入れる。オンラインでLLMに嗜好を反映させられる。

評価とAblation Study

  • Vicuna Benchmarkで(GPT-4による)評価。SteerLMは品質と有用性の属性スコアを最大値の9、他は0で応答生成。スコアをChat-GPT 3.5に比べてどれくらい良いか評価すると、SteerLM 13Bと43B共にChat-GPT 3.5, Guanaco 65B, Vicuna 13B, Llama 30B (with RLHF, SFT)に比べ良かった。
  • 同じ応答を人間(4つのグループ)で評価したが、SteerLM 43BはChat-GPT 3.5, Guanaco 65Bを上回った。
  • SteerLMの応答文は他のモデルに比べ、より長文で語彙が豊富であった(これはGPT-4が好む傾向にあるスタイル)。
  • Guanaco 65B(OASSTの高品質サンプルでFine-tuningされている)よりも少ないパラメータで良い評価結果を得られた。
  • Ablation Studyとして、各フェーズで比較。人間がアノテーションしたOASSTの全サンプルを使った場合や高品質スコアのサンプルを抽出したOASSTデータセットでは、Chat-GPT 3.5に及ばないが、APMでのアノテーションデータを使用するとChat-GPT 3.5を上回り、HH-RLHF, M-SIDをデータセットに追加するとさらに改善し、高品質データでの再学習を加えるとさらに改善した。
  • Anthropic Red Team Datasetで毒性について検証。SteerLM 43Bの毒性スコアを0で応答生成するとChat-GPTよりも毒性を抑えられた。
atfujitaatfujita

Direct Preference Optimization: Your Language Model is Secretly a Reward Model

https://arxiv.org/abs/2305.18290

問題意識

  • RLHF/RLAIFは、プロセスが複雑で時に学習が不安定になるので、明示的な報酬モデルが不要な簡潔な手法を提案。

本論文のアプローチ

  • RLHFでは、SFT、報酬モデルの構築、RLのステップで最適化を行うが、DPOでは、報酬関数上の損失関数をポリシー上の損失関数に変換することで、明示的な報酬モデルのフィッティングを回避して、Bradley-Terryモデルのような既存の人間の嗜好モデルの下で最適化する。
  1. すべてのプロンプトXに対して、Y_{1}Y_{2}の応答を生成して、人間の嗜好でラベル付けし、データセットを構築。
  2. 人間にとって好ましい応答の尤度が高く、そうではない応答の尤度が低くなるようにBCEを使って学習(通常の教師ありのように学習できる)。

評価とAblation Study

  • IMDb datasetを使って評価。KL最小化と報酬最大化について、RLHF(PPO)と比較するとDPOは低いKLを達成しながら高い報酬を達成できた。GTの報酬を使ったPPOよりも優れていた。
  • Reddit TL;DR summarization datasetを使って評価。参照モデルに対する要約評価の勝率を各手法で比較。temperatureを変えながら評価したが、DPOはそんなにハイパーパラメータを調整してないが概ね勝率が高かった。 Anthropic HH datasetを使ってシングルターン対話での評価でも他の手法に勝る結果。
  • PPOとDPOについて、Reddit TL;DR summarization datasetでアライメントしたモデルでCNN/DailyMail datasetを要約することで分布シフト下を再現して比較。GPT4に対する勝率はPPOよりもDPOの方が高かった。
  • GPT4を使った評価の妥当性を確認するため、GPT4と人間の評価との関連性を確認。概ね一致することを確認した。