好,现在啊,我来谈一下今天刚看的一个文档,叫什么呢,叫谷歌,Google官方的提示词工程这本书。这本书看了一下,讲了很多有用的东西吧,大概,然后现在简单聊一下。
首先就是他讲的那个语言模型的本质,也就是大语言模型嘛,就是AI这个东西,它的本质上就是一个预测引擎。它接受你的输入,也就是说你输入几个字,然后它会基于它训练数据,也就是说它那个模型,包括它的参数来预测下一个可能出现的头啃,或者你也可以理解为是一个字。然后呢,它会将这个字加入这个字符序列中,然后再次预测下一个,然后重复直到达到那个文本的末尾。每一次的预测都建立在于前一个前一次的关联上,比如我预测123,然后它可能第四个就是预测的四或者五也行,然后你会将1234加到文本,作为一个文本序列,然后预测第五个字符。
然后呃,其实此工程这个东西的作用是什么呢?就是引导模型预测出我们期望的那个,呃,令牌序列。然后简单来说就是你期望它做出一些实现你的目的,但是这个东西不是一种简单的提问,因为其实此工程既然核心是在工程上,那么你就需要不断的调试优化和评估,然后有一些精确的过程,呃,然后可以寻找出最优积。然后呃,可以将一些有你的问题,然后变成有目的,然后面向目标的设计方式,然后这个首先就是讲了一下。
一些参数,首先就是温度temperature,这个就是这个温度是什么呢?就是控制令牌选择的随机程度。然后当温度较低,也就是说它有一个0到某一个值吗?你越接近于0的时候,它就期望于一个比较确定的响应。然后温度比较高的时候,它就会更发散,或者说呃,会产生一些令你意想不到的结果。然后呃,当温度为0的时候,因为模型它是预测一个下一个token的概率,比如一个1是50%,然后2是40%,3是30%,那么呃,当温度为0的时候,它就会预测这个概率最高的,也就是150%,这种就是它会给个确定的值给你。
然后当你的呃,temperature温度也就是设置为最大的时候,它就会在一串预测制服的概率中随机选择一个,因为他们这个时候他们的概率可能趋向于相同。然后再就是另一个材质是输出长度,然后输出长度影响有很多,呃,比如你有的。你像呃,jimmy的那个文呃,就是谷歌的那个最新的那个模型。呃,它有一百万上下文的长度,然后你如果超过了,它就不能再继续生成了。然后如果我们给一个模型设定一个max tokens,也就是说限制令牌的数量,比如我限制5,它就只能生成5个,这种方式是一种强制性的阶段,而不是说能让他AI生成,就是仅仅是5个头坑的回答。就是你如果想实现真正的简洁,你需要在文本提示中给出具体的指令,比如说,呃,你需要在文本提示中给出具体的指令,比如说,呃,你需要在文本提示中给出具体的指令,比如说,呃,你需要在文本提示中给出具体的指令,比如说,呃,你需要在文本提示中给出具体的指令,比如说,呃,你需要在文本提示中给出具体的指令。比如你需要给我生成5个头坑,呃,你以5个头坑的长度来。
然后呢还有几个参数,一个是topk和topp,这两种是限制预测令牌范围的设置。topk这是从预测概率最高的前k个令牌中选择,然后k值越高就越具有创意性,比如k是100,他就会选取其中前100个出现的概率的字符来进行选择。然后topp就是累积不超过某个p值的最高概率令牌,就比如啊,我设置为p0.5吧,就是累积概率不超过50%,那么也就是说我要选择高于那个50%概率的那些字符来进行预测。
然后这个文档中也讲了一些提示词的技巧,最简单的就是说零样本,也就是说我们就提出问题也不给出一种参考,就是他只提供任务描述,就你想做什么或者你的问题,他不带任何你想显示展示的一种东西。然后这种时候你应该将模型的温度设置为比较低,因为我们只需要他回答一个具体的内容,不需要他去写文章文档或者什么,就需要一种精确的任务完成,所以他需要更少的创造性。
然后有一些情况我们需要零样本,这个提示词无法满足所有的需求,我们就可以转向就是我们可以添加一些样本,就是给就比如举个例子嘛,你如果要解到数学题,然后他有一个相似的题可以让你学习,并且他给给出了答案,你就可以从这个相似的题中学习一些思路,然后你再去解这个数学题,然后这个就增加了模型的理解能力。然后一般而言,这种少样,就是样本提示应该包含3到5个势力,但是由于你的模型最大输入长度和输出长度的限制,你有可能会需要减少或者是改变一些提示。
然后再就是你需要考虑到一些很极限的情况,也就是说他出现的很少,但是他出现的时候可能会让你的回答产生一些错误,所以你要考虑这些边缘情况。然后再就是讲了思维链,思维链就是让通过提示词让这个模型一步一步的推到,比如步骤一是什么,步骤二是什么,步骤三是什么,然后他不仅给我们解释了这个结果的过程,还能更加的有逻辑和结构。然后这是一种线性的,比如你解一个方程吧,你肯定是要一步一步的往下推,然后得出答案的。
然后再就是还有一种是思维数,思维数是什么呢?就是允许模型同时探索多条推理路径,就是说你比如有一步是你如果要写一篇文章,你的可以在第一部分写一个内容,然后第二部分呢,你可以选择不同的方向分别写一种,然后再进行评估不同的分支,然后可以更加的深思熟虑的考虑。然后文章也讲了自我一致性,也就是说你让你一个问题对AI提很多遍,然后他将每一次的答案组合起来,然后看他通过就是他出现次数最多的那个答案,可能就是更正确的答案。
然后还有一种就是退回提示,这是什么呢?就是你先想一个普通的问题,然后根据这个普通问题来让AI生成一些东西,然后他这个生成可能会激发你的思考,然后这种思考,你就可以再去优化你的第一个普通的问题,然后这种就是也相当于你帮他推了一下。
然后这就是几个提示词,首先就是系统提示词,系统提示词就是定义了模型的基本能力和总体目标,然后指定了关于你可以指定关于如何返回输出的一些信息,然后可以更好的确定你想做的一个事情的大致范围。然后上下文提示就是给了你特定的任务信息,比如你的问题啊,你想做什么,然后角色提示词就是用来构建模型的输出风格和语调,比如我就我需要你扮演一个作家吧,或者是什么的,他会以作家或者的这种知识和他的词汇,还有他的语调和风格用来模拟这个特定的角色。
然后总的来说就是提示词工程怎么说呢?他受到影响很多,一个有效的提示词,他可能会收到你使用的模型,每一次使用的模型态不一样啊,他模型的训练数据,然后你的你让他的措辞选择风格,还有你想让他生成的结构,然后再加上你输入的内容,也就是说上下文啊,你。如果想写好一个提示词的话,你需要,呃,构建一个,呃,迭代过程,也就是说你要记录你的尝试,然后发现哪些不方法是有效的,哪些方法是无效的,或者说需要改进的。
然后如果你想写提示词的话,呃,大致来说就是温度可以设置为0.2,然后透批是0.95,透不开,大概是,呃,30,就是他可以给你相对连贯,而且具有一定创造性的结果。然后你如果更具创造性,你就可以把温度增加,然后把后批也增加,或者你要精确的,比如解到数学题,你就需要把温度减小到尽可能小。
然后提示词工程这种,呃,书中也说了,它不仅是一种技术,更是一种艺术,然后我们要做的是了解模型的特性,然后,呃,在实践中不断完善。大概就是这些。