前段时间学习了智谱AI对外分享的prompt最佳实践,感触良多,顺便记录一下自己的学习总结。
本系列将分为三部分:prompt框架、prompt迭代优化和prompt评测与产品构建。
本篇是第二篇,主要介绍prompt迭代优化。
Prompt engineering, or "提示词工程",是一个在人工智能领域,尤其是在自然语言处理(NLP)中使用生成模型时,优化输入指令以获得最佳输出结果的过程。
获得一个优越的提示词,要包括如下步骤:
-
迭代:没有人直接写出100分的指令
-
评测:像训练算法模型一样优化指令

角色迭代:尝试不同的角色,让大模型提供最佳的上下文语境。

大模型在任务执行过程中会具有保险业务专家的语境。
任务迭代:对于指令的关键动作,尝试不同的近义词或其他相近的描述来提升准确性。
【动词和名词、业务场景的名词】

执行步骤迭代–正向引导:避免负指令,谈股票更换概念等方式,尽量告诉模型应该输出什么。

执行步骤迭代–逻辑完备:将完备的思考逻辑给大模型,避免在“无”的时候,大模型自由发挥,乱造信息。

执行步骤迭代–避免规则:指令的作用在于引导大模型输出正确的答案,硬规则更加适合于靠规则程序来完成。

Few shot迭代:要么每个类别都均匀添加做示例,要么都不加;样例较多时,引入向量数据库做动态few shot。【好的训练集、评测集】

分隔符作用:
-
避免模型指令收到其他内容的干扰;
-
将文本上下文、不同的知识模块做分隔;
-
避免用户注入无关指令。


分条目作用:
-
有助于大模型理解每个独立的任务,引导大模型按照指令进行思考;
-
有助于开发者顺利任务的逻辑顺序,便于逐条编写测试以及迭代维护。


顺序作用:先输出的内容会影响后输出的内容,可以尝试不同的顺序,避免提取项的干扰,找到最佳的提取效果。


嵌套:平铺直叙,避免多层的逻辑嵌套。

位置:指令的首部和尾部指令遵循效果较好,根据不同的输入文档长度和指令难度尝试不同的段落组织方式。


-
需求描述:

-
迭代指令:prompt v1->prompt v2
-
增加COT,输出步骤中如何判断情绪

-
迭代指令:prompt v2->prompt v2.1
-
清晰明确的表达

-
迭代指令:prompt v2.1->prompt v3
-
从结构上进行优化

-
迭代指令:prompt v3->prompt v3.1
-
在每一个分类中增加few shot

-
迭代指令:prompt v3.1->prompt v3.2
-
格式强约束

-
需求:

-
最初版v1

-
定义修辞手法、输出KV格式

-
拆分prompt、赋予角色

-
添加修辞关键特征、分析原因

-
任务描述:动词

-
加示例、引号强调

-
加反面示例

-
COT:分步骤推理分析

-
输出引导

-
示例顺序调整


