powered by TechFeed
表示モード
ハウツー

LLMは「薄っぺらい答えを返しがち」— 同じモデルでも結果が変わる、プロンプト20の書き方

9月21日、InfoWorldが「20 approaches to writing better AI prompts」と題した記事を公開した。LLMに同じ質問をしても、プロンプトの書き方次第で返ってくる答えの質は大きく変わる。記事の表現を借りれば、LLMは本質的に「glib(薄っぺらい答えを返しがち)」な存在だ。流暢に答えを返しても、それが深く考えられたものかどうかは別問題である。この「薄っぺらさ」を克服するための手法として、記事では20のアプローチが体系的に紹介されている。

9月21日、InfoWorldが「20 approaches to writing better AI prompts」と題した記事を公開した。LLMに同じ質問をしても、プロンプトの書き方次第で返ってくる答えの質は大きく変わる。記事の表現を借りれば、LLMは本質的に「glib(薄っぺらい答えを返しがち)」な存在だ。流暢に答えを返しても、それが深く考えられたものかどうかは別問題である。この「薄っぺらさ」を克服するための手法として、記事では20のアプローチが体系的に紹介されている。


プロンプトエンジニアリングとは、LLMへの指示文(プロンプト)を工夫することで出力の品質を引き上げる技術・実践領域を指す。モデル自体を改変せずに性能を引き出せることから、OpenAIAnthropicはそれぞれ公式のプロンプトエンジニアリングガイドを公開しており、近年急速に体系化が進んでいる分野でもある。本記事では20のアプローチのうち、エンジニアが実務ですぐ意識できる3つを中心に取り上げ、残りの手法についても要点を紹介する。

「ソクラテス式プロンプト」が面白い理由

最も実践的な示唆を含むのがソクラテス式プロンプト(Socratic prompting)だ。

通常、ユーザーはLLMに「答えを出せ」と求める。しかしソクラテス式では逆に、「答えではなく、私のタスクや目標に関する質問を返してくれ」とモデルに指示する。LLMが人間を"尋問"する形になる。

この手法が注目されている背景には、前述のLLMの根本的な問題がある。ソクラテス式はモデルに「もっと深く問題を考えさせる」ための強制機構として機能する。問題定義が曖昧なうちにいきなり出力させたくない場面や、ユーザー自身が理解を深めたい場面に特に有効だ。記事では教育現場での活用が多いとも述べられている。

Q&A形式:「知識を引き出すツール」として使う場合に限定される

Q&A形式は、LLMを「命令を受けるツール」ではなく「知識を持つ専門家」として扱うアプローチだ。短い質問を連続して投げ、答えを積み重ねることで目的の情報に近づいていく。

ただし記事は明確に限界を示している。「知識を見つけたり教えてもらったりする目的に限れば機能するが、まとまった文章を生成させたい場合には向かない」とある。

また「短い質問を重ねることでハルシネーション(hallucination:LLMが事実と異なる情報を自信満々に生成してしまう現象)が減る」と考えるユーザーもいるが、記事の著者はこれに否定的だ。

「LLMは私たちを喜ばせるように設計されており、答えを探り当てようとしているときにハルシネーションを起こす。質問が増えれば答えも増え、ハルシネーションの機会も増えるだけだ」

質問を増やせば精度が上がるという直感は、必ずしも正しくない。

ゼロショットプロンプト:例示が不要なケース

ゼロショット(zero-shot)プロンプトは、例を一切示さずにタスクだけを伝える手法だ。「このパラグラフをフランス語に訳して」のように、モデルがすでに学習済みのタスクであれば例示は不要であり、むしろ冗長になる。「難しい仕事はモデルの学習時点で終わっている」という考え方だ。

逆に言えば、モデルが学習していない形式・ドメイン・スタイルを求める場合は、ゼロショットでは限界がある。その場合は少数の例を与えるフューショット(few-shot)プロンプトなどに切り替える判断が必要になる。フューショットプロンプトとは、「入力→期待する出力」の例を数件(数ショット)プロンプト内に示すことで、モデルに出力形式や傾向を学習させる手法だ。

本文で取り上げなかった主なアプローチ

記事にはこの他にも17のアプローチが紹介されている。読者関心が高いと思われる手法について、要点のみ補足する。

  • Chain-of-Thought(思考の連鎖)プロンプト:「ステップバイステップで考えてください」などの一言を添えることで、モデルに推論過程を明示させる手法。複雑な数学・論理問題での精度向上が報告されており、Googleの研究チームが2022年に提唱した。
  • Role prompting(役割付与):「あなたはシニアソフトウェアエンジニアです」のようにモデルに役割を与える手法。回答のトーン・専門性・視点を制御するために広く使われている。

プロンプトエンジニアリングは手法ごとに適したユースケースが異なり、組み合わせて使われることも多い。どの手法がどの場面に向くかを体系的に押さえておくことは、実務上の差につながる。

詳細は20 approaches to writing better AI promptsを参照していただきたい。