LLM--提示词Propmt的概念、作用及如何设计提示词

文章目录

  • 1. 什么是提示词?
  • 2. 提示词的作用
  • 3. 如何设计提示词?
    • 3.1. 提供详细的信息
    • 3.2. 指定角色
    • 3.3. 使用分隔符和特殊符号
    • 3.4. 提供示例
    • 3.5. 少量示例的思维链(COT)模型
    • 3.6. 思维树(TOT)模型
    • 3.7. 自洽性 COT 模型
    • 3.8 提供专业的数据
  • 4. 提示词原则
  • 5. 示例

有关如何写好提示词,请学习面向开发者的大模型手册 - LLM Cookbook,设计高效 Prompt 的两个关键原则:编写清晰、具体的指令给予模型充足思考时间

1. 什么是提示词?

一种用于指导人工智能(如聊天机器人或图像生成工具)生成特定内容的文字。

提示词的设计旨在以一种高效精确的方式向模型传达用户的意图或所需的任务类型,从而使模型能够根据这些提示生成相应的文本、图像或其他形式的回应。

如同生活中的交流,说话本身并不难,但高效的表达自己的想法确实有点门道。,正确和有效的提示词可以极大地提升 AI 交互的效果

从底层逻辑上讲,提示词的作用主要包含三方面:清晰地表达需求引导 AI 模型思考提供专业数据,围绕着这三个方面能拓展出许多作用

2. 提示词的作用

提示词是 AI 交互中的关键元素,它们不仅影响着 AI 的响应方式,也是实现有效沟通和达成用户目标的重要工具。了解并恰当使用提示词,可以显著提升与 AI 模型的互动效果,使得这些高级技术更加贴合用户的实际需求

  • 引导对话方向:提示词帮助指明对话的方向和主题,确保 AI 能够理解用户的具体需求。
  • 提高响应质量:精确和具体的提示词能够提高 AI 响应的相关性和准确性,减少误解和无效回答。
  • 增强用户体验:通过提供清晰的提示词,用户可以获得更快速、更满意的回答,从而提升整体的交互体验。
  • 激发 AI 的创造力和深度思考:创意性和探索性的提示词可以激发 AI 进行更深入的思考和创新,生成更有趣和丰富的内容。
  • 实现特定任务和目标:指令性和问题解决型的提示词可以帮助用户实现具体的任务或获得解决特定问题的方案。
  • 调整语言风格和输出格式:通过调整提示词的风格和格式,用户可以指导 AI 以不同的方式表达,满足不同场景的需求。
  • 设定个性化风格:情感性提示词有助于生成更有情感共鸣的回答,增加交流的人性化和温暖。
  • 适应多样化需求:不同类型的提示词使 AI 能够适应更广泛的查询和需求,提供多元化的服务。

3. 如何设计提示词?

提示词的设计原则如下:

3.1. 提供详细的信息

按照 5W1H(What/When/Where/Who/Why/How)模型提问,这不仅能从根本上提高你的提示词设计能力,也能培养你的表达习惯

  • What:具体是什么?下一步是什么?还有什么?
  • When:哪个时间点?什么时候开始/介绍?历时多久?
  • Who:你是谁?你要扮演什么角色?谁需要你的帮助?谁关心这个需求?
  • Where:具体在哪里?将要去哪里?
  • Why:为什么会出现这个问题?你为什么求助我?
  • How:怎么解决?预期效果怎样?多少?

3.2. 指定角色

指定角色本就是在表达我们的特定需求,因为各种角色有他自己的属性、风格和能力

3.3. 使用分隔符和特殊符号

对于结构复杂的提示词,分隔符和特殊符号的使用能帮助 AI 模型准确的识别你的需求

目前经常用到的特殊符号主要有:**#/*/<>/—/‘’/“”**等

示例

#背景#:`正在阅读一篇文章,由多种语言组成,为了更好地理解,我需要将部分语言翻译成英文。`
#角色#:`希望您是一位能将任何语言翻译成英文的翻译。`
#动作#:`无论我输入多少内容,您都只需要将我输入的 " “ 内的提示翻译成英文。`

在这里插入图片描述

