入门 - 面向开发者的 prompt engineering
想系统学习 prompt 的必看文章。
我将学习过程中的知识,提炼了出来,自温。
1. prompt 提示原则
原则一:清晰、具体的
指令
怎么清晰,具体呢, 通过以下技巧/策略。
- 技巧一:
使用分隔符
表示不同部分
使用分隔符,将不同的文本部分分开
- 技巧二:
结构化
输出
要求模型以什么格式输出给我们
- 技巧三:要求模型检查是否满足条件
… 如果是怎样,如果不是怎样
- 技巧四:提示
样例
提供样例,让模型了解我们的要求和期望的输出样式
原则二:给模型 思考的时间
设计 prompt 时,给予模型充足的推理时间
,是prompt engineering 一个非常重要的设计原则。
应通过 prompt 指引
模型进行深入思考
怎么给它时间呢
- 技巧一:
指定
完成任务所需的步骤
形如:执行以下操作:1… 2…。使用以下步骤:第一步… 第二步…
- 技巧二:指导模型在下结论之前找出一个自己的解法
设计 prompt时,让模型进行自主思考
2. 迭代优化
很难通过第一次尝试就得到完美的prompt。需要有一个良好的迭代优化过程,不断改进 prompt。
优化1:解决生成文本太长
在prompt中添加长度限制。要求生成简介的文案。
优化2:处理抓错文本细节
根据不同目标受众关注不同的方面,输出风格和内容上都适合的文本。
如文案中加入:面向xxx,侧重yyy。
优化3:添加表格描述
如文案中加入:生成一个表格,几列,第一列xx,第二列yy
可以看出,prompt开发过程是这样的:第一版 Prompt 应该满足明确和给模型思考时间两个原则。在此基础上,一般的迭代流程是:首先尝试一个初版,分析结果,然后继续改进 Prompt,逐步逼近最优。许多成功的Prompt 都是通过这种多轮调整得出的。
3. 文本概括
单一文本概括
- 限制输出文本长度
如文案中加入:xxx,最多30个字
- 设置关键角度
侧重
如文案中加入:yyy,并且侧重在zzz上。
- 关键信息
提取
虽然可以设置侧重,
如文案中加入:从…中提取xxx相关的信息,最多30个字
原文源码:llm-cookbook