当前位置: 首页 > news >正文

ChatGPT 不好用?那你看下这份 Prompt 工程指南

作为大型语言模型接口,ChatGPT 生成的响应令人刮目相看,然而,解锁其真正威力的关键还是在于提示工程。

在本文中,我们将揭示制作提示的专家级技巧,以生成更准确、更有意义的响应。无论你使用 ChatGPT 是为了服务客户、创建内容,还是仅仅为了娱乐,本文提供的知识和工具可以帮助你优化 ChatGPT 的提示。

成本优化

在考虑高级提示时,不经意间很容易生成冗长且占用大量资源的提示,非常不利于成本控制,有一个行之有效的解决方案是:精简提示响应。

精简响应

为了缩减 ChatGPT 响应的长度,你可以在提示中注明长度或字符限制,例如:创建一个不超过 280 个字符的推特帖子。

更通用的方法是,将如下内容添加到提示中:

• Respond as succinctly as possible.(响应尽可能简洁。)

简化提示术语

• Zero-shot(零示例):不需要提供示例。

• One-shot(单示例):只提供一个例子。

• Few-shot(少量示例):提供几个例子。

模式

利用 ChatGPT 生成文本的最佳方法取决于大型语言模型执行的特定任务。如果你不确定使用哪种方法,可以尝试不同的方法,看看哪种方法最适合自己。下面,我们将介绍 5 种方法来帮助你快速上手。

思维链(Chain-of-Thought,CoT)

思维链方法需要为 ChatGPT 提供一些可用于解决特定问题的中间推理步骤示例。

自问法(Self-Ask)

自问法指的是,让模型在回答初始问题之前,先想一想(然后回答),再回答最初的问题。

分步法(Step-by-Step)

分步法指的是向 ChatGPT 提供以下说明:

• Let’s think step by step.(我们来一步步思考。)

实践证明,这种技术可以提高大型语言模型在各种推理任务上的表现,包括算术、常识和符号推理。

OpenAI 利用人类反馈强化学习(Reinforcement Learning from Human Feedback,RLHF)训练了 GPT 模型,因此,ChatGPT 的底层模型与类人的逐步思考方法相一致。

ReAct 法

ReAct(Reason + Act)法指的是结合推理轨迹与特定于任务的操作。推理轨迹帮助模型规划和处理异常,而操作允许它从知识库或环境等外部来源收集信息。

反思法

反思法(Reflexion)建立在 ReAct 模式的基础之上,通过添加动态记忆和自我反思的能力来增强大型语言模型,改进其推理轨迹和特定于任务的动作选择能力。

为了实现全方位自动化,反思法论文的作者引入了一种简单但有效的启发式方法,允许代理识别幻觉,防止重复动作,并在某些情况下创建环境的内部记忆映射。

以上,我们介绍了 5 种最先进的模式,下面我们来看一看与提示工程相关的几种反模式。

反模式

三星等公司已经意识到:不要共享私人或敏感信息。了解员工如何将专有代码和财务信息输入到 ChatGPT 仅仅是个开始。很快,Word、Excel、PowerPoint 以及所有常用的企业软件都会集成类似 ChatGPT 的功能。

将数据输入到 ChatGPT 之类的大型语言模型之前,请确保制定好政策。需要注意的是,OpenAI API 的数据使用政策明确指出:

“默认情况下,OpenAI不会使用客户通过我们的API提交的数据来训练OpenAI的模型或改进OpenAI的服务产品。”

“OpenAI API的数据将保留30天,用于监控滥用和误用。个别有授权的OpenAI员工以及保密和安全义务约束的专业第三方承包商可以访问此数据,仅用于调查和验证涉嫌滥用行为。”

提示注入

正如你需要保护数据库免受 SQL 注入攻击一样,请务必确保你向用户公开的任何提示免受提示注入的攻击。此处的“提示注入”指的是,一种通过向提示中注入恶意代码来操纵语言模型输出的技术。

第一个记录在案的提示注入是由 Riley Goodside 提出的,他只是在提示前添加了下面这句话:

“Ignore the above directions”(忽略上述指示)。

然后再给出想要的动作,从而成功地让 GPT-3 执行任意动作。

提示泄露

同理,提示不仅会被忽略,还有可能被泄露。

提示泄露是一个安全漏洞,攻击者可以提取模型自带的提示,Bing 在发布自己的 ChatGPT 集成后不久后,就遇到了这样的情况。

从广义上讲,提示注入和提示泄漏大致如下所示:

