第6部 LLMを使いこなす

第21章プロンプトの基礎

ここからの第6部では、作られたLLMを実際に使いこなす方法を扱います。LLMへの入力となる指示文を プロンプトと呼びます。第4部で見たとおり、LLMは入力に続く言葉を予測して出力するので、どんな入力を 与えるかで結果は大きく変わります。この章では、プロンプトの基本と、伝わりやすい指示の組み立て方を 見ていきます。

21.1プロンプトとは

プロンプトとは、LLMに与える入力の文章のことです。何をしてほしいかを言葉で伝える指示であり、出力の質はこのプロンプトに大きく左右されます。

プロンプトとは、LLMに対して与える入力の文章のことです。「この文章を要約してください」「英語に翻訳して ください」といった指示が、そのままプロンプトになります。第15章で見たとおり、LLMは入力に続くもっとも ふさわしい言葉を予測して出力します。つまり、どんなプロンプトを与えるかによって、返ってくる出力は 大きく変わります。

同じことを頼むのでも、伝え方しだいで結果が変わるのは、人に仕事を頼むときと同じです。あいまいな頼み方を すれば、あいまいな結果が返ってきます。プロンプトを工夫することは、モデルを取り替えなくても出力を 改善できる、もっとも手軽で効果的な方法です。特別な準備もいらず、その場で試せます。プロンプトの工夫は、 LLMをうまく使うための第一歩です。

21.2役割・指示・文脈・例の与え方

伝わりやすいプロンプトは、立場(役割)、してほしいこと(指示)、前提となる情報(文脈)、そして具体例を、必要に応じて盛り込みます。

望む出力を得るには、プロンプトに必要な要素をそろえるとよく伝わります。よく使われるのが、次の四つです。 一つ目は役割で、「初心者向けに説明する立場で」のように、どんな立場で答えてほしいかを示します。二つ目は 指示で、してほしいことを明確に伝えます。三つ目は文脈で、判断の前提となる情報や背景を与えます。四つ目は 例で、望む出力の形を具体的に示します。すべてを毎回入れる必要はありませんが、これらを意識すると、 指示のあいまいさが減り、出力が安定します。

具体例:要素をそろえたプロンプト

「案内文を書いて」だけでなく、四つの要素をそろえると、ぐっと意図が伝わります。

役割 あなたは丁寧な文章を書く担当者です
指示 社内向けの説明会の案内文を書いてください
文脈 日時は来週金曜の15時、場所は会議室A、内容は新ツールの紹介です
例/形式 件名・本文・箇条書きの持ち物、の順でお願いします

同じ「案内文を書いて」でも、これだけそろえれば、そのまま使えるものに近い出力が返ってきます。

身近なたとえ

人に仕事を頼むときも、「誰向けに」「何を」「どんな前提で」「どんな形で」を伝えるほど、意図どおりの 成果が返ってきます。逆に「いい感じにやっておいて」だけでは、期待とずれがちです。プロンプトも同じで、 必要な情報をそろえるほど、望む出力に近づきます。

21.3システムプロンプトとユーザープロンプト

多くのLLMでは、全体の方針を定めるシステムプロンプトと、その都度の指示であるユーザープロンプトを分けて扱えます。

LLMを使うとき、入力は一種類とは限りません。多くの場合、全体の方針や前提を定めるシステムプロンプトと、 実際のやり取りごとの指示であるユーザープロンプトに分けられます。システムプロンプトには、「常に丁寧な 言葉づかいで」「専門用語には説明を添える」といった、やり取り全体に共通する方針を書きます。ユーザー プロンプトには、その場でしてほしい具体的な指示を書きます。

役割を分けることで、方針を保ちながら、個別の指示を与えられます。アプリケーションを作るときは、 システムプロンプトに全体の振る舞いを書いておき、利用者からの入力はユーザープロンプトとして渡す、 という形が一般的です。土台の方針と、その都度の依頼を分けて管理できる、というわけです。

21.4出力形式を指定する

出力の形式をあらかじめ指定すると、望んだ形で結果が得られ、後で使いやすくなります。箇条書き、表、決まった項目立てなどを指示できます。

プロンプトでは、出力の中身だけでなく、その形式も指定できます。「箇条書きで」「表の形で」「三つの 観点に分けて」のように形を指定すると、結果が整った形で返ってきて、後の作業で扱いやすくなります。 とくに、出力を別のプログラムで処理したい場合は、決まった形式で返させることが役立ちます。形式を 指定しないと、モデルは自由な形で応答するため、毎回ばらつきが出やすくなります。

実務メモ:よく使うプロンプトは「部品」として管理する

アプリケーションを作るときは、プロンプトを毎回その場で書くのではなく、よく使う型を部品として保存し、 変わる部分だけを差し替えて使うと管理が楽になります。システムプロンプトや、定型の指示文を一か所に まとめておけば、改善したいときもそこを直すだけで済みます。プロンプトは、いわばアプリの設定の一部 です。コードと同じように、整理して管理する対象だと捉えると、後の保守がしやすくなります。

ここまでがプロンプトの基礎です。基本を押さえたうえで、次の章では、より良い出力を引き出すための 工夫、すなわちプロンプトエンジニアリングを見ていきます。

この章の要点

  • プロンプトはLLMへの入力の文章で、その良し悪しが出力を大きく左右します。
  • 役割・指示・文脈・例をそろえると、あいまいさが減り、出力が安定します。
  • 全体方針を定めるシステムプロンプトと、都度の指示のユーザープロンプトを分けて使えます。
  • 出力形式を指定すると、望んだ形で結果が得られ、後の作業で扱いやすくなります。
  • よく使うプロンプトは部品として管理すると、保守や改善がしやすくなります。