メイン コンテンツにスキップ

基礎

プロンプティング vs RAG vs ファインチューニング:何が違うのか

モデルの出力を変える三つの異なる方法:より良い指示、検索した文脈、あるいはモデル自体の変更。それぞれが実際に何を解決し、何を解決できないのか、そして多くの製品が三つ目を必要としない理由を解説します。

すべての解説 · 最終確認日:

三つの異なる問題に対する三つの異なる解決策

プロンプティングは、一回のリクエストでモデルに伝える内容——指示、例、書式のルール——を変えます。検索拡張生成、すなわちRAGは、関連する資料を取得してコンテキストに追加することで、一回のリクエストでモデルが見られる内容を変えます——この検索ステップの仕組みについてはRAGとは?を参照してください。ファインチューニングはモデル自体を変え、重みを調整することで、パターンを組み込み、毎回繰り返さなくても利用できるようにします。これらは同じ解決策の三段階の難易度ではなく、三つの異なる種類のギャップに応えるものです。

プロンプティングは目の前のリクエストしか変えない

プロンプトとは、一回のリクエストに含まれる指示、例、制約のことです。応答が返ってきた時点で、そのうちの何も残りません——同じ指示を再度含めない限り、次のリクエストは同じ白紙の状態から始まります。これがプロンプティングを最も安く、最も速く反復できる手法にしています。文言の変更は数秒でテストでき、インフラも再学習も必要ありません。

プロンプティングはまた、他の何かに頼る前に真っ先に試し尽くす価値があるものです。「モデルはXのやり方を知らない」という問題の驚くほど多くの部分が、実は「指示がXをやれと一度も言っていなかった」という問題です。

RAGはモデルに手を加えずに事実や文書を追加する

RAGは別の問題を解決します。モデルが一度も学習していない情報、あるいは学習が追いつかないほど頻繁に変わる情報——自分の文書、最新の記録、あらゆる非公開の情報です。モデルにその情報を教える代わりに、検索ステップが関連する箇所を見つけ、それをコンテキストとしてリクエストに直接組み込みます。その際、厳密な語句ではなく意味で検索するために埋め込みを使います——この検索の仕組みについては埋め込みとは?を参照してください。

モデル自体は何も変わらないため、元の文書を更新すれば、再学習のステップなしに、システムが答えられる内容がすぐに更新されます。トレードオフは、回答の質が検索の質によって制限されることです。正しい箇所が一度も見つからなければ、モデルは一度も見せられていない情報を使うことができません。

ファインチューニングはモデル自体を変える

ファインチューニングは、追加の学習例を使ってモデルの重みを調整し、トーン、応答形式、例で示された専門的なスキルといった行動パターンを、毎回のプロンプトで繰り返したり検索で用意したりする必要のあるものではなく、モデル自体の一部にします。一度学習すれば、モデルはどのリクエストに対しても、追加の指示なしにデフォルトでそのように振る舞います。

また、プロンプティングやRAGにはない実際のコストも伴います。学習例を準備し精査する必要があり、学習runを実行して評価する必要があり、その結果は特定のモデルの成果物となって、ベースモデルの改善に合わせてホスティングし同期を保つ必要があります。ファインチューニングもまた、生きた、あるいは変化する事実を追加するものではありません——固定された学習セットからパターンを組み込むものであり、他の静的な学習と同じように陳腐化します。

最も派手な選択肢ではなく、実際の失敗に手法を合わせる

トーンの誤り、形式の誤り、見落とされた指示:たいていプロンプティングの問題です。誤った、あるいは欠けている事実、特に自分自身の、あるいは急速に変化する資料について:たいてい検索の問題です。毎回説明し直すことなく、あらゆるリクエストで一貫して適用したい専門的な振る舞い:これこそファインチューニングが実際に作られた対象です。これらは互いに排他的ではありません——ファインチューニングされたモデルにも、プロンプトと検索されたコンテキストを与えることができます——しかしそれぞれは、それが作られた失敗しか解決せず、間違ったものを使うと、コストと複雑さを加えながら実際の問題を未解決のまま残します。

多くの製品が結局ファインチューニングに頼らない理由

プロンプティングとRAGはどちらも元のモデルに手を加えないため、より新しい、あるいはより優れたベースモデルへのアップグレードは、ほとんどの場合単なる設定変更にすぎません。ファインチューニングされたモデルは、それが学習された元のベースモデルに縛られます。ベースモデルの大きなアップグレードは通常、単に切り替えるのではなく、データを再準備し再学習することを意味します。そのため多くの製品は、プロンプティングと検索だけで問題全体を解決し、毎回指示とコンテキストを繰り返すコストなしに、特定の明確に定義された振る舞いを膨大な量のリクエストにわたって一貫させる必要がある場合にのみ、ファインチューニングに手を伸ばします。

よくある質問

RAGはモデルの知識を永続的に更新しますか?
いいえ。RAGは一回のリクエストのコンテキストに含まれる内容を変えるだけで、元のモデルが変更されることはありません。同じ資料を検索しない次のリクエストは、他のどんなプロンプトとも同じように、それなしで始まります。
ファインチューニングはプロンプティングやRAGより常に正確ですか?
いいえ。ファインチューニングは学習例からパターンを組み込みますが、その学習データにない事実を追加するわけではなく、検索のように事実を最新の状態に保つこともできません。ファインチューニングされたモデルでも、学習範囲外のことについては自信満々に間違え続けることがあります。
プロンプティング、RAG、ファインチューニングは組み合わせられますか?
はい。それぞれシステムの異なる部分を変えるため、ファインチューニングされたモデルでも、同じリクエストの中で検索されたコンテキストと明示的な指示の両方を受け取ることができます。組み合わせは一般的で、互いに排他的な選択肢として扱う必要はありません。
まず何を試すべきですか?
ほぼ常にプロンプティングです。インフラを必要とせず、文言の変更は数秒でテストできます。ギャップが欠けている、または古い情報である場合は検索に移り、特定の明確に定義された振る舞いが、学習と維持のコストを正当化できるほど大きなリクエスト量にわたって一貫している必要がある場合にのみ、ファインチューニングを検討してください。

読むより試してみる

ClawAIのコンテキストパックおよびファイル・ワークスペース検索は、元のモデルに手を加えることなく、リクエストに関連資料を追加します。ClawAIはモデルのファインチューニングを提供していません——ルーティング先のクラウドおよびローカルモデルは、すでに学習済みのものとして使用されます。