生成AIの基礎知識:「プロンプトチューニング」と「ファインチューニング」の違いを徹底解説
本記事は、生成AIにおける主要な概念である「プロンプトチューニング」「ファインチューニング」「RAG」などの用語の混乱を解消し、それぞれの技術的な違いを明確にすることを目的としています。最も重要な理解軸は、「モデルの重み(知識・賢さの実体)を外部から変更するか否か」という一点です。
まず、概念の整理として、LLMの「重みに触らない」手法にはプロンプトエンジニアリング(口語の「プロンプトチューニング」)とRAGが含まれます。これらは外的な指示や情報でモデルを補完するものです。一方、「重みに触る」手法はファインチューニング全般(フル、PEFTなど)です。これはモデル自体の振る舞いや知識構造を更新します。
具体的な技術の役割分担としては、プロンプトエンジニアリングは指示文や例示(Few-shot)で出力を調整する最も手軽な方法であり、「速くて安い」のが強みですが、安定した振る舞いの維持が苦手です。RAGは外部文書を検索し、最新の知識をコンテキストとして渡すため「鮮度」に優れますが、モデル自体が賢くなるわけではありません。ファインチューニングは、大量の例を用いて重みを更新することで、「特定の形式・口調・分類」といった振る舞いをモデルに焼き付けます。
特に、学術的な「Prompt Tuning」(ソフトプロンプト)はPEFTの一種であり、重みに触れる手法群に含まれます。ファインチューニングには、全てを更新するフル方式のほか、本体を凍結し一部だけ学習させるPEFT(LoRA/QLoRAなど)が主流です。
実務的な定石として、「最新情報が必要ならRAG」→「試行錯誤で良いならプロンプトエンジニアリング」→「振る舞いを固定したいならファインチューニング」という順序での適用が推奨されています。また、記事は、これらの技術の選択よりも、課題に対して最適な手法を選び出す判断力が最も重要であると結論づけています。
背景
生成AI(LLM)の普及に伴い、「プロンプトチューニング」「ファインチューニング」「RAG」など、専門用語が乱立し、初心者や実務者が混乱する状況が生じています。本記事は、これらのバズワードを「重みへの介入度」という単一軸で整理することで、技術的な理解の指針を提供することを目的としています。
重要用語解説
- モデルの重み(weights): LLMが持つ膨大な数値データ群であり、モデルの知識や振る舞いそのものの実体です。この数値を更新することがファインチューニングの本質となります。
- RAG (Retrieval-Augmented Generation): 質問時に外部データベースから関連文書を検索し、その情報を文脈としてLLMに渡す手法。学習なしで最新の知識を取り込めます。
- PEFT (Parameter Efficient Fine-Tuning): ファインチューニングにおいて、モデル全体ではなく一部のパラメータ(重み)のみを効率的に更新する技術群の総称です。LoRAやQLoRAなどが含まれます。
今後の影響
本記事で提示された「重みに触るか/触らないか」という判断軸は、生成AIの実装設計における思考プロセスを標準化します。これにより、企業がどの課題にどの技術(RAGかファインチューニングか)を適用すべきかの意思決定が迅速かつ正確に行えるようになり、開発コストと工数の最適化に大きく貢献すると予想されます。