Prompt engineering — プロンプトエンジニアリング
Jump to navigation
Jump to search
プロンプトエンジニアリングとは、大規模言語モデル (LLM)と効果的に対話するためのプロンプト(指示や質問)を設計・最適化する技術分野です。プロンプトの品質は、モデルの応答の正確性、関連性、安全性を直接的に決定します。この分野は急速に発展しており、手作業による指示の調整から、複雑なエージェントシステムの構築や、組み込みの推論メカニズムを持つモデルの利用へと移行しています。
プロンプトの基本原則と構造
統一された基準は存在しませんが、効果的なプロンプトは、様々な研究者や企業(例:OpenAIの6つの戦略やAnthropicの実践的ガイドライン)によって提案されている共通のアプローチに基づいています。
- 効果的なプロンプトには、多くの場合、以下の要素が含まれます:
- 役割 (Persona): モデルの文脈や振る舞いのスタイルを設定します(「あなたは上級研究員です...」)。
- 指示 (Instructions): 何をすべきかについての明確で段階的な指示。
- 文脈 (Context): タスクを実行するために必要な情報。
- 例 (Examples): 望ましい形式やスタイルを示すデモンストレーション(few-shot prompting)。
- 出力形式 (Output Format): 応答の構造を指定します(例:JSON、Markdown)。
Reasoning - 推論の改善技術
これらの技術は、モデルがより構造化された形で「思考」するように促します。重要な注意点(創発性): Chain‑of‑Thought技術の有効性は、大規模なモデル(パラメータ数約1000億以上)でのみ顕著に現れ、小規模なモデルでは効果がほとんどないか、結果が悪化する場合があります。
- Chain-of-Thought (CoT): モデルに最終的な回答の前に段階的な推論を生成させる指示(「ステップバイステップで考えなさい」)。
- CoTのバリエーションと代替案:
- Self-Consistency: 複数の推論チェーンを生成し、「投票」によって最も頻繁に出現した回答を選択します。
- Tree-of-Thoughts (ToT): 複数の推論経路を木構造で探索し、各ステップを評価して前のステップに戻ることも可能です。
- Graph-of-Thought (GoT): 2つの主要な実装が存在する高度な技術。一つはより柔軟な論理フローのために推論をグラフとしてモデル化し(Besta et al.)、もう一つは推論経路のマージに焦点を当てています(Yao et al.)。
- 組み込み推論メカニズム (Reasoning Models): 当初から内部の推論チェーンを用いて学習される新世代のモデル(OpenAIのo1やo3など)の開発が報告されています。これにより、明示的なCoTプロンプティングなしで複雑なタスクを実行できます。
コンテキスト管理とメモリの操作
コンテキストウィンドウの拡大に伴い、新たな課題と解決策が登場しています。
- コンテキストウィンドウ (2024-2025):
| モデル | 最大コンテキストウィンドウ |
|---|---|
| Google Gemini 2.0 Pro | 200万トークン |
| Google Gemini 1.5 Pro | 200万トークン |
| Anthropic Claude 3.5 Sonnet | 約20万トークン |
| OpenAI GPT-4o | 約12.8万トークン |
2025年3月以降、Google Gemini 2.5 Proは100万トークンのコンテキストウィンドウで提供され、Pro-Experimental版は2025年5月に200万トークンを約束しています。
- Retrieval-Augmented Generation (RAG): 古典的なRAGは、外部データベースからの情報でプロンプトを補強します。現代的な実装には以下が含まれます:
- GraphRAG: ナレッジグラフを使用して、より意味的に関連性の高いデータを抽出します。
- マルチモーダルRAG: テキストだけでなく、画像、音声、動画も扱います。
- Agentic RAG: RAGをエージェントのサイクルに統合し、エージェントがいつ、どのような情報を検索するかを自律的に決定します。
- 長いコンテキストのための技術: 大規模なウィンドウを効率的に扱うために、高度でありながらしばしばプロプライエタリな技術(Cascading KV CacheやInfinite Retrievalなど)が使用されます。
高度な技術:エージェントとツール
- ツールの使用 (Tool Usage):
- Function Calling: モデル(GPT-4, Claude 3.5)に組み込まれた、外部APIを呼び出す機能。
- Model Context Protocol (MCP): いくつかの予備報告(要確認)によると、MicrosoftがサポートするツールAPIを統一するための新しい標準が開発されています。
- エージェントとフレームワーク (2024-2025):
- LangChain (v0.3): LangChain v0.3(2024年9月)のリリースに伴い、フレームワークは完全にPydantic 2に移行し、2024年10月のEOL(サポート終了)に合わせてPython 3.8のサポートを終了しました。[1]
- AutoGen: 非同期のイベント駆動型アーキテクチャ(アクターモデル)に完全に移行しました。
- CrewAI: マルチエージェントシステムのオーケストレーションのための、急速に人気を集めている高性能フレームワーク。
- ノーコードプラットフォーム: AutoGen Studioのようなツールを使用すると、コードを書かずに複雑なエージェントを作成・設定できます。
ハルシネーションの低減技術
ハルシネーション(事実と異なる情報を生成すること)は依然として重要な課題です。2024年時点のデータによると、主要なモデルにおけるハルシネーションの発生率は3%から16%の範囲にあり、それによる経済的損失は数百億ドルと見積もられています。
- 古典的な手法: RAG、引用の要求、生成パラメータ(temperature, top-p)の調整。
- 現代的なアライメント手法 (Alignment):
- Constitutional AI (CAI): Anthropicによって提案された手法で、モデルが一連の原則(「憲法」)に従うように、AIが生成したフィードバックを用いて学習します。
- Direct Preference Optimization (DPO): RLHFに代わる、よりシンプルで効果的な手法。マルチモーダルVLM(例:放射線診断レポート)におけるDPOの研究では、ハルシネーションが3倍から4.8倍減少したことが記録されています。
プロンプトパターン:現状
多くのパターン(Persona, Output Customizationなど)は依然として有効です。
- 再考が必要なパターン:
- Fact Check List Pattern: 信頼性が低いと認識されています。モデルはプロンプティングによる自己事実確認が苦手であり、外部の検証システムとの統合が必要です。
- 新しいパターン (2024-2025):
- Meta-prompting: あるLLMを使用して、別のLLMのためのプロンプトを生成・最適化すること。
- Mixture-of-Experts (MoE) Prompts: モデルの異なる「専門家」部分に動的にアクセスするプロンプトを作成すること。
- マルチモーダルパターン: 複雑なクエリのために、テキスト、画像、その他のデータタイプを含むプロンプト構造。
外部リンク
- Anthropic Prompt Engineering Guide
- OpenAI Prompt Engineering Guide
- Google's Prompting Guide
- PromptingGuide.ai
- Amazon Bedrock
参考文献
- Radford, A. et al. (2019). Language Models are Unsupervised Multitask Learners. PDF.
- Brown, T. B. et al. (2020). Language Models are Few-Shot Learners. arXiv:2005.14165.
- Li, X. L.; Liang, P. (2021). Prefix-Tuning: Optimizing Continuous Prompts for Generation. arXiv:2101.00190.
- Liu, Y. et al. (2021). Fantastically Ordered Prompts and Where to Find Them: Overcoming Few-Shot Prompt Order Sensitivity. arXiv:2104.08786.
- Bai, Y. et al. (2022). Constitutional AI: Harmlessness from AI Feedback. arXiv:2212.08073.
- Kojima, T. et al. (2022). Large Language Models are Zero-Shot Reasoners. arXiv:2205.11916.
- Wang, X. et al. (2022). Self-Consistency Improves Chain of Thought Reasoning in Language Models. arXiv:2203.11171.
- Wei, J. et al. (2022). Chain-of-Thought Prompting Elicits Reasoning in Large Language Models. arXiv:2201.11903.
- Zhang, Z. et al. (2022). Automatic Chain of Thought Prompting in Large Language Models. arXiv:2210.03493.
- Zhou, D. et al. (2022). Least-to-Most Prompting Enables Complex Reasoning in Large Language Models. arXiv:2205.10625.
- Besta, M. et al. (2023). Graph of Thoughts: Solving Elaborate Problems with Large Language Models. arXiv:2308.09687.
- Madaan, A. et al. (2023). Self-Refine: Iterative Refinement with Self-Feedback. arXiv:2303.17651.
- Rafailov, R. et al. (2023). Direct Preference Optimization: Your Language Model is Secretly a Reward Model. arXiv:2305.18290.
- Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. arXiv:2302.04761.
- Wang, Y. et al. (2023). Self-Instruct: Aligning Language Models with Self-Generated Instructions. arXiv:2212.10560.
- Yao, S. et al. (2023). Tree of Thoughts: Deliberate Problem Solving with Large Language Models. arXiv:2305.10601.
- Chang, K. et al. (2024). Efficient Prompting Methods for Large Language Models: A Survey. arXiv:2404.01077.
- Genkina, D. (2024). AI Prompt Engineering Is Dead. IEEE Spectrum. [2].
- Li, Z. et al. (2024). Prompt Compression for Large Language Models: A Survey. arXiv:2410.12388.
- Liang, X. et al. (2024). Internal Consistency and Self-Feedback in Large Language Models: A Survey. arXiv:2407.14507.
- Li, W. et al. (2025). A Survey of Automatic Prompt Engineering: An Optimization Perspective. arXiv:2502.11560.
- Wu, Z. et al. (2025). The Dark Side of Function Calling: Pathways to Jailbreaking Large Language Models. EMNLP 2025. PDF.
- Yang, B. et al. (2025). Hallucination Detection in Large Language Models with Metamorphic Relations. arXiv:2502.15844.
脚注