如何创建高效的Prompt和ChatGPT等大语言模型AI对话
大语言模型,如OpenAI的GPT-4,是一种基于深度学习技术的自然语言处理工具,它可以理解自然语言并为用户提供有价值的回答。然而,要从大语言模型中获得高质量的回答,你需要学会如何高效地提问。本文将从原理出发,结合实际问题的正反案例和回答,为初学者介绍如何创建高质量的Prompt与大语言模型对话。
一、什么是Prompt
Prompt是一种用于指导大型语言模型生成自然语言文本的文本片段。在使用大型语言模型时,我们需要提供一个Prompt,以指导模型产生符合我们期望的文本结果。Prompt可以是一个单词、一句话、一段话或一个完整的篇章。
举个例子,如果我们要让大型语言模型生成一篇电影评论,我们可以用如下的Prompt:
“这是一篇关于电影《泰坦尼克号》的评论。”
在这个Prompt中,我们告诉了模型我们要生成一篇关于《泰坦尼克号》的电影评论。然后,我们可以继续提供更多的信息,以指导模型生成更准确的文本结果。
二、大语言模型中Prompt的工作原理
大语言模型中的Prompt是用于与用户进行对话的一种技术,它可以通过自然语言处理技术将用户输入的语言转化为机器可以理解的语言,然后根据预先编写的算法和规则,提供有用的信息和建议。
Prompt的工作原理是基于机器学习和深度学习技术的,它可以根据用户的输入和反馈不断学习和优化,提高对话质量和效率。
大语言模型中的Prompt通常采用了循环神经网络(RNN)或是变种模型,如长短时记忆网络(LSTM)或门控循环单元(GRU)等来实现。这些模型能够处理变长的输入序列,因此适用于对话系统中需要处理的对话文本。
Prompt的工作原理可以分为以下几个步骤:
文本预处理:将用户输入的文本进行处理,去除无用的符号和空格等。
分词处理:将文本进行分词处理,将文本中的单词或短语转换成一个个有意义的词语。
词向量表示:将分词后的文本转换成向量表示,将文本中的每个词语都表示成一个向量。
意图识别:通过机器学习和深度学习技术,将用户输入的文本识别成不同的意图,例如询问产品信息、购物指导、售后服务等。
生成回答:根据用户的意图,生成回答并展示给用户。
三、如何设计高质量的Prompt
大语言模型中的Prompt能够根据用户的输入和反馈不断学习和优化,提高对话质量和效率。如果用户反馈对回答不满意,Prompt可以将这个反馈作为训练数据,进行模型的优化,以便下次提供更准确的回答。这种基于用户反馈的模型优化,可以不断提高Prompt对用户需求和问题的准确性和实用性。
设计高质量的Prompt,可以从以下几个方面考虑:
1. 问题的清晰性
Prompt应该明确指出你想要模型完成的任务。如果你要让模型生成一篇关于某个话题的文章,你的Prompt应该明确说明这个话题是什么。
举个例子,如果你要让模型生成一篇有关狗的文章,你可以使用如下的Prompt:
“请写一篇关于狗的文章。”
2. 提供足够的上下文信息
Prompt应该提供足够的上下文信息,以便模型可以更好地理解你的问题。如果你要让模型回答一个关于某个话题的问题,你需要提供足够的上下文信息,以便模型可以理解问题的背景和相关信息。
举个例子,如果你要问模型一个关于足球的问题,你可以使用如下的Prompt:
“请回答以下问题:谁是2018年世界杯的冠军?”
3. 使用简洁的语言
Prompt应该使用简洁的语言,避免使用过于复杂的语言和难懂的单词。这可以让模型更好地理解你的问题,并生成更准确的文本结果。
举个例子,如果你要让模型生成一篇简短的故事,你可以使用如下的Prompt:
“请写一个关于一只小猫的故事,不超过100个单词。”
4. 提供多样化的Prompt
Prompt应该具有多样性,以确保模型可以应对各种不同的任务和场景。你可以使用不同的Prompt来训练模型,以确保模型可以产生不同的结果。
举个例子,如果你要让模型回答一个有关天气的问题,你可以使用如下的Prompt:
“请问今天的天气如何?”
或者你也可以使用另一个Prompt:
“请告诉我明天会下雨吗?”
5. 不断优化Prompt
设计高质量的Prompt需要不断进行优化。你可以通过观察模型生成的结果,以及与模型进行交互,来优化Prompt。你可以增加或修改Prompt,以便更好地指导模型生成符合你期望的结果。
6. 进行交互式对话
进行交互式对话可以让你与模型进行实时交互,并提供反馈和指导。你可以不断修改Prompt和问题,以便更好地指导模型生成文本结果。
四、如何高效提问与大语言模型对话
1. 明确提问目标
在向大语言模型提问之前,首先需要明确提问的目标。
你希望从模型中获得什么样的信息?是获取知识、解决问题还是寻求建议?明确目标可以帮助你更有针对性地提问。
2. 提问要具体和清晰
确保你的问题具体、清晰且易于理解。简单的问题往往能获得更好的答案。尽量避免使用复杂的语言结构和专业术语。同时,避免提问过于宽泛,这样可能导致模型给出过于笼统的答案。
反例:
用户:告诉我一些关于科学的东西。
这个问题过于宽泛,模型可能无法提供具体的答案。
正例:
用户:请简要解释牛顿三定律。
这个问题明确且具体,模型可以为用户提供详细的解答。
3. 提供足够的背景信息
为了获得更准确的回答,你需要在提问时提供足够的背景信息。这有助于模型了解你所面临的问题和场景,从而给出更有针对性的建议。
反例:
用户:我该怎么办?
这个问题缺乏背景信息,模型无法给出有帮助的建议。
正例:
用户:我正在筹备一场活动,需要邀请100人参加。你有哪些建议可以帮助我提高参会率?
这个问题提供了足够的背景信息,模型可以根据场景给出具体建议。
4. 尽量避免提问偏见
尽量避免在问题中引入个人偏见或者误导性的信息,以免模型给出有偏或错误的回答。
反例:
用户:为什么所有的猫都讨厌水?
这个问题存在偏见,因为并非所有的猫都讨厌水。
正例:
用户:猫为什么通常不喜欢水?
这个问题更中立,可以获得更客观的回答。
5. 利用开放式问题和封闭式问题的优势
根据你的需求,可以选择提问的方式。开放式问题有助于获取更广泛的信息,而封闭式问题则可以获得简洁明了的答案。
开放式问题:
用户:如何提高我的沟通技巧?
这个问题鼓励模型提供多种方法和建议,可以帮助用户从多方面提高沟通技巧。
封闭式问题:
用户:托福考试分数是否会影响我申请美国大学的成功率?
这个问题期望得到一个简单的肯定或否定回答,便于用户快速了解情况。
6. 适时追问和澄清
如果模型给出的回答不够清晰或无法满足你的需求,不妨适时追问和澄清。这有助于模型更好地理解你的问题,从而提供更满意的答案。
追问:
用户:请简要介绍一下量子力学。
模型:量子力学是物理学的一个分支,主要研究原子和亚原子粒子的行为。它的核心原理包括波粒二象性、量子叠加、量子纠缠等。
用户:波粒二象性是什么意思?
在这个例子中,用户对模型的回答进行了追问,以获得更详细的解释。
澄清:
用户:谁是那个著名的科学家? 模型:你可以提供更多的上下文吗?因为有很多著名的科学家,例如艾萨克·牛顿、阿尔伯特·爱因斯坦等。
用户:谁是相对论的创立者?在这个例子中,用户通过澄清问题,使模型能够提供更相关的答案。
总结一下,与大语言模型高效地对话需要注意以下几点:
- 明确提问目标
- 提问要具体和清晰。
- 提供足够的背景信息。
- 尽量避免提问偏见。
- 利用开放式问题和封闭式问题的优势。
- 适时追问和澄清。
五、如何根据不同任务创建高质量的Prompt
以下是一些正反例子,以帮助读者更好地理解如何设计高质量的Prompt:
如果我们要让大型语言模型生成一篇电影评论,我们可以使用如下的Prompt:
正例:“这是一篇关于电影《泰坦尼克号》的评论。”
这个Prompt明确说明了模型需要生成一篇关于《泰坦尼克号》的电影评论。
反例: “电影”
这个Prompt过于简单,没有明确指出我们需要模型生成一篇关于什么电影的评论,模型可能无法正确理解我们的要求,生成不符合预期的文本结果。
如果我们要让模型回答一个关于足球的问题,我们可以使用如下的Prompt
正例: “请回答以下问题:谁是2018年世界杯的冠军?”
这个Prompt明确指出了我们要求模型回答的问题是关于2018年世界杯的冠军。
反例: “足球”
这个Prompt过于简单,没有提供足够的上下文信息,模型可能无法正确理解我们要求的问题的具体内容。
以下是一些通用的Prompt设计原则:
确定任务目标:明确你想要模型完成的任务,并根据任务目标来设计Prompt。
提供上下文信息:在Prompt中提供足够的上下文信息,以帮助模型理解你的问题。上下文信息可以包括任何相关的背景、条件或假设。
使用简洁的语言:使用简洁、清晰的语言,避免使用复杂的词汇或语法结构。这有助于模型更好地理解你的问题。
避免模棱两可的问题:避免使用模棱两可或含糊不清的问题,模型可能无法理解你的要求或回答。
提供多样化的Prompt:使用不同的Prompt可以训练模型,使其可以产生不同的结果。
根据不同的任务和场景,以下是一些更具体的Prompt生成方法
1. 生成文章
如果你想要让模型生成一篇文章,可以使用以下Prompt生成方法:
- 确定文章主题和类型,如新闻报道、故事、科技文章等。
- 提供主题相关的背景信息,如事件、人物、时间、地点等。
- 提供文章的基本要素,如标题、开头、中间段落、
例如,如果你想要让模型生成一篇有关人工智能的科技文章,你可以使用如下的Prompt:
“请写一篇有关人工智能的科技文章,包括标题、开头、中间段落和结尾。”
2. 回答问题
如果你想要让模型回答一个问题,可以使用以下Prompt生成方法:
- 确定问题类型和范围,如开放性问题、闭合性问题、主观问题、客观问题等。
- 提供问题的背景信息,如上下文、条件、前提等。
- 使用简洁、清晰的语言,避免使用模棱两可的问题。
例如,如果你想要问模型一个关于天气的问题,你可以使用如下的Prompt:
“请告诉我今天的天气如何?”
3. 生成对话
如果你想要与模型进行对话,可以使用以下Prompt生成方法:
- 提供一个明确的话题和角色,如两个人物之间的对话、一个人的自述等。
- 提供一个开场白,引出对话话题。
- 使用简洁、自然的语言,让对话流畅自然。
例如,如果你想要与模型进行一个有关旅游的对话,你可以使用如下的Prompt:
“请与我进行一个有关旅游的对话,我是一个旅行者,你是一名旅游顾问。”
在对话中,你可以向模型提问有关旅游的问题,或询问有关旅游的建议。
更多例子
按关键词写故事
👉 根据故事类型输出小说,例如奇幻、浪漫或历史等类型。
I want you to act as a novelist. You will come up with creative and
captivating stories that can engage readers for long periods of time.
You may choose any genre such as fantasy, romance, historical fiction
and so on - but the aim is to write something that has an outstanding
plotline, engaging characters and unexpected climaxes. My first
request is ‘小说类型’
论文式回答
👉 以论文形式讨论问题,能够获得连贯的、结构化的和更高质量的回答。
Write a highly detailed essay with introduction, body, and conclusion
paragraphs responding to the following: [问题]
脱口秀
👉 针对某个话题,输出基于该话题的幽默脱口秀,并尽量融入日常生活元素,以增强观众的共鸣感。
I want you to act as a stand-up comedian. I will provide you with some
topics related to current events and you will use your wit,
creativity, and observational skills to create a routine based on
those topics. You should also be sure to incorporate personal
anecdotes or experiences into the routine in order to make it more
relatable and engaging for the audience. My first request is ‘脱口秀主题’
论文
👉 根据主题撰写内容翔实、有信服力的论文。
I want you to act as an essay writer. You will need to research a
given topic, formulate a thesis statement, and create a persuasive
piece of work that is both informative and engaging. My first
suggestion request is ‘论文主题’
诗人
👉 根据话题或主题输出诗句。
I want you to act as a poet. You will create poems that evoke emotions
and have the power to stir people’s soul. Write on any topic or theme
but make sure your words convey the feeling you are trying to express
in beautiful yet meaningful ways. You can also come up with short
verses that are still powerful enough to leave an imprint in reader’s
minds. My first request is ‘诗歌主题’
论文式回答
👉 以论文形式讨论问题,能够获得连贯的、结构化的和更高质量的回答。
Write a highly detailed essay with introduction, body, and conclusion
paragraphs responding to the following: [问题]
作曲家
👉 Composer
I want you to act as a composer. I will provide the lyrics to a song
and you will create music for it. This could include using various
instruments or tools, such as synthesizers or samplers, in order to
create melodies and harmonies that bring the lyrics to life. My first
request is [作曲要求]
更多例子可以 参考
相关文章:
如何创建高效的Prompt和ChatGPT等大语言模型AI对话
大语言模型,如OpenAI的GPT-4,是一种基于深度学习技术的自然语言处理工具,它可以理解自然语言并为用户提供有价值的回答。然而,要从大语言模型中获得高质量的回答,你需要学会如何高效地提问。本文将从原理出发ÿ…...

