ファインチューニングとは?
ファインチューニングとは、事前学習済みモデルをより小さく的を絞ったデータセットで追加学習させ、その振る舞い、スタイル、またはドメイン知識を特化させる手法です。事前学習よりもはるかに低コストであり、プロンプティングや検索(これらはモデルを変更しません)とは異なり、モデルの重みを変更します。一貫したフォーマット、トーン、またはスキルを固定したい場合に適しています。最新の事実やプライベートな事実が必要な場合は、代わりに検索を使用してください。
定義
ファインチューニングとは、事前学習済みモデルを特定のデータセットで追加学習させ、特定の振る舞い、スタイル、フォーマット、またはドメインに向けて重みを適応させるプロセスです。
主な要点
- ファインチューニングはモデルの重みを更新しますが、プロンプティングやRAGは更新しません。
- 一貫した振る舞い、スタイル、またはフォーマットに最適であり、最新の事実の追加には適していません。
- パラメータ効率の良い手法(LoRAなど)により、低コストかつ実用的に実行できます。
- RLHFは、人間の好みに基づくファインチューニングの一種です。
- まずはプロンプティングと検索を優先し、それらが限界に達したときにファインチューニングを行います。
コンテキスト
事前学習済みの基盤モデルはジェネラリストです。ファインチューニングはそれを絞り込みます。ターゲットとなる振る舞いの例を十分に提示することで、モデルがそれを内面化するため、すべてのプロンプトでそれを指定する必要がなくなります。
これは、プロンプティングや検索と並ぶ、3つの適応手段の1つです。重要なのは適切な手段を選択することです。モデルがどのように振る舞うべきかにはファインチューニングを、モデルが何を知るべきかには検索を使用します。
アーキテクチャ
フルファインチューニングはすべての重みを更新するため、強力ですが高コストです。パラメータ効率の良いファインチューニング(PEFT)、特にLoRAは、ベースモデルを凍結したまま小さなアダプターの重みを学習させることで、わずかなコストで大部分のメリットを享受できます。
指示チューニング(Instruction tuning)やRLHFは、生のベースモデルを役立つ、アライメントされたアシスタントへと変換する、特化したファインチューニングの段階です。データセットの規模よりも、その品質がはるかに重要です。
コンポーネント
メリット
- 一貫した振る舞い、スタイル、またはフォーマットを組み込めます。
- プロンプトの長さを短縮し、呼び出しあたりのコストを削減します。
- ベースモデルに欠けている特定のスキルを学習させることができます。
- PEFTにより、低コストかつ迅速に実行可能です。
リスク
- 最新の事実やプライベートな事実は追加されません。そのためには検索を使用してください。
- 破滅的忘却や過学習のリスクがあります。
- 高品質で適切にラベル付けされたデータセットと評価セットが必要です。
- 特定のモデルバージョンに依存するため、アップグレード時における移行コストが発生します。
ツールとテクノロジー
例
- 厳格な社内JSONフォーマットを常に出力するようにモデルをファインチューニングする。
- 生成されるコピーに対して一貫したブランドボイスを学習させる。
- 専門分野の用語にモデルを適応させる。
FAQ
- ファインチューニングとRAGのどちらを選ぶべきですか?
- モデルの振る舞い(スタイル、フォーマット、スキル)を変更するにはファインチューニングを、最新またはプライベートな知識を与えるには検索(RAG)を使用します。これらは競合するものではなく、相互に補完し合うものです。
- ファインチューニングは高コストですか?
- フルファインチューニングは高コストになる可能性がありますが、LoRAのようなパラメータ効率の良い手法は極小のアダプターを学習させるため、ほとんどのユースケースにおいて低コストかつ迅速に実行できます。
- What is RLHF?
- 人間のフィードバックからの強化学習(RLHF)とは、人間の好みの判断を利用して、モデルをより有用で、無害で、誠実なものにするためのファインチューニングの段階です。
- どのような場合にファインチューニングを行うべきですか?
- プロンプティングと検索が限界に達した後です。より優れたプロンプトや関連するコンテキストで解決できる場合は、まずそれを実行してください。その方が低コストで柔軟性があります。