探索ChatGPT的无限可能-提示优化

本节课程是关于ChatGPT的提示优化课程,主要讲述ChatGPT实操过程中经常使用到的提示优化方法,如少样本提示,思维链提示等等。我们也会基于这些提示优化方法构造一个高效的提问框架,用于帮助大家在使用ChatGPT时能高效的写出提示语句,从而引导ChatGPT更好地回应我们所提出的问题或需求,最后我们也总结了一些进一步挖掘ChatGPT潜力的方法,这些方法在某些场景能更进一步发挥ChatGPT的潜能。

一:零样本提示

在谈少样本提示前,我们先回忆一下之前我们是如何使用ChatGPT的,通常情况,我们会直接向ChatGPT提问或者要求ChatGPT帮助我们做一些事情,比如告诉ChatGPT,“我现在陷入了一起借贷纠纷,不知道现在该怎么办”,然后ChatGPT会给出很多建议。 又比如指示ChatGPT,将“The real talent is resolute aspirations。”翻译成中文,

ChatGPT会给出中文翻译结果,这些都是最常见的使用方式,我们称之为零样本提示。ChatGPT由于经过了大量的训练,已经具备非常强大的零样本功能,能在没有任何其他信息的情况下,给出合适的回答。

二:少样本提示

但是在某些情形下,ChatGPT可能并不会按照我们期待的路径回应我们的需求,这个时候给予模型一小部分(或者说"少数")样例(或者说"提示"),可以让模型基于这些样例提示来理解我们的需求,更好地完成任务。在具体的语境中,“提示”通常指的是一些样例的输入和输出对,这些信息能帮助模型理解任务的要求。

先看两个典型的少样本提示的例子:

第一个例子,我们的需求是让ChatGPT对“多么可怕的节目”这个语句进行情绪判断,并且遵照我们预先设定的个性化规则来输出判断结果

此时我们需要将输出规则以提示的方式告知ChatGPT。第一个规则告诉ChatGPT是以“正面”或者“负面”来回答语句的情绪。我们给到几个例句以及输出(这太棒了,输出是正面,这太糟糕了,输出是负面,哇,那部电影太棒了,输出是正面),ChatGPT会根据提示语句学习到这个规则,并对“多么可怕的节目“输出“负面”的情绪判断结果。

第二个规则告诉ChatGPT是以“a”或者“b”来回答语句的情绪。我们同样给到几个例句以及输出规则,然后ChatGPT也会学习到该规则,并按照我们所期望的方式回答我们的问题,此时输出“b”来作为判断结果。

第二个例子,我们需要ChatGPT将输入的英文翻译成法文,在正常情况下,我们通常会直接向ChatGPT提出要求,将输入的英文翻译成法语。但该例子中,我们换了另一种沟通方式,我们以问答(QA)的方式给ChatGPT一些提示,我们给到一个提示例子:

如提问,Hello,how are you,同时我们给出回答演示---输出法语翻译。该提示使ChatGPT明白了我们的意图,也就是将英文翻译成法语,然后我们提出新的问题 i love playing football,ChatGPT会根据上文提示所了解到的意图信息将我们的英文语句翻译成法语。

需要强调一下第二个例子,以问答方式给予提示是我们在使用ChatGPT时常用的方法,我们可以通过一个或者多个问答流投喂ChatGPT知识或信息,ChatGPT会学习这些知识和信息,同时也会从这些知识和信息中理解我们的意图,当我们提出新的问题,ChatGPT则会给出合适的答案。

我们再仔细看看上述这两个例子中的提示样本,他们都具有一个特征,即每条提示都是给出问题,然后直接给出答案,ChatGPT会基于问题与直接的回答输出,来学习信息,完成任务,这其实是一种快思考模式,也是传统的神经网络所采用的方式,即给到输入,然后直接输出结果,这种输出结果更像是直觉,但是单靠直觉在解决某些问题时却未必能得到正确的结论。

三:思维链

我们来看另外一个例子:

这个例子中我们先用问答模式给到ChatGPT一些信息:一个人以毎小时5公里的速度骑自行车,骑了1小时后,又以毎小时10公里的速度骑了2小半时,他一共骑了多少公里? 同时我们直接给出答案:30公里。

然后我们再次向ChatGPT提一个类似的问题。

一个人以每小时10公里的速度骑自行车,骑了半小时后,又以每小时15公里的速度骑了1小时, 他一共骑了多少公里?

然而这个时候ChatGPT直接给出了错误答案:35公里;

我们再仔细思考一下解决这个例子中的问题时我们通常所采用的思维模式。面对此类问题,我们往往会将问题推理拆解为多个步骤,然后一步一步地分析与计算,最终得出结果,或者是获得合适的解决方案。这其实就是一个依靠思维链解决问题的过程。我们可以将思维链过程以提示的方式告诉ChatGPT,让ChatGPT学习这个思维链过程,然后再去回答我们提出的新问题,我们看一下改造后的提示,也就是包含思维链过程的提示。

