ChatGPT 最佳实践指南

GPT Best Practices

GPT 最佳实践指南

ccbc0915b26e0f47cdd190e192acfa1b.png

This guide shares strategies and tactics for getting better results from GPTs. The methods described here can sometimes be deployed in combination for greater effect. We encourage experimentation to find the methods that work best for you.

本指南分享了在使用 GPT 时获取更好结果的策略和技巧。这里描述的方法有时可以组合使用以达到更好的效果。我们鼓励进行试验,找到适合您的最佳方法。

Some of the examples demonstrated here currently work only with our most capable model. If you don't yet have access to consider joining the waitlist. In general, if you find that a GPT model fails at a task and a more capable model is available, it's often worth trying again with the more capable model.

一些示例在目前只适用于我们最强大的模型。如果您尚未获得访问权限,请考虑加入等待列表。通常情况下,如果您发现 GPT 模型在某项任务上失败了,并且有一个更强大的模型可用,通常值得尝试使用更强大的模型再次进行尝试。

Six strategies for getting better results

获取更好结果的六个策略

Write clear instructions

写出清晰的指示

GPTs can’t read your mind. If outputs are too long, ask for brief replies. If outputs are too simple, ask for expert-level writing. If you dislike the format, demonstrate the format you’d like to see. The less GPTs have to guess at what you want, the more likely you’ll get it.

GPT 无法读懂您的心思。如果输出过长,请要求简短回复。如果输出过于简单,请要求专业水平的写作。如果您不喜欢格式,请展示您想要看到的格式。GPT 不需要猜测您的意图,您得到所需结果的可能性就越大。

Tactics:

技巧:

Include details in your query to get more relevant answers

在查询中包含细节以获取更相关的答案

Ask the model to adopt a persona

要求模型采用特定角色

Use delimiters to clearly indicate distinct parts of the input

使用定界符清楚地表示输入的不同部分

Specify the steps required to complete a task

指定完成任务所需的步骤

Provide examples

提供示例

Specify the desired length of the output

指定输出的期望长度

请参阅:

《ChatGPT 最佳实践指南之:写出清晰的指示》

Provide reference text

提供参考文本

GPTs can confidently invent fake answers, especially when asked about esoteric topics or for citations and URLs. In the same way that a sheet of notes can help a student do better on a test, providing reference text to GPTs can help in answering with fewer fabrications.

GPT 可以自信地编造虚假答案,特别是在询问深奥主题、引用和网址时。就像一页笔记可以帮助学生在考试中取得更好的成绩一样,向 GPT 提供参考文本可以帮助它以较少的虚构回答来回答问题。

Tactics:

技巧:

Instruct the model to answer using a reference text

指示模型使用参考文本回答问题

Instruct the model to answer with citations from a reference text

指示模型使用参考文本的引用进行回答

请参阅:

《ChatGPT 最佳实践指南之:提供参考文本》

Split complex tasks into simpler subtasks

将复杂任务分解为较简单的子任务

Just as it is good practice in software engineering to decompose a complex system into a set of modular components, the same is true of tasks submitted to GPTs. Complex tasks tend to have higher error rates than simpler tasks. Furthermore, complex tasks can often be re-defined as a workflow of simpler tasks in which the outputs of earlier tasks are used to construct the inputs to later tasks.

与软件工程中将复杂系统分解为一组模块化组件的最佳实践相同,将任务提交给 GPT 时也是如此。与较简单的任务相比,复杂任务的错误率往往更高。此外,复杂任务通常可以重新定义为一系列较简单任务的工作流程,其中较早任务的输出被用于构建后续任务的输入。

Tactics:

技巧:

Use intent classification to identify the most relevant instructions for a user query

使用意图分类识别与用户查询最相关的指示

For dialogue applications that require very long conversations, summarize or filter previous dialogue

对于需要非常长对话的对话应用,进行总结或过滤以前的对话

Summarize long documents piecewise and construct a full summary recursively

将长文档逐段进行摘要并递归构建完整摘要

请参阅:

《ChatGPT 最佳实践指南之:将复杂任务拆分为较简单的子任务》

Give GPTs time to "think"

给 GPT 足够的时间“思考”

If asked to multiply 17 by 28, you might not know it instantly, but can still work it out with time. Similarly, GPTs make more reasoning errors when trying to answer right away, rather than taking time to work out an answer. Asking for a chain of reasoning before an answer can help GPTs reason their way toward correct answers more reliably.

如果被要求计算 17 乘以 28,您可能不会立即知道答案,但是在经过一段时间后就计算出来。同样,与立即回答相比,GPT 在尝试立即回答时会产生更多推理错误,而是给予其足够的时间来得出答案。在给出答案之前要求模型进行推理可以帮助 GPT 更可靠地得到正确答案。

Tactics:

技巧:

Instruct the model to work out its own solution before rushing to a conclusion

指示模型在得出结论之前自行解决问题

