プロンプトは指示と材料の全体
プロンプトとは、LLM に渡す指示や質問の文の全体を指す。チャットの欄に打つ 1 行の質問も、貼り付けた資料や答えの形の注文も、まとめてプロンプトである。モデルはこの文を読み、その続きとして答えを書く。
LLM はプロンプトをトークン (文章を細かく区切った単位) に分けて読む。長い資料を貼るほどトークンが増え、API では料金と待ち時間も増える。一度に読める長さを越える分は渡せない。アプリでは、利用者が打った文の前に、開発元が書いた見えない指示が付いていることも多い。
プロンプトを作る要素
Google の手引きは、プロンプトを作る要素として次のような物を挙げている。
- 指示 (何をしてほしいか。質問や手順の形で書く)
- 材料 (答えの元になる文章や資料)
- 制約 (してほしいこととしてほしくないこと。長さや口調など)
- 答えの形 (箇条書き、表、JSON のような決まった形)
要素を全部入れる必要はない。ただし足りない要素は、モデルが推測で埋める。推測が外れた所が、思った答えとずれる所になる。
良い指示の 3 点
良い指示は、次の 3 点を満たす。
- 目的がはっきりしている (誰に向けた何のための答えかを書く)
- 材料を渡している (学習データの締め日より後のことや手元の事情は、モデルは知らない)
- 答えの形を決めている (長さや形を書くと、直す手間が減る)
Anthropic は、プロンプトを直す前に、良い答えの基準と、それを試して確かめる方法を決めておくよう勧めている。同じ質問を何度か試し、ずれた所に指示を 1 つずつ足すのが確実である。