我们的提示中包含了完整的计算过程,先计算第一段路程,然后计算第二段路程,最后将两段路程相加得到最终的答案。

然后我们向ChatGPT提出类似的问题。此时ChatGPT能根据提示中的思维链信息学习到解答问题的方法,并按照类似的思维链过程解答问题,最后得到正确的答案。

这就是思维链提示的威力,思维链提示其实也是少样本提示的一种,但是思维链提示通过思维链过程的演示引导ChatGPT按合理的思维方式去分析和解答某些问题,从而获得更符合常理的结果。

上面这个例子我们给出了完整的思维链过程提示,其实有一种更简洁的方式能够引导ChatGPT按合理的思维方式去思考。

还是用之前的例子,我们先用问答模式给到ChatGPT一些信息:一个人以毎小时5公里的速度骑自行车,骑了1小时后,又以毎小时10公里的速度骑了2个半小时,他一共骑了多少公里? 同时我们直接给出答案:30公里。该提示中我们没有给出思维链过程。

然后我们再次向ChatGPT提一个类似的问题。

一个人以每小时10公里的速度骑自行车,骑了半小时后,又以每小时15公里的速度骑了1小时, 他一共骑了多少公里? 但是我们加了一句话,让我们一步一步地思考,确保得到正确的答案。这次ChatGPT会采用思维链的方式,一步一步去计算,最终获得正确的结果。

让我们一步一步地解决这个问题,英文翻译是:let's think step by step. 这个是很多关于ChatGPT的介绍文章中会出现的经典提示语句。很多时候我们称之为“咒语”,这个简短的提示咒语可以引导ChatGPT以合适的思维方式分析和回答问题,从而输出更符合我们预期的结果,而这种逐步推理型的思考能力更贴近于人类正常的思维方式,也是ChatGPT有别于传统神经网络的重要突破。

我们上面给出的例子中,在没有给出思维链提示时,对新的问题,ChatGPT给出了错误的答案,这是因为ChatGPT并没有采用思维链的方式去思考和解答问题。但是需要提醒大家的是,实际上ChatGPT已经具备比较强大的思维链能力,我们在向ChatGPT直接提出需要思维链解答的问题时,很多时候ChatGPT并不需要我们特别提示他采用思维链的方式,ChatGPT会自动启动思维链过程进行推理并解答,给出正确的答案。但是确实在某些时候,ChatGPT偶尔会不采用正确的思维链方式去解答,而是直接输出结果,这个时候就可能给出不正确的结果,此时才需要我们用思维链提示方法或者思维链提示咒语去引导ChatGPT以正确的思维方式来回答我们的问题。

我们再看一个例子:

约翰照顾10只狗。每只狗每天需要0.5个小时来散歩和处理它们的事条。他一周花多少小时照顾狗?

这也是一个需要使用思维链分步计算和解答的问题,我们将这个问题直接抛给ChatGPT,不提供任何思维链提示,可以看到ChatGPT会启动思维链过程,分步思考,并最终给出正确的答案。

那怎么让ChatGPT不使用思维链,而采用快思考的方式直接给出答案了,其实很简单,只需要在问题的后面加一句“请直接作答”,我们可以看一下,在之前的问题后面加一句“请直接作答”,ChatGPT则直接给出答案,但是答案是错误的,显然此时,ChatGPT并未按思维链的方式思考。

四:高效提问框架

我们已经了解到通过少样本提示和思维链提示可以让ChatGPT帮我们解决多种类型的问题。在实际使用中,除了给予提示,我们还可以通过一些规范,更好地指导ChatGPT工作。为此我们总结了一个高效的提问框架,在使用ChatGPT时,可以借鉴该框架更好地于ChatGPT交流,从而更高效地获取想要的信息。

提问框架如下:

第一:我们需要提供清晰的指令。

明确指示ChatGPT需要做什么,避免使用过于复杂或模棱两可的语言。

比如:“谈一谈人工智能优缺点?”这个指令就过于宽泛和简略。大语言模型难以理解用户具体想要了解的内容。

又比如:“我想了解最新的科技趋势,还有人工智能在医疗中的应用,然后再聊聊环保问题”这个指令将多个问题混合,也会使大语言模型产生混乱的回复。

第二:对于某些需求,我们需要提供原始输入数据

比如我们需要ChatGPT对一段文章进行总结,我们可以指示ChatGPT:请帮我们总结以下文章的要点,文章内容如下:

有的时候,我们也可以使用引号(比如三个引号)将输入的内容引用起来,用于突出表示这是输入的原始信息

第三:给出提示

比如之前所述的少样本提示或是思维链提示,我们可以采用常用的QA问答模式给到ChatGPT一些提示信息,这些信息可以让ChatGPT更好地理解我们的意图,也能引导ChatGPT采用合适的思维方式去思考问题。

第四:输出控制

