- 「ファインチューニング」と読む。
学習関係の用語の一つ。文脈によって意味が変わる用語。
広義には、モデルを学習して微調整する意味を持つ。 - 当wikiでは主に、ベースモデルを直接学習することを指す。
もっとも広義のfine tuning
- 「ファインチューニング」と読む。「微調整」の意味。
- 一般的なアプリでは、「より細かなチューニング」「詳細設定」を示していることもある。
広義のfine tuning
- 「学習全般」を指す。
- 広義のfine tuningは、LoRAやTextual Inversion、Hypernetworksなどを含み、モデルを学習することすべてを含みます。*1。
- 事前学習モデルに、各学習毎のパラメータとして「ウェイト」を加算し、このウェイトを調整する行為を指します*2。
わかりやすく言うと、事前学習モデルがある分、大規模な「調整」はしなくてよくて、ウェイト計算だけの「微調整」で済むというイメージ。
狭義のfine tuning、手法を表すものとして
- 具体的な手段として、fine tuning「手法」を表す意味です。
- Stable Diffusionの場合、モデルを画像とキャプションで学習することです。
- sd-scriptsでLoRAの学習をする際、LoRAのfine tuning方式と呼ぶことがありますが、モデルを学習対象に含めないという点で上記の例とは少し異なる概念です。しかし、fine tuning=微調整という点で、sd-scriptsではこの表現を使っているそうです。
参考→LoRA/学習方法
さらに狭義の、ツールの一つとして
概要
- fine tuningはベースモデルのおそらくすべてのウェイトを学習できます。
- 公式解説:https://github.com/kohya-ss/sd-scripts/blob/main/docs/fine_tune_README_ja.md
- sd-scriptsにおける「fine_tune.py」スクリプト等で学習できます。
SD1 ・・・fine_tune.py SDXL ・・・sdxl_train.py SD3 ・・・sd3_train.py(暫定)
- 設定方法などは、LoRAとほぼ同じ。違う部分はそのスクリプトやdocを参照のこと。
- LoRA専用設定(network_moduleなど)は不要
- learning rateの指定方法がユニーク。※公式ドキュメント内に解説がない
公式解説:https://github.com/kohya-ss/sd-scripts/releases/tag/v0.7.1--learning_rate 2.1e-6 --learning_rate_te1 2.4e-6 --learning_rate_te2 2.4e-6 --train_text_encoder 0にした部分は学習対象から外れる。