第6部 LLMを使いこなす

第22章プロンプトエンジニアリング

同じLLMでも、プロンプトの書き方しだいで出力の質は大きく変わります。より良い結果を引き出すための工夫を プロンプトエンジニアリングと呼びます。この章では、特別な知識がなくても、日々の利用の中ですぐ試せる 代表的な工夫を紹介します。

22.1具体的に書くことの効果

あいまいな指示より、条件や目的、対象を具体的に書いたプロンプトのほうが、意図に沿った出力を得やすくなります。

プロンプトエンジニアリングの基本は、具体的に書くことです。「分かりやすく説明して」よりも、「専門知識の ない人に向けて、身近な例を交えて三百字ほどで説明して」のように書くほうが、望む出力に近づきます。 対象読者、分量、含めてほしい要素、避けてほしいことなどを具体的に示すと、モデルは意図をくみやすく なります。

具体例:あいまいな指示と具体的な指示

あいまい この製品について紹介文を書いて
具体的 この製品について、初めて聞く人向けに、特長を三つ、それぞれ一文で、 合計150字ほどの紹介文を書いて。専門用語は避けて

具体的なほうは、読者・構成・分量・語調まで指定しています。あいまいな指示は、モデルに解釈の幅を 与えてしまい、期待とのずれを生みます。「どう書けば迷わず作れるか」を考えて伝えるのがコツです。

22.2例を示す(フューショット)

望む出力の例をいくつか示してから本題を与えると、モデルはその形式や傾向をまねて応答します。これをフューショットと呼びます。

言葉で説明しにくい要望は、例を示すのが有効です。入力と、それに対する望ましい出力の組をいくつか プロンプトに含めてから本題を与えると、モデルはその例にならって応答します。この方法はフューショット (少数の例を示す)と呼ばれます。逆に、例を示さずに指示だけを与える方法は、ゼロショットと呼ばれます。 出力の形式や口調、分類の基準などを、言葉で細かく説明するより、実例で示したほうが正確に伝わる場面が 多くあります。

身近なたとえ

新人に作業を頼むとき、口で長々と説明するより、完成品の見本を一つ見せたほうが早く正確に伝わることが あります。フューショットは、この「見本を見せる」やり方をプロンプトの中で行うものです。

22.3段階的に考えさせる

複雑な問題では、いきなり答えを求めず、順を追って考えさせると、途中の飛躍が減り、結果の精度が上がることがあります。

計算や推論を伴う複雑な問題では、いきなり結論だけを求めると、途中を飛ばして誤ることがあります。そこで、 「順を追って考えてから答えて」のように、段階的に考えさせると、途中の筋道が整理され、結果の精度が 上がることがあります。

深掘り:なぜ段階を踏ませると精度が上がるのか(読み飛ばし可)

第15章で見たとおり、LLMは一語ずつ予測を積み重ねて出力します。そして、それまでに出した言葉を、 次の予測の手がかりとして使います。いきなり結論だけを出させると、その手前の考えが言葉になっていない ため、飛躍が起きやすくなります。ところが、途中の考えを順に書かせると、その書かれた考えが手がかりと なり、次の一歩がより妥当になります。頭の中だけで暗算するより、途中式を書いたほうが間違えにくいのと 同じです。段階的に考えさせる工夫は、この「途中を言葉にすると次がうまくいく」という性質をうまく 使ったものだといえます。

22.4うまくいかないときの調整

一度で望む出力が得られないのは普通のことです。表現を変える、条件を足す、例を示すといった調整を繰り返して、少しずつ近づけます。

最初のプロンプトで思いどおりの出力が得られないことは、よくあります。そのときは、あきらめずに調整を 重ねます。指示の表現を変えてみる、足りない条件を書き足す、望む形の例を示す、分量や観点を指定し直す、 といった工夫です。出力のどこが期待とずれているかを見て、その部分を補うように書き換えるのが基本です。

こうしたやり取りを通じて、少しずつ望む出力に近づけていきます。一度で完璧を狙うより、素早く試して 直すことを繰り返すほうが、結局は近道です。これらの工夫は、特別な知識がなくても、日々の利用の中で 試せるものばかりです。次の章では、プロンプトの長さに関わるコンテキストウィンドウや、出力を調整する 主要なパラメータを見ていきます。

この章の要点

  • 対象・分量・条件などを具体的に書くほど、意図に沿った出力を得やすくなります。
  • 望む出力の例を示すフューショットは、言葉での説明より正確に要望を伝えられます。
  • 複雑な問題は、段階的に考えさせると途中の飛躍が減り、精度が上がることがあります。
  • これは、途中の考えを言葉にすると、それが次の予測の手がかりになるためです。
  • 一度で決まらないのが普通で、表現の変更や条件の追加を繰り返して近づけます。