虽然总有一些行为不端者希望利用你公开的提示,但就像通过准备好的语句防止 SQL 注入一样,我们也可以创建防御性的提示来对抗不良提示。

三明治防御

三明治防御就是这样的一种技术,你可以将用户的输入与你的提示目标“夹在中间”。

总结

ChatGPT 响应是不确定的,这意味着即使输入相同的提示,模型也有可能返回不同的响应。为了应对不确定性结果的不可预测性,你可以在使用OpenAI API时,将参数 temperature 设置为零或很低的值。

你可以自由尝试本文介绍的提示技巧,但是,在探索时请记住大型语言模型的不确定性:

• ChatGPT(ai.com):OpenAI 的公共聊天机器人界面。

• OpenAI Playground:注册 OpenAI API 密钥后,你可以通过 OpenAI 的 playground 测试你的提示和相应的参数,例如参数temperature等。

• Vercel AI Playground:免费的练习场所。你可以比较多个大型语言模型的提示结果,包括 GPT-4 和 Anthropic 的 Claude 等。

• OpenAI API JavaScript Jumpstart(需要 OpenAI API 密钥):我开源的一个 UI,你可以全权控制 OpenAI 的提示、呈现方式并计算每个提示的成本。

相关文章:

ChatGPT 不好用?那你看下这份 Prompt 工程指南

作为大型语言模型接口,ChatGPT 生成的响应令人刮目相看,然而,解锁其真正威力的关键还是在于提示工程。 在本文中,我们将揭示制作提示的专家级技巧,以生成更准确、更有意义的响应。无论你使用 ChatGPT 是为了服务客户、…...

冲浪杂记——

华为od是指什么? 华为OD(Open Developer Platform)是华为面向全球开发者推出的开放平台,旨在为开发者提供丰富的技术资源和开发工具,支持开发者快速构建基于华为技术的应用程序、解决方案和服务。华为OD平台为开发者提…...

深入理解Python中的进程与线程

前言 今天我们使用的计算机早已进入多CPU或多核时代,而我们使用的操作系统都是支持“多任务”的操作系统,这使得我们可以同时运行多个程序,也可以将一个程序分解为若干个相对独立的子任务,让多个子任务并发的执行,从而…...

Data retry场景介绍

本文介绍PDN激活失败或者IP Address缺失时的处理机制。 终端是否会retry? 如何设置data retry timer? Modem retry还是上层应用发起retry? IPV4V6 Fallback 3GPP TS 24.008 6.1.3.1定义了UE使用IPV4V6 pdp type建PDN失败后,如果网络以#Cause50、#Cause51或者#Cause52 …...

lua | 数组与迭代器的使用

目录 一、数组 一维数组 多维数组 二、迭代器 泛型for迭代器 无状态的迭代器 多状态的迭代器 本文章为笔者学习分享 学习网站:Lua 基本语法 | 菜鸟教程 一、数组 数组:相同数据类型的元素按一定顺序排列的集合,可以是一维数组和多维数…...

【云原生】云原生服务网格流量控制思考

文章目录 前言一、什么是流量控制?二、存在三种场景三、场景分析 前言 随着云原生技术的不断发展及应用,很多服务都已部署上云。 保障云上环境的稳定是重要的一环。 一个重要的影响稳定的场景就是突发大流量冲击。 面对该场景,较好的应对…...

《数据库的嵌套查询和统计查询》

选择Study数据库,用SQL语句进行以下查询操作。 1.嵌套查询 ①求选修了数据结构的学生学号和成绩。 SELECT Sno, grade FROM sc WHERE Cno 007;②求007课程的成绩高于于文轩的学生学号和成绩。 SELECT Sno, grade FROM sc WHERE Cno 007 AND grade …...

【网站架构】Nginx 4层、7层代理配置,正向代理、反向代理详解

大家好,欢迎来到停止重构的频道。 本期我们讨论网络代理。 在往期《大型网站 安全性》介绍过,出于网络安全的考虑,一般大型网站都需要做网络区域隔离,以防止攻击者直接操控服务器。 网站系统的应用及数据库都会放在这个网络安全…...

mysql备份和恢复

mysql备份和恢复 数据丢失的原因: 程序错误 人为操作错误 运算错误 磁盘故障 灾难(火灾,地震)和盗窃 数据库备份分类 物理备份 数据库此操作系统的物理文件(数据文件,日志文件等)的备份 …...

