Slide 1

Slide 1 text

Automated Promptingを目指すその前に 2024/10/28 r.kagaya BLUEISH 【生成AI/LLM LT大会】今注目している技術や最新動向を共有!

Slide 2

Slide 2 text

r.kagaya 8 BtoB SaaS企業のエンジニア3 8 ヤフー株式会社でID連携システムの開" 8 2022年に現職に入社。生成AI/LLMチームの立ち上P 8 現在は新規事業 × LLM 自己紹介 @ry0_kaga

Slide 3

Slide 3 text

宣伝 趣味でPodcast始めました エンジニア寄りの話題が中心ですが、生成AI/LLM前提で幅広く取り上げる予定です

Slide 4

Slide 4 text

おことわり / 前提 おことわり / 前提 ‚ 基本的にLLMを組み込んだプロダクト/機能開発における話を想‡ ‚ Automationのレベル/度合いも様々だが、プロダクトに使うプロンプトを自動で評 価/チューニングすることを前提のスライドが大D ‚ Prompt Optimization、プロンプトチューニングなどとも呼ばれる領h ‚ 時間通りに終わるか不安なのでサクサク進めまm ‚ @ry0_kagaで本スライドリンクも投稿しているので、必要であればお手元でもご 確認ください!

Slide 5

Slide 5 text

Automated Prompting

Slide 6

Slide 6 text

の前にPromptingとは

Slide 7

Slide 7 text

Promptingとは LLMからタスク/目的に合った出力を得るための技術 › Prompting ≒ Prompt EngineerinŽ › LLMの大きな特徴の一つが汎用性・自由度の高w › 汎用性・自由度の高さを生かし、各々のドメインやタスクにおける最適な出力を得t › 何らかの評価基準を元に試行錯誤を繰り返し、最適なパラメーターを特定する営† › 「Prompt Engineeringの初期フェーズは、多くの場合OpenAIのPlaygroundの ようなアドホックな環境での実験から始まる9 › MicrosoftのBuilding Your Own Product Copilotより

Slide 8

Slide 8 text

Promptingとは 基本的なPrompting Cycle(ざっくり) BY 評価基準を決め` TY 初期Prompt書g CY 評価・改善ルーi 8Y 基準を満た6 bY GO

Slide 9

Slide 9 text

「何らかの評価が可能 / 出力基準があるなら、その基準で優れた出力を 得られる組み合わせ探索を自動化したら...?」 Automated Promptingの
 基本的なアイディア・発想の根幹

Slide 10

Slide 10 text

Automated Prompting

Slide 11

Slide 11 text

Prompt Automationとは Prompt Automationと一言で言っても色々 † Prompt Automation = 望ましい出力を得るためのプロンプトの生成を自動d † 本当に嬉しいのはプロンプトだけが単独で自動生成されることはではない? Prompt Generatorで
 初期プロンプトだけ生成 プロンプト自動生成
 して評価は人手 評価基準を定めて
 プロンプト自動生成・評価 RAG設定の
 自動チューニング Agentを
 自動生成するAgent FB・オンライン評価を踏ま えて自動改善/デプロイ

Slide 12

Slide 12 text

Automated Promptingの例 Automated Prompt Engineer(APE)/ 2022 x 関連研究としては最初期からある / 有名なAPV x 入力と出力のペアを与え、評価スコアに基づいてプロンプトを自動生成 https://arxiv.org/abs/2211.01910 Input: 北海道
 output: 札幌 Prompt:
 首都を回答して APE Input: 日本
 output: 東京 例

Slide 13

Slide 13 text

Automated Promptingの例 Automate Promptingが可能なツール抜粋(一部) Prompt Generator OpenAI, ClaudeなどがPlaygroundとして提供
 評価も実行可能 Vertex AI Prompt Optimizer 初期プロンプトと最適化設定を元にオプティマイザー・評価モデルが最適なプロンプ トとfew shotを探索 SAMMO Microsoftが提供するプロンプト管理・最適化ライブラリ
 データセットを元に最適なプロンプトを探索、推論の並列実行なども可能 DSPy CoTなどがモジュールとして定義され、モジュールを組み合わせたパイプラインを設 計可能。In/outのデータからFew showの組み合わせを探索 Auto Prompt Prompt 初期プロンプトを元に、最もスコアが高いプロンプトを出力
 評価に使用するデータの自動生成・手動アノテーションからの最適化が可能 RAG Builder テストデータセット・テンプレートを元にRAGパラメータ(例:チャンクサイズ)の 自動チューニング

Slide 14

Slide 14 text

Automated Promptingの例 (印象)初期パラメーターとしてIn/Out例を受け取るものが多い q インプットとアウトプットのExampleから生成・最適d q 評価メトリクスは内部でよしなに(一部カスタマイズ / 指定可能i q 複数のプロンプトとスコアが返却 
 Vertex AI Prompt Optimizerは初期プロンプトとEval Metricsを指定可能
 (他にも最適化モードやモデルなど)

Slide 15

Slide 15 text

Automated Promptingの例 SAMMO(Structure-aware Multi-Objective Metaprompt Optimization) d プロンプトエンジニアリングと最適化のためのPythonライブラリ Instruction Optimizationの3つのステッf dw Defining the set of initial candidateh qw 初期プロンプト、データセット、設o vw Define mutation operatorh qw e.g.) 既存の指示を単に言い換えi ˜w Run beam search "examples": [
 {
 "input": "Speaker 1: 'But aren't you afraid?' Speaker 2: 'Ma'am, sharks never attack anybody.'",
 "target_scores": {
 "yes": 0.0,
 "no": 1.0
 }
 },
 {
 "input": "Speaker 1: 'Do you want to quit?' Speaker 2: 'I've never been the type of person who throws in the towel when things get tough.'",
 "target_scores": {
 "yes": 0.0,
 "no": 1.0
 }
 } ] https://github.com/microsoft/sammo

Slide 16

Slide 16 text

Automated Promptingの例 AutoPrompt プロンプトの評価に使用するデータを自動生成・アノテーションを元に最適化 動作イメージ https://github.com/Eladlev/AutoPrompt

Slide 17

Slide 17 text

Automated Promptingの例 DSPy 「基盤モデルをプログラミングするためのフレームワーク(プロンプトではない)」 DSPy in 8 Steps ˆn タスク・期待される入力と出力を定} …n プログラムの処理フローを設‘ ‡n 訓練データと検証データを準ƒ ‰n 評価指標の定} ‡n 最適化前の基準性能を測j tn DSPyオプティマイザーでの最適 wn 反復改善 https://github.com/stanfordnlp/dspy

Slide 18

Slide 18 text

Automated Promptingの例 (参考)自作するなら 最低限以下の検討とコンポーネントが必要そ` Y 何を初期パラメーターとして受け取り探索 / 最適化を開始するt Y どうやって新しいプロンプトを生成するt Y どうやってプロンプトの良し悪しを判断するか

