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

news2024/11/23 18:26:11

文章目录

  • 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.coloradmin.cn/o/1558232.html

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

相关文章

牛角工具箱源码 轻松打造个性化在线工具箱

&#x1f389; Whats this&#xff1f; 这是一款在线工具箱程序&#xff0c;您可以通过安装扩展增强她的功能 通过插件模板的功能&#xff0c;您也可以把她当做网页导航来使用~ 觉得该项目不错的可以给个Star~ &#x1f63a; 演示地址 https://tool.aoaostar.com &#x1f…

京东云免费服务器申请入口,2024年最新免费云主机

京东云服务器免费6月申请入口 jdyfwq.com 在京东云免费云主机申请页面&#xff0c;免费云服务器配置为云主机2核4G5M和轻量云主机2C2G可以申请免费使用&#xff0c;目前京东云免费云服务器申请时长从之前的6个月缩短到1个月&#xff0c;如下图&#xff1a; 京东云免费云主机 云…

如何通过cookie来区分这是瑞数反爬的几代

一、以下仅个人观点&#xff0c;可能有误 1、瑞数反爬了解 瑞数反爬&#xff1a;大多数首次不带cookie的请求&#xff0c;响应状态码是202/412瑞数的cookie &#xff1a; 我们看PPT结尾的Cookie的来定位是几代&#xff0c;PT的是js生成的&#xff1b; 不看OS的&#xff0c;OS…

C语言使用STM32开发板手搓高端家居洗衣机

目录 概要 成品效果 背景概述 1.开发环境 2.主要传感器。 技术细节 1. 用户如何知道选择了何种功能 2.启动后如何进行洗衣 3.如何将洗衣机状态上传至服务器并通过APP查看 4.洗衣过程、可燃气检测、OLED屏显示、服务器通信如何并发进行 小结 概要 本文章主要是讲解如…

物联网学习1、什么是 MQTT?

MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一种轻量级、基于发布-订阅模式的消息传输协议&#xff0c;适用于资源受限的设备和低带宽、高延迟或不稳定的网络环境。它在物联网应用中广受欢迎&#xff0c;能够实现传感器、执行器和其它设备之间的高效通…

【Monero】Wallet RPC | Wallet CLI | 门罗币命令行查询余额、种子、地址等命令方法教程

ubuntu22.04 首先在运行daemon&#xff0c;详细安装运行教程可参考&#xff1a;The Monero daemon (monerod) ./monerodWallet CLI run ./monero-wallet-cli如果还没有钱包就根据提示创建钱包即可 输入密码 查询余额 balance查询种子 seed其他可执行命令操作&#xff1…

Linux:查看系统各个组件性能的方法

查看cpu top 还有更为直观的 htop 可以同时看到&#xff0c;内存占用&#xff0c;cpu占用&#xff0c;交换内存的占用 vmstat 是比较综合的可以看到内存&#xff0c;交换内存&#xff0c;io吞吐&#xff0c;系统&#xff0c;cpu 查看内存 free -h 可以看懂内存的使用情况 …

企业知识库搭建不再是难题,靠这几个软件就可以了

在当今知识为王的时代&#xff0c;具备一套强大且实用的企业知识库&#xff08;Knowledge Base&#xff09;已成为提升工作效率、促进团队合作不可或缺的工具。那么&#xff0c;问题来了&#xff0c;我们该如何搭建一套属于自己的知识库呢&#xff1f;今天&#xff0c;我就给大…

Spring IoCDI(3)

DI详解 接下来学习一下依赖注入DI的细节. 依赖注入是一个过程, 是指IoC容器在创建Bean时, 去提供运行时所依赖的资源, 而资源指的就是对象. 在之前的案例中, 使用了Autowired这个注解, 完成了依赖注入这个操作. 简单来说, 就是把对象取出来放到某个类的属性中. 在一些文章中…

C++学习随笔(8)——模板初阶

本章我们来学习一下C的模版部分&#xff01; 目录 1. 泛型编程 2. 函数模板 2.1 函数模板概念 2.1 函数模板格式 2.3 函数模板的原理 2.4 函数模板的实例化 2.5 模板参数的匹配原则 3. 类模板 3.1 类模板的定义格式 3.2 类模板的实例化 1. 泛型编程 如何实现一个通…

