最全攻略!GPT-4官方使用指南炸裂登场

嵌入式ARM 2023-06-14 12:01
西风 发自 凹非寺
量子位 | 公众号 QbitAI
GPT-4官方使用指南炸裂登场啦!
你没听错,这次不需要自己做笔记了,OpenAI亲自帮你整理了一份。
据说,汇聚了大伙儿6个月的使用经验,你、我、他的提示诀窍都融汇其中。
虽然总结下来只有六大策略,但该有的细节可绝不含糊。
不仅普通GPT-4用户可以在这份秘籍中get提示技巧,或许应用开发者也可以找到些许灵感。
对此,网友们纷纷评论,给出了自己的“读后感”:

好有意思啊!总结来说,这些技巧的核心思想主要有两点。一是我们得写得更具体一些,给一些细节的提示。其次,对于那些复杂的任务,我们可以把它们拆分成一些小的提示来完成。

OpenAI表示,这份攻略目前仅针对GPT-4(当然,你也可以在其它GPT模型上试试)。

下面,我们赶紧瞧瞧,这份秘籍里究竟都有啥好东西

6大干货技巧全在这儿!

策略一:写清楚指令

要知道,模型可不会“读心术”,所以你得把你的要求明明白白地写出来。

当模型输出变得太啰嗦时,你可以要求它回答简洁明了。相反地,如果输出太过简单,你可以毫不客气地要求它用专业水平来写。

如果你对GPT输出的格式不满意,那就先给它展示你期望的格式,并要求它以同样的方式输出。

总之,尽量别让GPT模型自己去猜你的意图,这样你得到的结果就更可能符合你的预期了。

实用技巧:

1、有细节才能得到更相关的答案

为了使输出和输入具有强相关性,一切重要的细节信息,都可以喂给模型。

比如你想让GPT-4:总结会议记录

就可以尽可能在表述中增加细节:

将会议记录总结成一段文字。然后编写一个Markdown列表,列出与会人员及其主要观点。最后,如果与会人员有关于下一步行动的建议,请列出来。


2、要求模型扮演特定角色

通过改变系统消息(system message),GPT-4会更容易扮演特定的角色,比在对话中提出要求的重视程度更高。

如规定它要回复一个文件,这份文件中的每个段落都要有好玩的评论:

3、用分隔符清晰标示输入的不同部分

用"""三重引号"""、、节标题等分隔符标记出文本的不同部分,可以更便于模型进行不同的处理。在复杂的任务中,这种标记细节就显得格外重要。


4、明确指定完成任务所需的步骤

有些任务按步骤进行效果更佳。因此,最好明确指定一系列步骤,这样模型就能更轻松地遵循这些步骤,并输出理想结果。比如在系统消息中设定按怎样的步骤进行回答。


5、提供示例

如果你想让模型输出按照一种不是能够很好描述出来的特定样式,那你就可以提供示例。如提供示例后,只需要告诉它“教我耐心”,它就会按照示例的风格,将其描述得生动形象。


6、指定所需输出长度

你还可以要求模型具体生成多少个单词、句子、段落、项目符号等。但是,在要求模型生成特定数量的单词/字的时候,它有可能不会那么精准。

● 策略二:提供参考文本

当涉及到深奥的话题、引用和URL等内容时,GPT模型可能会一本正经地胡说八道。

为GPT-4提供可以参考的文本,能够减少虚构性回答的出现,使回答的内容更加可靠。

实用技巧:

1、让模型参照参考资料进行回答

如果我们能够向模型提供一些和问题有关的可信信息,就可以指示它用提供的信息来组织回答。

2、让模型引用参考资料进行回答

如果在上面的对话输入中已经补充了相关信息,那么我们还可以直接要求模型在回答中引用所提供的信息。

这里要注意的是,可以通过编程,对让模型对输出中引用的部分进行验证注释。

● 策略三:拆分复杂任务

相比之下,GPT-4在应对复杂任务时出错率更高。

然而,我们可以采取一种巧妙的策略,将这些复杂任务重新拆解成一系列简单任务的工作流程。

这样一来,前面任务的输出就可以被用于构建后续任务的输入。

就像在软件工程中将一个复杂系统分解为一组模块化组件一样,将任务分解成多个模块,也可以让模型的表现更好。

实用技巧:

1、进行意图分类

