Prompt engineering — 提示词工程
Jump to navigation
Jump to search
提示词工程(Prompt engineering)是一门开发和优化提示词(prompt)的学科,旨在与大型语言模型 (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):一种更先进的技术,主要有两种实现方式:一种是将推理过程建模为图,以实现更灵活的逻辑流(Besta 等人);另一种则侧重于融合不同的推理路径(Yao 等人)。
- 内置推理机制的模型 (Reasoning Models):据报道,新一代模型(如 OpenAI 的 o1 和 o3)在训练时就已内置了内部推理链。这使它们无需明确的 CoT 提示就能执行复杂任务。
上下文管理与记忆处理
随着上下文窗口的扩大,新的挑战和解决方案也随之出现。
- 上下文窗口 (2024-2025年):
| 模型 | 最大上下文窗口 |
|---|---|
| Google Gemini 2.0 Pro | 200万 token |
| Google Gemini 1.5 Pro | 200万 token |
| Anthropic Claude 3.5 Sonnet | 約20万 token |
| OpenAI GPT-4o | 約12.8万 token |
从2025年3月起,Google Gemini 2.5 Pro 推出100万 token 的上下文窗口,而 Pro-Experimental 版本预计在2025年5月达到200万 token。
- 检索增强生成 (Retrieval-Augmented Generation, RAG):经典的 RAG 通过从外部数据库检索信息来增强提示词。现代实现方式包括:
- GraphRAG:利用知识图谱提取语义上更相关的知识。
- 多模态 RAG:不仅处理文本,还能处理图像、音频和视频。
- 代理式 RAG (Agentic RAG):将 RAG 集成到智能体循环中,由智能体自主决定何时以及检索何种信息。
- 长上下文技术:为了有效处理大容量窗口,业界采用了多种先进但通常是专有的技术,例如 Cascading KV Cache 和 Infinite Retrieval。
高级技巧:智能体与工具
- 工具使用 (Tool Usage):
- 函数调用 (Function Calling):模型(如 GPT-4、Claude 3.5)内置的调用外部 API 的能力。
- 模型上下文协议 (Model Context Protocol, MCP):根据一些初步报告(有待证实),一个旨在统一工具 API 的新标准正在开发中,并得到了微软的支持。
- 智能体与框架 (2024-2025年):
- LangChain (v0.3):随着 LangChain v0.3 于2024年9月发布,该框架已完全迁移到 Pydantic 2,并根据2024年10月的 EOL 期限停止了对 Python 3.8 的支持。[1]
- AutoGen:已完全转向基于 actor model 的异步、事件驱动架构。
- CrewAI:一个迅速普及的高性能框架,用于编排多智能体系统。
- No-code 平台:像 AutoGen Studio 这样的工具,允许用户无需编写代码即可创建和配置复杂的智能体。
减少幻觉的技巧
幻觉(生成与事实不符的信息)仍然是一个关键问题。截至2024年,主流模型的幻觉率在3%到16%之间,造成的经济损失估计高达数百亿美元。
- 经典方法:RAG、要求引用来源、调整生成参数(如 temperature、top-p)。
- 现代对齐 (Alignment) 方法:
- 宪法 AI (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) 提示词:创建能够动态调用模型不同“专家”部分的提示词。
- 多模态模式:包含文本、图像和其他数据类型的提示词结构,用于处理复杂查询。
外部链接
- 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.