【C++】为什么能实现函数重载

从C语言一路学到C的途中&#xff0c;C语言C语言相比&#xff0c;多了个函数重载&#xff0c;那么函数重载是如何实现的呢&#xff0c;为什么C语言无法支持&#xff0c;在本篇博客中&#xff0c;将会讲解C为何能实现函数重载。 一.编译过程 C能实现函数重载&#xff0c;而C语言不…

CloudFlare WARP+ 无限流量

Cloudflare WARP 是一种由 Cloudflare 提供的虚拟专用网络&#xff08;VPN&#xff09;服务&#xff0c;旨在提供更安全、更快速的互联网连接。WARP 的目标是通过使用 Cloudflare 的全球网络基础设施来加密和保护用户的互联网流量&#xff0c;并且通过优化路由和连接&#xff0…

012_control_flow_in_Matlab中的控制流

Matlab中的控制流 虽然&#xff0c;我们说Matlab中的计算是向量化的&#xff0c;但是在某些情况下&#xff0c;作为一个“程序设计语言”&#xff0c;Matlab也提供了一些控制流结构&#xff0c;来帮助我们实现一些复杂的逻辑。 我会在介绍控制流的时候&#xff0c;提醒如何用…

Spark源码(二)-Netty简介

一、Netty简介 Netty 是一个异步事件驱动的网络通信应用框架&#xff0c;用于快速开发可维护的高性能服务器和客户端。简单地说Netty封装了JDK的NIO&#xff0c;不用再写一大堆复杂的代码&#xff0c;从NIO各种繁复的细节中脱离出来&#xff0c;让开发者重点关心业务逻辑。 二…

新书速递——《可解释AI实战(PyTorch版)》

本书旨在帮助你实施最新的可解释AI技术&#xff0c;以构建公平且可解释的AI系统。可解释AI是当今AI研究中的热门话题&#xff0c;但只有少数资源和指南涵盖了所有重要技术&#xff0c;这些技术对实践者来说非常有价值。本书旨在填补这一空白。 本书读者对象 本书既适合那些有兴…

阿里云2核4G云服务器支持多少人同时在线?并发数计算?

阿里云2核4G服务器多少钱一年&#xff1f;2核4G配置1个月多少钱&#xff1f;2核4G服务器30元3个月、轻量应用服务器2核4G4M带宽165元一年、企业用户2核4G5M带宽199元一年。可以在阿里云CLUB中心查看 aliyun.club 当前最新2核4G服务器精准报价、优惠券和活动信息。 阿里云官方2…

04 | Swoole 源码分析之 epoll 多路复用模块

首发原文链接&#xff1a;Swoole 源码分析之 epoll 多路复用模块 大家好&#xff0c;我是码农先森。 引言 在传统的IO模型中&#xff0c;每个IO操作都需要创建一个单独的线程或进程来处理&#xff0c;这样的操作会导致系统资源的大量消耗和管理开销。 而IO多路复用技术通过…

第十四届蓝桥杯JavaA组省赛真题 - 棋盘

解题思路&#xff1a; 暴力 棋盘类题目取反操作&#xff1a; f[a][b]^1; 或者f[a][b] 1 - f[a][b]; import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scan new Scanner(System.in);int n scan.nextInt();int m scan.nex…

(南京观海微电子)——GOA介绍

GOA是Gate on Array的简写&#xff0c;简单可以理解为gate IC集成在玻璃上了&#xff0c;面板就可以不用gate ic了&#xff0c;是一种低成本的设计&#xff0c;窄边框面板大多数都用了GOA技术。还有一些公司叫GIP&#xff08;Gate in Panel&#xff09;&#xff0c;GDM等等。 …

已上线项目,突然有一天网站虽进得去,但是接口拿不到数据,作为前端的你如何排查问题?

在开始写这篇博客之前,想说几句题外话哈,虽然自己的粉丝不多,但自己每篇博客都是用心在写,可能后面会针对部分文章开启只有VIP才能访问,原因你们也懂得(▽),无非是想赚点外块呗,不过主要现在也是知识付费时代,毕竟自己写出的东西也是本人亲身经历着,也是具有一定的价值…