こんにちはエンタープライズクラウド事業部の黒野です。
AWS re:Invent 2023 に現地参加しており、今現在も盛り上がっている LLM においてプロンプトエンジニアリングのベストプラクティスについて紹介されているセッションに参加してきました。

スピーカー

  • John Baker
  • AWS
  • Nicholas Marwell
  • Anthropic

セッションレベル

  • 300 – Advanced

セッション概要

Prompt engineering is the process of guiding large language models (LLMs)
to produce desired outputs.In this session, get an overview of prompt
engineering best practices and learn how to choose the most appropriate formats,
phrases,words, and symbols to get the most out of generative AI solutions while
improving accuracy and performance. This session uses
the Claude 2 LLM as an example of how prompt engineering helps to solve complex
customer use cases. Also learn how prompts can be integrated with your architecture
and how to use API parameters for tuning the model parameters using Amazon Bedrock.
プロンプトエンジニアリングは、大規模言語モデル(LLM)が望ましい出力を生成するように導くプロセスです。
このセッションでは、プロンプトエンジニアリングのベストプラクティスの概要を理解し、精度とパフォーマンスを
向上させながら生成 AI ソリューションを最大限に活用するために、最も適切なフォーマット、フレーズ、単語、記号を
選択する方法を学びます。このセッションでは、プロンプト・エンジニアリングが複雑な顧客のユースケースの解決に
どのように役立つかを、クロード2 LLM を例に説明します。また、プロンプトをお客様のアーキテクチャに統合する方法や、
Amazon Bedrock を使用してモデルパラメータをチューニングするための API パラメータの使用方法についても学びます。

Claude とは

Claude とは Anthropic社 が開発するLLM(大規模言語モデル)になります。
最近では今話題の Amazon Bedrock でも使用することができるため、ご存じの方も多いかと思います。
https://aws.amazon.com/jp/bedrock/claude/

セッション

プロンプトエンジニアリングについて

今回は例として10+10とは?と質問したパターンが挙げられていました。
一見、回答として20という回答が得られそうですが、この質問の答えはいくつも存在する。

10+10=20と多くの人達はとらえるだろうけれど、10+10とはそもそも何なのか?を問うていると認識された場合には異なる回答となるので、前もってどういった回答(期待値)を得たいのかを伝えておくことが大事です。
今回の場合であれば、単純に10+10の足し算というのを伝えれば多くの人が想定する回答を得られるかと思います。

シンプルなテクニック

まずは、簡単なテクニックとして以下の2つが上げられていました。

  • One-shot primpting
  • 1つの質問で回答を得る
  • Few-shot pronpting
  • 質問の前にバイアス(詳細な状況など)を伝えてから質問をすることでより期待値の高い回答

指示はとても重要

指示内容の情景から人間も LLM も心を読むことはできないので、より詳細な情報を的確に伝える必要がある。そしてこのプロンプトエンジニアリングは現代の多くの人にとって必要となる技術となります。

Neither humans nor LLMs can read minds,

RAG を使ったシステムデザイン

100K prompt について

大容量(10K~100Kトークン)のプロンプトを実行する際には以下の点に注意すると良いそうです。

  • 質問は文章の最後に記載すること
  • 指示と質問を XML タグを明確に分けることで注意深く Claude に読み込ませます
  • Claude で生成された質問と期待する回答の例を記載すること

まとめ

  • プロンプトエンジニアリングについてざっくりとしかこれまで認識していなかったが、本セッションを通して実践的なテクニックを多く学ぶことができました。
  • 生成系 AI 周りのプロダクトはAWSを扱う上でもまだまだ熱い領域だと思うので、自分もさらに吸収していかねばという気持ちになりました。
  • Anthropic の方が直接、セッションをして下さるというとても貴重なセッションだと思うので、アーカイブが公開されたらぜひご確認ください!!