ジャスミンちゃんがファインチューニングを『完全に上書きすること』と誤解するところから始まる回。実は繊細な微調整の技なんです。LLM時代にさらに注目されているテーマです。
ファインチューニングってあれでしょ? 事前学習モデルを新しいデータで全部学び直すことじゃん!
ふふっ、その理解だとちょっと残念なことになっちゃうわよ。
それだと事前学習で得た知識が全部消えちゃうの。
えっ、そうなの? 新しいデータで学び直すんだから、前のは残ってたら邪魔じゃない?
つまりジャスミンちゃん、それって 壊滅的忘却 と呼ばれる深刻な問題を招くのよ。
『壊滅的忘却』……なんだか名前が怖いですぅ……。
ファインチューニングの本質は、事前学習モデルの知識をなるべく壊さないまま、新しいタスクに適応させることなの。
そのために、いくつか工夫があるのよ。
1つ目は学習率を小さくすること。
事前学習時の1/10〜1/100程度に設定します。
2つ目は、全層ではなく最終層付近だけを微調整すること。
さらに、浅い層は凍結して最終層だけを更新する方法や、層ごとに異なる学習率を設定する差別化学習率という方法もあるわね。
なるほどね! 全部ガラガラポンじゃなくて、大事な知識は触らずに必要なところだけ上書きするってこと?
そのとおり。
プロの技をベースにして自分流にアレンジするようなイメージね。
だから『ファイン』ってつくんですねぇ! 大雑把じゃなくて、繊細に微調整するってことなんですぅ!
ましろさん、いい気づきね。
LLMの世界では、LoRA (Low-Rank Adaptation) という、さらに効率的なファインチューニング手法も広く使われているのよ。
LoRAは元の重みは凍結して、低ランクの小さな追加パラメータだけを学習するので、GPUメモリが少なくても大規模モデルを微調整できるんですよね。
試験では『低ランク行列で軽量化』というポイントを覚えておくと安心です。
うわぁ……すご〜い、AIの世界って奥が深すぎでしょ! 学習率の設定1つで結果が天国と地獄じゃん。
何度も試しながら覚えてくしかないね!
そうね。
用途に応じて全層ファインチューニング/部分ファインチューニング/LoRA/Adapterなどを使い分けるのが現代の実務よ。
ハイパーパラメータ (学習率、エポック数、層の凍結範囲) の設定は経験と実験の両輪で決めるのが腕の見せ所ね。
深層学習って、使いこなすための工夫がたくさんありますねぇ……。
確認クイズ
ファインチューニング時に壊滅的忘却を防ぐための方法として適切なものはどれか?
- 学習率を大きくする
- 学習率を小さくする
- データ量を減らす
- 層の数を増やす
こたえを見る
正解: 2. 学習率を小さくする
ファインチューニングでは学習率を小さくすることで、事前学習で得た知識を大きく壊さず新しいタスクに適応させます。加えて浅い層の凍結やLoRAなども壊滅的忘却の対策として有効です。