#Prompt##提示词工程##AIGC##LLM# 学写Prompt 提示词 :使用大型预训练语言模型的关键考量_rawinst-程序员宅基地

技术标签: LLM入门教程笔记  语言模型  aigc  AIGC  自然语言处理  prompt  


如果有不清楚的地方可以评论区留言,我会给大家补上的!
本文包括:
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

  1. 这段话里面出现的人物有几个
    输出要求:只用告诉我阿拉伯数字,不要输出其他内容
    输出示例:人物个数:2

strict 要求模型严格按照给定的模板回答。

……

  1. 人物之间最后所处的相对位置推理过程
    相对位置即人物间的距离和角度,人物分别在场景中的位置,可通过逐句推理获取相对位置,推理过程需要展示,小场景人物位置判断需要结合上下文。大场景人物位置需要按照上文推理。

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 零样本分析

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45312236/article/details/135482253

智能推荐

使用nginx解决浏览器跨域问题_nginx不停的xhr-程序员宅基地

文章浏览阅读1k次。通过使用ajax方法跨域请求是浏览器所不允许的,浏览器出于安全考虑是禁止的。警告信息如下:不过jQuery对跨域问题也有解决方案,使用jsonp的方式解决,方法如下:$.ajax({ async:false, url: 'http://www.mysite.com/demo.do', // 跨域URL ty..._nginx不停的xhr

在 Oracle 中配置 extproc 以访问 ST_Geometry-程序员宅基地

文章浏览阅读2k次。关于在 Oracle 中配置 extproc 以访问 ST_Geometry,也就是我们所说的 使用空间SQL 的方法,官方文档链接如下。http://desktop.arcgis.com/zh-cn/arcmap/latest/manage-data/gdbs-in-oracle/configure-oracle-extproc.htm其实简单总结一下,主要就分为以下几个步骤。..._extproc

Linux C++ gbk转为utf-8_linux c++ gbk->utf8-程序员宅基地

文章浏览阅读1.5w次。linux下没有上面的两个函数,需要使用函数 mbstowcs和wcstombsmbstowcs将多字节编码转换为宽字节编码wcstombs将宽字节编码转换为多字节编码这两个函数,转换过程中受到系统编码类型的影响,需要通过设置来设定转换前和转换后的编码类型。通过函数setlocale进行系统编码的设置。linux下输入命名locale -a查看系统支持的编码_linux c++ gbk->utf8

IMP-00009: 导出文件异常结束-程序员宅基地

文章浏览阅读750次。今天准备从生产库向测试库进行数据导入,结果在imp导入的时候遇到“ IMP-00009:导出文件异常结束” 错误,google一下,发现可能有如下原因导致imp的数据太大,没有写buffer和commit两个数据库字符集不同从低版本exp的dmp文件,向高版本imp导出的dmp文件出错传输dmp文件时,文件损坏解决办法:imp时指定..._imp-00009导出文件异常结束

python程序员需要深入掌握的技能_Python用数据说明程序员需要掌握的技能-程序员宅基地

文章浏览阅读143次。当下是一个大数据的时代,各个行业都离不开数据的支持。因此,网络爬虫就应运而生。网络爬虫当下最为火热的是Python,Python开发爬虫相对简单,而且功能库相当完善,力压众多开发语言。本次教程我们爬取前程无忧的招聘信息来分析Python程序员需要掌握那些编程技术。首先在谷歌浏览器打开前程无忧的首页,按F12打开浏览器的开发者工具。浏览器开发者工具是用于捕捉网站的请求信息,通过分析请求信息可以了解请..._初级python程序员能力要求

Spring @Service生成bean名称的规则(当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致)_@service beanname-程序员宅基地

文章浏览阅读7.6k次,点赞2次,收藏6次。@Service标注的bean,类名:ABDemoService查看源码后发现,原来是经过一个特殊处理:当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致public class AnnotationBeanNameGenerator implements BeanNameGenerator { private static final String C..._@service beanname

随便推点

二叉树的各种创建方法_二叉树的建立-程序员宅基地

文章浏览阅读6.9w次,点赞73次,收藏463次。1.前序创建#include<stdio.h>#include<string.h>#include<stdlib.h>#include<malloc.h>#include<iostream>#include<stack>#include<queue>using namespace std;typed_二叉树的建立

解决asp.net导出excel时中文文件名乱码_asp.net utf8 导出中文字符乱码-程序员宅基地

文章浏览阅读7.1k次。在Asp.net上使用Excel导出功能,如果文件名出现中文,便会以乱码视之。 解决方法: fileName = HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8);_asp.net utf8 导出中文字符乱码

笔记-编译原理-实验一-词法分析器设计_对pl/0作以下修改扩充。增加单词-程序员宅基地

文章浏览阅读2.1k次,点赞4次,收藏23次。第一次实验 词法分析实验报告设计思想词法分析的主要任务是根据文法的词汇表以及对应约定的编码进行一定的识别,找出文件中所有的合法的单词,并给出一定的信息作为最后的结果,用于后续语法分析程序的使用;本实验针对 PL/0 语言 的文法、词汇表编写一个词法分析程序,对于每个单词根据词汇表输出: (单词种类, 单词的值) 二元对。词汇表:种别编码单词符号助记符0beginb..._对pl/0作以下修改扩充。增加单词

android adb shell 权限,android adb shell权限被拒绝-程序员宅基地

文章浏览阅读773次。我在使用adb.exe时遇到了麻烦.我想使用与bash相同的adb.exe shell提示符,所以我决定更改默认的bash二进制文件(当然二进制文件是交叉编译的,一切都很完美)更改bash二进制文件遵循以下顺序> adb remount> adb push bash / system / bin /> adb shell> cd / system / bin> chm..._adb shell mv 权限

投影仪-相机标定_相机-投影仪标定-程序员宅基地

文章浏览阅读6.8k次,点赞12次,收藏125次。1. 单目相机标定引言相机标定已经研究多年,标定的算法可以分为基于摄影测量的标定和自标定。其中,应用最为广泛的还是张正友标定法。这是一种简单灵活、高鲁棒性、低成本的相机标定算法。仅需要一台相机和一块平面标定板构建相机标定系统,在标定过程中,相机拍摄多个角度下(至少两个角度,推荐10~20个角度)的标定板图像(相机和标定板都可以移动),即可对相机的内外参数进行标定。下面介绍张氏标定法(以下也这么称呼)的原理。原理相机模型和单应矩阵相机标定,就是对相机的内外参数进行计算的过程,从而得到物体到图像的投影_相机-投影仪标定

Wayland架构、渲染、硬件支持-程序员宅基地

文章浏览阅读2.2k次。文章目录Wayland 架构Wayland 渲染Wayland的 硬件支持简 述: 翻译一篇关于和 wayland 有关的技术文章, 其英文标题为Wayland Architecture .Wayland 架构若是想要更好的理解 Wayland 架构及其与 X (X11 or X Window System) 结构;一种很好的方法是将事件从输入设备就开始跟踪, 查看期间所有的屏幕上出现的变化。这就是我们现在对 X 的理解。 内核是从一个输入设备中获取一个事件,并通过 evdev 输入_wayland

推荐文章

热门文章

相关标签