Use inner monologue or a sequence of queries to hide the model's reasoning process

使用内心独白或一系列查询来隐藏模型的推理过程

Ask the model if it missed anything on previous passes

询问模型在之前的迭代中是否遗漏了任何内容

请参阅:

《ChatGPT 最佳实践指南之:给 GPT 足够的时间“思考”》

Use external tools

使用外部工具

Compensate for the weaknesses of GPTs by feeding them the outputs of other tools. For example, a text retrieval system can tell GPTs about relevant documents. A code execution engine can help GPTs do math and run code. If a task can be done more reliably or efficiently by a tool rather than by a GPT, offload it to get the best of both.

通过向 GPT 提供其他工具的输出来弥补 GPT 的弱点。例如,文本检索系统可以告诉 GPT 相关文档的信息。代码执行引擎可以帮助 GPT 进行数学计算和运行代码。如果一个任务可以通过工具而不是 GPT 更可靠或更高效地完成,那么可以将其转移,以充分发挥两者的优势。

Tactics:

技巧:

Use embeddings-based search to implement efficient knowledge retrieval

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

Use code execution to perform more accurate calculations or call external APIs

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

Give the model access to specific functions

给予模型访问特定函数的权限

请参阅:

《ChatGPT 最佳实践指南之:使用外部工具》

Test changes systematically

系统地测试变化

Improving performance is easier if you can measure it. In some cases a modification to a prompt will achieve better performance on a few isolated examples but lead to worse overall performance on a more representative set of examples. Therefore to be sure that a change is net positive to performance it may be necessary to define a comprehensive test suite (also known an as an "eval").

如果能够对性能进行衡量,那么改进性能就更容易。在某些情况下,对提示进行修改可能会在一些孤立的示例上获得更好的性能,但在更具代表性的示例集上可能会导致更差的整体性能。因此,为确保改变对性能的净增益,可能需要定义全面的测试套件(也称为“评估”)。

Tactic:

技巧:

Evaluate model outputs with reference to gold-standard answers

根据黄金标准答案评估模型输出

请参阅:

《ChatGPT 最佳实践指南之:系统地测试变化》

Other Resources

其他资源

For more inspiration, visit the OpenAI Cookbook, which contains example code and also links to third-party resources such as:

要获取更多灵感,请访问 OpenAI Cookbook,其中包含示例代码以及链接到第三方资源,例如:

Prompting libraries & tools

提示库和工具

Prompting guides

提示指南

Video courses

视频课程

Papers on advanced prompting to improve reasoning

关于改进推理的高级提示的论文

094e9b3c2be1721c63db0d174e25955f.jpeg

“点赞有美意,赞赏是鼓励”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/42585.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python爬虫-贝壳二手房

前言 本文是该专栏的第3篇,后面会持续分享python爬虫案例干货,记得关注。 本文以某二手房网为例,如下图所示,采集对应城市的二手房源数据。具体思路和方法跟着笔者直接往下看正文详细内容。(附带完整代码) 正文 地址:aHR0cHM6Ly9zei5rZS5jb20vZXJzaG91ZmFuZy8= 目标:…

QT调用torch的环境配置(2023.7.19 / Win10+Qt+libtorch(1.9.1)+cuda11.1+cuDNN v8.0.4)

QT/C成功调用libtorch的环境配置(2023.7.19) QT/C成功调用libtorch的环境配置Pytorch 模型训练下载训练转化 libtorch模型使用下载C使用Qt使用 最后的话 QT/C成功调用libtorch的环境配置 背景:和同门一起搭的新系统是基于QT的,如…

Monocular 3D Object Detection with Depth from Motion 论文学习

论文链接:Monocular 3D Object Detection with Depth from Motion 1. 解决了什么问题? 从单目输入感知 3D 目标对于自动驾驶非常重要,因为单目 3D 的成本要比多传感器的方案低许多。但单目方法很难取得令人满意的效果,因为单张图…

NAT技术是什么?谈谈它的实现方式、优缺点以及作用

作者:Insist-- 个人主页:insist--个人主页 作者会持续更新网络知识和python基础知识,期待你的关注 前言 随着网络的不断发展,网络的应用也越来越多,有限的IPV4地址就显得不怎么够用,所以出现了NAT技术&…

Rust 数据类型 之 结构体(Struct)

目录 结构体(Struct) 定义与声明 结构体定义 结构体实例 结构体分类 单元结构体(Unit Struct) 元组结构体(Tuple Struct) 具名结构体(Named Struct) 结构体嵌套 结构体方法…

jenkins war包 centos启动安装指导

文章目录 步骤1:进入官网,下载到Jenkins的war包1.1 放置在指定位置1.2 放置安装包和创建文件放置路径1.3 检查环境1.4 配置启动命令和结束命令 步骤2: 启动后进入到Jenkins页面2.1 安装插件,例如流水线2.2 依然出现安装插件失败的…

疑问:为什么我的手机不能同时放两张电信卡呢?联通移动可以

