モデルのしくみ 上級

破滅的忘却

Catastrophic Forgetting

新しい内容を追加で学習させると、以前に身につけていた能力や知識が大きく失われてしまう現象です。ファインチューニングのときに特に注意が必要です。LoRA や元データの混合で軽減できます。

別の呼び方壊滅的忘却、破滅的干渉、継続学習での忘却

例特定業務向けに追加学習したところ、一般的な質問への回答力が落ちたため、LoRA での調整に切り替えた。

詳しく

破滅的忘却とは、ニューラルネットワークに新しいことを追加で学習させたとき、以前に学んだ内容を急激に、大きく失ってしまう現象です。人間なら、新しい言語を学んでも母語は忘れませんが、ニューラルネットワークでは、条件次第でそれに近いことが起こります。

なぜ起きるのか

ニューラルネットワークの知識は、パラメータ(重み)全体に分散して保存されています。特定の記憶が決まった場所にあるわけではありません。新しい課題に合わせて重みを更新すると、その更新が、以前の課題に必要だった重みの配置も一緒に書き換えてしまいます。

古いデータに触れないまま、新しいデータだけで学習を進めると、モデルは新しいデータに都合のよい状態へ偏っていきます。結果として、元の能力が薄れます。

具体例

  • 大規模言語モデルを、社内の専門文書だけでファインチューニングしたら、その分野には強くなったが、一般的な常識的質問や他の言語の対応力、指示に従う力が落ちた
  • 安全性のための調整をして、あとから別の目的で追加学習したところ、安全に関する振る舞いが弱まった
  • 日本語データを追加したら、英語の性能が下がった

対策

  • 元のデータを混ぜる:新しいデータだけでなく、元の性質を保つデータも一緒に学習する(リハーサル)
  • 学習率を小さく、学習量を控えめにする:重みの変化を小さく抑える
  • 一部だけ更新する:LoRA のように、元の重みを固定して、少数の追加パラメータだけを学習する方法は、元の能力が保たれやすい
  • 重要な重みを守る:以前の課題に重要なパラメータの変化にペナルティを加える手法も研究されている
  • 評価で見張る:追加学習の前後で、元の能力を測る評価(eval)を比べる

使うときの注意・よくある誤解

LoRA などを使えば完全に防げるわけではなく、程度が軽くなる傾向があるという理解が適切です。また、モデルに知識を足したいだけなら、重みを書き換えず RAG で資料を渡す方法のほうが、忘却の心配がなく、更新も簡単です。

「ChatGPT のようなサービスが会話中に忘れる」のは、別の話です。それは文脈長の制限による現象で、重みが書き換わっているわけではありません。

関連する考え方

人間のように学び続けるAIを目指す「継続学習」の研究では、この忘却をどう防ぐかが中心課題の1つです。

あわせて知りたい言葉

「モデルのしくみ」の言葉をすべて見る