※DAIR.AIのPrompt Engineering Guideを参考にしています。詳しくはこちらをご覧ください→Prompt Engineering Guide
AIにおけるプロンプト(prompt)とは何か?
→AIに対する指示や命令文のこと。
promptという英単語は「促す、刺激する」といったような意味です。
ちなみに、コンピューター用語で「プロンプト」と言えば、コンピューターへの入力を促す表示のことです。
- AIの基本についてはこちら→AI(人工知能)の基礎知識について学習しよう!
プロンプトエンジニアリング(Prompt Engineering)とはどのような学問領域か?
→言語モデル(LM)を効率的に使用するためのプロンプトを開発および最適化する学問分野。
言語モデル(Language Model)とは、人間の言葉を、単語の出現確率でモデル化したもののことです。大量のテキストデータを事前に学習することで、様々な言語処理タスク(文章生成、翻訳、質問応答など)を実行することができます。
zero-shot prompting(ゼロショットプロンプティング)とは何か?
→サンプルやデモンストレーションなどを使わず、直接質問し、言語モデルに応答を求めること。(Q&AのQだけを聞くこと)
現在の大規模言語モデルでは、ゼロショットでも良い結果が得られることもありますが、より複雑なタスクでは不十分になることがあります。
few-shot prompting(フューショットプロンプティング)とは何か?
→サンプル(デモンストレーション)をいくつか提示してから、質問をすること。
few-shot promptingは多くのタスクに適していますが、推論タスクにはまだ不十分であると言えます。
プロンプトには4つの要素がある。それは何か?
→命令(指示)、文脈、入力データ、出力指示子
全ての要素がそろっていなければいけないわけではありません。全て要素がそろっていなくても、求める答えを得ることもあります。
プロンプトの要素における命令(指示)とは何か?
→モデルに実行してほしい特定のタスクまたは命令。
「書く」「分類する」「要約する」「翻訳する」「並べ替える」などの命令(指示)のことです。命令(指示)には、「###指示###」といったように明確な区切り記号を使うことが推奨されています。
プロンプトの要素における文脈とは何か?
→前後関係や予備知識のこと。
「どんな立ち位置で回答するか」「どのような口調で回答するか」「誰に回答をするか」などの情報のことです。文脈を適切に追加することで、より求める出力を得ることができます。
プロンプトの要素における入力データとは何か?
→応答をして欲しい入力または質問
回答のテーマや本題のことです。
長いプロンプトのときは、最後に「テーマは〇〇」などのように書くと有効です。
プロンプトの要素における入力出力指示子とは何か?
→出力のタイプや形式
テキストによる出力だけでなく、テーブル形式(表)やプログラミングのコードなどで出力することもできます。テキストの文字数を指定したり、口調を指定することもできます。
プロンプトはどのような指示であることが望ましいか?
→具体的で、簡潔で、明確であること。
プロンプトをより具体的にするために、何を言わずに、何を言うべきか?
→「しないこと」を言わずに、「すること」を言うべき。
言語モデルができるタスクは「要約」「情報抽出」「質問応答」「分類」「会話」「コード生成」「推論」などがあるが、この中で、特に言語モデルが苦手なもの(正しい答えを得ることが難しいもの)は?
→推論
推論タスクでより良い結果を得るために有効なテクニックは何か?
→Chain-of-Thought(CoT)プロンプティング(推論のステップを提供するプロンプティング)
「ステップバイステップで考えてみましょう」と指示すると、推論タスクの結果が大きく改善されることがあります。
プロンプトエンジニアリングを身につけるために重要なことは?
→試行錯誤を繰り返すこと。
プロンプトの設計は、最適な結果を得るために多くの実験を必要とする反復的なプロセスであることを理解しましょう。