043:cesium加载Bing地图(多种形式)
第043个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中加载加载Bing地图。这里显示4种形式的地图,分别为:AERIAL、ROAD、CANVAS_DARK、AERIAL_WITH_LABELS。参考后面的API,还有其他几种形式。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章…...

vscode代码片段生成
在刚学习vue的时候,有些代码片段是经常写的,在vscode中写一个代码片段可以帮助快速生成。 生成步骤: VSCode中的代码片段有固定的格式,所以我们一般会借助于一个在线工具来完成。 具体的步骤如下: 第一步,复制自己需…...

数据规整:聚合、合并和重塑
目录一、层次化索引重排与分级排序根据级别汇总统计二、合并数据集数据库风格的DataFrame合并索引上的合并轴向连接合并重叠数据三、重塑和轴向旋转重塑层次化索引将“长格式”旋转为“宽格式”将“宽格式”旋转为“长格式”一、层次化索引 层次化索引(hierarchica…...

开心档之C++ 信号处理
C 信号处理 目录 C 信号处理 signal() 函数 实例 raise() 函数 实例 信号是由操作系统传给进程的中断,会提早终止一个程序。在 UNIX、LINUX、Mac OS X 或 Windows 系统上,可以通过按 CtrlC 产生中断。 有些信号不能被程序捕获,但是下表…...

ChatGPT惨遭围剿?多国封杀、近万人联名抵制……
最近,全世界燃起一股围剿ChatGPT的势头。由马斯克、图灵奖得主Bengio等千人联名的“暂停高级AI研发”的公开信,目前签名数量已上升至9000多人。除了业内大佬,欧盟各国和白宫也纷纷出手。 最早“动手”的是意大利,直接在全国上下封…...

SpringBoot监听器
1.寻找spring.factories配置文件对应的监听器,主要要写监听器的全路径名,不然反射会报错 SpringBoot底层是如何读取META-INF/spring.factories的配置的? 1.遍历所有jar下的META-INF/spring.factories配置文件 2.读取配置文件下的所有属性&a…...

【网络安全】SQL注入--报错注入
报错注入报错注入定义代码展示常用的报错语句1.获取数据库名称2.获取mysql账号密码3.获取表名4.获取字段名5.获取账号密码报错注入定义 报错注入:利用sql语句的不规范,获取相关sql提示信息 代码展示 常用的报错语句 select first_name, last_name FROM…...
APP隐私整改建议
1、违规收集个人信息 情形一: APP首次启动时,未有以弹窗形式明示个人信息保护政策。 改进建议: APP首次启动时,以弹窗等形式向用户明示个人信息保护政策。 情形二: 个人信息保护政策未有说明个人信息处理的目的、方…...

MySQL数据模型 and 通用语法 and 分类
关系型数据库 关系型数据库是由多张能互相连接的二维表组成的数据库。 优点: 1.都是使用表结构,格式一致,易于维护。 2.使用通用的SQL语言操作,使用方便,可用于复杂查询。 3.数据存储在磁盘中,安全。 …...
一款识别域名是否使用cdn的工具cdnChecker
cdnChecker 一款识别域名是否使用cdn的工具 https://github.com/alwaystest18/cdnChecker 背景 红队打点时经常会有收集子域名然后转成ip进而扩展ip段进行脆弱点寻找的需求,如果域名使用cdn,会导致收集错误的ip段,因此我们需要排除cdn来收…...

Ant Design Vue的汉化
Ant Design Vue的汉化 1. 引入依赖 import zhCN from "ant-design-vue/lib/locale-provider/zh_CN"; // 汉化 export default {data () {zhCN,} }2. 标签包裹需要汉化的组件 <a-config-provider :locale"zhCN"><a-table :row-selection"ro…...

spring cloud中实现接口广播请求到服务提供者
一、背景 假如现在有一台服务A,两台服务B,可以简化为如下图模型: 需求:一次请求服务A需要同时将请求广播打到两台服务B上。 二、实现方案 2.1 需要应用到两个类: 2.1.1:LoadBalancerClient package org…...
电机PID参数调节笔记
规则1 1)降低比例增益P,可以获得较小的振动2)有可能不需要调节I环和D环3)提升比例增益P环可以增加灵敏度,但可能会出现不稳定的情况(如振动)4)可以设定电机速度最大幅值,…...

