LK 博客
Prompt 工程是什么
项目
约 1 分钟阅读 0 赞 0 条评论 鸿蒙黑体

Prompt 工程是什么

zihan
王子翰 @zihan
累计点赞 0 登录后每个账号只能点一次
内容长度 0 正文词元数
正文
目录会跟随阅读位置移动。
阅读进度

Prompt 工程是什么

Prompt 工程依赖于大语言模型本身的泛化能力。通过设计更清晰的提示词,可以让模型在不进行下游任务训练的情况下,更准确地理解任务要求并提升输出质量。

换句话说,Prompt 工程的目标不是重新训练模型,而是把任务描述得足够清楚,让模型知道“要做什么、依据什么做、怎么回答”。

一个基础的 Prompt 通常包含四个核心元素:

  1. 任务说明
  2. 上下文
  3. 问题
  4. 输出格式

例如:

任务说明:请判断下面这段评论的情感倾向。
上下文:情感倾向只分为“正面”“负面”“中性”三类。
问题:这家店的服务还行,但上菜太慢了。
输出格式:只输出分类结果和一句简短理由。

任务说明

明确告诉模型要做什么

任务说明是 Prompt 中最直接的部分,用来向模型提出明确要求。

如果希望模型完成分类任务,就应该在提示词里直接说明“请完成分类”。这类任务不一定需要专门训练一个分类模型,因为大语言模型本身具有较强的泛化能力,并且在大规模数据上训练过,所以能够理解和完成多种不同类型的任务。

例如:

请将下面的文本分为“技术问题”“产品建议”或“其他反馈”三类。
文本:登录页面有时候会卡住,刷新后才能进入。

这里的“请将下面的文本分为……”就是任务说明。它让模型知道当前任务不是续写、总结或翻译,而是分类。

分词方式与 Token 消耗

Prompt 太长会占用较多 Token,因此理解分词方式也很重要。

大语言模型不会直接按照人类理解的“字”或“词”来处理文本,而是先通过分词器把文本切分成 Token。不同模型使用的分词器不同,切分方式也可能不同。

例如,“你”和“好”单独看是两个字,但“你好”组合后形成了新的常用表达。分词器可能会把“你好”视为一个整体 Token,也可能根据具体规则拆分。这样做有两个作用:

  1. 帮助模型更好地区分单字、词语和固定表达。
  2. 在推理时减少 Token 数量,从而降低消耗。

所以,写 Prompt 时不一定越长越好。更好的方式是用清晰、紧凑的语言表达任务要求,避免无关背景占用上下文空间。

上下文学习

通过上下文帮助模型理解任务

上下文学习指的是:通过给模型提供背景、规则或示例,让模型更好地理解任务范式和回答范式。

根据示例数量的不同,可以分为:

  1. 零样本学习:不给示例,直接让模型完成任务。
  2. 单样本学习:给一个示例,让模型模仿格式。
  3. 少样本学习:给多个示例,让模型从中归纳规律。

如果只是普通问答,且不需要固定格式,通常可以使用零样本提示。
如果希望模型按照指定格式输出,或者希望增强模型对任务的理解,可以使用单样本或少样本提示。

例如,零样本提示:

请总结下面这段话的核心观点。

单样本提示:

示例:
输入:今天下雨,但我还是按时到公司了。
输出:事件:下雨;结果:按时到公司。

请按照上面的格式处理:
输入:电脑突然蓝屏,我重启后恢复正常。

少样本提示则可以给出多个类似示例,让模型更稳定地理解输出格式。

示例选择

示例选择的关键在于相似性和多样性。

如果示例和当前任务差异太大,模型就难以理解真正需要模仿的范式。
如果示例过于单一,模型也可能只学到很窄的模式,无法应对稍有变化的问题。

常见的示例检索方法包括:

  1. 直接检索:根据当前问题查找最相似的示例。
  2. 聚类检索:先把示例按类型分组,再从相关分组中选择代表性示例。
  3. 迭代检索:先用初步结果检索示例,再根据反馈继续调整和补充。

实际使用中,Prompt 为什么有效,很多时候也是通过不断试验总结出来的。理论可以提供方向,但具体效果仍然需要结合模型和任务进行测试。