对于需要处理不同情况的大量具有独立性的任务,可以先对这些任务进行分类。

然后,根据分类来确定所需的指令。

比如,对于客户服务应用程序,可以进行查询分类(计费、技术支持、账户管理、一般查询等)。

当用户提出:

我需要让我的互联网重新恢复正常。

根据用户查询的分类,可以锁定用户的具体诉求了,就可以向GPT-4提供一组更具体的指令,来进行下一步操作。

例如,假设用户需要在“故障排除”方面寻求帮助。

就可以设定下一步的方案:

要求用户检查路由器的所有电缆是否已连接……

2、对先前对话进行概括或筛选

由于GPT-4的对话窗口是有限制的,上下文不能太长,不能在一个对话窗口中无限进行下去。

但也不是没有解决办法。

方法之一是对先前的对话进行概括。一旦输入的文本长度达到预定的阈值,就可以触发一个查询,概括对话的一部分,被概括出来的这部分内容可以变成系统消息的一部分。

此外,可以在对话过程中就在后台对前面的对话进行概括。

另一种方法是检索先前的对话,使用基于嵌入的搜索实现高效的知识检索。

3、逐段概括长文档,并递归构建完整概述

还是文本过长的问题。

比如你要让GPT-4概括一本书,就可以使用一系列查询来概括这本书的每个部分。

然后将部分概述连接起来进行总结,汇成一个总的答案。

这个过程可以递归进行,直到整本书被概括。

但是有些部分可能要借前面部分的信息才能理解后续部分,这里有一个技巧:

在概括当前内容时,将文本中当前内容之前的内容概述一起总结进来,进行概括。

简单来说,用前面部分的“摘要”+当前部分,然后进行概括。

OpenAI之前还使用基于GPT-3训练的模型,对概括书籍的效果进行了研究。

策略四:给GPT时间“思考”

如果让你计算17乘28,你可能不会立刻知道答案,但是可以通过一些时间计算出来。

同样的道理,当GPT-4接收到问题时,它并不会花时间仔细思考,而是试图立刻给出答案,这样就可能导致推理出错。

因此,在让模型给出答案前,可以先要求它进行一系列的推理过程,帮助它通过推理来得出正确的答案。

实用技巧:

1、让模型制定解决方案

你可能有时候会发现,当我们明确指示模型在得出结论之前从基本原理出发进行推理时,我们可以获得更好的结果。

比如说,假设我们希望模型评估学生解答数学问题的方案。

最直接的方法是简单地询问模型学生的解答是否正确。

在上图中,GPT-4认为学生的方案是正确的。

但实际上学生的方案是错误的。

这时候就可以通过提示模型生成自己的解决方案,来让模型成功注意到这一点。

在生成了自己的解决方案,进行一遍推理过后,模型意识到之前学生的解决方案不正确。

2、隐藏推理过程

上面讲到了让模型进行推理,给出解决方案。

但在某些应用中,模型得出最终答案的推理过程不适合与用户共享。

比如,在作业辅导中,我们还是希望鼓励学生制定自己的解题方案,然后得出正确答案。但模型对学生解决方案的推理过程可能会向学生揭示答案。

这时候我们就需要模型进行“内心独白”策略,让模型将输出中要对用户隐藏的部分放入结构化格式中。

然后,在向用户呈现输出之前,对输出进行解析,并且仅使部分输出可见。

就像下面这个示例:

先让模型制定自己的解决方案(因为学生的有可能是错的),然后与学生的解决方案进行对比。

如果学生的答案中哪一步出错了,那就让模型针对这一步给出一点提示,而不是直接给学生完整的正确的解决方案。

如果学生还是错了,那就再进行上一步的提示。

还可以使用“查询”策略,其中除了最后一步的查询以外,所有查询的输出都对用户隐藏。

首先,我们可以要求模型自行解决问题。由于这个初始查询不需要学生的解决方案,因此可以省略掉。这也提供了额外的优势,即模型的解决方案不会受到学生解决方案偏见的影响。

接下来,我们可以让模型使用所有可用信息来评估学生解决方案的正确性。

最后,我们可以让模型使用自己的分析来构建导师的角色。

你是一名数学导师。如果学生回答有误,请以不透露答案的方式向学生进行提示。如果学生答案无误,只需给他们一个鼓励性的评论。

3、询问模型是否遗漏了内容

