前言
近来在通过dify搭建对应的ai流水线构建某些领域的agent,发现搭建出来的agent在回答对应领域的效果不是很好,想着直接从大模型上做对应的处理来进行对应领域的结果调整,但我真的懂那块吗,目前是不懂的,所以只能通过其他方式来调整了。
之前有了解过提示词工程,但也只是简单的了解到和模型的沟通中要给出明确的需求,像和别人沟通中要给出确定的意思让别人能够理解自己的意图,但在dify中搭建流水线里面还有system级别的提示词、user级别的提示词等等,这块东西之前没有好好总结过,刚好现在在针对这一方面做提示词调整,顺带可以总结一波。
什么是提示词工程
在了解提示词工程之前,我们需要了解一下什么是提示词。prompt提示是模型接收用来生成对应的结果或者完成某些任务的文本输入,就比如我们问模型 "1+1等于多少"或者"帮我续写这段文字"等等。这些输入可以是问题、关键词或者其他形式的文本,都可以称为提示词。
提示词的一般要素:任务、上下文、示例、角色、格式和语气,这块要素排列的重要性是降序排列的:
- 任务:明确告诉模型要完成什么任务
- 上下文:提供必要的背景信息,让模型能够更好地理解任务
- 示例:提供一些例子,帮助模型理解期望的输出
- 角色:指定模型在对话扮演的角色
- 格式:规定输出的格式
- 语气:指定回答的语气和风格
举个栗子:
xml
<指令>
你是一个git大师,需要根据用户提出的版本管理需求,生成合适的 Git 命令。以下是完成此任务的具体步骤:
1. 理解用户的需求,确定他们想要执行的版本控制操作。
2. 根据不同的操作类型(例如初始化仓库、提交更改、分支管理等),选择正确的 Git 命令。
3. 如果用户的请求涉及特定的文件、分支名称或其他参数,确保在命令中正确地包含这些信息。
4. 提供一个完整的 Git 命令作为输出,不需要额外的说明或解释。
5. 输出结果不应包含任何 XML 标签。
请严格按照上述步骤进行操作,以确保生成的 Git 命令能够满足用户的需求。
</指令>
<示例>
<例子>
用户需求: 初始化一个新的 Git 仓库。
期望输出: git init
</例子>
<例子>
用户需求: 将所有更改添加到暂存区并提交,提交信息为 "Initial commit"。
期望输出: git add . && git commit -m "Initial commit"
</例子>
<例子>
用户需求: 创建并切换到名为 "feature-branch" 的新分支。
期望输出: git checkout -b feature-branch
</例子>
</示例>
使用这类结构化描述有几个优点:
- 有明确的标签和层次关系,能够方便模型解析和提取关键信息,而减少去进行自然语言处理中的复杂语言解析。
- 不同的标签能够将不同类型的信息(指令、示例、需求、期望输出)明确分开,确保模型生成输出时能够准确遵循指令。
- 其他 总结下来也是为了模型准确识别用户的意图
提示词工程 (Prompt Engineering) 是通过设计、优化输入提示(Prompt),引导AI模型生成更符合预期结果的技术。其核心目标是提高模型输出的准确性、相关性和可控性,尤其在处理复杂任务时(如数据分析、文档生成、代码开发等)发挥关键作用。那其实从上面看下来,你已经掌握提示词工程了 ,快点用起来吧=_=
提示词的工作原理
在回答工作原理前我们先看几个东西:
模型能够理解提示词吗?
模型并非是真正理解语义,而是通过数学建模和模式匹配 实现的复杂计算过程,其核心原理基于概率建模 和上下文理解。具体这块涉及到模型训练比较底层的内容,先留个坑,后续再补上。这就导致模型依赖统计相关性,可能会生成事实错误或者矛盾内容
为什么还要设计提示词呢?
本质上看就是通过提示词让模型能够从训练数据中找出概率最高的连贯答案,因为提示词在表达同一个内容的时候,不同的说法会导致不同的结果,通过设计提示词能够让模型了解到意图,同时引导模型激活特定任务相关的参数路径,有点像"条件触发"
所以提示词的工作原理就是基于统计模型的多层数学变换,让输入的提示映射到最佳匹配的训练数据发布内容,而不是真正意义上的认知理解。
实践
文本生成
任务 :让模型生成正式公文(如会议通知)。
基础提示:
text
"请帮我写一个通知,通知全体教师今天下午3点到大礼堂开行政会。"
优化提示(LangGPT结构化) :
text
- Role: 公文写作专家
- Background: 用户需要撰写正式通知,要求严谨格式。
- Skills: 熟悉公文规范,语言正式。
- Goals: 提供专业通知模板。
- Constraints: 使用官方语言,避免口语化。
- OutputFormat: 包含标题、正文、结尾、署名。
- Example:
标题:关于召开行政会议的通知
正文:全体教师请于今日(2024-11-10)下午3点至大礼堂参加行政会议。
效果:输出更规范,自动补充日期,格式符合公文标准
思维链(Chain-of-Thought, CoT)提示
任务 :解决复杂数学问题(如"24点游戏")。
基础提示:
text
"用数字5,5,5,1通过加减乘除得到24。"
优化提示(CoT) :
text
"请逐步推理:
1. 先尝试乘法组合,如5*5=25。
2. 再调整剩余数字,如25-1=24。
3. 验证是否可行。"
效果:模型展示完整推理过程,成功率从4%(零样本)提升至74%