Slide 19

Slide 19 text

実際に採用するとしたら...?

Slide 20

Slide 20 text

Promptingの何が難しいのか?

Slide 21

Slide 21 text

Promptingの何が難しいのか ⁨⁩インプットの多様性・アウトプットの不確実性・評価の独自性 インプットの多様性 アウトプットの不確実性 評価の独自性 ƒ 自然言語で表現されるプロ ンプト、表現方法の無制X ƒ 多彩な組み合わせのパラ メータE ƒ 最適な組み合わせを見つけ るために多くの試行錯誤 ƒ 同一インプットでも出力が 変化しうる確率的/ブラッ クボックス的性g ƒ プロンプトの出力への影響 把握が困” ƒ 試行錯誤を繰り返すコスト ƒ タスク/目的ごとに変化す る評価(≒ 良い)の基™ ƒ ”良い要約”⁨⁩⁨⁩の定義はケース バイケー¹ ƒ 定量化/観点に落とし込む 難し¯ ƒ 試行錯誤 / 育てる必要ˆ ƒ 評価の評価

Slide 22

Slide 22 text

Promptingとは (再掲) 基本的なPrompting Cycle(ざっくり) Fc 評価基準を決めd Xc 初期Prompt書q Gc 評価・改善ルーs Bc 基準を満た@ fc GO

Slide 23

Slide 23 text

Promptingとは (再掲) 基本的なPrompting Cycle(ざっくり) Fc 評価基準を決めd Xc 初期Prompt書q Gc 評価・改善ルーs Bc 基準を満た@ fc GO 特に独自性が求められる のは評価基準 以降は極端に言えば
 組み合わせのPDCA

Slide 24

Slide 24 text

Promptingの何が難しいのか 評価の整備・メンテナンスがPrompt Automationにも肝要 考えるべきは「評価をどう実施、育てていくか?」 雑な例で考えてみると https://speakerdeck.com/shuntaito/llmops-dmlops 人手で評価 評価基準がない、もしく は曖昧 評価基準は多少なりある
 評価自体は人間が実施 評価基準を元に自動評価 が一定行えている 評価なし 自動評価あり

Slide 25

Slide 25 text

Promptingの何が難しいのか 評価の整備・メンテナンスがPrompt Automationにも肝要 考えるべきは「評価をどう実施、育てていくか?」 
 雑な例で考えてみると https://speakerdeck.com/shuntaito/llmops-dmlops 人手で評価 評価基準がない、もしく は曖昧 評価基準は多少なりある
 評価自体は人間が実施 評価基準を元に自動評価 が一定行えている 評価なし 自動評価あり 何を基準に作成するか
 わからない

Slide 26

Slide 26 text

Promptingの何が難しいのか 評価の整備・メンテナンスがPrompt Automationにも肝要 考えるべきは「評価をどう実施、育てていくか?」 
 雑な例で考えてみると https://speakerdeck.com/shuntaito/llmops-dmlops 人手で評価 評価基準がない、もしく は曖昧 評価基準は多少なりある
 評価自体は人間が実施 評価基準を元に自動評価 が一定行えている 評価なし 自動評価あり 結局人間による評価が
 プロセスのボトルネック

Slide 27

Slide 27 text

Promptingの何が難しいのか 評価の整備・メンテナンスがPrompt Automationにも肝要 考えるべきは「評価をどう実施、育てていくか?」 
 雑な例で考えてみると https://speakerdeck.com/shuntaito/llmops-dmlops 人手で評価 評価基準がない、もしく は曖昧 評価基準は多少なりある
 評価自体は人間が実施 評価基準を元に自動評価 が一定行えている 評価なし 自動評価あり 評価(信じるなら)を元に
 チューニングが一定行える

Slide 28

Slide 28 text

Promptingの何が難しいのか VercelのEval-driven Development w 非決定的なAIプロダクト開発において従来 のテスト手法と異なるアプローチのEvai w コードベース、人間、LLMによる評X w AIプロダクト開発の継続的な改善サイク„ w 評価、データ、モデル/プロダクトの フィードバックサイクルを回G w v0はEval-drivenでほぼ毎日プロンプトの改 善を行っている https://vercel.com/blog/eval-driven-development-build-better-ai-faster イメージ図 フィードバック ユーザーからの フィードバックを収 集し、システム・評 価基準改善に活用 評価 自動化評価、人によ る評価、LLMベース の評価を通じてシス テムの品質を測定 データ モデルの性能を向上 させるために高品質 なデータを収集 プロダクト/モデル モデル選択、プロン プト改善に焦点
 より良い結果をユー ザーに提供

Slide 29

Slide 29 text

「高速に改善し続ける」
 ためにも評価は重要

Slide 30

Slide 30 text

「高速に改善し続ける」
 ためにも評価は重要 ソフトウェア開発における自動テスト
 ≒ LLMプロダクトにおける評価

Slide 31

Slide 31 text

「高速に改善し続ける」
 ためにも評価は重要 ソフトウェア開発における自動テスト
 ≒ LLMプロダクトにおける評価 必要なのは

Slide 32

Slide 32 text

EDD(Eval Driven Development) かはともかく、継続的に改善を行うなら評価の仕組み
 それがあればPromptingの自動化は手の届く範囲かもしれない
 (プロンプト提案のアルゴリズムなどこれはこれで色々あるが)

Slide 33

Slide 33 text

Production AI Engineering 
 starts with Evals

Slide 34

Slide 34 text

まとめ

Slide 35

Slide 35 text

Prompt Automationの今後 (個人的感想)長期で考えたら自動化が進む ’ Automationのレベル/度合いも様々ではあるが、自動化が進むことにはなるだろœ ’ Prompt Generatorの利用、メタプロンプトも自動化ではあ… ’ 現時点ではサイクル全体のAutomationまでは辿り着かないケースが多いy q 評価/Evalの仕組みが整ってな q そこまで頻繁にプロンプトを修正しない <- 構造上の理由もあるが↑も関係、鶏S ’ プロダクト開発は検証してみないとわからない、試行錯誤/探索の™ ’ 評価基準だけでも試行錯誤/少しずつ育てる、チューニングしていくも˜ ’ プロンプトチューニングだけでも自動化する選択肢があるのはありがたい

Slide 36

Slide 36 text

Prompt Automationの今後 (個人的感想)人間が責務を持つべきことは? } 現時点で人間の介入が必要な理i } ドメイン知識の重要” } コンテキスト理解の必要” } 「AI(特に基盤モデル)をプロダクトに組み込み、AIプロダクトの精度向上・運用・ 継続改善サイクルを回す 」ことに責務を持 } Manual PromptingもAutomate Promptingもサイクルを回すHowの一F } プロンプトエンジニアと呼ぶのか生成AIエンジニアと呼ぶのかはさておき

Slide 37

Slide 37 text

まとめ まとめ  評価基準とフィードバックサイクルを回す仕組み(データフライウィール)の構築が 必要があることは変わらなo ‡ ManualかAutomateかは適切に選定すれば良o ‡ 基準がないと良し悪しを判断できない、判断できないと自動化もやり切れなo  とはいえPrompt Generatorだけでも普通に便'  ⁨⁩個人的にはAgentic Workflow, フローエンジニアリングの自動生成/チューニングがし たo Æ 単なる一プロンプトの自動生成以上のもの

Slide 38

Slide 38 text

おわり