Prompt Engineering(提示工程)完整指南:从入门到进阶
Prompt Engineering 是 AI 面试中仅次于微调的高频题。本文系统梳理提示工程的核心理念、实战技巧和进阶策略。
一、什么是 Prompt Engineering?
1.1 定义
Prompt Engineering(提示工程) 是指通过精心设计输入文本(Prompt),引导大语言模型(LLM)生成预期输出的技术。它是不需要修改模型参数的”软技能”,但效果往往决定了大模型的实际可用性。
1.2 为什么重要?
- 直接影响模型输出质量 — 同一个模型,Prompt 不同效果天差地别
- 最经济的优化手段 — 不需要训练,不需要算力
- 面试必考 — 几乎所有 AI 岗位面试都会问
二、Prompt 的核心要素
2.1 角色设定(Role)
给模型一个明确的身份,大幅提升输出质量。
2.2 任务描述(Task)
清晰、具体、量化的任务描述。
2.3 上下文(Context)
提供必要的背景信息。
2.4 输出格式(Format)
明确指定输出的结构和样式。
2.5 示例(Few-shot)
给模型提供输入输出的范例。
三、Prompt 的核心技术
3.1 零样本提示(Zero-shot)
直接给出任务描述,不给示例。
适用: 简单、明确的分类任务
3.2 少样本提示(Few-shot)
提供 2~5 个示例,让模型学习模式。
适用: 需要理解输出格式或分类标准的任务
3.3 思维链(Chain-of-Thought, CoT)
引导模型逐步推理,而不是直接给出答案。
面试高频问题: CoT 为什么有效?→ 因为它让模型有”思考空间”,将隐式的推理过程显式化,减少了跳跃性错误。
3.4 思维树(Tree-of-Thoughts, ToT)
CoT 的进阶版,同时探索多条推理路径。
3.5 思维链的进阶技巧
| 技巧 | 描述 | 适用场景 |
|---|---|---|
| Zero-shot CoT | 直接加 “Let’s think step by step” | 通用推理 |
| Auto-CoT | 自动生成推理示例 | 节省 Token |
| Contrastive CoT | 同时给正确和错误的推理示例 | 需要避免常见错误 |
| Self-Consistency | 多次采样取多数答案 | 提高准确性 |
四、Prompt 的高级技巧
4.1 结构化 Prompt
将复杂的 Prompt 拆解为清晰的结构。
4.2 角色链(Chain of Role)
让模型在多个角色间切换。
4.3 对抗性 Prompt
让模型检查和反驳自己的输出。
4.4 温度调节
| 温度值 | 特点 | 适用场景 |
|---|---|---|
| 0~0.2 | 确定性强,输出稳定 | 代码生成、分类、抽取 |
| 0.3~0.7 | 平衡创造力和准确性 | 日常对话、翻译 |
| 0.8~1.0 | 创造力强,多样性高 | 创意写作、头脑风暴 |
4.5 系统提示词(System Prompt)
在对话开始时设定全局行为。
五、Prompt 优化的迭代流程
优化 Checklist:
– [ ] 角色设定是否明确?
– [ ] 任务描述是否具体?
– [ ] 是否有足够的上下文?
– [ ] 输出格式是否指定?
– [ ] 是否需要示例?
– [ ] 约束条件是否清晰?
– [ ] 边界情况是否覆盖?
六、常见 Prompt 陷阱
6.1 Prompt 注入(Prompt Injection)
用户通过恶意输入劫持模型行为。
6.2 过度约束
给模型太多限制反而降低了输出质量。
6.3 自相矛盾的指令
七、面试高频问题整理
Q1: Zero-shot 和 Few-shot 的区别?
A: Zero-shot 不给示例直接推理,适合简单任务。Few-shot 给 2~5 个示例让模型学习模式,适合需要理解格式或分类标准的任务。
Q2: CoT(思维链)为什么有效?
A: 它让模型把隐式的推理过程显式化,减少了跳跃性错误。模型”看到自己思考的过程”可以自我纠正。
Q3: System Prompt 和 User Prompt 的区别?
A: System Prompt 设定模型的全局行为和角色,用户不可见;User Prompt 是用户的具体输入。System Prompt 优先级高于 User Prompt。
Q4: 如何设计一个好的 Prompt?
A: 明确角色→清晰任务→提供上下文→指定格式→给示例→加约束→测试迭代。
Q5: 长度限制对我设计 Prompt 有什么影响?
A: 模型有上下文窗口限制(如 4K/8K/128K),系统提示+用户输入+历史对话+模型输出总长度不能超过限制。设计 Prompt 时要留下足够的空间给模型输出。
Q6: 温度(Temperature)参数怎么调?
A: 需要确定性任务用 0~0.2(代码、分类),创意任务用 0.7~1.0(写作、头脑风暴),日常对话用 0.3~0.7。
Q7: 什么是 Prompt 注入?怎么防?
A: 用户通过输入劫持模型行为。防护:输入过滤、隔离系统提示与用户输入、权限分离。
Q8: 同一个问题反复问,结果不一样怎么办?
A: 大模型本身有随机性。如果需要一致性,将 temperature 设为 0,使用结构化输出格式,或通过多次采样取多数(Self-Consistency)。
八、总结
Prompt Engineering 的核心原则:
- 角色明确 — 给模型一个身份
- 任务具体 — 清晰描述你要什么
- 上下文充分 — 提供必要的背景
- 格式指定 — 明确输出的结构和样式
- 示例引导 — 用少样本让模型理解模式
- 迭代优化 — 没有完美的 Prompt,只有不断迭代
一句话记住: 给模型写 Prompt,就像给下属布置任务——越清晰、越具体、越结构化,结果就越好。


暂无评论内容