ファインチューニング

Fine-tuning

ファインチューニングとは

ファインチューニング(Fine-tuning)は、事前学習済みのモデルを特定のタスクやドメインに適応させるために、追加のデータで再学習を行うプロセスです。事前学習で獲得した汎用的な知識を保持しながら、ターゲットタスクに特化した能力を身につけることで、少量のデータでも高い性能を達成できます。

ファインチューニングの手法

全パラメータをファインチューニングするフルファインチューニングの他に、効率的な手法が多数提案されています。LoRA(Low-Rank Adaptation)は低ランク行列で重みの変化を近似し、パラメータ効率を大幅に向上させます。Prefix TuningやPrompt Tuningは入力に学習可能なトークンを追加する手法です。アダプター(Adapter)はモデルの各層に小さなモジュールを挿入する方式です。

ファインチューニングのベストプラクティス

効果的なファインチューニングには、学習率の適切な設定が重要です。一般的に事前学習時よりも小さい学習率を使用し、下層は凍結して上層のみを更新する段階的な解凍(Gradual Unfreezing)が有効な場合があります。過学習を防ぐために、Early StoppingやWeight Decayなどの正則化手法も重要です。

大規模言語モデルのファインチューニング

大規模言語モデル(LLM)のファインチューニングでは、指示チューニング(Instruction Tuning)やRLHF(人間のフィードバックによる強化学習)が注目されています。ChatGPTに代表されるチャットモデルは、事前学習後にこれらの手法でファインチューニングされることで、ユーザーの指示に従った自然な応答を生成する能力を獲得しています。