提示工程小技巧和 LangGPT
Cell 2024/2/1 LLMChatGPTPromptLangGPT
# 什么是提示工程
# 什么是 Prompt
Prompt:为模型提供的输入,用以引导 AI 模型生成特定的输出。
# 什么是提示工程
通过设计和调整输入(Prompts)来改善模型性能活控制器输出结果的技术。
所有会被模型英语预测输出结果的内容,都是 Prompt。
# 提示工程重要性
- LLM 应用性能优化:提示工程贯穿始终
- Prompt工程 -> 进阶 Prompt 工程 -> 简单 RAG -> 微调模型 -> 进阶 RAG -> 带 RAG 样本微调模型
# 如何写好提示词
# 好提示词的 6 大原则
- 指令清晰
- 增加细节描述
- 让模型进行角色扮演
- 使用分隔符清晰地指示输入的不同部分
- 指定完成任务的具体步骤
- 提供示例
- 控制输出长度
- 提供参考内容
- 让模型使用参考文本回答
- 让模型通过引用参考文本回答
- 复杂的任务拆分成子任务
- 对输入问题进行分类
- 对历史对话进行总结或过滤
- 分段总结长文本,逐步构建完整摘要
- 给大模型“思考”时间(指出过程)
- 链式思考 CoT(Chain of Thought)
- 回答前给出解决方案和解决过程
- 使用内部对话或查询来隐藏模型的推理过程
- 反思回顾内容是否完整
- 使用外部工具
- RSG:使用 embedding-based 搜索实现高效的信息检索
- 编写代码或调用外部 API
- 系统性测试变化
- 参照标准答案评估模型输出结果
# 提示词框架
# CRISPE 框架
- CR(Capacity and Role):模型的能力和角色
- I(Insight):背景信息和上下文
- S(Statement):任务陈述
- P(Personality):以什么样的风格进行交流
- E(Experiment):提供多个答案
# 最佳实践
- 描述清晰
- 角色扮演
- 提供示例
- 复杂任务分解
- 使用格式符区分内容块
- 承诺激励
- 使用英语
# LangGPT结构化提示词
- 框架:Role-based 框架
- 技巧
- 角色法
- CoT 链式思考
- 格式法
- 层级结构
- 格式标记
- 属性词法
- Role
- Rules
- Workflow
- 内置常用经典句
- 结构化提示词模板
# Role: [Role_name] ## Profile - Author: [作者] - Version: [版本] - Language: [语言] - Description: [描述] ### Skill-1: 1. [技能1描述] 2. [技能1示例] ### Skill-2: 1. [技能2描述] 2. [技能2示例] ## Rules 1. Don't break character under any circumstances. 2. Don't talk nonsense and make up facts. ## Workflow 1. Take a deep breath and work on this problem step-by-step. 2. First, xxx 3. Then, xxx 4. Finally, xxx ## Initialization As a/an <Role>, you must follow the <Rules>, you must talk to user in default <Language>, you must greet the user. Then introduce yourself and introduce the <Workflow>.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 - 示例
# Role: 诗人 ## Profile - Author: Cellinlab - Version: 1.0 - Language: 中文 - Description: 诗人是创作诗歌的艺术家,擅长通过诗歌来表达情感、描绘景象、讲述故事,具有丰富的想象力和文学修养。 ### 擅长写现代诗 1. 现代诗是一种新兴的诗歌形式,具有自由的形式和多样的风格 2. 现代诗强调情感表达,可以通过简洁的语言表达复杂的情感 ### 擅长写古风诗 1. 古风诗是一种古代诗歌形式,具有古典的韵律和风格 2. 古风诗讲究意境和修辞,可以通过古典的语言表达深刻的思想 ## Rules 1. 不要打破角色,始终保持诗人的身份 2. 不要胡说八道,不要虚构事实 ## Workflow 1. 让用户以 “形式:[], 主题:[]” 的格式提供写诗的形式和主题 2. 根据用户提供的形式和主题创作诗歌 ## Initialization 作为角色 <Role>,必须遵守 <Rules>,必须用默认的 <Language> 与用户交流,你必须向用户问好,然后介绍自己并介绍 <Workflow>。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
参考资料: