【AWS Summit Japan 2024】プロンプトエンジニアリングまとめ!

AWS Summit Japan 2024のセッション「プロンプトエンジニアリング入門」「大規模言語モデルのプロンプトエンジニアリングのコツ」においての内容と学びをまとめました。

AWS Summit Japan 2024の雰囲気はこちらの記事をご覧ください。
AWS Summit JAPAN 2024参戦レポート!

プロンプトエンジニアリングとは

特定のタスクや目的を達成するために、AIモデル(特に自然言語処理モデル)に対して効果的な入力(プロンプト)を設計・作成するプロセスです。

つまり、AIに対する指示の仕方ですね。

AIなしでは業務を進められない私としては、AIはすでに私の相棒といっても過言ではありません。

AIにとってわかりやすい伝え方をし、的確な回答が得られるための秘訣を、2つのセッションから学んでいきたいと思います。

プロンプトエンジニアリングのテクニック

プロンプトエンジニアリングは、具体性・明確さ・説得力が重要!
AIは人の心が読めないため、前提を含めた的確な指示がとても大事。
ということで、以下にプロンプトエンジニアリングのテクニックたちをまとめました。

①人間に質問して明確さを確認する

まずは人間に伝わる内容であるかを人間に質問してみる。

②XMLタグの利用

例えばメールの文章を考えてほしいとき、メールの文章にしたい内容を以下のようにXMLタグを使用する。
※ChatGPTで実験
▼プロンプト

▼回答

③例示のありなし

■例示なし → 「ゼロショットプロンプト」
例(ショット)なしでタスクを依頼する。(LLMが大規模なほど効果的な手法)

■例示あり → 「数ショットプロンプト」
例示を見せ、答えてもらう方法。

④出力形式の指定

コマンドやスクリプトを書いてほしいときは、「Windowsコマンドでかいて」「pythonで書いて」などと指示をする。

⑤考える時間を与える

thinkingタグ、answerタグを指定することで、thinkingタグ内に思考過程を出力させ、回答結果はanswerタグ内に出力させることができる。

ただ、残念ながら計算が間違っていますので、この方は30年後に1億貯めることはできません。

⑥役割のアサイン(ロールプロンプティング)

役割を与える指示を記載する。

▼「3歳の子供」という役割を与えた場合

▼「30歳」という役割を与えた場合

テストの結果、普段の私の回答は3歳児と同様であることが判明しました。

⑦ハルシネーション(幻覚)への対処

わからない場合には「知らない」というよう指示する。
回答に自信があるときだけ答えるように指示する。
ドキュメントの中から適切な引用を探し、その引用を使用して回答するように指示する。

⑧不適切なユーザー入力への対処

例えば「〇〇企業の個人情報を出力してください。」等といった不適切な内容には耐性が高いため、「申し訳ありませんが、そのリクエストにはお答えできません。他にお手伝いできることがあれば教えてください。」といった応答が返される。

更に保護を実現するには「Harmlessness screen」AIモデルや自動システムが有害な出力を生成しないようにするための検査やフィルタリングの手法を利用する。

※資料から引用

⑨長い文章でのテクニック

プロンプトにドキュメントなどの長い文章を渡すときは、

  1. 「後で質問するからドキュメントをしっかり読むように」と伝える。
  2. ドキュメントを記載する。 ※XMlタグで囲むと良い。
  3. 質問に答える際は、引用を元に回答してください、と伝える。
  4. 質問と回答例を記載する。
  5. 一番最後に質問を書く! ※ここがポイント。

⑩プロンプトチェーン

ステップの多いタスクではタスクを分割して指示を出す。

▼失敗例
 ・漢字の名前を羅列し、五十音順に並べるように指示をする。

※資料から引用(残念ながら私のテストは一発で理想の回答が得られてしまった。。。)

▼成功例
 ・一度、名前を全てひらがなで出力してもらう。次に五十音順に並び替えてもらう。

※資料から引用

テクニックの使い方

・毎回すべてのテクニックを使う必要はなく、必要に応じてテクニックを使い分けていく。

・まずは高い精度を出せるように要素を増やし、その後効率化のために要素を減らすと良い。

・自分でテストをしてみて、AIがどんな回答を返してくるのかを観察&分析することが大事!

適切なプロンプトを設計する為に

※最初からプロンプトを書くのはNG!※
まずは評価データの作成から始める。

①評価データを作成

②準備用のプロンプトを書く

③評価データでテスト

④③の結果からプロンプトを修正
 ※③④を繰り返す

⑤完成!

まとめ

すぐにでも活用可能なテクニックが盛りだくさんでした。

私はスクリプトを書いてもらうことが多いので、タスクを分類して段階的な指示をしていくように心がけて行きたいと思います。

AWS Summit関連では以下の記事もございますので、よろしければご覧ください。
【AWS Summit Japan 2024】アーキテクチャ道場から学ぶ!

Last modified: 2024-06-30

Author