假设我们正在让GPT-4列出一个与特定问题相关的源文件摘录,在列出每个摘录之后,模型需要确定是继续写入下一个摘录,还是停止。

如果源文件很大,模型往往会过早地停止,未能列出所有相关的摘录。

在这种情况下,通常可以让模型进行后续查询,找到它在之前的处理中遗漏的摘录。

换而言之,模型生成的文本有可能很长,一次性生成不完,那么就可以让它进行查验,把遗漏的内容再补上。

策略五:其它工具加持

GPT-4虽然强大,但并非万能。

我们可以借助其他工具来补充GPT-4的不足之处。

比如,结合文本检索系统,或者利用代码执行引擎。

在让GPT-4回答问题时,如果有一些任务可以由其他工具更可靠、更高效地完成,那么我们可以将这些任务交给它们来完成。这样既能发挥各自的优势,又能让GPT-4发挥最佳水平。

实用技巧:

1、使用基于嵌入的搜索实现高效的知识检索

这一技巧在上文中已经有所提及。

若在模型的输入中提供额外的外部信息,有助于模型生成更好的回答。

例如,如果用户询问关于一部特定电影的问题,将关于电影的信息(例如演员、导演等)添加到模型的输入中可能会很有用。

嵌入可用于实现高效的知识检索,可以在模型运行时动态地将相关信息添加到模型的输入中。

文本嵌入是一种可以衡量文本字符串相关性的向量。相似或相关的字符串将比不相关的字符串更紧密地结合在一起。加上快速向量搜索算法的存在,意味着可以使用嵌入来实现高效的知识检索。

特别的是,文本语料库可以分成多个部分,每个部分可以进行嵌入和存储。然后,给定一个查询,可以进行向量搜索以找到与查询最相关的语料库中的嵌入文本部分。

2、使用代码执行进行更准确的计算或调用外部API

不能仅依靠模型自身进行准确地计算。

如果需要,可以指示模型编写和运行代码,而不是进行自主计算。

可以指示模型将要运行的代码放入指定的格式中。在生成输出后,可以提取和运行代码。生成输出后,可以提取并运行代码。最后,如果需要,代码执行引擎(即Python解释器)的输出可以作为下一个输入。

代码执行的另一个很好的应用场景是调用外部API。

如果将API的正确使用方式传达给模型,它可以编写使用该API的代码。

可以通过向模型演示文档和/或代码示例来指导模型如何使用API。

在这里OpenAI提出了特别警告⚠️:

执行模型生成的代码在本质上来说并不安全,任何试图执行此操作的应用程序中都应采取预防措施。特别是,需要一个沙盒代码执行环境来限制不受信任的代码可能造成的危害。

策略六:系统地测试更改

有时候很难确定一个改变是会让系统变得更好还是更差。

通过观察一些例子有可能会看出哪个更好,但是在样本数量较少的情况下,很难区分是真的得到了改进,还是只是随机运气。

也许这个“改变”能够提升某些输入的效果,但却会降低其它输入的效果。
而评估程序(evaluation procedures,or “evals”)对于优化系统设计来说非常有用。好的评估有以下几个特点:

1)代表现实世界的用法(或至少是多种用法)

2)包含许多测试用例,可以获得更大的统计功效(参见下表)

3)易于自动化或重复

对输出的评估可以是由计算机进行评估、人工评估,或者两者结合进行。计算机可以使用客观标准自动评估,也可以使用一些主观或模糊的标准,比如说用模型来评估模型。

OpenAI提供了一个开源软件框架——OpenAI Evals,提供了创建自动评估的工具。

当存在一系列质量同样高的输出时,基于模型的评估就会很有用。

实用技巧:

1、参考黄金标准答案评估模型输出

假设已知问题的正确答案应参考一组特定的已知事实。

然后,我们可以询问模型答案中包含多少必需的事实。

例如,使用下面这个系统消息,

给出必要的既定事实:

尼尔·阿姆斯特朗是第一个在月球上行走的人。

尼尔·阿姆斯特朗第一次登上月球的日期是1969年7月21日。

如果答案中包含既定给出的事实,模型会回答“是”。反之,模型会回答“否”,最后让模型统计有多少“是”的答案:

下面是包含两点既定事实的示例输入(既有事件,又有时间):

仅满足一个既定事实的示例输入(没有时间):