#角色#:`你是一个NLP专家`
#动作#:`无论我输入多少内容,您都只需要将我输入的“”内的文件进行人名、地名、组织的提取,并严格按照输出格式进行输出`
#输出格式#: `
{"人名":"张三#李四",
"地名":"苗栗县#广州",
"组织名":"国民党#党校"
}
`
#输入#:`国民党主席朱立伦6日中常会宣布推动党务组织,包括将黄复兴党部转型为退伍军人服务工作委员会,与原有地方党部组织功能整并,引起外界关注。对此,国民党副主席连胜文今日强调并非裁撤,属于2.0的概念,组织改革是为了进步,调整需要时间,国民党中央也会持续跟大家沟通。连胜文今天前往苗栗县陪同县议员余文忠登记参选苗栗市长,对于国民党内推动组织改革。连胜文说,他首先要澄清,黄复兴党部并没有裁撤,只是根据现实社会需求做一些调整,主要目的也希望能够将有限资源做最好运用,以最精简人力做最大服务`

在这里插入图片描述

3.4. 提供示例

示例的运用更清晰的表达你的需求,它不仅包含了你想要的输出格式、内容,还能引导Chat GPT 按照你的逻辑思考,而示例的重点不在于其复杂性,更重要的是其背后的逻辑。

3.5. 少量示例的思维链(COT)模型

对于复杂且深入的问题,如果直接让 Chat GPT 给出答案,结果一般都会差强人意,所以就需要我们运营少量示例辅助的 COT 模型,引导 AI 逐步的思考

3.6. 思维树(TOT)模型

COT 思维链模型虽然能引导 AI 模型逐步的思考,并最终得到我们想要的答案,但对于需要探索或预判的复杂任务来说,传统或简单的提示技巧是不够的。ToT 围绕着一棵思维树展开,思维由连贯的语言序列表示,这个序列就是解决问题的中间步骤。使用这种方法,语言模型能够自己对严谨推理过程的中间思维进行评估,而每个中间过程都保留最有的选项,最终结果会从这些最优子选项的排列组合中挑选出来。

3.7. 自洽性 COT 模型

自洽性(Self-consistency)是对 CoT 的一个补充,它不仅仅生成一个思路链,而是生成多个思路链,然后取多数答案作为最终答案。这种想法是通过少样本 CoT 采样多个不同的推理路径,并使用生成结果选择最一致的答案。这有助于提高 AI 模型在处理算术和常识推理任务中的准确性。(简而言之,一题多解,选择最优解

3.8 提供专业的数据

Chat GPT 非常擅长处理逻辑性的问题,能辅助你思考和文本创作,但它并不擅长回答一些事实性的问题,比如你问它一些具体的历史事件。尽管它可能回答的有模有样的,但真实性糟糕透了,这就是因为它缺乏准确的数据。

为了改善它的准确性,你非常有必要输入跟问题相关的专业数据,这可以通过附件上传、文本输入,也可以通过打造 GPTs 实现,关键是你要有专业数据。

4. 提示词原则

有关如何写好提示词,请学习面向开发者的大模型手册 - LLM Cookbook,设计高效 Prompt 的两个关键原则:编写清晰、具体的指令给予模型充足思考时间

下面都是针对上面2个原则的一些细化。

  • 明确“好结果”的标准:
    • Prompt的性能上限与我们对“好结果”的理解程度成正比
    • 每一条指令的表述应当越精炼越好
    • 遵守奥卡姆剃刀法则【“简约之法则”】:简洁的往往是正确的,越是复杂,越容易犯错
  • 精准表达任务指令:使用官方、书面、礼貌、友善的语言撰写Prompt,力求语句流畅、意图清晰、表达精简,确保Prompt所描述的相关任务易读、易懂、易操作: Prompt设计的基本原则,是Prompt应当和大模型的高质量训练数据分布尽可能一致
    • 使用2-3句话向高中生解释提示工程的概念
    • 生成图像的prompt: 中国风,身穿机甲,赛博朋克,色彩丰富,高对比度,完美光影,虚幻引擎,浩瀚星空背景,CG渲染,超高分辨率,4k高清壁纸,电影特效,光线追踪,高清画质,细节刻画
  • 为否定句设置兜底策略: 尽量为每一个否定句都设置一个兜底策略
  • 指定模型所扮演的角色
    • 你是一位小红书爆款文案写作大师,请帮我写一份青岛旅游攻略
    • 你是一位专业的游戏原画大师,请帮我画一幅装着光的水晶瓶
  • 指定生成结果的格式
  • 增加强调词和强调符号: 模型可能会更关心靠前和靠后的指令,忽略中间的指令,将重要的需求放在前面,并在最后加以重复可以起到强调的作用
    • 如果每一条需求都很重要,则可以尝试使用text、「text」、“text”等特殊符号,或者增加注意、务必、严格等词汇来强调需求点的重要程度。
    • 和角色指定一样,增加强调符号或强调词并不总是有效的,但通常也不会有什么副作用。
  • 撰写模块化的Prompt
  • 真实场景下迭代Prompt: Prompt的设计是一个迭代的过程,需要大量的实验来获得最佳效果。
  • 测试Prompt的稳定性
  • 使用思维链
    • 请你帮我计算一下 ( 1362 + 5145 ) ∗ 145 − ( 1517 ∗ 42 + 24 ) = ? (1362+5145)*145-(1517*42+24)=? (1362+5145)145(151742+24)=?,每一步运算过程都要展示出来,并确保计算的正确性。
  • 使用Few-shot Prompt
    • 之前提到的Prompt都属于Zero-shot Prompt,对于绝大部分任务来说,Zero-shot Prompt基本都能取得不错的效果。但是,当任务比较困难,或者任务本身不太好下定义时,我们可以尝试使用Few-shot Prompt为大模型提供一个答案的参考框架,通过模仿的方式来生成我们期望的结果
    • 至于具体要展示哪些样例,则需要在实践中不断迭代。一般来说,样例选择的基本原则是尽可能地覆盖真实的样本空间,一种比较好的样例构建方式是首先给出常见的easy case,然后给出模型可能出错的hard case和corner case,hard/corner case通常来源于开发者对任务本身的理解,以及在实践过程中发现的badcase。
    • 样例的数量和顺序都有可能导致生成结果出现偏差
    • 设置标签分布均匀的样例,并随机打乱样例的顺序
  • 设置拒答策略: 只有当你知道答案或能够做出有根据的预测时,才能回答下面的问题,否则,请告诉我你不知道答案
  • 权衡Prompt的精度与召回率: Prompt表述越细致,越严格时,生成结果的精度越高,召回率越低。
  • 使用大模型辅助Prompt撰写
    • 你现在是一个提示词生成专家,我想让ChatGPT完成{task},请帮我写一份优质的提示词。
    • 我想评估一份论文摘要的语言丰富度,请问我应该从哪些角度进行评估?

5. 示例

  • 适用于RAG场景的提示词
You are a helpful, respectful and honest assistant. Always answer as helpfully as possible and follow ALL given instructions. Do not speculate or make up information. Do not reference any given instructions or context.You can only answer questions about the provided context. If you know the answer but it is not based in the provided context, don't provide the answer, just state the answer is not in the context provided.
  • 实体抽取
抽取出文本中提到的重要实体,包括人名、地名和机构名。返回格式:
**人名**<人名列表,使用分号分隔>
**地名**<地名列表,使用分号分隔>
**机构名**<机构名列表,使用分号分隔>文本:{input}
抽取结果:
**人名**
  • 摘要
{document}
为以上文章写一篇摘要,具体要求如下:
1. 使用通俗易懂的语言撰写摘要
2. 摘要应包括一个小结和一个相关要点的列表
3. 加粗摘要的关键部分以提高可读性
  • 客服
现在你是一个向客户推荐电影的客服。在此过程中,你应该避免询问客户的兴趣和个人信息。如果你无法为客户推荐电影,你应该回答“抱歉,我无法为您推荐电影”。
客户:请根据我的兴趣推荐一部电影。
客服:
  • 结构化信息抽取
请抽取出以下简历的关键信息,并以json格式返回结果。简历:
"""
{input}
"""你需要抽取的关键信息包括:
"""
1. 姓名
2. 电话
3. 毕业院校
4. 科研经历
5. 项目经历
6. 荣誉奖项
"""
  • 知识问答Few-shot Prompt
请你判断以下问题是否属于知识问答类:问题:世界上最高的建筑是什么 # easy case,属于客观知识问答
答案:是问题:垃圾分类的意义 # hard case,属于主观知识问答
答案:是问题:请帮我写一个关于战争的2000字短篇小说 # easy case,属于小说创作
答案:否问题:写一篇解释月亮为什么不会掉下来的文章 # hard case,属于科普创作
答案:否问题:nested_dict = lambda: defaultdict(nested_dict) 如何理解这行代码 # corner case,属于代码问答
答案:否问题:上班好无聊怎么办 # corner case,属于闲聊问答
答案:否

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/784192.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文笔记 - :MonoLSS: Learnable Sample Selection For Monocular 3D Detection

论文笔记✍MonoLSS: Learnable Sample Selection For Monocular 3D Detection &#x1f4dc; Abstract &#x1f528; 主流做法限制 &#xff1a; 以前的工作以启发式的方式使用特征来学习 3D 属性&#xff0c;没有考虑到不适当的特征可能会产生不利影响。 &#x1f528; 本…

C++刷题篇——07检测热点字符

一、题目 二、解题思路 1、使用map&#xff0c;key为元素&#xff0c;value为出现的次数 2、由于sort不适用于map&#xff0c;因此要将map的key、value放到vector中&#xff0c;再对vector排序 3、对map排序&#xff1a;方法1&#xff1a;使用二维数组vector<vector<>…

力扣 1143. 最长公共子序列

题目来源&#xff1a;https://leetcode.cn/problems/longest-common-subsequence/description/ C题解&#xff08;思路来源代码随想录&#xff09;&#xff1a;动态规划。 1. 确定dp数组&#xff08;dp table&#xff09;以及下标的含义 dp[i][j]&#xff1a;长度为[0, i - 1]…

R2GenCMN中的Encoder_Decoder结构

R2GenCMN中的 Encoder_Decoder 结构 Encoder_Decoder 结构直接关系到文本的生成&#xff0c;它结构参考的transformer的结构 我们这里主要看代码的实现&#xff0c;从视觉编码器的输出开始 1. 模型结构 首先介绍一下整体结构&#xff0c;这里的baseCMN其实就是一个包装了的T…

编曲知识16:贴唱混音思路 录音 对轨 降噪

贴唱混音思路 录音 对轨 降噪小鹅通-专注内容付费的技术服务商https://app8epdhy0u9502.pc.xiaoe-tech.com/live_pc/l_6607f17ae4b092c1684f438a?course_id=course_2XLKtQnQx9GrQHac7OPmHD9tqbv 混音思路 贴唱混音、分轨混音 贴唱:由翻唱混音发展而来,指仅处理人声和伴奏…

算法学习——LeetCode力扣补充篇6(132. 分割回文串 II、673. 最长递增子序列的个数、841. 钥匙和房间、463. 岛屿的周长)

算法学习——LeetCode力扣补充篇6 132. 分割回文串 II 132. 分割回文串 II - 力扣&#xff08;LeetCode&#xff09; 描述 给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是 回文串 。 返回符合要求的 最少分割次数 。 示例 示例 1&#…

CCIE-07-OSPF_TS

目录 实验条件网络拓朴逻辑拓扑实现目标 环境配置开始Troubleshooting问题1. R22的e0/0接口配置了网络类型问题2. R22和R21之间的IP地址子网掩码长度不一致问题3. R21的e0/0口配置了被动接口问题4. R3配置了不一致的hello-time问题5. R21配置了max-metric导致路由无效问题6. R3…

深度学习评价指标(1):目标检测的评价指标

1. 简述 在计算机视觉/深度学习领域&#xff0c;每一个方向都有属于自己的评价指标。通常在评估一个模型时&#xff0c;只需要计算出相应的评价指标&#xff0c;便可以评估算法的性能。同时&#xff0c;所谓SOTA&#xff0c;皆是基于某一评价指标进行的评估。 接下来&#xff0…

【JavaWeb】Day29.SpringBootWeb请求响应——请求(二)

请求响应 4.数组集合参数 数组集合参数的使用场景&#xff1a;在HTML的表单中&#xff0c;有一个表单项是支持多选的(复选框)&#xff0c;可以提交选择的多个值。 4.1 数组 数组参数&#xff1a;请求参数名与形参数组名称相同且请求参数为多个&#xff0c;定义数组类型形参即…

IO流c++

IO流类库 输入输出流 #include <iostream> using namespace std;class InCount { public:InCount(int a 0, int b 0){c1 a;c2 b;}void show(void){cout << "c1" << c1 << "\t" << "c2" << c2 << …

Springboot Thymeleaf 实现数据添加、修改、查询、删除

1、引言 在Spring Boot中使用Thymeleaf模板引擎实现数据的添加、修改、查询和删除功能&#xff0c;通常步骤如下&#xff1a; 在Controller类中&#xff0c;定义处理HTTP请求的方法。创建Thymeleaf模板来处理表单的显示和数据的绑定。 2、用户数据添加 1、 在Controller类中…

Pytorch 下载失败原因

错误信息&#xff1a; ERROR: Could not find a version that satisfies the requirement torch (from versions: none) ERROR: No matching distribution found for torch 解决方案&#xff1a; 在官网看到&#xff0c;它需要python3.8-3.11的环境。过高和过低的版本都不…

Linux 学习之路 -- 工具篇 -- gcc / g++

在 Linux 系统中&#xff0c;gcc 和 g 是两个常用的编译工具&#xff0c;分别用于编译 C 和 C 代码。下面我将介绍gcc、g的一些基本用法 目录 一、简单的认识 二、简单了解一下编译的过程 <1> 预处理阶段 <2>编译 <3>汇编 <4>链接…

ssm012医院住院管理系统+vue

医院住院管理关系 摘 要 随着时代的发展&#xff0c;医疗设备愈来愈完善&#xff0c;医院也变成人们生活中必不可少的场所。如今&#xff0c;已经2021年了&#xff0c;虽然医院的数量和设备愈加完善&#xff0c;但是老龄人口也越来越多。在如此大的人口压力下&#xff0c;医院…

JavaAgent 技术原理及实战

JavaAgent 技术原理及实战 1、引子2、JavaAgent 简单示例&#xff1a;方法开始和结束时打印日志2.1 创建 Agent2.2 编写验证 agent 功能的测试类2.2.1 使用JavaAgent 静态加载方式2.2.2 使用 JavaAgent 动态加载方式 2.3、小结 3、JavaAgent3.1 JavaAgent是什么&#xff1f;3.2…

linux 软中断入门

在 linux 中&#xff0c;任务执行的载体有很多&#xff0c;包括线程&#xff0c;中断&#xff0c;软中断&#xff0c;tasklet&#xff0c;定时器等。但是从本质上来划分的话&#xff0c;任务执行的载体只有两个&#xff1a;线程和中断。软中断和 tasklet 的执行可能在中断中&am…

DevSecOps安全工具链介绍

目录 一、概述 二、安全工具链在平台中的定位 2.1 概述 2.2 分层定位 2.2.1 不同阶段的安全工具 2.2.2 安全工具金字塔 2.3 安全流水线集成概览 2.3.1 概述 2.3.2 标准流水线集成安全工具链概览图 三、安全工具链分类 3.1 概述 3.2 威胁建模类 3.2.1 威胁建模的概念…

计算机网络:数据链路层 - 封装成帧 透明传输 差错检测

计算机网络&#xff1a;数据链路层 - 封装成帧 & 透明传输 & 差错检测 数据链路层概述封装成帧透明传输差错检测 数据链路层概述 从数据链路层来看&#xff0c;主机 H1 到 H2 的通信可以看成是在四段不同的链路上的通信组成的&#xff0c;所谓链路就是从一个节点到相邻…

Android设备无线连接电脑及QXDM、QACT等工具的方法

首先样机和笔记本电脑连接同一wifi网络 adb root adb shell ifconfig复制inet addr地址 ping inet addr地址 adb tcpip 5555 adb connect (inet addr地址):5555 此时adb和机器使用wifi连接好了&#xff0c;可以拔出usb线 ipconfig查询电脑的IP地址 ipconfig使用adb在主机上…

canvas+javascript 实现贪吃蛇游戏

引言 在当今数字化时代&#xff0c;编程已经成为一种极具创造力和趣味性的活动。通过编写代码&#xff0c;我们可以创造出各种各样的应用程序和游戏&#xff0c;其中包括经典的贪吃蛇游戏。本文将向您介绍如何使用 JavaScript 编程语言制作一个简单而有趣的贪吃蛇游戏&#xf…