除了让ChatGPT根据提示理解我们的意图。我们还可以指示ChatGPT应该以何种规则,风格,格式回复,生成期望的内容,比如我们可以指示ChatGPT以表格形式对内容进行总结,以幽默的口吻回答问题,以通俗易懂的语言输出内容等等。

第五:上下文,由浅入深,层层递进

我们可以通过多个轮次的对话构建上下文,ChatGPT在与我们对话时,会基于上下文的内容进行思考,所以我们可以精心设计上下文对话内容,比如由浅入深,逐步展开,层层递进的方式与ChatGPT对话探讨问题,这样ChatGPT会输出更准确的信息给到我们。一个典型的应用是借助ChatGPT编写论文,我们通常都会通过多个轮次的对话引导ChatGPT按照我们的思路编写内容,而对于每次新的对话,上文中所探讨的都是非常有价值的信息,我们需要做的是掌控对话的节奏,由浅入深,层层递进,ChatGPT也会逐步构建出优秀的论文内容。

第六:角色限定

指示ChatGPT模拟特定角色,以特定的视角、特定的方式回答问题与生成内容。

角色扮演是ChatGPT一个经典使用场景,我们可以赋予ChatGPT一个特定的角色。比如对ChatGPT做角色设定“你是一名出色的民事诉讼律师,我需要咨询一些法律问题”。

需要注意的是,虽然这里是列出的第六点,但是在实际使用时,角色设定我们通常是用在提问的开头,或者是多轮对话的起始位置。

五:进一步优化

至此,我们构建了一个高效的提问框架,通过这个提问框架,我们已经能与ChatGPT很好的交流,并获取期望的信息。那是否还有进一步优化的空间呢?当然有,我们也总结了一些可以进一步优化ChatGPT交流方式的方法,这些方法并不是所有场景都会用到,但是在某些时候,可以通过这些方法更好地挖掘ChatGPT的潜能。

第一:尽可能明确

比如更具体的时间范围,具体的名称或关键字。

比如:我想了解从2020年至2022年期间,人工智能在医疗领域取得的显著进展,以及它在疾病诊断和治疗方面的应用。

第二:保持上下文连续性,保留核心内容

上下文的重要性我们之前已经讲述,这里需要强调的是,在一个对话分组中,可能会出现多个主题的上下文,这些不同主题的上下文,或者是在不同的主题间来回切换,有时也会扰乱ChatGPT回答问题的思路,因为对ChatGPT而言,上下文实际上会形成一个短期记忆,每次新的对话,短期记忆的内容都会输入到ChatGPT中,所以某些场景如果未获得期望的输出,可以检查上下文的连续性,一个对话分组中,采用单个主题的连续上下文能更好地获取信息。此外大语言模型短期记忆的能力也是有限的,短期记忆持续膨胀也会导致更早前的记忆会被丢弃,这个时候尽可能保留短期记忆的核心内容,能帮助ChatGPT输出更高质量的信息。当上下文信息非常多,如何保留核心内容呢,这同样需要一定的技巧,比如我们可以使用ChatGPT的文本摘要功能将长内容概括提取,将概括的内容作为最新的上下文内容给到ChatGPT,这样便能将ChatGPT短期记忆能力发挥得更好。

第三:使用专业术语

涉及专业问题,可尝试使用专业术语,这样ChatGPT能站在专业的角度回答与生成内容。

比如:“我对区块链技术的分布式账本、去中心化和智能合约特性很感兴趣,您能深入讨论一下它在金融交易和供应链管理中的潜在优势吗?”

分布式账本、去中心化和智能合约这些专业术语将引导ChatGPT用更专业的角度回答问题,从而获得更专业的输出。

第四:自动优化

我们可以使用ChatGPT帮我们优化我们的问题。

比如可以指示ChatGPT,请帮我优化一下问题“ 人工智能优缺点?”,以便大语言模型能更好地按我们的需求回答问题

,ChatGPT会给出优化后的问题,你可以将优化后的问题再次给到ChatGPT,获得更优质的输出。

本节课的内容到这里就结束了,我们做一下总结。

本节课我们先讲述了使用ChatGPT时我们通常会采用零样本的提问方式,ChatGPT非常强大,零样本在很多场景已经能获得让我们满意的输出,但是在某些场景我们还需要采用少样本提示,思维链提示的方式给予ChatGPT一定的引导,帮助ChatGPT更好地工作。

基于之前学习到的知识,我们还构建了一个提问框架,用于帮助大家在使用ChatGPT时高效的交流,获取优质的信息。最后我们继续总结了一些进一步优化提问的方法,这些方法在某些场景能更进一步地挖掘ChatGPT的潜能。

本节课程学习的内容更侧重于一些概念和方法,这些概念和方法已经能够覆盖大部分ChatGPT的使用场景,希望本节内容能让大家对ChatGPT有更深的理解,下一期我们将会讲述角色设定在ChatGPT中的使用方法和技巧,角色设定是微调ChatGPT的重要方法,也是打造个性化ChatGPT的重要手段,角色设定结合前期课程的内容,可以打造出强大的个性化ChatGPT。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值