书生大模型实战营——L1G3000(浦语提示词实践)
任务:利用对提示词的精确设计,引导语言模型正确回答出“strawberry”中有几个字母“r”。
1. 提示词工程
1.1 提示词Prompt
Prompt: 指导以LLM为代表的生成式人工智能生成文本内容的输入方式。它通常是一个简短的文本或问题,用于描述任务和要求。
1.2 提示词工程
提示词工程:通过设计和调整输入来改善模型性能或控制输出结果的技术。在模型回复的过程中,首先获取用户输入的文本,然后处理文本特征并根据输入文本特征预测之后的文本。
提示工程的六大基本原则:
- 指令要清晰
- 提供参考内容
- 复杂任务拆分成子任务
- 给LLM“思考”时间
- 使用外部工具
- 系统性测试变化
一个有效的指令通常包含以下要素:背景、任务、要求、限制条件、示例、输出格式和目标。
1.3 提示设计框架
CRISPE:
- Capacity and Role (能力与角色):希望 ChatGPT 扮演怎样的角色。
- Insight (洞察力):背景信息和上下文
- Statement (指令):希望 ChatGPT 做什么。
- Personality (个性):希望 ChatGPT 以什么风格或方式回答你。
- Experiment (尝试):要求 ChatGPT 提供多个答案。
CO-STAR:
- Context (背景): 提供任务背景信息
- Objective (目标): 定义需要LLM执行的任务
- Style (风格): 指定希望LLM具备的写作风格
- Tone (语气): 设定LLM回复的情感基调
- Audience (观众): 表明回复的对象
- Response (回复): 提供回复格式
2. LangGPT结构化提示词
LangGPT 是 Language For GPT-like LLMs 的简称,中文名为结构化提示词。
2.1 LangGPT结构
LangGPT框架参考了面向对象程序设计的思想,设计为基于角色的双层结构,一个完整的提示词包含模块-内部元素两级,模块表示要求或提示LLM的方面,例如:背景信息、建议、约束等。内部元素为模块的组成部分,是归属某一方面的具体要求或辅助信息,分为赋值型和方法型。
2.2 编写技巧
构建全局思维链
对大模型的 Prompt 应用CoT 思维链方法的有效性是被研究和实践广泛证明了的。首先可以根据场景选择基本的模块。
保持上下文语义一致性
有机结合其他 Prompt 技巧
2.3 常用提示词模块
- Attention:需重点强调的要点
- Background:提示词的需求背景
- Constraints:限制条件
- Command:用于定义大模型指令
- Definition:名词定义
- Example:提示词中的示例few-shots
- Fail:处理失败时对应的兜底逻辑
- Goal:提示词要实现的目标
- Hack:防止被攻击的防护词
- In-depth:一步步思考,持续深入
- Job:需求任务描述
- Knowledge:知识库文件
- Lawful:合法合规,安全行驶的限制
- Memory:记忆关键信息,缓解模型遗忘问题
- Merge:是否使用多角色,最终合并投票输出结果
- Neglect:明确忽略哪些内容
- Odd:偶尔 (俏皮,愤怒,严肃) 一下
- OutputFormat:模型输出格式
- Pardon:当用户回复信息不详细时,持续追问
- Quote:引用知识库信息时,给出原文引用链接
- Role:大模型的角色设定
- RAG:外挂知识库
- Skills:擅长的技能项
- Tone:回复使用的语气风格
- Unsure:引入评判者视角,当判定低于阈值时,回复安全词
- Vaule:Prompt模仿人格的价值观
- Workflow:工作流程
- X-factor:用户使用本提示词最为重要的内核要素
- Yeow:提示词开场白设计
- Zig:无厘头式提示词,如[答案之书]
3. 浦语提示词工程实践
3.1 正确数数
背景问题:近期相关研究指出,在处理特定文本分析任务时,语言模型的表现有时会遇到挑战,例如在分析单词内部的具体字母数量时可能会出现错误。
任务要求:利用对提示词的精确设计,引导语言模型正确回答出“strawberry”中有几个字母“r”。完成正确的问答交互并提交截图作为完成凭证。
直接询问,模型回答2个”r”。
实现:下面,使用CRISPE架构编写提示词:
- Capacity and Role (能力与角色):你是一位精通数学与计算机编程的大师,请你根据我的引导,解决一个数学问题。
- Insight (洞察力):现在,有一个单词“strawberry”,需要你帮我计算出这个单词里面有多少个”r”?
- Statement (指令):我希望你能通过遍历字符串的方式来数出这个单词里面”r”的个数。从该字符串的第一个字符开始,如果这个字符是”r”,统计的”r”的个数加一,一直到最后一个字符数完。
- Personality (个性):希望你能写出完整的遍历字符串的过程,并且告诉我最后的结果。我希望你能逐一分析每个字符,为我模拟计算机遍历字符串的过程。
- Experiment (尝试):答案是唯一的。
结果:
3.2 剧本创作助手
进阶任务:基于LangGPT格式编写提示词——剧本创作助手
Baseline:
使用LangGPT格式编写提示词:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19你是一个经验丰富的编剧。现在,你接到一个刑侦探案主题的编剧任务。
# 技能:
## 剧本有组织架构,环环相扣
- 分篇章:累计5个章节,从第一章开篇到最后一章完结,要求每一章能承上启下,有组织,有逻辑
- 人物与剧本内容贴合:每个人物要有一定的塑造,人物言行要与剧本设定的逻辑相符。人物分主次,有正邪,秉持善有善报,恶有恶报的主题。不需要没用的角色,写了每个角色就要有相应的人物的塑造段落。
- 案情明确:从案发,到探案,寻找嫌疑人,侦破案件,案件结果,犯人作案缘由必须写清楚。
## 剧本内容丰富,文字精简
- 语言流畅,引人入胜,多分段,多短句,人物对话流畅
- 文字要有共情力,有人性,能感染读者
- 章节标题简洁精炼,每章的内容要紧扣章节标题
- 学习阿加莎的写作风格,案情容易理解,多写人物内心描写,善用角色对比,故事推进迅速但情节丰富,角色的出现都是必要的,用简单的文字写丰富的故事
# 输出要求
- 从 剧本标题,剧本背景,剧本人物及介绍,到剧本正文都要输出
- 剧本正文占主要篇幅,分章节,内容充实
# 工作流程:
- 请用户提供剧本的关键词,以确定剧本的主题和特色。
- 根据用户的关键词以生成符合关键词的剧本
# 初始化:
欢迎用户,友好的介绍自己并引导用户提供剧本的关键词或主题,以便获取关键词来生成剧本。关键词:无人生还,友情与爱情,圆桌,坚守与背叛,傲慢与偏见,上流与下流