$30 off During Our Annual Pro Sale. View Details »

Automated Promptingを目指すその前に / Before we can aim...

r-kagaya
October 28, 2024

Automated Promptingを目指すその前に / Before we can aim for Automated Prompting

10/28日に開催の【生成AI/LLM LT大会】今注目している技術や最新動向を共有!の資料です
https://blueish.connpass.com/event/333518/

r-kagaya

October 28, 2024
Tweet

More Decks by r-kagaya

Other Decks in Technology

Transcript

  1. おことわり / 前提 おことわり / 前提 ‚ 基本的にLLMを組み込んだプロダクト/機能開発における話を想‡ ‚ Automationのレベル/度合いも様々だが、プロダクトに使うプロンプトを自動で評

    価/チューニングすることを前提のスライドが大D ‚ Prompt Optimization、プロンプトチューニングなどとも呼ばれる領h ‚ 時間通りに終わるか不安なのでサクサク進めまm ‚ @ry0_kagaで本スライドリンクも投稿しているので、必要であればお手元でもご 確認ください!
  2. Promptingとは LLMからタスク/目的に合った出力を得るための技術 › Prompting ≒ Prompt EngineerinŽ › LLMの大きな特徴の一つが汎用性・自由度の高w ›

    汎用性・自由度の高さを生かし、各々のドメインやタスクにおける最適な出力を得t › 何らかの評価基準を元に試行錯誤を繰り返し、最適なパラメーターを特定する営† › 「Prompt Engineeringの初期フェーズは、多くの場合OpenAIのPlaygroundの ようなアドホックな環境での実験から始まる9 › MicrosoftのBuilding Your Own Product Copilotより
  3. Prompt Automationとは Prompt Automationと一言で言っても色々 † Prompt Automation = 望ましい出力を得るためのプロンプトの生成を自動d †

    本当に嬉しいのはプロンプトだけが単独で自動生成されることはではない? Prompt Generatorで
 初期プロンプトだけ生成 プロンプト自動生成
 して評価は人手 評価基準を定めて
 プロンプト自動生成・評価 RAG設定の
 自動チューニング Agentを
 自動生成するAgent FB・オンライン評価を踏ま えて自動改善/デプロイ
  4. Automated Promptingの例 Automated Prompt Engineer(APE)/ 2022 x 関連研究としては最初期からある / 有名なAPV

    x 入力と出力のペアを与え、評価スコアに基づいてプロンプトを自動生成 https://arxiv.org/abs/2211.01910 Input: 北海道
 output: 札幌 Prompt:
 首都を回答して APE Input: 日本
 output: 東京 例
  5. 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パラメータ(例:チャンクサイズ)の 自動チューニング
  6. Automated Promptingの例 (印象)初期パラメーターとしてIn/Out例を受け取るものが多い q インプットとアウトプットのExampleから生成・最適d q 評価メトリクスは内部でよしなに(一部カスタマイズ / 指定可能i q

    複数のプロンプトとスコアが返却 
 Vertex AI Prompt Optimizerは初期プロンプトとEval Metricsを指定可能
 (他にも最適化モードやモデルなど)
  7. 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
  8. Automated Promptingの例 DSPy 「基盤モデルをプログラミングするためのフレームワーク(プロンプトではない)」 DSPy in 8 Steps ˆn タスク・期待される入力と出力を定}

    …n プログラムの処理フローを設‘ ‡n 訓練データと検証データを準ƒ ‰n 評価指標の定} ‡n 最適化前の基準性能を測j tn DSPyオプティマイザーでの最適 wn 反復改善 https://github.com/stanfordnlp/dspy
  9. Promptingの何が難しいのか ⁨⁩インプットの多様性・アウトプットの不確実性・評価の独自性 インプットの多様性 アウトプットの不確実性 評価の独自性 ƒ 自然言語で表現されるプロ ンプト、表現方法の無制X ƒ 多彩な組み合わせのパラ

    メータE ƒ 最適な組み合わせを見つけ るために多くの試行錯誤 ƒ 同一インプットでも出力が 変化しうる確率的/ブラッ クボックス的性g ƒ プロンプトの出力への影響 把握が困” ƒ 試行錯誤を繰り返すコスト ƒ タスク/目的ごとに変化す る評価(≒ 良い)の基™ ƒ ”良い要約”⁨⁩⁨⁩の定義はケース バイケー¹ ƒ 定量化/観点に落とし込む 難し¯ ƒ 試行錯誤 / 育てる必要ˆ ƒ 評価の評価
  10. Promptingとは (再掲) 基本的なPrompting Cycle(ざっくり) Fc 評価基準を決めd Xc 初期Prompt書q Gc 評価・改善ルーs

    Bc 基準を満た@ fc GO 特に独自性が求められる のは評価基準 以降は極端に言えば
 組み合わせのPDCA
  11. Promptingの何が難しいのか 評価の整備・メンテナンスがPrompt Automationにも肝要 考えるべきは「評価をどう実施、育てていくか?」 
 雑な例で考えてみると https://speakerdeck.com/shuntaito/llmops-dmlops 人手で評価 評価基準がない、もしく は曖昧

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

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

    評価基準は多少なりある
 評価自体は人間が実施 評価基準を元に自動評価 が一定行えている 評価なし 自動評価あり 評価(信じるなら)を元に
 チューニングが一定行える
  14. 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ベース の評価を通じてシス テムの品質を測定 データ モデルの性能を向上 させるために高品質 なデータを収集 プロダクト/モデル モデル選択、プロン プト改善に焦点
 より良い結果をユー ザーに提供
  15. Prompt Automationの今後 (個人的感想)長期で考えたら自動化が進む ’ Automationのレベル/度合いも様々ではあるが、自動化が進むことにはなるだろœ ’ Prompt Generatorの利用、メタプロンプトも自動化ではあ… ’ 現時点ではサイクル全体のAutomationまでは辿り着かないケースが多いy

    q 評価/Evalの仕組みが整ってな q そこまで頻繁にプロンプトを修正しない <- 構造上の理由もあるが↑も関係、鶏S ’ プロダクト開発は検証してみないとわからない、試行錯誤/探索の™ ’ 評価基準だけでも試行錯誤/少しずつ育てる、チューニングしていくも˜ ’ プロンプトチューニングだけでも自動化する選択肢があるのはありがたい
  16. Prompt Automationの今後 (個人的感想)人間が責務を持つべきことは? } 現時点で人間の介入が必要な理i } ドメイン知識の重要” } コンテキスト理解の必要” }

    「AI(特に基盤モデル)をプロダクトに組み込み、AIプロダクトの精度向上・運用・ 継続改善サイクルを回す 」ことに責務を持 } Manual PromptingもAutomate Promptingもサイクルを回すHowの一F } プロンプトエンジニアと呼ぶのか生成AIエンジニアと呼ぶのかはさておき
  17. まとめ まとめ  評価基準とフィードバックサイクルを回す仕組み(データフライウィール)の構築が 必要があることは変わらなo ‡ ManualかAutomateかは適切に選定すれば良o ‡ 基準がないと良し悪しを判断できない、判断できないと自動化もやり切れなo 

    とはいえPrompt Generatorだけでも普通に便'  ⁨⁩個人的にはAgentic Workflow, フローエンジニアリングの自動生成/チューニングがし たo Æ 単なる一プロンプトの自動生成以上のもの