【LLM論文を読む】知識直接選好最適化(KDPO)によるLLMの知識編集

  •  「直接選好最適化(DPO)」はいわゆるアラインメントの目的で使われているLLMの学習手法です。
    •  同一の指示に対する有益な回答例と有害な回答例の両方を提示することで、モデルが開発者にとって好ましい挙動をとるよう効率的に調整します。
    • 他のアラインメント手法よりも手軽に行えるので、ローカルLLMコミュニティでも追加学習の最終工程として積極的に採用されているようです。
  • 以前「このDPOってLLMに対する知識の追加目的でも使えるのでは?」と思ったことがあり、実際に試したのですが、素人仕事では効果が得られずそれっきりになっていました。
  • ただ、久しぶりに知識編集関連の情報を調べていたところ、DPOを応用した知識編集に関するarXiv論文が出ていたので、簡単に目を通してみた次第です。

arxiv.org

  • タイトルは『Knowledge Editing in Language Models via Adapted Direct Preference Optimization(適応直接選好最適化による言語モデルの知識編集)』、2024年6月にイスラエルのテルアビブ大学などの研究者によって投稿されています。

要旨

大規模言語モデル(LLM)の持つ知識は、時間の経過とともに古くなっていくことから、事実認識の誤りやギャップにつながる可能性がある。知識編集(Knowledge Editing: KE)は、高コストな再トレーニングを必要としない重み更新を用いて、この課題を克服することを目的としている。我々は知識編集をLLMアライメント問題として扱うことを提案する。この目標に向けて、知識の修正により効果的な直接選好最適化(DPO)のバリエーションである「知識直接選好最適化(KDPO)」を導入する。我々の手法は、モデルに格納された知識を継続的に更新するオンラインアプローチに基づいている。DPOと呼ばれるプロセスにおいて、現在の知識をネガティブサンプルとして、導入したい新しい知識をポジティブサンプルとして使用する。また、ネガティブサンプルの生成には教師強制を用い、ポジティブサンプルを用いて最適化を行うことで、局所的な変化を維持することができる。我々は様々なデータセットとモデルで我々の知識編集法をテストし、100回と500回の逐次編集を行い、いくつかの最先端手法と比較した。さらに、我々の方法を標準的なDPOアプローチと比較するアブレーション研究も行った。我々の実験結果は、我々の修正DPO法がより洗練された知識編集を可能にし、従来の方法と比較して同等以上の性能を達成することを示している。

メモ

  • ここでは「好ましい回答(Chosen)」=「新しい知識」、「好ましくない回答(Rejected)」=「古い知識」として、DPO手法を知識編集に応用しています。
  • そのうえで、KDPO手法では学習知識をトークン単位で細かくターゲッティングすることにより学習の質の改善を図っているようです。
  • 以下の図はKDPO「メッシはアルゼンチンのロサリオ市で生まれた」という知識を「メッシはイタリアのミラン市で生まれた」に改変する場合の例です。
    • 通常のDPOのように「イタリアのミラン市 vs. アルゼンチンのロサリオ市」で学習させるのではなく「イタリア」を固定しておき「(イタリアの)ミラン vs. (イタリアの)ロサリオ」に絞って損失を学習させる。
    • 通常のDPOだと、LLMの知識の中で「メッシ」と「アルゼンチン」の関係を遠ざけるだけでなく「ロサリオ市」と「アルゼンチン」の関係性をも遠ざけてしまい、別の知識を歪める弊害がある。

  • この論文で示されているKDPO手法のパフォーマンスを概観します。
  • 以下の表は、MMLUなどの代表的なLLMベンチマークを利用したもので、左側は「100回の連続知識編集の結果」、右が「500回の連続知識編集の結果」を示しています。対象モデルはLlama-2-7Bです。

  • OursとなっているのがKDPO手法、FT-Mは一般的なファインチューニングの派生手法、ROMEとMEMITは非ファインチューニングの代表的な知識編集手法です。
  • まず、ほかの手法よりKDPO/DPOのほうが全般的に成功率が高いことが示されてます。
    • ただ、知識編集の研究では論文によって各手法の評価に大きなバラつきがあるので注意したいです。
  • また、通常の知識編集ではKDPOよりも単純なDPO手法のほうが成功率が高く、500回程度まで編集回数を増やすとKDPOのメリットが出てくる、ということのようです。
  • 以下は、別の方法による知識編集精度の評価です。

  • この部分は、DPOとKDPO(Ours)の比較のみです。結果にムラがあり、やはり編集の反復回数を増やさないとKDPOの優位性は出にくいようです。
  • なおデータセットはいずれも知識編集の評価用のもので、MetricのEdit Succ.は編集成功率、Portabilityは編集知識を応用できるかの評価、Localityは編集が他の周辺知識に悪影響を及ぼしていないかの評価、Fluencyは編集後のモデルが反復的な出力に陥らないかの評価、のようです。
  • 最後に、DPO・KDPO(Ours)と、ファインチューンの派生手法(AdaLoRA, FT-L, FT-M)の比較表です。Qwen1.5-0.5Bという小規模な言語モデルを対象にしています。

  • どうやら、超小型の言語モデルだとSDPOの優位性が出やすいということみたいです。

雑感

  • この論文によれば、そもそもDPO自体が知識編集にかなり効果があると主張されています。ここで使われた具体的なDPOハイパーパラメータがよく分からなかったのですが、またDPOによる知識編集を試してみたくなりました。
  • 「KDPO」については、たぶん期待したほどの結果は出なかったのかな、という雰囲気を感じます。
  • 知識編集については、ファインチューンの派生手法もそれ以外の系統も、断続的に新手法が出続けているのですが、あまりローカルLLMコミュニティの関心が高くなく網羅的・実用的な評価がよく分からない難点があります...