如何创建高效的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下一次垂直同步信号来时才能更新画面,在这段时间里显示器只能一直停留在上一帧的画面,如果跳过的帧数过多,就会…...

网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...

对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...

AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...