智泊AI--提示词概念及优化
智泊AI–提示词概念及优化
0.前言
这节课主要针对提示词工程以及相关优化。具体概念这里就不详细展开了,重点是看一些工程化和优化的技巧。
1.什么是提示词
简单来说,提示词是用户发送给大模型的文字,用于引导大模型生成特定的输出结果,可以包含指令、问题等各种内容,是用户与大模型沟通的途径。
2.用户的概念区分
对于提示词而言,我们需要对使用用户进行区分——针对不同用户,所施展的策略也不太相同(后面会涉及),因此需要先明确自己的用户定位。目前可以区分为两种:
| 用户类型 | 说明 |
|---|---|
| 普通用户 | 各种基于大模型智能体的终端用户。 |
| 开发者 | 面向大模型的 API,直接接触、访问大模型接口的人。 |
3.系统提示词 vs 用户提示词
从作用域与稳定性来看,两者定位不同:
| 维度 | 系统提示词(system) | 用户提示词(user) |
|---|---|---|
| 内容性质 | 变化较小,存放 Agent 层面的规则定义、流程等与产品相关的内容 | 变化较大,通常和普通用户的输入有关 |
| 优先级 | 权重相对较高,与用户提示词冲突时以系统提示词为准 | 权重相对较低 |
ps:正常而言,系统提示词的输入内容权重相对较高,当系统提示词与用户提示词存在冲突时,会以系统提示词为准。
4.工程化
提示词工程化的目的,是研究如何设计和优化提示词,在稳定输出的前提下最大限度地发挥大模型的能力,采用工程化、标准化的思想构建提示词。通常分为三步:
- 分析需求、明确需求
- 清晰规范编写提示词
- (1)结构化:采用 Markdown 文本格式进行提示词的编写。
- (2)解耦:高内聚、低耦合(目的是为了方便后续提示词的迭代)。
- 验证提示词,反复迭代
提示:结构与解耦只是手段,最终提示词的质量还是取决于我们对于业务、流程、需求的掌控。
5.提示词基础总结
几条基础心法:
- 把 AI 当人看:不要神化,不要童化,要人化。
- 角色设定、任务明确:确定 AI 是什么角色,你要解决什么问题。
- 提问方式:
- (1)明确需求。
- (2)信息丰富(背景信息、上下文信息),指令要清晰、具体(要求、任务、步骤)。
- (3)尝试提供示例、约束。
注意:尽管现在上下文号称达到百万,但正式有效的上限基本在 30w token 内,所以提示词 + 上下文尽量不要超过这个值,否则模型容易在理解过程中忽略内容;第二点是,由于当前大模型的机制,对前面和后面的内容理解较强、中间内容相对较弱,所以重要内容尽量放在前面或后面。
- 提示词工程:试试再试试,修改再试试!先加例子再试,再加思维链!如果都不行,就换模型再试。
6.提示词调优技巧
6.1 零样本提示
不提供样本,适用于大模型直接回答的场景,例如翻译、简单运算等。
6.2 少样本提示
提供少量示例,引导模型理解任务内容,一般针对大模型的输出格式或内容进行引导。需要注意的是,由于提示的规范会限制大模型的创造力。
6.3 链式思考(COT)
引导模型像人类一样逐步推理、分解问题,再得出结论,更适用于复杂的推理任务(主要对应业务问题的解决步骤标准化)。实际工作中,可以先基于思维链的思想去拆分任务得到原始提示词;在工程落地时,思维链绝对不是一次性调用,而是按步骤去调用大模型,后续步骤的运行还需要携带之前步骤的结果。
”工作步骤”
6.4 自我一致性
自我一致性本质是基于思维链,利用大模型生成多条不同的推理路径(重复执行多次),用投票的方法选出出现次数最多的结果作为答案。
”为了保证准确性,请使用’自我一致性’策略”
6.5 思维树(TOT)
TOT 是扩展版本的 COT,主要解决复杂、多路径的决策问题。把问题思路设计为树结构,探索多种推理路径,最终综合选择最优解。但由于实现复杂、计算开销极大,因此对模型能力要求较高。
6.6 反思机制
要求 AI 在给出最终答案之前,先对自己的思考过程、推理步骤或潜在假设进行审视和检查(主要适用于代码生成、写作润色等任务)。注意需要不带上下文,要进行交叉检查(不同模型)。
六种技巧的适用场景对比:
| 技巧 | 核心思想 | 适用场景 |
|---|---|---|
| 零样本 | 不提供示例直接回答 | 翻译、简单运算 |
| 少样本 | 提供少量示例引导 | 限定输出格式 / 内容 |
| COT | 分步推理 | 复杂推理、业务步骤标准化 |
| 自我一致性 | 多路径投票 | 提升答案准确度 |
| TOT | 树状多路径探索 | 复杂多路径决策 |
| 反思机制 | 交叉审视自身 | 代码生成、写作润色 |
