各アプローチによる変更点
モデルが提供するすべての回答は、トレーニング時に固定された重みと、リクエスト時に読み取るコンテキストの2つに依存します。プロンプティングと検索はコンテキストに作用します。ファインチューニングは重みに作用します。
即座に変更可能です。リクエストのたびに指示が送信され、その分のコストが発生します。
知識はモデルの外部に保持されるため、更新や引用が可能です。モデルの回答方法は変更されません。
動作は事前に一度だけ学習されます。動作を変更する場合は、質の高いサンプルを用意して再度実行する必要があります。
プロンプティング
プロンプティングとは、リクエストに指示や、多くの場合いくつかの具体例を記述することを意味します。トレーニングは不要で、即座に効果が現れ、変更も容易であるため、最初に取り組むのに適しています。コストは呼び出しごとに発生します。2,000トークンのプロンプトはリクエストごとに課金され、レイテンシが増加し、コンテキストウィンドウのスペースを消費します。また、長いプロンプトは完全には遵守されません。ルールが多いほど、一部が欠落したり、一貫性なく適用されたりする可能性が高くなります。
検索拡張生成(RAG)
検索拡張生成(Retrieval-augmented generation)は、検索ステップを追加します。ドキュメントは事前にインデックス化され、質問ごとに最も関連性の高い箇所が取得されてプロンプトに配置され、モデルはそれらに基づいて回答します。この用語は、Lewisらによる2020年の論文に由来します。知識はモデルの外部に存在するため、ドキュメントを更新することで知識を更新でき、回答には情報源を引用できます。ただし、モデルの回答方法は変わりません。依然として独自のスタイルとフォーマットで記述します。
目的が知識である場合、検索が優位に立つ傾向があります。Ovadiaらによる2023年の比較では、モデルがすでに学習した事実とまったく新しい事実の両方において、モデルの回答に事実を組み込む点で、検索が教師なしファインチューニングを一貫して上回ることがわかりました。
ファインチューニング
ファインチューニングは、お客様の例を使用してモデルのトレーニングを継続し、求める振る舞いをデフォルトにします。トーン、回答の構造、詳細の程度、不明確な質問への対応など、本来ならすべてのプロンプトで繰り返す指示を一度で学習します。その結果、短いプロンプトでもそのように回答するようになり、各リクエストのコストを削減し、処理を高速化できます。また、小規模なモデルでも、慎重にプロンプトを与えられた大規模なモデルと同様に、限定されたタスクをこなすことが可能になります。
そのコストは先行して発生します。優れた例、トレーニングの実行、評価が必要であり、求める振る舞いが変わるたびに新たな実行が必要になります。この方法で学習された事実はトレーニング時に固定され、プロンプトで提供された事実よりも確実性が低い状態で呼び出されます。
選択方法
| 質問が次のような場合… | 適したアプローチ |
|---|---|
| モデルには、毎週変化する事実や大規模なドキュメントコレクションが必要ですか? | 検索 |
| 回答には事実の出所を示す必要がありますか? | 検索 |
| 課題は、トーン、フォーマット、長さ、一貫性など、回答の方法ですか? | ファインチューニング |
| プロンプトが長く、呼び出しのたびに繰り返されていますか? | ファインチューニングで吸収できます |
| より小規模で安価なモデルを、特定のタスクで大規模なモデルに匹敵させる必要がありますか? | ファインチューニングまたは蒸留 |
| 適切な回答がどのようなものか、まだ模索中ですか? | まずはプロンプティング |
- 第1週 — プロンプティング。 システムプロンプトで製品とトーンを説明します。機能はしますが、回答のフォーマットにばらつきがあり、ルールが追加されるにつれてプロンプトは1,800トークンまで膨れ上がります。
- 第3週 — 検索。 ヘルプセンターの記事がインデックス化され、最も関連性の高い3つの記事が各リクエストに追加されます。機能に関する回答が正確かつ最新のものになります。
- 第6週 — ファインチューニング。 レビュー済みの300件のサポートチャットから、フォーマットとトーンを学習させます。システムプロンプトは2文に短縮され、事実は引き続き検索によって提供されます。
- 結果。 各リクエストに含まれる指示トークンが大幅に減少し、回答が一貫するようになります。また、ポリシーを変更する場合でも、再トレーニングではなくドキュメントの編集で対応できます。
よくある間違い
- 変化する事実を学習させるためにファインチューニングを行い、変化するたびに再トレーニングを行うこと。
- ファインチューニングされたモデルを、不十分なプロンプトのベースモデルと比較すること。お持ちの最良のプロンプトと比較してください。
- 検索によってトーンやフォーマットが修正されると期待すること。検索はモデルが読み取る内容を変更するだけです。
- システムプロンプトを使用してトレーニングされたモデルにおいて、ファインチューニング後にシステムプロンプトを省略すること。
- 適切な回答がどのようなものか把握する前にファインチューニングを行い、例の間で矛盾が生じること。
参考文献および関連資料
外部ソースは新しいタブで開きます。
- 01Retrieval-Augmented Generation for Knowledge-Intensive NLP TasksLewis et al., 2020 · arXiv · arxiv.orgRAGを命名し、導入した論文。
- 02Fine-Tuning or Retrieval? Comparing Knowledge Injection in LLMsOvadia et al., 2023 · arXiv · arxiv.org知識を追加するための両者の直接比較。
- 03Model optimizationOpenAI API docs · developers.openai.comプロンプト、評価、ファインチューニングのタイミングに関するプロバイダーの視点。
- 04Prompt engineering overviewClaude Platform Docs · platform.claude.comトレーニングが必要になる前に、慎重なプロンプティングでどこまで対応できるか。