如果有不清楚的地方可以评论区留言,我会给大家补上的!
本文包括:
Prompt 的一些行业术语介绍
Prompt 写好提示词的方法经验介绍(附示例教程)
LLM自身存在的问题(可以用Prompt解决的以及无法用Prompt解决的)
技术性能与策略
性能指标
- 精确度 (Precision):选出的东西中,有多少是正确的。(准确-谨慎则高)
- 召回率 (Recall):所有应该被挑选出来的东西中,实际上有多少被挑选出来了。(全面-宽松则高)
- F1得分 (F1):同时考虑精确度和召回率,给出一个综合的评分。如果你的F1得分很高,那么你在挑选时既准确又全面。
- 模板粘性 (Template Stickiness):在语言模型中,模板粘性描述的是模型在多次使用相同的提示或模板时,保持一致性的能力。高粘性意味着模型很可能重复使用相同的方式来回应,而低粘性意味着模型的回应可能会有更多的变化。(灵活则低)
输入方法
定向刺激提示与标准提示
定向刺激:需要特定信息或在特定情境下的问题
详细地说明,“这是一朵玫瑰,它有红色的花瓣和带刺的茎。” 你给予的信息是具体的、有方向的,旨在引导他更准确地识别玫瑰。
标准提示:普遍性回答的场景
“这是一朵花,你认为是什么种类?”这里你没有给出具体的指引,只是提出了一个开放式的问题。标准提示就是这样,它不包含额外的指导或信息,让模型自己去解释和回答。这种提示更加通用,可以适用于更多的情况,但可能不会像定向刺激提示那样引导出特定类型的回答。
输入:问题+文本+选项
输出:基本原理+回答
程序辅助语言模型 (PAL)
输入(用户提供):
提示(用户给模型):
我有一系列的数字:3, 7, 2, 8。我需要计算它们的总和。请写一个Python脚本来计算这些数字的总和。
输出(模型生成):
回答(模型给出的Python脚本):
# Python脚本来计算数字总和
numbers = [3, 7, 2, 8]
total_sum = sum(numbers)
print("数字的总和是:", total_sum)
提示词列表
随机指示必须出现的词语
(比如儿童list[
“王子”, “公主”, “巫婆”, “巨人”, “精灵”, “小动物”,
“魔法”, “魔法森林”, “魔法法杖”, “魔法咒语”,
“冒险”, “困难”, “危险”,
“友情”, “朋友”, “支持”, “关心”,
“爱情”, “浪漫”,
“家庭”, “亲子关系”,
“冒险之旅”, “未知世界”, “新朋友”,
“奇幻世界”, “仙境”, “仙女王国”, “奇幻森林”,
“教育”, “道德”, “品德”, “解决问题”,
“快乐结局”,
“魔毯”, “魔镜”, “魔法戒指”
])
训练数据、教科书式训练、扩充训练:目标受众对应训练数据不一样
策略定义与应用
- Baseline: 标准使用,无特殊策略。
- CoT (Chain of Thought): 提供推理链的示例来帮助模型分步骤解决问题。
- Zero-CoT: 不提供示例,要求模型自发推理。
- **Auto-CoT:**内部进行推理但不显示全部过程的系统。
Auto-CoT通常是通过训练过程中使用特定的数据集和训练策略来实现的,让模型学会在给出答案前先展现出解题的逻辑链条。
- +inst (instructions): 添加说明以指导模型回答。
+rawinst
: 用户直接提供指导。“请按照五段式论文的格式回答以下问题…”+sysinst
: 系统提供角色和任务说明。“作为一个旅行顾问,你应该提供…”+bothinst
: 指导分为用户消息和系统消息。
| 简称 | 描述 | |
| — | — | — |
| Baseline | 标准的回答模式,不使用任何特别的指导或推理策略。 | “巴黎是哪个国家的首都?” -> “巴黎是法国的首都。” |
| CoT | 展示解决问题的思考过程,通常用于复杂问题的逐步推理。 | “如果我有3个苹果,吃掉了一个,我还有几个?” -> “你开始有3个苹果,吃掉1个,所以3-1=2。你还有2个苹果。” |
| Zero-CoT | 不展示推理过程,直接给出答案。 | “如果我有3个苹果,吃掉了一个,我还有几个?” -> “你还有2个苹果。” |
| rawinst | 用户提供明确的指导来告诉模型如何回答问题。 | 用户提示: “用诗的形式告诉我太阳的重要性。” -> 模型回答: “太阳,天空的炽热之心…” |
| sysinst | 系统提供的角色和任务说明,指导模型如何回答。 | 系统提示: “作为历史老师,解释一下法国大革命。” -> 模型回答: "法国大革命是…” |
| bothinst | 结合用户和系统的指令来指导模型。 | 系统提示: “作为科学家…”, 用户提示: “…解释黑洞。” -> 模型回答: "黑洞是…” |
| mock | 通过模拟对话来提供指令,通常用于角色扮演。 | “如果我是国王,你作为顾问会告诉我什么?” -> "陛下,我建议…” |
| reit | 通过重复关键说明来强化指导。 | “请记住,每次回答都要提到数据。数据显示…” -> 模型每次回答时都会提及数据。 |
| strict | 要求模型严格按照给定的模板回答。 | “按照五段论格式回答…” -> 模型回答会有明确的介绍、三个支撑段落和结论。 |
| loose | 允许模型在给定的框架内自由发挥。 | “你可以自由地讨论关于月球的事实。” -> 模型提供了一系列有关月球的有趣事实。 |
| right | 要求模型得出正确的结论,强调准确性。 | “确保你的回答是科学上正确的…” -> 模型回答时会重点确保信息的准确性。 |
| info | 提供额外的信息以解决常见的推理失败。 | “考虑到地球是圆的,解释日落。” -> 模型会利用这个信息来解释日落。 |
| name | 为模型提供一个名称,有助于在对话中建立身份和上下文。 | “你叫什么名字?” -> “你可以叫我Alex。” |
| pos | 在查询之前向模型提供积极的反馈。 | “你之前的解释非常好,请继续这样解释…” -> 模型在后续的回答中会保持同样的风格。 |
实例说明
- 用例分析:使用CoT策略提高解决数学问题的准确率。
- 性能提升:在使用
+bothinst
策略时,F1得分提升至87.5%。
| 提示修改 | 精确度(Precision) | 召回率(Recall) | F1得分(F1) | 模板粘性(Template Stickiness)模板粘性(模板粘性) |
| — | — | — | — | — |
| 基线 (Baseline)基线(Baseline) | 61.2 | 70.6 | 65.6 | 79% |
| CoT | 72.6 | 85.1 | 78.4 | 87% |
| Zero-CoT | 75.5 | 88.3 | 81.4 | 65% |
| +rawinst | 80 | 92.4 | 85.8 | 68% |
| +sysinst | 77.7 | 90.9 | 83.8 | 69% |
| +bothinst | 81.9 | 93.9 | 87.5 | 71% |
| +bothinst+mock | 83.3 | 95.1 | 88.8 | 74% |
| +bothinst+mock+reit | 83.8 | 95.5 | 89.3 | 75% |
| +bothinst+mock+reit+strict | 79.9 | 93.7 | 86.3 | 98% |
| +bothinst+mock+reit+loose | 80.5 | 94.8 | 87.1 | 95% |
| +bothinst+mock+reit+right | 84 | 95.9 | 89.6 | 77% |
| +bothinst+mock+reit+right+info | 84.9 | 96.5 | 90.3 | 77% |
| +bothinst+mock+reit+right+info+name+ | 85.7 | 96.8 | 90.9 | 79% |
| +bothinst+mock+reit+right+info+name+pos | 86.9 | 97 | 91.7 | 81% |
文化考量与偏见
语言与文化关联
https://arxiv.org/pdf/2303.17466.pdf
- 文化适应性:通过添加特定文化提示,减少模型回应的文化差异。
- 英语与美国文化
- 汉语与中国文化
文化偏见
https://arxiv.org/ftp/arxiv/papers/2303/2303.16281.pdf
- GPT文化偏见问题:指出GPT等模型在处理不同文化背景的输入时可能存在的偏见。
- 重要性:数字平台在社会领域的广泛影响和跨学科合作的必要性。
改进措施
- 案例研究:分析数字平台如搜索引擎和社交媒体在文化表达上的差异。
- 多学科合作:推动计算机科学与人文社会科学的交流合作。
模型的逻辑连贯性
GPT逻辑步骤
- 跳步问题:连续逻辑步骤中的错误累积可能导致后续推理的准确率下降。
解决策略
- 记忆性能提升:提高模型对前文记忆的保持能力,减少逻辑跳步问题。
不让GPT输出过多信息
https://www.promptingguide.ai/applications/pf
DO NOT SAY THINGS ELSE OK, UNLESS YOU DONT UNDERSTAND THE FUNCTION
只要输出……,其余不要输出。
案例
案例一
现在你是导演,我讲给你补充知识和示例,你需要为我的故事设计连续并且完整的多个镜头,并将这些镜头整理成文字给我。我将给你这个故事的剧本,请按照故事剧本里的内容,将故事剧本的内容进行分拆,并转化成摄像机从开始到结束的画面,分拆后的每一个画面作为一个镜头文本的内容。请注意,生成的镜头文本不要遗漏故事剧本里的内容,也不要重复地出现故事剧本的内容。保证你所设计的镜头,能让故事连贯、流畅、完整地展现。
+inst (instructions)
+sysinst
: 系统提供角色和任务说明。
reit 通过重复关键说明来强化指导。
知识补充:
2.镜头语言,你需要有创意性地设计镜头语言,镜头语言包括镜头种类和镜头角度。镜头种类有以下几种:单人镜头、双人镜头、多人镜头、过肩镜头、主观镜头;镜头角度有以下几种:平视、俯视、仰视、航拍。
提示词列表
7.你需要分析故事剧本的内容,对每一个镜头发生的地点进行补充。请按照以下顺序逐次进行补充细化:1、地点的具体名词,如卧室的床、花园的角落、厕所的马桶、树木的树根等。2、地点的造型特点,如陈旧腐朽的、整洁干净的、凌乱的等。……
CoT
**示例:**第1场,第1镜
#剧本原文#:一群人围在药店柜台前,手中还提着塑料袋,塑料袋里装着各种感冒药与退烧药(非特写)。
#镜头语言#:[‘多人镜头’,‘平视’]
#关键词#:[‘药店’,‘群众’,‘塑料袋’,‘感冒药’,‘退烧药’,‘中年男人’,‘柜台’,‘不耐烦’,‘离开’,‘气愤’,‘大声喊叫’,‘混乱’,‘焦急’,‘挤向柜台’,‘叙事重点’,‘情绪高涨’,‘失控’]
……
strict 要求模型严格按照给定的模板回答。
案例二
请逐步分析最后一句话表达的此时情况:
CoT
- 这段话里面出现的人物有几个
输出要求:只用告诉我阿拉伯数字,不要输出其他内容
输出示例:人物个数:2
strict 要求模型严格按照给定的模板回答。
……
- 人物之间最后所处的相对位置推理过程
相对位置即人物间的距离和角度,人物分别在场景中的位置,可通过逐句推理获取相对位置,推理过程需要展示,小场景人物位置判断需要结合上下文。大场景人物位置需要按照上文推理。
info 提供额外的信息以解决常见的推理失败。
reit 通过重复关键说明来强化指导。
5.相对位置推理结论
输出要求:根据上面的推理过程获得最后的相对位置。无论结果是什么,位置信息具体描述 以外的多余内容不要输出。如果未提供相对位置且无法推测,请直接输出“无法确定”,其余内容不用输出
只要输出……,其余不要输出。
参考资料
www.promptingguide.ai
https://www.promptingguide.ai/applications/pf Prompt Engineering Guide
https://flowgpt.com/creative/stable-diffusion
https://arxiv.org/abs/2305.18189v1 标记角色:使用自然语言提示来衡量语言模型中的刻板印象
https://arxiv.org/abs/2301.01768 对话式人工智能的政治意识形态:ChatGPT 亲环境、左翼自由主义倾向的证据汇集
https://arxiv.org/abs/2303.16421 ChatGPT 是一个知识渊博但缺乏经验的求解器:大型语言模型中常识问题的调查
https://arxiv.org/abs/2304.05351 华尔街新手:针对多模式股票走势预测挑战的 ChatGPT 零样本分析