我们接下来开始今天的视频。经过对于群里朋友们的观察呢,我发现很多朋友还是处于一个比较入门的阶段,而对于h h p t的理解和prom的使用还不是那么熟悉。那么呢这个视频就是希望能够帮助大家快速的去啊使用上t i g p t,然后以及理解prom啊,重点是要学会如何优化自己的prop,而不是只能从网上去复制和粘贴。那些所谓优质的prom都能够在文档的第五点一节prom的工程里,要的话可以自行阅读。我们打开x h p c的playground啊,其实呢我们在这个对话框里输入任何的啊问题或者指令,都可以被称作是在prom,也就是在提示啊,本质上来说呢,我们现在呃输入任何东西就是在给a i模型呃发指令。
比如说我会问他。然后他就会回答我的问题,这其实也就是在呃给呃a i模型发指令啊,其实同样的道理在这个地方也是一样的。而这个地方发发一个问题给chat p t其实从本身来讲也是在prompt啊,在在这里会经过这个chat p d这个产品。而在这个地方我们直接使用的是playground,啊,后面接的是三点五turbo的模型。我们在对话框里输入任何的问题或者文字都可以被称作啊是在prom。
也就是说呢啊我们不一定是要问任何的问题,我们说任何的话都是在prompt啊,大语言模型会根据我们的文本提示做出相应的反应。就比方说我们在这里说写中文吧啊其实我们在这里呢其实没有提出任何的问题,只是发了苹果,是这么三个字。对于a i模型呢这就是一个prom,它会自动的去把你的句子给补全,在这个地方它可能呃发的文字过于长了。我没有想让他说这么多的多多的东西,那就是说啊我就给他一个明确的指令,就是说这样看起来我们就好像达到了这个我们想要补全。苹果是然后这一整句的这样一个目的了呢?呃这是上面的例子啊,设计prompt是一个不断迭代以达到目标的过程。
你可能在问一下g p t之前啊,心中就对于完美答案有了一个预期。但是我想要说的是,a i是需要被调教的大量试验所逼近的prom才会给我们带来更好的结果。我们在开始的时候呢可以先尝试放下那种呃问他一次就能获得好答案的想法。呃,我们可以从最简单prom开始,然后再根据啊我们的目标不断的添加元素。我们在这里就以一个假如说我们想要chat p t叫我学英语,来给大家展示一下怎么样从一个最简单的prompt开始,然后一步一步去逼近我们的目的。
如果说呢我们需要一个英语老师,我们可能冒出的第一个念头就是说啊我们需要翻译。那第一个念头就直接开始,然后这句英文是出自了不起的盖茨比,然后他就直接给了我们一个翻译。啊,但是作为一个英语老师呢,或者说我们的目标呢是学英语。我们就可以尝试一下,看能不能让他呃带入这个英语老师的角色,然后去多教我们一些东西,就改成ok然后我们就让他扮演一名资深的英语老师,让他用下面这段话教我们学英文,然后直接提交。然后第一句话就是hello class。
today we are going to learn about the import. 那可能我们的这个英语水平没有这么高,没有办法看懂他的这个英文啊,那我们就继续修改这个prot,让他用中文来去给我们教学。我想要他用中文去教导,那么这个时候他就会用中文去啊解释这句话,并且去举出一些例子啊,跟这个学习单词有关,他给出的答案已经挺不错的了。那么呃如果说我们对对于这个老师还有一些要求,我们还想要他去比如说给我们解释一些疑难词。那么我们也可以去给出具体的指令,让他朝着我们心中所想的那个目标去迈进。总而言之呢,如果说我们需要chat g p t去帮助我们完成一个相对来说复杂的目标,可能说涉及到不同的子任务。
那么我们可以尝试去把任务啊拆解成更简单的子任务啊,一个一个的子任务去去添加。随着子任务不断的添加,然后我们不断的获得更好的结果。好的prompt也在为我们从简单到复杂一步一步的构建起来。这样的话呢避免了我们在prom的设计的过程中,一开始就添加了太多的复杂性。从上文的英语老师的例子中呢,我们可以看到我们不断的根据自己的需求调整自己的prom chat,g p t所返回的答案也会逐渐逼近我们的需求。
但是呢随着不断添加文字说明的过程,很容易就陷入到那种想要过于聪明的prom的陷阱啊,从而可能创建那种不精确的描述。在这里呢我可以给出几个输入文字的时候更精确的一些建议。第一呢我们需要需要使用这个正确的语法、拼写和标点符号,要尽量避免错别字,以防chat g p t看不懂。第二呢我们需要我们可以使用简短而没有歧义的句子。比如说我喜欢一个人,他就不是一个好的句子。
然后第三,我们使用更加精确的那些形容词语。比如说啊给我三到五个建议就比给我几个建议比较好。以及我们在尝试写一个更好的prom的时候呢,我们可以参考这个sarria总结的优质prompts需要包含的元素,总共有四个元素。第一个元素是啊context背景信息,也是上下文信息。它相当于你给模型一个铺垫的信息,啊,让他理解o k我们是在一个什么样的环境下,我们是在什么样的事情。
啊,第二个呢是instruction指令,这个是必须包含的。就是你要告诉模型,你需要模型执行什么样的任务,啊,它需要干什么样的事情。然后第三个是input data,输入数据,也就是告知模型它需要处理什么样的数据。然后第四个呢是呃output indicator。这个一般发生在对于输出有一定的要求的情况下。
只要你按照这个框架写的prom,一般来说模型返回的结果都不会太差。当然了呃在这里面不是说每一个元素都一定需要包含,我们可以根据自己的手头任务去进行取舍和调整啊,有的任务可能不需要input data,有的任务可能不需要output啊indicator,那么我们就自行的调整就好了。呃,由于视频的篇幅的限制呢,我在这里只放几个目前被广泛验证的啊,并且适用范围比较广,学习门槛比较低的技巧。更多的技巧和其中的高阶原理啊,可以参考文档里的内容,或者呃有一些还没写的,就等待呃文档的后续更新吧。啊,第一个技巧就是角色扮演了。
在我们上面举的这个英语老英语老师的例子里,我们就用到了这个技巧啊。就是比如说让他扮演一个资深的英语老师。在很多时候呢我们想要chat g p t或者说模型在一个呃更聚焦的语境下去回答问题。那么这个时候就是一个使用角色扮演技巧的时候,其实是呃扮演某个角色。这个句子呢也是我们用一句话就给到chat g p t背景信息的这个元素,以及我们在网上看到的那些chat g p t模仿某个名人的那种产品啊或者对话的时候,其中一些也是使用了这个技巧。
比如说他说请扮演steve jobs来去跟我对话,这个时候模型就会以steve jobs的语气来来去去跟你去对话。另外的一种方法就是使用了l e n i n g。我们之后也会在啊那个文档里去详细的说明怎么样去使用lena n去做到。现在家里人已经休息了,不过呃,我现在到二楼的会客厅买了,然后我们就继续呗。这是关于第二个技巧啊,就是啊增加视力。
如果说有的时候我们难以用语言去清晰的表达我们的指令,或者希望啊更快更准确的去啊prompt。这个时候可能就是使用增加视力这么一个技巧的好的时机。啊,比如说我们想要在这段话里面啊去提取所有的地名,并且以特定的格式输出出来。这个任务他完成的挺不错。但是如果说我们不需要啊赏识这样的字眼啊,可能也不想要这样的黑色方框,我们用语言的方式可能相对来说比较难以去表达清楚。
那么呃我们就直接增增加一个例子就好。呃,我们想要的这个方式,然后以一个例子的方式去给他。然后这个时候他就会按照我们的例子中的这样子去输出。可以看到并不需要额外的去跟他说明格式。chat p t也可以啊很好的去根据我们的例子完成我们的想要的任务啊,这个就有点像你跟一个朋友,他在阐述一个概念,然后啊抽象的解释可能并不能很好的传达你的意思。
那么这时候你只需要给他一个例子,他也许就能很快的去理解。第三个技巧,lets think step by step. 这句话是很多的使用者和学者总结出来的一个黄金例子。当我们需要在g p t去进行一个相对复杂的啊推理任务的时候,就是使用这个技巧的时候,这里应用了zero op chat thought property原理的详情呢可以建文档的五点一点四,我在这里就不赘述了。经过我的测试呢,即使我们使用的是中文,也可以直接在文末加上这句英文。let's think step by step插g p t明显也能表现的更好啊。
虽然三点五的模型啊对于数学问题还是不是特别的在行,但是啊明显chat p t的表现会更好一些。比如说我们在这里试一下啊,给他一道数学题。哎,这个数学题它就直接打出来了,我们换一个。我们现在先来看一下,就是在没有使用那个句子的时候,他能不能答对啊。可以看到嗯在这个地方他打错了,他每天共修一百一十米。
啊,这个地方答错了,我们来试一下。加上了这句话之后。他看看能不能答对,可以看到我们加了这句lets think step by step之后啊,它就算对了。这个其实很神奇啊,这时候我试了非常非常多的数学题啊,我发现虽然chat g p的做数学题的能力目前来说很弱。大多数题目其实加了这句话也不一定对。
但是明显加了这句话之后啊,它的这个正确率相对没加这句话的正确率会高上不少。ok以上的三个技巧呢就是我们可以直接去进行使用,用优化我们自己的p p的三个小技巧。这一期的视频由于这些原因,我们就暂时到这里就结束了。我们在之后也会推出一些更高阶的内容啊,包包括一些高高的的技巧,然后以及一些些的的原理的讲解。期待在之后的视频与大家相见了。