很多后台的小伙伴私信我:“为什么我的双卡双待手机不能用两张电信卡呢?”其实我一直在认真的去查证这个问题,因为现在普遍网上的大流量手机卡套餐,电信是主力,如果第一张卡是电信,第二张卡不能使用电信了&a…

公网访问的Linux CentOS本地Web站点搭建指南

文章目录 前言1. 本地搭建web站点2. 测试局域网访问3. 公开本地web网站3.1 安装cpolar内网穿透3.2 创建http隧道,指向本地80端口3.3 配置后台服务 4. 配置固定二级子域名5. 测试使用固定二级子域名访问本地web站点 前言 在web项目中,部署的web站点需要被外部访问,则…

ES6基础知识一:说说var、let、const之间的区别

一、var 在ES5中,顶层对象的属性和全局变量是等价的,用var声明的变量既是全局变量,也是顶层变量 注意:顶层对象,在浏览器环境指的是window对象,在 Node 指的是global对象 var a 10; console.log(window.…

uview2.0使用u-calendar 的formatter属性,在formatter方法里无法访问this的bug,解决办法!!!!

uview 版本2.0.36 文档 使用该文档的案例,在 formatter打印this也会是undefined。 自己写了个demo 父给子传值v-bind传一个函数,然后在这个函数里面打印this,this是子组件的实例,但是不知道为什么formatter里会打印undefined。希…

微服务 云原生:搭建 K8S 集群

为节约时间和成本,仅供学习使用,直接在两台虚拟机上模拟 K8S 集群搭建 踩坑之旅 系统环境:CentOS-7-x86_64-Minimal-2009 镜像,为方便起见,直接在 root 账户下操作,现实情况最好不要这样做。 基础准备 关…

IntelliJ IDEA Copyright添加

IDEA代码文件的版权(copyright)信息配置 1. 快速创建Copyright 版权配置文件 1.1 创建copyright文件 依次点击 File > Settings… > Editor > Copyright > 点击 “” 号或 “Add profile”***,弹出创建 Copyright Profile 操作窗口,在***文…

低代码如何帮助企业数字化转型?

在数字化时代背景下,企业都面临着巨大的数字化转型挑战。为了迎接这一挑战,企业软件开发工具和平台都在不断地创新和进化。其中,低代码开发平台应运而生,并成为了众多企业转型的首选方案。企业为什么都选择低代码开发平台&#xf…

【基于CentOS 7 的NFS服务】

目录 一、概述 二、应用场景 三、安装 四、启动服务 五、目录结构 1.nfs的主配置文件 2.存储配置文件 六、命令解析 1.共享存储管理命令 2.共享目录查看 七、配置 八、客户端访问 1.查看nfs服务器的共享目录 2.挂载 九、实际案例 一、概述 network filesystemt…

【GitOps系列】使用Kustomize和Helm定义应用配置

文章目录 使用 Kustomize 定义应用改造示例应用1.创建基准和多环境目录2.环境差异分析3.为 Base 目录创建通用 Manifest4.为开发环境目录创建差异 Manifest5.为预发布环境创建差异 Manifest6.为生产环境创建差异 Manifest 部署 Kustomize 应用部署到开发环境部署到生产环境 使用…

Flink笔记

Flink笔记 2.Flink学习笔记2.1流式处理对比2.2 Flink核心概念2.2.1并行度2.2.2算子链2.2.3任务槽 2.3 DataStream2.3.2 读取数据源-源算子(Source)2.3.3 转换算子(Transformation) 2.Flink学习笔记 2.1流式处理对比 学习Spark S…

ubuntu22.04上如何创建有privilege权限,有固定自定义IP的空容器

需求背景: 我想用docker来隔离自己的主机环境,来创建一个隔离的空白全新的开发环境,并且使之有固定的IP,在里面可以自由更新下载各种编译依赖,具有privileged权限的容器,以下是操作实现的具体步骤 查看do…

1.12 springboot 整合log4j打印日志

1.除去springboot自带的日志 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><exclusions><!-- 除去springboot自带的日志 --><exclusion><groupId>org.sprin…

在vscode中运行Hbuilder创建的项目

想必习惯使用vscode的人突然使用HBuilder很不习惯吧&#xff0c;但是HBuilder创建的项目本身没有调试功能。当你有一个app项目但又不想使用HBuilder编写&#xff0c;需要浏览器调试的时候&#xff0c;你这时就需要一个插件了&#xff1a;uni run 插件 基于HBuilderX的采用unia…

JVM运行时区域——对象创建内存分配过程

新创建的对象&#xff0c;都存放在伊甸园区域&#xff0c;当垃圾回收时&#xff0c;将伊甸园区域的垃圾数据销毁&#xff0c;然后将存活的对象转移到幸存者0区域&#xff0c;之后创建的新的对象还是存放在伊甸园区域&#xff0c;等到再次垃圾回收后&#xff0c;将伊甸园区域和幸…