新闻月刊 | GBASE 4月市场动态一览

产品动态 4月,GBASE南大通用大规模分布式并行数据库GBase 8a MPP Cluster中标人保财险“2022年基础软件产品及服务采购”项目。这是自2019年GBASE与人保财险达成合作以来支持建设的第三期项目。项目上线后,将极大满足人保财险大数据中心及研发中心的增量…...

Java --- springboot2数据响应与内容协商

目录 一、数据响应与内容协商 1.1、响应json 1.1.1、返回值解析器 1.1.2、springMVC支持的返回值类型 1.1.3、HttpMessageConverter原理 1.2、内容协商 1.2.1、引入依赖 1.2.2、 postman分别测试返回json和xml 1.2.3、开启浏览器参数方式内容协商功能 1.3、自定义 Message…...

“中特估”乘风破浪!后续机遇在哪?

5月第一个交易日,“中特估”继续乘风破浪,A股银行板块集体大涨。 随着新一轮国企改革正在推进,中特估体系也在积极构建之中。在市场缺乏增量资金背景下,市场选股范式已经转向数字经济AI、央国企价值重估的两条主线,此…...

OpenShift 4 - 在 CI/CD Pipeline 中创建 KubeVirt 容器虚拟机 - 方法3

《OpenShift / RHEL / DevSecOps 汇总目录》 说明:本文已经在支持 OpenShift 4.12 的 OpenShift 环境中验证 文章目录 创建并运行 CI/CD Pipeline访问 VMPipeline 的 Task 解读 创建并运行 CI/CD Pipeline 执行命令,生成公钥-私钥对。 $ ssh-keygen$ l…...

功率放大器在Lamb波信号波包模型验证研究中的应用

实验名称:窄带激励条件下的兰姆波时域信号参数估计研究 研究方向:Lamb波 测试目的: 基于Lamb波的二阶频散理论,提出了时域信号的波包模型,为全文奠定理论基础。模型考虑两种情况:初始激励以单模态传播和…...

Apache Hadoop

一、Apache Hadoop入门 1.1、Hadoop介绍 狭义上:hadoop指的是Apache一款java开源软件,是一个大数据分析处理平台。 Hadoop HDFS:分布式文件系统。 解决了海量数据存储问题。 Hadoop Distributed File System (HDFS™)Hadoop MapReduce&…...

PHP+vue大学生心理健康评价和分析系统8w3ff

本整个大学生心理健康管理系统是按照整体需求来实现各个功能的,它可以通过心理健康测评来检测大学生的心理健康,并且给予预警,还可以预约医生来解决问题。并且,管理员可以查看用户信息,发布一些关于心理健康的文章。该…...

【图像分割】【深度学习】SAM官方Pytorch代码-Mask decoder模块MaskDeco网络解析

【图像分割】【深度学习】SAM官方Pytorch代码-Mask decoder模块MaskDeco网络解析 Segment Anything:建立了迄今为止最大的分割数据集,在1100万张图像上有超过1亿个掩码,模型的设计和训练是灵活的,其重要的特点是Zero-shot(零样本迁…...

A Restful API

SpringBoot 定义Restful API 定义POJOOrderBuyer 定义RestfulControllerGet API for queryPost API for addPut API for updateDelete API for delete 定义AjaxResponse Patavariable RequestParm RequestBodyRequestHeader 定义POJO Order import java.util.Date; import ja…...

从零开始学习JSP,让你全面掌握Web开发技能

JSP(Java Server Pages),是一种动态网页技术,它允许开发者使用Java代码和HTML标签来创建网页。在这篇文章中,我们将详细介绍JSP的基本概念、语法和应用。 一、JSP的基本概念 1.1 JSP的含义 JSP是一种网页技术&#…...

java基于知识库的中医药问询系统

本系统主要包含了等系统用户管理、中医药常识管理、科室信息管理、知识库管理多个功能模块。下面分别简单阐述一下这几个功能模块需求。 管理员的登录模块:管理员登录系统对本系统其他管理模块进行管理。 用户的登录模块:用户登录本系统,对个…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...

微信小程序之bind和catch

这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...

【C++进阶篇】智能指针

C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

华为OD机试-最短木板长度-二分法(A卷,100分)

此题是一个最大化最小值的典型例题, 因为搜索范围是有界的,上界最大木板长度补充的全部木料长度,下界最小木板长度; 即left0,right10^6; 我们可以设置一个候选值x(mid),将木板的长度全部都补充到x,如果成功…...