而下面这个示例输入,不包含任何一个既定事实:

这种基于模型的评估方法有许多可能的变化形式,需要跟踪候选答案与标准答案之间的重叠程度,并追踪候选答案是否与标准答案的有相矛盾的地方。

比如下面的这个示例输入,其中包含不合标准的答案,但与专家答案(标准答案)并不矛盾:

下面是这个示例输入,其答案与专家答案直接矛盾(认为尼尔·阿姆斯特朗是第二个在月球上行走的人):

最后一个是带有正确答案的示例输入,该输入还提供了比必要内容更多的详细信息(时间精确到了02:56,并指出了这是人类历史上的一项不朽成就):

传送门:
https://github.com/openai/evals(OpenAI Evals)

参考链接:
[1]https://platform.openai.com/docs/guides/gpt-best-practices

[2]https://www.reddit.com/r/OpenAI/comments/141yheo/openai_recently_added_a_gpt_best_practices_guide/

END

注:本文经授权转载自微信公众号量子位(ID:QbitAI),版权归原作者所有;如需转载,请联系出处。



推荐阅读

华为C/C++编码规范流出

C语言的include没你想的那么简单!

入职Linux驱动工程师后,我才知道的真相…


→点关注,不迷路←

嵌入式ARM 关注这个时代最火的嵌入式ARM,你想知道的都在这里。
评论
  • 故障现象一辆2017款东风风神AX7车,搭载DFMA14T发动机,累计行驶里程约为13.7万km。该车冷起动后怠速运转正常,热机后怠速运转不稳,组合仪表上的发动机转速表指针上下轻微抖动。 故障诊断 用故障检测仪检测,发动机控制单元中无故障代码存储;读取发动机数据流,发现进气歧管绝对压力波动明显,有时能达到69 kPa,明显偏高,推断可能的原因有:进气系统漏气;进气歧管绝对压力传感器信号失真;发动机机械故障。首先从节气门处打烟雾,没有发现进气管周围有漏气的地方;接着拔下进气管上的两个真空
    虹科Pico汽车示波器 2025-01-08 16:51 92浏览
  • 每日可见的315MHz和433MHz遥控模块,你能分清楚吗?众所周知,一套遥控设备主要由发射部分和接收部分组成,发射器可以将控制者的控制按键经过编码,调制到射频信号上面,然后经天线发射出无线信号。而接收器是将天线接收到的无线信号进行解码,从而得到与控制按键相对应的信号,然后再去控制相应的设备工作。当前,常见的遥控设备主要分为红外遥控与无线电遥控两大类,其主要区别为所采用的载波频率及其应用场景不一致。红外遥控设备所采用的射频信号频率一般为38kHz,通常应用在电视、投影仪等设备中;而无线电遥控设备
    华普微HOPERF 2025-01-06 15:29 172浏览
  • 在智能家居领域中,Wi-Fi、蓝牙、Zigbee、Thread与Z-Wave等无线通信协议是构建短距物联局域网的关键手段,它们常在实际应用中交叉运用,以满足智能家居生态系统多样化的功能需求。然而,这些协议之间并未遵循统一的互通标准,缺乏直接的互操作性,在进行组网时需要引入额外的网关作为“翻译桥梁”,极大地增加了系统的复杂性。 同时,Apple HomeKit、SamSung SmartThings、Amazon Alexa、Google Home等主流智能家居平台为了提升市占率与消费者
    华普微HOPERF 2025-01-06 17:23 211浏览
  • By Toradex 秦海1). 简介嵌入式平台设备基于Yocto Linux 在开发后期量产前期,为了安全以及提高启动速度等考虑,希望将 ARM 处理器平台的 Debug Console 输出关闭,本文就基于 NXP i.MX8MP ARM 处理器平台来演示相关流程。 本文所示例的平台来自于 Toradex Verdin i.MX8MP 嵌入式平台。  2. 准备a). Verdin i.MX8MP ARM核心版配合Dahlia载板并
    hai.qin_651820742 2025-01-07 14:52 113浏览
  • 「他明明跟我同梯进来,为什么就是升得比我快?」许多人都有这样的疑问:明明就战绩也不比隔壁同事差,升迁之路却比别人苦。其实,之间的差异就在于「领导力」。並非必须当管理者才需要「领导力」,而是散发领导力特质的人,才更容易被晓明。许多领导力和特质,都可以通过努力和学习获得,因此就算不是天生的领导者,也能成为一个具备领导魅力的人,进而被老板看见,向你伸出升迁的橘子枝。领导力是什么?领导力是一种能力或特质,甚至可以说是一种「影响力」。好的领导者通常具备影响和鼓励他人的能力,并导引他们朝着共同的目标和愿景前
    优思学院 2025-01-08 14:54 82浏览
  • 根据环洋市场咨询(Global Info Research)项目团队最新调研,预计2030年全球无人机锂电池产值达到2457百万美元,2024-2030年期间年复合增长率CAGR为9.6%。 无人机锂电池是无人机动力系统中存储并释放能量的部分。无人机使用的动力电池,大多数是锂聚合物电池,相较其他电池,锂聚合物电池具有较高的能量密度,较长寿命,同时也具有良好的放电特性和安全性。 全球无人机锂电池核心厂商有宁德新能源科技、欣旺达、鹏辉能源、深圳格瑞普和EaglePicher等,前五大厂商占有全球
    GIRtina 2025-01-07 11:02 128浏览
  •  在全球能源结构加速向清洁、可再生方向转型的今天,风力发电作为一种绿色能源,已成为各国新能源发展的重要组成部分。然而,风力发电系统在复杂的环境中长时间运行,对系统的安全性、稳定性和抗干扰能力提出了极高要求。光耦(光电耦合器)作为一种电气隔离与信号传输器件,凭借其优秀的隔离保护性能和信号传输能力,已成为风力发电系统中不可或缺的关键组件。 风力发电系统对隔离与控制的需求风力发电系统中,包括发电机、变流器、变压器和控制系统等多个部分,通常工作在高压、大功率的环境中。光耦在这里扮演了
    晶台光耦 2025-01-08 16:03 80浏览
  • 村田是目前全球量产硅电容的领先企业,其在2016年收购了法国IPDiA头部硅电容器公司,并于2023年6月宣布投资约100亿日元将硅电容产能提升两倍。以下内容主要来自村田官网信息整理,村田高密度硅电容器采用半导体MOS工艺开发,并使用3D结构来大幅增加电极表面,因此在给定的占位面积内增加了静电容量。村田的硅技术以嵌入非结晶基板的单片结构为基础(单层MIM和多层MIM—MIM是指金属 / 绝缘体/ 金属) 村田硅电容采用先进3D拓扑结构在100um内,使开发的有效静电容量面积相当于80个
    知白 2025-01-07 15:02 147浏览
  • 大模型的赋能是指利用大型机器学习模型(如深度学习模型)来增强或改进各种应用和服务。这种技术在许多领域都显示出了巨大的潜力,包括但不限于以下几个方面: 1. 企业服务:大模型可以用于构建智能客服系统、知识库问答系统等,提升企业的服务质量和运营效率。 2. 教育服务:在教育领域,大模型被应用于个性化学习、智能辅导、作业批改等,帮助教师减轻工作负担,提高教学质量。 3. 工业智能化:大模型有助于解决工业领域的复杂性和不确定性问题,尽管在认知能力方面尚未完全具备专家级的复杂决策能力。 4. 消费
    丙丁先生 2025-01-07 09:25 123浏览
  • 本文介绍编译Android13 ROOT权限固件的方法,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。关闭selinux修改此文件("+"号为修改内容)device/rockchip/common/BoardConfig.mkBOARD_BOOT_HEADER_VERSION ?= 2BOARD_MKBOOTIMG_ARGS :=BOARD_PREBUILT_DTB
    Industio_触觉智能 2025-01-08 00:06 100浏览
  • 这篇内容主要讨论三个基本问题,硅电容是什么,为什么要使用硅电容,如何正确使用硅电容?1.  硅电容是什么首先我们需要了解电容是什么?物理学上电容的概念指的是给定电位差下自由电荷的储藏量,记为C,单位是F,指的是容纳电荷的能力,C=εS/d=ε0εrS/4πkd(真空)=Q/U。百度百科上电容器的概念指的是两个相互靠近的导体,中间夹一层不导电的绝缘介质。通过观察电容本身的定义公式中可以看到,在各个变量中比较能够改变的就是εr,S和d,也就是介质的介电常数,金属板有效相对面积以及距离。当前
    知白 2025-01-06 12:04 238浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