1 定義と基本概念

微調整(Fine-tuning)とは、機械学習、特に深層学習において、大規模なデータセットで事前に学習されたモデル(事前学習モデル)を、特定のタスクやドメイン適応させるために、そのモデルのパラメータを追加学習する手法である。基礎となるモデルの知識を活用することで、ゼロから学習する場合に比べ、必要なデータ量や計算リソースを大幅に削減しつつ、高い性能を達成できる。自然言語処理画像認識、音声処理など多岐にわたる分野で応用されており、転移学習の一種として位置づけられる。

1.1 事前学習と微調整の関係

事前学習は、大規模で汎用的なデータセット(例:Wikipedia全体、ImageNet)を用いてモデルを訓練し、一般的な特徴表現や知識を獲得する段階である。微調整は、その事前学習済みモデルを出発点とし、特定のタスク(例:医療文書分類、犬種識別)のデータでさらに訓練を行う。事前学習がモデルに広範な知識を与え、微調整がその知識を目的に特化させるという階層的な関係にある。

1.2 転移学習との違い

転移学習は、あるタスクで学習した知識を別のタスクに活用する広範な概念である。微調整はその具体的な実装手法の一つであり、モデル全体または一部のパラメータを対象タスクのデータで更新する。転移学習には、特徴抽出器として固定した事前学習モデルの出力のみを用いる方法や、ドメイン適応なども含まれるが、微調整は特にモデルの内部表現を変化させる点で特徴的である。

2 微調整の手法

微調整には、更新するパラメータの範囲や方法によっていくつかの手法が存在する。計算コストやデータ量、タスクの性質に応じて選択される。

2.1 全パラメータ微調整

事前学習モデルのすべてのパラメータを対象タスクのデータで更新する最も基本的な手法。高い適応能力を持つ一方で、大量のメモリと計算時間を要し、過学習リスクも高い。大規模モデルではGPUメモリ制約から実施が困難な場合がある。

2.2 パラメータ効率的微調整

大規模モデルにおいて、モデルの大部分を凍結し、ごく一部のパラメータのみを学習することで、計算資源とメモリ消費を抑えつつ高い性能を維持する手法群である。

2.2.1 LoRA(Low-Rank Adaptation

学習対象の重み行列に低ランクの分解行列を導入し、その分解行列のみを更新する手法。元の重みは凍結されたまま、低ランク行列の積で表現される微小な変更が加えられる。これにより、学習可能パラメータの数が劇的に減少し、複数のタスクへの切り替えも容易になる。

2.2.2 Adapter

トランスフォーマーモデルの各層に小さな全結合層(Adapter)を挿入し、その層のみを学習する手法。元のモデルパラメータは固定されるため、タスクごとにAdapterを追加・交換できる。オーバーヘッドは小さいが、挿入位置やサイズの設計が性能に影響を与える。

2.2.3 プロンプトチューニング

入力テキストの前に挿入するソフトプロンプト(学習可能なベクトル)のみを更新する手法。モデル本体のパラメータは一切変更しない。特に大規模言語モデルにおいて、少数のプロンプトトークンでタスク適応を実現する。ただし、プロンプトの長さや初期化方法に敏感である。

3 応用領域

微調整は多様な機械学習タスクで広く利用されている。以下に代表的な分野とタスクを挙げる。

3.1 自然言語処理(NLP)

事前学習モデル(BERTGPTT5など)を各下流タスクに微調整することで、高い精度を達成している。

3.1.1 テキスト分類と感情分析

ニュース記事のカテゴリ分類や、レビューのポジティブ/ネガティブ判定など、文書全体のラベルを予測するタスク。事前学習モデルの出力層に分類ヘッドを追加し、ラベル付きデータで微調整する。

3.1.2 質問応答システム

与えられた文脈(パッセージ)と質問に対して、回答を抽出または生成するタスク。SQuADなどのベンチマークで、微調整済みモデルが人間に迫る性能を示している。

3.2 コンピュータビジョン(CV)

画像認識分野では、ImageNetなどで事前学習されたCNN(ResNet、ViTなど)を微調整する手法が標準的である。

3.2.1 物体検出

画像内の物体の位置と種類を特定するタスク。Faster R-CNNやYOLOなどのアーキテクチャで、事前学習モデルをバックボーンとして微調整する。

3.2.2 画像セグメンテーション

画像の各ピクセルにクラスラベルを割り当てるタスク(セマンティックセグメンテーション)や、個々の物体インスタンスを識別するインスタンスセグメンテーション。U-NetやMask R-CNNのエンコーダ部に事前学習モデルを使用する。

3.3 音声認識と生成

音声領域でも、大規模音声データで事前学習されたモデル(wav2vec 2.0、HuBERT、Whisperなど)を、特定の言語や音響環境に微調整することで認識精度を向上させる。また、音声合成モデル(Tacotron、FastSpeechなど)を特定の話者やスタイルに微調整する応用もある。

4 課題と限界

微調整は強力な手法であるが、いくつかの課題が存在する。

4.1 過学習への対策

特にタスクデータが少ない場合、モデルが訓練データに過剰に適合し、未知データへの汎化性能が低下する。正則化(ドロップアウト、重み減衰)、早期打ち切り、データ拡張などの手法が有効である。また、パラメータ効率的微調整は過学習を抑制しやすい傾向にある。

4.2 破壊的忘却(Catastrophic Forgetting)

微調整によって、事前学習で獲得した広範な知識が失われる現象。特に全パラメータ微調整で顕著であり、タスク特化の学習が元の汎用表現を上書きしてしまう。学習率を低く設定する、凍結層を設ける、リプレイデータを用いるなどの対処法がある。

4.3 計算リソースとデータ量のバランス

全パラメータ微調整は大量のGPUメモリと時間を要し、大規模モデル(100億パラメータ以上)では現実的でない場合がある。一方、パラメータ効率的な手法はリソースを節約できるが、タスクの複雑さによっては性能が頭打ちになる。目的に応じて適切な手法を選択する必要がある。

5 実践的なワークフロー

微調整を実施する際の典型的な手順を以下に示す。

5.1 データセットの準備

対象タスクに適したラベル付きデータを収集・整形する。データ量が少ない場合は、データ拡張や疑似ラベル生成も検討する。事前学習モデルと同じ前処理(トークナイゼーション、リサイズなど)を適用する。

5.2 学習率と最適化手法の選定

微調整では通常、事前学習時よりも低い学習率(例:1e-5〜5e-5)を使用する。最適化手法はAdamWやSGDに重み減衰を加えたものが一般的。バッチサイズはGPUメモリの許す範囲で設定する。ウォームアップスケジュールを導入すると安定しやすい。

5.3 評価と反復

検証セットを用いて性能を定期的に評価し、過学習の兆候がないか監視する。損失や精度の推移に応じて、学習率の調整、層の凍結解除・追加、データ拡張の変更などを試行する。複数の試行で最適なハイパーパラメータを探索し、最終的にテストセットで性能を確定する。