Fine-tuning (deep learning) — ファインチューニング
Jump to navigation
Jump to search
ファインチューニング(英語: Fine-tuning)、または微調整(びちょうせい)とは、機械学習における転移学習の一手法であり、事前学習済みモデル(pre-trained model)のパラメータを、新しい特定のタスクを解決するために適応させるものです。モデルをゼロから学習させる(これには膨大なデータと計算リソースが必要となります)代わりに、ファインチューニングでは、モデルの重みにすでに符号化されている知識を利用し、特定のニーズに合わせてそれを「調整」することができます。
このアプローチは、深層学習の分野、特に大規模言語モデル(LLM)やコンピュータビジョンモデルを扱う際に、事実上の標準となっています。
コンセプト
ファインチューニングのプロセスは、主に2つの段階に分けることができます:
- 事前学習(Pre-training): モデル(例:BERTやGPT)は、非常に大規模で一般的なデータセット(例:インターネット全体)を用いて、自己教師ありタスク(例:次の単語の予測)で学習されます。この段階で、モデルは一般的なパターン、構文、意味、そして世界に関する知識を学習します。
- ファインチューニング(Fine-tuning): 事前学習済みモデルをベースとして、その重みを、ターゲットタスクに特化した小規模なラベル付きデータセットで調整します。
重要な考え方は、事前学習段階で得られた知識は汎用的であり、他の多くのより狭いタスクを解決するために成功裏に転移できるということです。
ファインチューニングのプロセス
一般的なファインチューニングのプロセスには、以下のステップが含まれます:
- 事前学習済みモデルの選択: ターゲットタスクに適した基本能力を持つモデルを選択します(例:テキスト理解タスクにはBERT、生成タスクにはGPT)。
- アーキテクチャの適応: 事前学習済みモデルに、ターゲットタスクに特化した新しい「ヘッド」層(head)を追加します。例えば:
- テキスト分類のためには、softmax関数を持つ単純な全結合層が追加されます。
- 固有表現抽出(NER)のためには、各トークンの出力に分類器が追加されます。
- ターゲットデータセットでの学習: モデル全体(またはその一部)が、新しいラベル付きデータセットで学習されます。この段階で、事前学習済み層の重みを含むモデルの重みは、新しいタスクにおける損失関数を最小化するために、勾配降下法を用いて更新されます。
- より低い学習率の使用: ファインチューニングでは通常、事前学習時よりも大幅に低い学習率が使用されます。これは、モデルの重みにすでに符号化されている有用な知識を「破壊」せず、慎重に調整するために必要です。
ファインチューニングの種類
完全なファインチューニング(Full Fine-tuning)
- 原則: 新しい「ヘッド」層とともに、事前学習済みモデルのすべてのパラメータが更新されます。
- 利点: モデル全体が新しいタスクに適応するため、最高のパフォーマンスを発揮する可能性があります。
- 欠点: すべてのパラメータの勾配を保存・更新する必要があるため、相当な計算リソースとメモリを必要とします。モデルが事前学習で得た一般的な知識を「忘れてしまう」破滅的忘却のリスクがあります。
Parameter-Efficient Fine-Tuning (PEFT) - パラメータ効率的ファインチューニング
これは、ファインチューニング時の計算コストを削減することを目的とした一連の手法です。基本的な考え方は、事前学習済みモデルのほとんどのパラメータを凍結し、少数の新しいパラメータまたは選択された既存のパラメータのみを学習させることです。
- PEFT手法の例:
- アダプター(Adapters): Transformerのアーキテクチャに小さな追加のアダプター層を挿入し、それらだけを学習させます。
- LoRA (Low-Rank Adaptation): 完全な重み行列を更新する代わりに、LoRAはその低ランク更新を学習します。これにより、学習対象のパラメータ数を数千倍に削減できます。
- プロンプトチューニング(Prompt Tuning): 入力データに学習可能な「プロンプト」ベクトルを追加し、モデル自体は凍結したまま、タスクを解決するためにこのプロンプトを調整します。
- PEFTの利点:
- 効率性: メモリと計算の要件を大幅に削減します。
- モジュール性: 1つの事前学習済みモデルを多くのタスクに容易に適応させることができ、タスクごとに小さな調整済み重みのセットを保存するだけで済みます。
Instruction Tuning - 命令チューニング
これは、LLMが自然言語の指示に従う能力を向上させることを目的とした、特殊なタイプのファインチューニングです。
- 動作原理: モデルは、「指示 - 望ましい出力」のペアで構成されるデータセットでファインチューニングされます。
- 目的: 指示として記述できる、これまで見たことのない新しいタスクに対するモデルの汎化能力を向上させること。InstructGPTやFLAN-T5のようなモデルは、このアプローチの代表例です。
参考文献
- Howard, J.; Ruder, S. (2018). Universal Language Model Fine-tuning for Text Classification. arXiv:1801.06146.
- Houlsby, N. et al. (2019). Parameter-Efficient Transfer Learning for NLP. arXiv:1902.00751.
- Pfeiffer, J. et al. (2020). AdapterFusion: Non-Destructive Task Composition for Transfer Learning. arXiv:2005.00247.
- Hu, E. J. et al. (2021). LoRA: Low-Rank Adaptation of Large Language Models. arXiv:2106.09685.
- Lester, B.; Al-Rfou, R.; Constant, N. (2021). The Power of Scale for Parameter-Efficient Prompt Tuning. arXiv:2104.08691.
- Ben Zaken, A.; Goldberg, Y.; Ravfogel, S. (2022). BitFit: Simple Parameter-Efficient Fine-Tuning for Transformer-based Masked Language-Models. ACL 2022.
- Ouyang, L. et al. (2022). Training Language Models to Follow Instructions with Human Feedback. arXiv:2203.02155.
- Han, Z. et al. (2024). Parameter-Efficient Fine-Tuning for Large Models: A Comprehensive Survey. arXiv:2403.14608.
- Bian, J. et al. (2025). A Survey on Parameter-Efficient Fine-Tuning for Foundation Models in Federated Learning. arXiv:2504.21099.
- Li, X. et al. (2025). Revisiting Fine-Tuning: A Survey of Parameter-Efficient Techniques and Future Directions. Preprints.org.
関連項目
- Large Language Model
- BERT
- GPT