「プロンプトチューニング」と「ファインチューニング」は何が違うのか
はじめに:同じ言葉が、二つの別物を指していた
生成AIの世界に足を踏み入れて最初にぶつかったのが、この素朴な疑問でした。
「プロンプトチューニング」と「ファインチューニング」って、結局なにが違うんだ?
調べるほど混乱しました。理由はあとで腑に落ちたのですが、そもそも 「プロンプトチューニング」という言葉自体が、場面によって正反対のものを指していた のです。求人票に並ぶ「プロンプトチューニング」と、論文に出てくる “Prompt Tuning” は、モデルの重みを学習するかどうか という肝心な一点が逆。これに気づかないまま情報を集めると、頭の中でいつまでも線がつながりません。
この記事では、バラバラに見える用語を 「モデルの重みに触るか、触らないか」 という一本の軸の上に並べ直します。結論から言うと、覚えるべきはこの軸だけです。新しいバズワードが流れてきても、置き場所に迷わなくなります。
先に結論:違いの軸は「重みに触るか/触らないか」
LLM の正体は、何十億個もの数値(重み)の集まりです。この数値の値こそが、モデルの「賢さ・クセ・知識」の本体。だから手法の違いは、煎じ詰めると その数値をいじるか・いじらないか に集約されます。
| 重みに触る? | 含まれるもの | |
|---|---|---|
| 外から助ける | ✕ 触らない | プロンプトエンジニアリング(口語の「プロンプトチューニング」)/ RAG |
| 中身を作り変える | ⭕ 触る | ファインチューニング(フル/LoRA・QLoRA・ソフトプロンプト) |
これだけです。あとは枝葉。一枚の図にすると、こうなります。
LLM = 何十億個の「重み」(数値)
賢さ・知識の実体はこの数値にある
│
┌────────────────┴────────────────┐
▼ ▼
重みに触らない 重みに触る = ファインチューニング
(外から助ける) (中身を作り変える)
│ │
┌─────┴─────┐ ┌───────────┴───────────┐
▼ ▼ ▼ ▼
プロンプト RAG フルファイン PEFT(一部だけ学習)
エンジニアリング チューニング LoRA / QLoRA / ソフトプロンプト
たとえ話:優秀な新人をどう活かすか
抽象的なので、優秀な新人社員にたとえます。
- 指示の出し方を工夫する → プロンプトエンジニアリング
- 資料を渡してから答えさせる → RAG
- 研修に送って、本人を成長させる → ファインチューニング
ポイントは、新人の頭の中(=重み)を作り変えるのはファインチューニングだけ だということ。プロンプトもRAGも、本人はそのままに、外から手を貸しているにすぎません。どちらが偉いという話ではなく、目的が違うのです。
用語の地雷:「プロンプトチューニング」の二つの意味
混乱の震源地なので、ここだけは表で固定しておきます。
| 言い方 | やること | 重みに触る? | 正体 |
|---|---|---|---|
| プロンプトチューニング(口語) | 指示文・例示・出力の作り込みと改善 | ✕ | プロンプトエンジニアリングと同じ |
| Prompt Tuning(学術) | 入力の先頭に付ける「学習可能なベクトル列」だけを訓練 | ⭕(軽量な学習) | ファインチューニングの一族(PEFT) |
同じ「プロンプトチューニング」でも、現場の口語では“指示文の工夫”、論文では“重みを学習する手法”。会話が噛み合わないと感じたとき、原因の多くはこのズレです。気づけば、もう振り回されません。
それぞれの中身(要点だけ)
① プロンプトエンジニアリング(重みは不変)
指示文・Few-shot(例示)を作り込み、出力を検証して直す——その繰り返し。速くて、安くて、捨てやすいのが最大の武器です。反面、毎回プロンプトで説明し続ける必要があり、「いつも同じ振る舞い」を安定して出すのは苦手です。
② RAG(重みは不変)
質問のたびに、外部の文書を検索して文脈として手渡すやり方。強みは知識の鮮度で、最新情報や手元の資料を、学習し直さずに反映できます。ただしモデル自体が賢くなるわけではなく、「何をどう拾うか」という検索の作り込みが品質を決めます。
③ ファインチューニング(重みを学習する)
「入力 → こうあってほしい出力」の例を大量に見せ、重みを少しずつ更新して、振る舞いそのものをモデルに焼き付けます。具体的には「予測(forward)→ どれだけ外したか(損失/loss)→ どの重みをどう動かすか(勾配/backprop)→ 少し更新(update)」をひたすら繰り返す——下の図のループです。
┌──────────────────────┐ ┌──────────────────┐
│ ①予測(forward) │ 予測 ───► │ ②損失(loss) │
│ 今の重みで答えを出す │ │ どれだけ外れたか │
└──────────────────────┘ └──────────────────┘
▲ │
│ 更新(update) │ 勾配(gradient)
│ ▼
┌──────────────────┐ ┌──────────────────────────┐
│ ④更新(update) │ ◄─ 重みを微調整 │ ③誤差逆伝播(backprop) │
│ 重みを少し動かす │ │ 各重みの動かし方(勾配) │
└──────────────────┘ └──────────────────────────┘
データ全体で繰り返す → 損失が下がる → 振る舞いが学習される
- フルファインチューニング:全部の重みを更新する。表現力は高いが、とても重く、大きなGPUが要ります。
- PEFT(軽量派):本体は凍結し、小さな追加部分だけを学習する。費用対効果が高く、いま個人で現実的なのはこちら。
- LoRA / QLoRA:小さなアダプタ行列を足して学習する(QLoRA は本体を4bitに圧縮してさらに省メモリ)。
- ソフトプロンプト(=学術の Prompt Tuning)/ Prefix・P-Tuning:入力先頭の学習可能ベクトルだけを訓練する。
強みは、決まった形式・口調・分類を、短い指示で安定して・安く出せること。専用の小型モデルを仕立てられます。代わりに、教師データとGPUが要り、世界が変われば学習し直しになります。
いちばん大事なのは「選び方」
道具の名前を覚えることより、課題に対してどれを選ぶかが実力です。
| やりたいこと | まず選ぶ | なぜ |
|---|---|---|
| 最新の事実・社内知識を答えさせたい/内容がよく変わる | RAG | 学習せず即反映。鮮度に強い |
| とりあえず試したい/要件が固まっていない | プロンプトエンジニアリング | 速い・安い・捨てやすい |
| 決まった形式・分類・口調を安定して量産したい | ファインチューニング(まず LoRA/QLoRA) | 振る舞いを重みに焼き付ける |
| 巨大モデルを丸ごと作り替えたい | フルファインチューニング | ただし大GPU前提。多くは PEFT で足りる |
実務の定石は 「①プロンプト → 足りなければ②RAG → それでも足りなければ③ファインチューニング」。いきなり③へ飛ぶのは、たいてい遠回りです。
補足:③は「コード」より「環境」でつまずく
最後に一つだけ、実体験から。③のファインチューニングで難しいのは、アルゴリズムよりも環境構築でした。手順は公式に載っていても、いざ自分のマシンで走らせると、ライブラリの世代の食い違い、文字コード、GPUの世代差といった足元の壁が次々に現れます。コードはコピーできても、「どこで詰まり、なぜそう直したか」という判断はコピーできません。価値は、いつもそこに残ります。
この“やってみた”側——Turing世代のGPU(RTX 2070)1台で、ローカルのままファインチューニングに挑んだ、つまずきの全記録——は、別記事にまとめています。
🔗 実践編: Turing世代のGPU「RTX 2070」1台で、ローカルQLoRAファインチューニングに挑む(進行中)
まとめ(一枚で)
- 違いの軸はただ一つ。重みに触るか/触らないか。
- 触らない … プロンプトエンジニアリング(口語の「プロンプトチューニング」)/RAG。
- 触る … ファインチューニング(フル/PEFT:LoRA・QLoRA・ソフトプロンプト)。
- 「プロンプトチューニング」は 口語と学術で別物。会話が噛み合わない原因の筆頭。
- そして——名前を覚えることより、「この課題ならどれを選ぶか」を判断できることが、いちばんの実力です。
参考(用語の出どころ)
- ソフトプロンプト系の Prompt Tuning(Lester et al., 2021)/ Prefix Tuning / P-Tuning
- QLoRA(4bit量子化 + LoRA, Dettmers et al., 2023)
用語集(この記事で使った言葉)
| 用語 | 意味 |
|---|---|
| プロンプトチューニング(口語/学術の2義) | 本記事の主題。口語では「プロンプトエンジニアリング」、学術では PEFT の “Prompt Tuning” を指す(中身は別物) |
| 重み (weights) | モデル内部の膨大な数値。賢さ・知識の実体 |
| プロンプトエンジニアリング | 指示文・Few-shot(例示)を作り込み出力を整える(重みは変えない) |
| Few-shot(例示) | プロンプトに正解例をいくつか入れて出力を誘導する手法 |
| RAG | 質問時に関連文書を検索し、文脈として渡す(重みは変えない) |
| ファインチューニング | 例で重みを更新し、振る舞いをモデルに焼き付ける |
| フルファインチューニング | すべての重みを更新する重い方式 |
| PEFT | 本体を凍結し、一部だけ学習する軽量手法の総称 |
| LoRA / QLoRA | 小さなアダプタ行列を足して学習する(QLoRA は本体を 4bit 量子化して省メモリ) |
| ソフトプロンプト(学術の Prompt Tuning)/ Prefix・P-Tuning | 入力の先頭に付ける学習可能ベクトルだけを訓練する PEFT の一系統 |
| forward(予測)/ loss(損失)/ backprop(誤差逆伝播)/ update(更新) | 学習ループの4ステップ |
| 勾配 (gradient) | 各重みをどちらへどれだけ動かせば損失が減るか、を表す量 |