跳转到内容

提示工程:与模型对话的艺术

直觉版:提示是模型的”上下文剧本”

Section titled “直觉版:提示是模型的”上下文剧本””

提示工程不是”骗”模型,而是给它最有利于完成任务的上下文。就像给演员一份好的剧本,模型需要清晰的指令、相关的背景信息和适当的示例来发挥最佳水平。

基础技巧包括:明确任务描述、提供少量示例(few-shot)、分解复杂问题、要求模型逐步思考(Chain-of-Thought)。这些方法不需要修改模型权重,却能显著提升表现。

工程版:从简单 prompt 到系统化设计

Section titled “工程版:从简单 prompt 到系统化设计”

工程实践中,提示设计已从”写一段话”演变为系统化工程:

  • 角色设定:给模型分配明确角色(“你是一位资深数据分析师”),可稳定输出风格。
  • 结构化模板:用 XML、Markdown 或 JSON 分隔指令、上下文、输入和输出格式,降低解析错误。
  • Few-shot 选择:示例的数量、顺序和质量都会影响结果。相似示例通常比随机示例更有效;示例顺序可能产生位置偏差。
  • Chain-of-Thought:在提示中加入”让我们逐步思考”或提供推理示例,能显著提升数学和逻辑任务表现,但会增加 token 消耗。
  • Self-consistency:让模型多次采样并投票,比单次 greedy decoding 更可靠,尤其适合有明确答案的任务。

生产系统中,提示版本管理同样重要:改变提示可能影响数百个下游用例。应建立提示版本库、回归测试和 A/B 评估框架。

示例代码:Few-shot 提示与 Chain-of-Thought

Section titled “示例代码:Few-shot 提示与 Chain-of-Thought”
def few_shot_prompt(task_description, examples, new_input):
"""构造 few-shot 提示"""
prompt = f"{task_description}\n\n"
for ex in examples:
prompt += f"输入: {ex['input']}\n输出: {ex['output']}\n\n"
prompt += f"输入: {new_input}\n输出:"
return prompt
# 示例:情感分类
task_desc = "判断以下文本的情感(正面/负面):"
examples = [
{"input": "这部电影太精彩了!", "output": "正面"},
{"input": "服务态度很差,不推荐。", "output": "负面"},
{"input": "价格合理,质量不错。", "output": "正面"}
]
new_input = "产品质量一般般,凑合能用。"
prompt = few_shot_prompt(task_desc, examples, new_input)
print(prompt)
# Chain-of-Thought 示例
def cot_prompt(question):
"""构造 CoT 提示"""
return f"""{question}
让我们一步步思考:
1. 首先,识别问题中的关键信息
2. 然后,列出解题所需的步骤
3. 逐步计算或推理
4. 最后,给出答案
解答:"""
math_question = "小明有15个苹果,给了小红5个,又买了8个,现在有多少个?"
print(cot_prompt(math_question))

研究版:提示的本质与自动优化

Section titled “研究版:提示的本质与自动优化”

研究上,提示工程的成功揭示了 LLM 的哪些能力?是上下文学习(in-context learning)让模型从示例中提取模式,还是提示 merely “解锁”了预训练已掌握的能力?这关系到我们对 LLM 泛化机制的理解。

自动提示优化(Automatic Prompt Engineering)试图用搜索、强化学习或梯度方法自动发现最佳提示。方向包括:离散提示搜索、软提示(soft prompts/prefix tuning)、以及让模型自己生成和评估候选提示。未来可能是”提示即代码”:用编程语言和类型系统来约束和组合提示模板。

🔬 开放研究问题

该领域的关键问题与研究方向:

  1. Chain-of-thought 的有效性边界在哪里?哪些任务类型无法从显式推理中受益?
  2. 自动提示优化能否超越人类设计的提示?其搜索空间的结构特征是什么?
  3. DeepSeek-R1 和 o1 类模型展示的"慢思考"能力是否代表了提示工程的终结?还是开启了新的范式?

本文引用论文

  • Chain-of-Thought Prompting Elicits Reasoning in Large Language Models — Jason Wei et al. (2022)

    提出 Chain-of-Thought(思维链)提示技术:通过在提示中加入中间推理步骤, 可以大幅提升大语言模型在数学、逻辑、常识推理等任务上的表现。 这个简单技巧把 LLM 的推理能力推向了接近人类的水平。

  • Large Language Models are Zero-Shot Reasoners — Takeshi Kojima et al. (2022)

    一句 "Let's think step by step" 就能在数学题上把准确率从 ~17% 拉到 ~78%。CoT 能力是模型自带、prompt 触发,这一发现震惊了整个社区。

  • Self-Consistency Improves Chain of Thought Reasoning in Language Models — Xuezhi Wang et al. (2022)

    自洽性(Self-Consistency)是对 CoT 的重要改进:不再贪心解码单条推理链, 而是采样多条不同的推理路径,然后取答案出现最多的那个(多数投票)。 这简单的技巧在多个推理基准上将准确率提升了 10-20 个百分点。

  • Least-to-Most Prompting Enables Complex Reasoning in Large Language Models — Denny Zhou et al. (2022)

    "先把难题拆成易题,再依次解决"是另一条与 CoT 平行的推理范式,对组合泛化任务尤其有效。和 CoT/ToT 一起构成"如何引导大模型分步思考"的三件套。

  • Let's Verify Step by Step — Hunter Lightman et al. (2023)

    提出过程监督(Process Supervision)方法:不仅奖励最终正确答案,还奖励每一步推理的正确性。通过训练一个验证器来评估每个推理步骤,在数学推理任务上显著优于仅奖励最终结果的结果监督(Outcome Supervision)。

  • DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning — DeepSeek-AI (2025)

    DeepSeek-R1 展示了纯粹通过强化学习(无监督微调启动)就能涌现出类 o1 的链式推理能力, 且主要使用 GRPO(组相对策略优化)而非 PPO。完全开源(权重 + 训练细节), 在多项推理基准上与 OpenAI o1 持平,是 2025 年最重要的开源 LLM 成果之一。