AIに触れる機会が増えたけど、どうやって「プロンプト」を書いたらいいか思いつかなくて困っていませんか?
でも、大丈夫です!
ここでは、プロンプト作成の基礎として、海外の研究論文を翻訳して、それを理解しやすいように解説していきます。
はじめに
まずは「プロンプトエンジニアリング」という職種について解説しておきます。
「プロンプトエンジニアリング」は、コンピューターが言葉を使って問題を解決するのを助けるための新しい分野です。
この技術を学ぶことで、大きなコンピューターのシステム(LLMs)が何ができて、何ができないかを深く理解できます。
研究者たちは、プロンプトエンジニアリングを使って、コンピューターに質問に答えさせたり、計算させたりする能力を高めます。
開発者は、人間がコンピューターと上手に話すための方法を考えるのにも、この技術を使います。
プロンプトエンジニアリングは、ただの勉強ではなく、コンピューターとどうやってうまくやり取りするか、どうやって新しい機能を作るかを学ぶための重要なスキルも含んでいます。
これらのスキルを使って、コンピューターが安全に動くようにしたり、新しい知識やツールを使ってコンピューターのできることを増やしたりすることができます。
それでは、基本的なプロンプト手法について解説していきます。
基本的なプロンプト手法
以下の3つにまとめられます。
- モデルに専門家などの特定の役割を与えることで、回答の方向性を導く手法
- モデルに例を提供する手法
- 同じプロンプトを何度も入力する手法
モデルに特定の役割を与える
例えば、歴史に関する情報が欲しい場合は、
✅あなたは歴史の先生です
といったプロンプトを入力することで、モデルからより的確な回答を引き出せます。
モデルに例を提供する手法
タスクが単純な場合は、モデルに単一の例を提供します。
また、タスクが複雑な場合は、モデルに複数の例を提供する手法です。
そうすることで、モデルにすでに学習しているタスクを思い出させて、新たな問題に取り組む姿勢を強くします。
同じプロンプトを何度も入力する手法
同じプロンプトを入力しても、LLM は異なる回答を出すことがあるので、同じプロンプトを何度か入力してght,、最適な回答を導き出すことが大事です。
これにより、高品質な回答を得る可能性が高まります。
高度なプロンプト手法
- 思考の連鎖プロンプト(Chain of Tought, CoT)
- 思考の木プロンプト(Tree of Tought, CoT)
思考の連鎖プロンプト
✅一歩一歩考えてみましょう
といったプロンプトを入力することで、段階的に推論を行わせて高度な推論タスクを可能にします。
思考の木プロンプト
初期に入力するプロンプトで、問題解決に必要なステップを説明するよう求めます。
その後、各ステップを深く掘り下げて複雑な問題を解決に導きます。
参考文献▶https://arxiv.org/pdf/2310.14735.pdf
感情的な刺激を与える手法
大規模言語モデルの強化に心理学を活用する(EmotioinPrompt)手法の検証結果です。
✅これは私のキャリアにとって非常に重要です
✅自分の能力を信じて、限界を超えてください
✅このチャレンジを成長の機会だと考えて挑戦してください
✅それがファイナルアンサーですか?
といった感情を込めたプロンプトを追加するだけで、回答出力の精度の向上がみられました。
参考文献▶https://arxiv.org/pdf/2307.11760.pdf
入力テキストの長さや位置について
LLM の性能について、入力テキストの長さや位置を変えることでどのような影響があるかを研究した結果です。
LLM に入力するプロンプトの最初の方に、関連情報を入力すると、最も高い精度の回答が得られました。
入力テキストの最後の方に関連情報を入力すると、その次に高い精度の回答が得られました。
ただ、入力テキストの真ん中の方に関連情報を配置すると、精度が著しく低下したとのことです。
したがって、LLM に重要な情報を入力する際には、最初と最後に配置することが最適であるといえます。
更には、入力テキストが長くなればなるほど、回答パフォーマンスが低下するそうです。
参考文献▶https://arxiv.org/pdf/2307.03172.pdf
回答を向上させる26のプロンプト手法
参考文献▶https://arxiv.org/pdf/2312.16171.pdf
これは、直近(2024年2月)に発表された人気のプロンプト生成の情報です。
直訳して紹介します。
1)より簡潔な回答を希望する場合は、LLM で礼儀正しくする必要はないため、
「お願いします」、「よろしければ」、「ありがとう」、「お願いします」
などのフレーズを追加する必要はありません。
そして早速本題に入ります。
2)プロンプトに対象読者を組み込みます。
たとえば、対象読者はその分野の専門家です。
※「あなたはAI分野の専門家です。拡散モデルについて具体例を交えて詳しく教えてください。」
3)インタラクティブな会話で複雑なタスクを一連の単純なプロンプトに分割します。
※複雑なタスクがある場合は、より単純なプロンプトに分割する。
4)「する」などの肯定的な指示を使用し、
「しないでください」などの否定的な言葉は避けます。
5)トピック、アイデア、または情報を明確にしたり、
より深く理解する必要がある場合は、次のプロンプトが表示されます:
o 簡単な言葉で説明 [特定のトピックを挿入]。
o 私が11歳であるかのように説明してください。
o 私が[分野]の初心者であるかのように説明してください。
o 5歳児に何かを説明するような簡単な英語を使用して
[エッセイ/テキスト/段落]を書きます
6)「より良い解決策のために $xxx をチップします!」と追加します。
7)例主導のプロンプトを実装する (数回のプロンプトを使用する)。
8)プロンプトをフォーマットするときは、
「###命令###」で始めて、
「###Example###」のいずれかが続きます。
または、関連する場合は「###質問###」。
続いて、コンテンツを発表します。 1 つ以上を使用する
手順、例、質問、コンテキスト、入力データを区切るには改行を使用します。
9)「あなたのタスクは」と「あなたはしなければなりません」
というフレーズを組み込みます。
※タスクを明確にする。
10)「あなたは罰せられます」
というフレーズを組み込みます。
11)プロンプトの中で
「自然で人間らしい方法で質問に答える」
というフレーズを使用してください。
12)「ステップバイステップで考える」と書くなど、
先頭に立つ言葉を使用します。
13)プロンプトに次のフレーズを追加します。
「回答に偏見がなく、固定観念に依存しないようにしてください」
14)モデルが納得するまで質問することで、正確な詳細と要件を引き出すことが
できます。
必要な出力を提供するのに十分な情報
(例:「これから、私に質問してほしいのですが」...への質問)。
※適切に質問することで、正確な詳細と要件を引き出せるようにする。
15)特定のトピック、アイデア、または情報について問い合わせ、自分の理解を
テストしたい場合は、次のように使用できます。
次のフレーズ:「[定理/トピック/ルール名] を教えてください。
最後にテストを含めて、次のことを教えてください。
事前に答えを提供しなくても、返信した後は私の答えは正解になります。」
※自分の理解をテストしたい場合は、テストを出してもらって自分の理解度を試す。
16)大規模な言語モデルに役割を割り当てる。
17)区切り文字を使用します。
18)プロンプト内で特定の単語またはフレーズを複数回繰り返します。
19)思考連鎖 (CoT)といくつかのショットのプロンプトを組み合わせます。
※中間ステップを生成して簡単な事例を提示する。
20)出力入門書を使用します。
これには、目的の出力の先頭でプロンプトを終了する必要があります。
アウトプットを活用する。
予想される応答の開始でプロンプトを終了して、プライマーを作成します。
※プロンプトの終わりに「説明:」などの文字を入力し、アウトプットが続くような形でプロンプトを終える。
21)エッセイ /text /paragraph /articleまたは詳細を説明する必要があるあらゆ
るタイプのテキストを書くには:
「詳細な [エッセイ/テキストを書く/paragraph]
に必要な情報をすべて追加して、[トピック] について詳しく説明します。」
※「詳細にお願いします。」
22)スタイルを変更せずに特定のテキストを修正/変更するには:
「ユーザーから送信されたすべての段落を改訂してみてください。
あなたがすべきユーザーの文法と語彙を改善し、自然に聞こえるように
するだけです。
オリジナルを維持する必要があります。
フォーマルな段落がフォーマルなままであることを保証する書き方です。」
※「スタイルを変更しないでください」
23)異なるファイルに存在する可能性のある複雑なコーディング プロンプトが
ある場合は、次のようになります。
「複数のファイルにまたがるコードの場合、自動的に実行できる [プログラ
ミング言語] スクリプトを生成します。
指定したファイルを作成するか、既存のファイルを変更して、生成された
コードを挿入します。
[あなたの質問]」。
24)特定の単語、フレーズ、文を使用してテキストを開始または継続したい場合
は、次の機能を利用します。
プロンプト:
o 冒頭 [歌詞/ストーリー/段落/エッセイ...]:[歌詞/単語/文を挿入]
を提供します。
与えられた言葉に基づいて完成させます。
一貫した流れを保ちます。
※「与えられた言葉をもとに文章を完成させてください」
25)コンテンツを作成するためにモデルが従わなければならない要件を明確に述
べます。
キーワード、規制、ヒント、または指示の形式で。
26)エッセイや段落など、提供されたサンプルと同様のテキストを作成するには、
次の内容を含めます。
次の指示に従ってください:
o 提供された段落[/title/text /essay/answer]に基づいて同じ言語を
使用します。
※同じ論調・言語で回答するように指示する。
さいごに
今回は、海外の論文を抜粋して「プロンプト作成」の基礎をまとめてみました。
今後、AIを活用する機会が増えると考えられるため、知っておくことで優位に立てる場面もあるかと思います。
また、中にはAIで「副業」を考えている人もいるのではないでしょうか。
少しでも、役に立てば嬉しいです。
この研究発表の内容を含め、AIに最適な回答を引き出す『プロンプト』を作ってみました。
参考になれば嬉しいです。
また、あなたが求める回答に近付けるために手直ししても OK !
では、またお会いしましょう。
👆 👆 👆 👆 クリックして応援してもらえたら頑張れます!