思维链

什么是思维链

思维链提示(Chain-of-Thought,CoT)是一种让模型模仿人类解题过程的提示方法。它不是只要求模型给出答案,而是引导模型按步骤进行推理。

以数学题为例,老师通常会要求写出解题过程,而不是只写最后答案。对大模型来说,推理过程也能帮助它更稳定地完成复杂任务。

不过,现在很多模型的内部推理过程会被隐藏或压缩,不一定完整展示给用户。这有点像人做题时会在草稿纸或脑子里思考,但最后写在答题纸上的只是必要步骤和答案。

按部就班

“按部就班”的思维链方式,是把问题拆成多个步骤,让模型沿着给定思路继续推理。

如果把一段思考过程和问题一起交给模型,模型通常会沿着前面的推理继续生成结果,或者根据这个思路处理类似问题。

这是因为大语言模型本质上是在预测下一个 Token 的概率。清晰的思考步骤可以减少模型随意发散的空间,让它更容易按照用户预期的方向继续推理。

例如:

请按以下步骤回答:
1. 先列出已知条件。
2. 再判断需要求什么。
3. 最后给出计算过程和答案。

三思后行

“三思后行”的方式不一定要求用户提前提供完整推理过程,而是让模型在回答前先检查自己的思路,删除不必要或不可靠的部分,保留更可能正确的路径。

这种方法的难点在于:模型是否真的能判断哪些思路正确,哪些思路错误。人类有时也难以完全理解自己的思考过程,更不用说模型。因此,这类方法有一定帮助,但不能完全依赖。

更稳妥的做法是让模型给出可验证的中间结论,例如:

请先列出可能的原因,再逐条排除,最后给出最可能的结论。

集思广益

“集思广益”的方式是让模型从多个角度并行思考,再选择其中更合适的答案。

它类似于让模型提出多个解法、多个假设或多个判断标准,然后再进行比较。这个过程有点像多头注意力机制中从不同角度捕捉信息,但在 Prompt 层面上,它体现为“多方案生成 + 选择最优解”。

例如:

请分别从性能、可维护性和用户体验三个角度分析这个方案,然后给出综合建议。

这种方式适合开放性问题、方案评估和复杂决策。

规范 Prompt 编写

按结构组织提示词

规范的 Prompt 可以按照“四个基本元素”来组织:

  1. 任务说明:告诉模型要做什么。
  2. 上下文:提供背景、规则、限制条件或示例。
  3. 问题:给出需要模型处理的具体输入。
  4. 输出格式:说明希望模型如何回答。

例如:

任务说明:请帮我把下面的会议记录整理成待办事项。

上下文:
- 待办事项需要包含负责人、任务内容和截止时间。
- 如果没有明确截止时间,写“未说明”。

问题:
小王负责整理用户反馈,下周三前完成。小李需要检查新版登录页,但没有说具体时间。

输出格式:
| 负责人 | 任务内容 | 截止时间 |
| --- | --- | --- |

复用优秀 Prompt

如果觉得从零编写 Prompt 比较麻烦,可以直接参考别人写得好的 Prompt,再根据自己的任务稍作修改。

但复用时不要只复制表面格式,而要看清楚它解决了什么问题:

  1. 是否明确说明任务?
  2. 是否提供了足够上下文?
  3. 是否给出了具体输入?
  4. 是否规定了输出格式?

只要这四部分清楚,Prompt 通常就会更稳定、更容易复用。

小结

Prompt 工程的核心不是写得越复杂越好,而是让模型更准确地理解任务。

一个有效的 Prompt 通常需要明确任务、提供上下文、提出具体问题,并规定输出格式。对于复杂任务,可以通过示例、思维链和多角度分析来提升模型的回答质量。不过,这些方法都会增加一定的 Token 消耗;有时给模型更多思考模式,可以减少模型无效发散,但也会增加人脑设计 Prompt 的成本。简单来说,就是用脑力换 Token 和稳定性。

作者名片

zihan
王子翰
@zihan

这个作者暂时还没有填写个人简介。

评论区
文章作者和管理员都可以管理这里的评论。
0 条评论
登录后即可参与评论。 去登录
还没有评论,欢迎留下第一条交流内容。