当前位置: 首页 > news >正文

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,属于闲聊问答
答案:否

相关文章:

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

文章目录 1. 什么是提示词&#xff1f;2. 提示词的作用3. 如何设计提示词&#xff1f;3.1. 提供详细的信息3.2. 指定角色3.3. 使用分隔符和特殊符号3.4. 提供示例3.5. 少量示例的思维链&#xff08;COT&#xff09;模型3.6. 思维树&#xff08;TOT&#xff09;模型3.7. 自洽性 …...

59 使用 uqrcodejs 生成二维码

前言 这是一个最近的一个来自于朋友的需求, 然后做了一个 基于 uqrcodejs 来生成 二维码的一个 demo package.json 中增加以依赖 "uqrcodejs": "^4.0.7", 测试用例 <template><div class"hello"><canvas id"qrcode&qu…...

Leetcode 3097. Shortest Subarray With OR at Least K II

Leetcode 3097. Shortest Subarray With OR at Least K II 1. 解题思路2. 代码实现 题目链接&#xff1a;3097. Shortest Subarray With OR at Least K II 1. 解题思路 这一题是题目3095的一个进阶版本&#xff0c;但也就是增加了序列的复杂度而已&#xff0c;要求我们能够在…...

算法系列--递归,回溯,剪枝的综合应用(2)

&#x1f495;"对相爱的人来说&#xff0c;对方的心意&#xff0c;才是最好的房子。"&#x1f495; 作者&#xff1a;Lvzi 文章主要内容&#xff1a;算法系列–递归,回溯,剪枝的综合应用(2) 大家好,今天为大家带来的是算法系列--递归,回溯,剪枝的综合应用(2) 一.括号…...

Docker搭建LNMP环境实战(09):安装mariadb

1、编写mariadb部署配置文件 在文件夹&#xff1a;/mnt/hgfs/dockers/test_site/compose下创建文件&#xff1a;test_site_mariadb.yml&#xff0c;内容如下&#xff1a; version: "3.5" services:test_site_mariadb:container_name: test_site_mariadbimage: mari…...

基于Python的微博舆论分析,微博评论情感分析可视化系统,附源码

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…...

Flutter iOS上架指南

本文探讨了使用Flutter开发的iOS应用能否上架&#xff0c;以及上架的具体流程。苹果提供了App Store作为正式上架渠道&#xff0c;同时也有TestFlight供开发者进行内测。合规并通过审核后&#xff0c;Flutter应用可以顺利上架。但上架过程可能存在一些挑战&#xff0c;因此可能…...

实操:driver.js 实现产品导览、亮点、上下文帮助

官网 https://driverjs.com/ 依赖 <script src"https://cdn.jsdelivr.net/npm/driver.js1.0.1/dist/driver.js.iife.js"></script> <link rel"stylesheet" href"https://cdn.jsdelivr.net/npm/driver.js1.0.1/dist/driver.css"/…...

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

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

asf是什么格式的文件?用手机怎么打开?

由于手机操作系统和硬件的限制&#xff0c;大部分手机并不直接支持asf文件的播放。因此&#xff0c;如果你想在手机上打开asf文件&#xff0c;你可能需要先将文件转换为手机支持的格式&#xff0c;如MP4。可以通过使用一些视频转换软件来实现&#xff0c;比如野葱视频转换器。 …...

picGo图床搭建gitee和smms(建议使用)

picGoGitee 这个需要下载gitee插件, 因为官方频繁的检索文件类型, 有时候也会失效 如果没有特殊要求平时存个学习的要看图中文字的重要的图片建议就是smms, 免费也够用! 图片存本地不方便, 各种APP中来回传还会失帧损失画质, 所以你值得往下看 picGosmms 建议使用这个, sm…...

LeetCode | 数组 | 二分查找 | 35.搜索插入位置【C++】

题目链接 题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5 输出…...

Linux 给网卡配置ip

ip addr | grep eth9 ifconfig eth9 10.0.0.2 netmask 255.255.255.0 up...

【C语言】翻译环境与运行环境

一、前言 在我们学习C语言的时候&#xff0c;第一个接触的程序就是&#xff1a;在屏幕上打印” hello word! “&#xff0c;可当时的我们却未去深入的理解与感悟&#xff0c;一个程序代码是如何运行的&#xff1b;而这一期的博客&#xff0c;则是带着我们&#xff0c;通过C代码…...

ubuntu20.04执行sudo apt-get update失败的解决方法

参考&#xff1a;执行sudo apt-get update失败的解决方案 1、换源型错误 &#xff08;1&#xff09;编辑/etc/apt/sources.list文件 在命令行中输入&#xff1a; sudo vim /etc/apt/sources.list 或者 sudo gedit /etc/apt/sources.list 推荐使用后者 &#xff08;2&#xf…...

接口调用成功后端却一直返回404

vuespringboot 我在vue.config.js中配置了向后端的反向代理 然后使用了axios向后端发送post请求 可以看到可以接收到前端传来的值 但是前端控制台却报了 “xhr.js:245POST http://localhost:7777/api/login 404 (Not Found)” 最后询问我那智慧的堂哥... ... 解决办法是把C…...

【Vmware】 debian 12 安装教程

1.前提说明 VMware 17.5.1 (自行安装)&#xff0c;参考Debian 12maven 3.8.7git 2.39.2jdk 1.8 / 11 / 17 1.1.Debian 下载 访问(https://www.debian.org/download) 下载 Debian 这是 Debian 12&#xff0c;代号为 bookworm&#xff0c;网络安装&#xff0c;用于 64 位 PC&a…...

YooAssets 使用相关

## 使用 YooAssets 动态加载原生文件时候 > 原生文件&#xff1a;txt&#xff1b;json&#xff1b;等需要直接保存文件内string字符的文件 需要将打包方式设置成为&#xff0c;PackRawFile 并且加载时候使用 API &#xff1a; YooAssets.LoadRawFileSync()YooAssets.LoadRa…...

精准扶贫管理系统|基于Springboot的精准扶贫管理系统设计与实现(源码+数据库+文档)

精准扶贫管理系统目录 目录 基于Springboot的精准扶贫管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员模块的实现 &#xff08;1&#xff09;用户信息管理 &#xff08;2&#xff09;贫困户信息管理 &#xff08;3&#xff09;新闻类型管理 &a…...

Flutter与iOS和Android原生页面交互

一、Flutter 与原生页面交互的重要性和应用场景 Flutter 是一个由 Google 开发的开源框架&#xff0c;用于创建跨平台的移动、Web 和桌面应用程序。Flutter 允许开发者使用一套代码库为 Android 和 iOS 等平台构建美观、高性能的应用程序。然而&#xff0c;尽管 Flutter 提供了…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象&#xff0c;只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意&#xff1a;它移动的位置必须是相连的有内容的单元格…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...