Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Bedrockのプロンプト管理どうしてる?
Search
Har1101
June 20, 2025
5
290
Bedrockのプロンプト管理どうしてる?
6/20(金) JAWS-UG 名古屋 6月会「AWSユーザーが繋がるOST&LT夜会」での登壇資料です
Har1101
June 20, 2025
Tweet
Share
More Decks by Har1101
See All by Har1101
AIにどこまで任せる?実務で使える(かもしれない)AIエージェント設計の考え方
har1101
3
1k
Ambient Agent on AWS!
har1101
3
440
Bedrockエージェントにおける MCP利用ケースについて考えてみる
har1101
4
390
AWS上でMCPを安全に使いたい ~Mastraを添えて~
har1101
7
1.7k
Bedrock×MCPで社内ブログ執筆文化を育てたい!
har1101
7
2k
Amazon Bedrock Agentsのマルチエージェント機能で競馬予想アプリ作ってみた!
har1101
5
910
re:Inventのアップデートを使ってRAGアプリ開発とRAGOpsに入門してみた!
har1101
1
320
BedrockのナレッジベースとLlamaIndexでGraphRAGを作って精度比較してみた!
har1101
3
490
Amazon Bedrock Agentsを用いてアプリ開発してみた!
har1101
0
820
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
A better future with KSS
kneath
239
17k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
Documentation Writing (for coders)
carmenintech
71
4.9k
Adopting Sorbet at Scale
ufuk
77
9.4k
Git: the NoSQL Database
bkeepers
PRO
430
65k
We Have a Design System, Now What?
morganepeng
52
7.6k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.3k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Become a Pro
speakerdeck
PRO
28
5.4k
Transcript
Bedrockのプロンプト管理どうしてる? 2025/06/20 (金) JAWS-UG 名古屋 6月会「AWSユーザーが繋がるOST&LT夜会」 福地開
Who am I ? 福地 開 (ふくち はるき) @har1101mony 所属:NECソリューションイノベータ株式会社
年次:3年目 業務:インフラエンジニア、少しだけLLM触る人 活動:AWS Community Builders (AI Engineering)
今日話すこと ◆LLMアプリやAIエージェントシステムにおけるプロンプト管理 • プロンプト管理の概要と、必要な理由 • プロンプトと評価 • 具体的な管理方法 • 簡単な使い方のTips
※プロンプトエンジニアリングのお話はしません ※試料中で「プロンプト」と記載しているものは「システムプロンプト」のことを指します ※資料中で「AI」と記載しているものは「生成AI」とりわけ「LLM」のことを指します ※所属組織とは一切関係ない、私個人の意見・考えとなります
プロンプト管理とは? なぜ必要なのか?
前提知識:システムプロンプト ◆「あなたは〇〇なAIですよ、こういうことしてくださいね」 という指示を書くもの • システムプロンプトは、モデルの役割、機能、制約に関する高レベルの指示 を提供します。 これにより、会話全体を通してモデルがどのように動作するかの基礎が設定 されます。(https://strandsagents.com/0.1.x/user-guide/concepts/agents/prompts/ )
前提知識:システムプロンプト ◆「あなたは〇〇なAIですよ、こういうことしてくださいね」 という指示を書くもの • システムプロンプトは、モデルの役割、機能、制約に関する高レベルの指示 を提供します。 これにより、会話全体を通してモデルがどのように動作するかの基礎が設定 されます。(https://strandsagents.com/0.1.x/user-guide/concepts/agents/prompts/ ) ◆ややこしいポイント:ユーザーメッセージもプロンプトと言われる
前提知識:システムプロンプト ◆「あなたは〇〇なAIですよ、こういうことしてくださいね」 という指示を書くもの • システムプロンプトは、モデルの役割、機能、制約に関する高レベルの指示 を提供します。 これにより、会話全体を通してモデルがどのように動作するかの基礎が設定 されます。(https://strandsagents.com/0.1.x/user-guide/concepts/agents/prompts/ ) ◆ややこしいポイント:ユーザーメッセージもプロンプトと言われる
プロンプト管理とは ◆ソースコードとは別でプロンプトを管理すること • よくあるケース:コード内にプロンプトベタ書き(ハンズオンなど) https://strandsagents.com/0.1.x/user-guide/concepts/agents/prompts/
プロンプト管理とは ◆ソースコードとは別でプロンプトを管理すること • よくあるケース:コード内にプロンプトベタ書き(ハンズオンなど) • プロンプト管理:ソースコードとプロンプトを別で管理すること https://qiita.com/minorun365/items/9d0d11f0ecb4c29924d5
プロンプト管理とは ◆ソースコードとは別でプロンプトを管理すること • よくあるケース:コード内にプロンプトベタ書き(ハンズオンなど) • プロンプト管理:ソースコードとプロンプトを別で管理すること なぜ別で管理する必要が?
プロンプト管理とは ◆ソースコードとは別でプロンプトを管理すること • よくあるケース:コード内にプロンプトベタ書き(ハンズオンなど) • プロンプト管理:ソースコードとプロンプトを別で管理すること なぜ別で管理する必要が? →評価、ひいてはLLMOpsに関わるため
プロンプトと評価
そもそも「評価」って何? ◆大前提:AIが生成した回答の正解は1つではない • (例)世界で一番高い山は?という問いに対して…
そもそも「評価」って何? ◆大前提:AIが生成した回答の正解は1つではない • (例)世界で一番高い山は?という問いに対して… AI「エベレストです」→正解 AI「ヒマラヤ山脈にあるエベレストです。その標高は8848mで〜」→正解 AI「1位はエベレスト、2位はK2、3位はカンチェンジュンガです」→正解
そもそも「評価」って何? ◆大前提:AIが生成した回答の正解は1つではない • (例)世界で一番高い山は?という問いに対して… AI「エベレストです」→正解 AI「ヒマラヤ山脈にあるエベレストです。その標高は8848mで〜」→正解 AI「1位はエベレスト、2位はK2、3位はカンチェンジュンガです」→正解 • だが、どの回答を求めているかは利用者による
そもそも「評価」って何? ◆大前提:AIが生成した回答の正解は1つではない • (例)世界で一番高い山は?という問いに対して… AI「エベレストです」→正解 AI「ヒマラヤ山脈にあるエベレストです。その標高は8848mで〜」→正解 AI「1位はエベレスト、2位はK2、3位はカンチェンジュンガです」→正解 • だが、どの回答を求めているかは利用者による ◆評価:AIの回答において「何を正解とするか」を定める行為
• 人間側で「正解」を設定し、そこからどのくらい差が生じているかを 定性的・定量的に判断する必要がある • 回答に有害な内容やハルシネーションが含まれていないかをチェックする (責任あるAI)
そもそも「評価」って何? ◆大前提:AIが生成した回答の正解は1つではない • (例)世界で一番高い山は?という問いに対して… AI「エベレストです」→正解 AI「ヒマラヤ山脈にあるエベレストです。その標高は8848mで〜」→正解 AI「1位はエベレスト、2位はK2、3位はカンチェンジュンガです」→正解 • だが、どの回答を求めているかは利用者による ◆評価:AIの回答において「何を正解とするか」を定める行為
• 人間側で「正解」を設定し、そこからどのくらい差が生じているかを 定性的・定量的に判断する必要がある • 回答に有害な内容やハルシネーションが含まれていないかをチェックする (責任あるAI) • 「評価は継続的な道のりである(Evals is a continuous journey)」
評価方法って2種類あんねん ◆オフライン評価 • 用意した模範解答と、AIが出力した回答を照らし合わせる(できれば数値化) • プロンプト・モデル・パラメータなどを変更する前後で比較する • LLM as a
Judge など、AI自身に回答を評価させる手法もある • MCP Server as a Judge も選択肢の1つ https://speakerdeck.com/pharma_x_tech/llmapurikesiyonnoping-jia-toji-sok-de-gai-shan https://speakerdeck.com/licux/mcp-server-as-a-judge
評価方法って2種類あんねん ◆オフライン評価 • 用意した模範解答と、AIが出力した回答を照らし合わせる(できれば数値化) • プロンプト・モデル・パラメータなどを変更する前後で比較する • LLM as a
Judge など、AI自身に回答を評価させる手法もある • MCP Server as a Judge も選択肢の1つ ◆オンライン評価 • 人間(特に利用者)が実際に使った上で結果を評価する • 簡単なもので言えば、Good/Bad • よりリアルなフィードバックを得られるので、可能な限り実施したい →結局、使う人間の感覚次第で良いか悪いかは決まる (コーディングエージェントにおいてベンチマークばかり見るのではなく 自分で試してみろ、と言われていることからも)
評価と改善のサイクル=LLMOps ◆評価って設計段階から考えるの? ◆考えておいたほうが良い • 少なくとも現状、LLMアプリは「リリースして終わり!」にはならない • 評価+改善のサイクル(LLMOps)が一生付き纏う (進化が早すぎる…) 実装 テスト
評価 改善
評価と改善のサイクル=LLMOps ◆評価って設計段階から考えるの? ◆考えておいたほうが良い • 少なくとも現状、LLMアプリは「リリースして終わり!」にはならない • 評価+改善のサイクル(LLMOps)が一生付き纏う(進化が早すぎる…) ◆改善対象の1つにプロンプトが存在する • 精度が低い→もう少し具体的な指示にしてみよう
• 新しいモデルが出た→今までと同じプロンプトで良いのか? • 評価の際には、旧バージョンと新バージョンのプロンプトを比較する →プロンプトのバージョン管理が重要! 実装 テスト 評価 改善
コード内にプロンプトをベタ書きしていたら? • 毎回アプリケーションそのものの更新が必要になるのが面倒 • ドメインエキスパートがプロンプト修正する時のハードルとリスクが上がる • プロンプト単位でのバージョン管理が困難になる →正確な評価を実施するのが難しくなる
コードとプロンプトを別で管理する • アプリケーションの更新とプロンプトの更新を別にできる →プロンプト単位でのバージョン管理が可能! →正確な評価を実施しやすくなる! • ドメインエキスパートなど、非エンジニア職とアプリケーションロジックを遠ざ けつつ、プロンプト改善を容易にできる!
具体的な管理方法
Bedrock Prompt Management(プロンプト管理) ◆プロンプトの設定とテスト、バージョン管理ができる機能 • プロンプト・パラメータ変更と動作確認がコンソール上で簡単にできる
Bedrock Prompt Management(プロンプト管理) ◆プロンプトの設定とテスト、バージョン管理ができる機能 • プロンプト・パラメータ変更と動作確認がコンソール上で簡単にできる • プロンプト単体でのバージョン管理が可能
Bedrock Prompt Management(プロンプト管理) ◆プロンプトの設定とテスト、バージョン管理ができる機能 • プロンプト・パラメータ変更と動作確認がコンソール上で簡単にできる • プロンプト単体でのバージョン管理が可能+バージョン指定で呼び出し可能
コードとプロンプトを別で管理する • アプリケーションの更新とプロンプトの更新を別にできる →プロンプト単位でのバージョン管理が可能! →正確な評価を実施しやすくなる! • ドメインエキスパートなど、非エンジニア職とアプリケーションロジックを遠ざ けつつ、プロンプト改善を容易にできる! 再掲
Langfuseでのプロンプト管理&LLMOps ◆LLMアプリの構築・改善を支援するためのプラットフォーム • 機能の1つとして、プロンプト管理がある • これももちろんLambdaなどから利用可能 • LLMOpsに特化しているため、かなり機能が豊富 →プロンプト管理がしたいだけであればオーバースペック •
ただ、評価と改善のサイクルをスムーズに回したい場合はかなり有用
Langfuseでのプロンプト管理&LLMOps ◆外部ツール(OSS)だが、AWS環境上でセルフホストが可能 • 自社のAWS環境に閉じた利用が可能 • 詳しくはKAG tuboneさんの記事参照 https://tubone-project24.xyz/2024-12-30/Langfuse- v3%E3%82%92AWS%E3%83%9E%E3%83%8D%E3%83%BC%E3%82%B8%E3%83%89%E3%82%B5%E3 %83%BC%E3%83%93%E3%82%B9%E3%81%A7%E4%BD%9C%E3%82%8B
簡単な使い方のTips
①呼び出し方が少し特殊 ◆BedrockのConverse APIやInvokeModel APIで呼び出すのは同じ ◆変わるのは、modelIdの書き方 • 普通は、基盤モデルのIDを書く
①呼び出し方が少し特殊 ◆BedrockのConverse APIやInvokeModel APIで呼び出すのは同じ ◆変わるのは、modelIdの書き方 • 普通は、左のように基盤モデルのIDを書く • Prompt Managementを使う場合は、PromptのARNとバージョンを指定
②変数を使おう ◆変数を使って、プロンプトへの入力を動的に変化させられる ◆ユーザーからの入力や、DBのデータなどを入れると良さそう
◆プロンプト管理についてお話しました • プロンプト管理の概要と、必要な理由 • プロンプトと評価 • 具体的な管理方法 • 簡単な使い方のTips ◆プロンプト1つ取っても、意外と考えることがある!
◆ハンズオンの時にでもちょっと挑戦してみてはいかがでしょうか? まとめ