Prompt 工程

📅 2026/7/17 5:23:28 👁️ 阅读次数 📝 编程学习
Prompt 工程

Prompt 工程(Prompt Engineering)详细解读

一、什么是 Prompt 工程

Prompt 工程是指设计、优化输入文本(Prompt),使大语言模型(LLM)产出更符合预期结果的一套方法论与技术体系。

一句话本质:你不会"编程"模型,你是在"沟通"模型,Prompt 就是这门沟通语言。

随着 GPT 为代表的 LLM 爆发,模型能力不再卡在"模型本身",而卡在"你怎么问"。同样一个模型,Prompt 写得好不好,输出质量可能差 10 倍。


二、为什么 Prompt 工程有效(底层原理)

要写好 Prompt,得先理解模型是怎么"读"它的:

  1. Next-token prediction:模型本质是根据上文预测下一个 token,Prompt 就是"上文"。

  2. In-context Learning(上下文学习):LLM 不在 Prompt 里更新权重,但通过示例能在上下文里"临时学会"任务模式。

  3. Attention 聚焦:Prompt 里的关键词会通过注意力机制影响模型关注哪些知识。

  4. 概率采样:温度、top-p 等参数决定模型是"保守复述"还是"发散创造"。

💡 所以 Prompt 工程的本质:用自然语言"编程"模型的注意力分配和推理路径


三、Prompt 工程的六大核心要素

一个成熟的 Prompt 通常包含以下模块(不一定全用,按场景组合):

1. 角色设定(Role / Persona)

让模型切换到特定身份,激活对应知识分布。

你是一位有 10 年经验的资深 Java 架构师,擅长高并发系统设计。

2. 任务描述(Task)

清晰告诉模型"做什么",避免歧义。

请将下面这段中文技术文档翻译成英文,要求:术语准确、句式简洁、保留 Markdown 格式。

3. 上下文(Context)

给背景信息,减少模型"猜"的空间。

我们的系统是电商秒杀场景,QPS 峰值 5 万,用的是 Redis + MySQL 架构……

4. 示例(Few-shot / 思维链触发)

给 1~3 个"输入→输出"样例,模型会模仿模式。

例 1:输入"今天天气好" → 输出"晴朗宜出门,紫外线中等" 例 2:输入"明天有雨" → 输出"记得带伞,气温下降 3℃" 现在处理:输入"周末降温"

5. 约束条件(Constraints)

格式、长度、风格、禁忌。

- 输出 JSON,不要多余解释 - 不超过 200 字 - 避免使用"首先/其次/最后"

6. 输出格式(Output Format)

明确指定返回结构,方便程序解析。

请按以下格式返回: { "summary": "...", "tags": [...], "confidence": 0.0-1.0 }

四、经典 Prompt 技巧图谱

🔹 零样本(Zero-shot)

直接描述任务,不給示例。适合简单任务。

判断下列评论的情感:正面/负面/中性 评论:这手机续航太拉了

🔹 少样本(Few-shot)

给 2~5 个示例,模型泛化效果显著提升,尤其对分类、抽取、格式转换。

🔹 思维链(Chain-of-Thought, CoT)

让模型"一步步想",对数学、推理、代码类任务效果炸裂。

请一步步推理,再给答案: 小明有 3 个苹果,小红给他 2 个,他又吃了 1 个,还剩几个?

变体:Self-Consistency CoT(跑多次取多数投票)、Least-to-Most(把大问题拆小问题)。

🔹 角色 + 分步(Role + Step-by-Step)

复杂任务拆阶段,每阶段确认再继续,避免一口气跑偏。

🔹 反向 Prompt(Negative Prompt / "不要什么")

明确告诉模型别做什么,比只说"要什么"更有效。

不要编造数据,如果不确定请说"未知"。

🔹 结构化分隔符

###===、XML 标签帮模型分清结构,尤其长 Prompt。

<context>...</context> <question>...</question> <format>...</format>

五、进阶:Prompt 工程的工作流

工业级用法不是"写一句就完事",而是迭代闭环

写初版 Prompt → 跑测试集 → 看 bad case → 加示例/调措辞 → 再测 → 固化

配套工具链:

  • Prompt 版本管理:像管代码一样管 Prompt(PromptLayer、LangSmith)

  • 自动优化:APE、DSPy、PromptBreeder 等框架让模型自己改 Prompt

  • RAG 结合:Retrieval-Augmented Generation,Prompt 里塞检索回来的知识,解决幻觉


六、常见坑位 ⚠️

表现

解法

指令太模糊

输出东拉西扯

加角色+约束+格式

示例不一致

模型学歪

示例风格/格式要统一

上下文太长

模型忘记开头

关键信息放开头或结尾(位置偏见)

温度设太高

胡说八道

事实类任务 temperature=0

忽略模型差异

GPT 能懂 Claude 懵

按模型调 Prompt,别一套通吃


七、Prompt 工程 vs 微调 vs RAG

这三件事常被混着谈,其实定位不同:

  • Prompt 工程:不改模型,改输入,成本最低、首选

  • RAG:外挂知识库,解决"模型不知道"和"幻觉",企业落地标配

  • 微调(Fine-tuning):改权重,适合风格/领域固化,但成本高、数据门槛高。

业界共识路线:先 Prompt → 不行加 RAG → 还不行再微调


八、学习路径建议

  1. 入门:把 OpenAI 的 "Prompt Engineering Guide" 和 Google 的 "Prompt Design" 过一遍

  2. 实战:每天拿一个真实任务(写邮件、SQL、代码 review)写 3 版 Prompt 对比

  3. 进阶:学 CoT、ReAct(推理+工具调用)、DSPy 框架

  4. 深耕:关注 Prompt 注入攻击(security)、自动 Prompt 优化、多模态 Prompt