【深度学习】基于华为MindSpore的手写体图像识别实验
1 实验介绍 1.1 简介 Mnist手写体图像识别实验是深度学习入门经典实验。Mnist数据集包含60,000个用于训练的示例和10,000个用于测试的示例。这些数字已经过尺寸标准化并位于图像中心,图像是固定大小(28x28像素),其值为0到255。为简单起见,每…...

Linux:内核调试之内核魔术键sysrq
在linux系统下,我们可能会遇到系统某个命令hang住的情况,通常情况下,我们会查看/proc/pid/wchan文件,看看进程处于什么状况,然后进一步查看系统日志或者使用strace跟踪命令执行时的系统调用等等方法来分析问题。我们知…...
Python import导包快速入门
import 和 from import 在 Python 中,使用 import 语句可以将其他 Python 模块或包中的代码引入到当前模块中,以供使用。通常情况下,我们可以使用以下语法将整个模块导入到当前命名空间中: import module_name其中,m…...

ChatGPT这么火,我们能怎么办?
今天打开百度,看到这样一条热搜高居榜二:B站UP主发起停更潮,然后点进去了解一看,大体是因为最近AI创作太火,对高质量原创形成了巨大冲击!记得之前看过一位UP主的分享,说B站UP主的年收入大体约等…...

HashMap底层原理
文章目录1. 基本概念2. HashMap 的底层数据结构3. HashMap 的 put 方法流程4. 怎么计算节点存储的下标5. Hash 冲突1)概念2)解决 hash 冲突的办法开放地址法再哈希法链地址法建立公共溢出区6. HashMap 的扩容机制1)扩容时涉及到的几个属性2&a…...
卡顿优化小结
卡顿的本质 卡顿的本质是因为一次垂直同步信号来的时候,当前帧要显示的图像数据还没准备好,只能等待16ms下一次垂直同步信号来时才能更新画面,在这段时间里显示器只能一直停留在上一帧的画面,如果跳过的帧数过多,就会…...

高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...

USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...

JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...

基于PHP的连锁酒店管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...

海云安高敏捷信创白盒SCAP入选《中国网络安全细分领域产品名录》
近日,嘶吼安全产业研究院发布《中国网络安全细分领域产品名录》,海云安高敏捷信创白盒(SCAP)成功入选软件供应链安全领域产品名录。 在数字化转型加速的今天,网络安全已成为企业生存与发展的核心基石,为了解…...

对象回调初步研究
_OBJECT_TYPE结构分析 在介绍什么是对象回调前,首先要熟悉下结构 以我们上篇线程回调介绍过的导出的PsProcessType 结构为例,用_OBJECT_TYPE这个结构来解析它,0x80处就是今天要介绍的回调链表,但是先不着急,先把目光…...
Python第七周作业
Python第七周作业 文章目录 Python第七周作业 1.使用open以只读模式打开文件data.txt,并逐行打印内容 2.使用pathlib模块获取当前脚本的绝对路径,并创建logs目录(若不存在) 3.递归遍历目录data,输出所有.csv文件的路径…...