大模型基础概念之Top-k、Top-p 等参数
大模型基础概念之Top-k、Top-p 等参数
在使用大模型时,你可能注意到一些调整参数,如Temperature、Top-k等,这些参数用于调整输出的多样性。虽然现在这些参数在用户界面中已经很少见,但对于大模型应用开发人员来说,了解这些参数的作用仍然非常重要。本文将详细介绍这些参数的含义及其在大模型中的作用。
大模型的基本运作方式
我们使用大模型基本形式大多都是一问一答的形式,从宏观层面讲,就是输入一段文本,大模型输出一段文本。如果放大这个过程,其实大模型输出的这段文本,是一个字一个字逐个生成的,他会基于输入文本,算出下一个字是什么,然后将这个字追加到输入后面,再计算下一个字是什么,循环这个过程直到大模型觉得该结束了,无话可说为止。
Top-k
Top-k 是用来控制采样策略的,即从所有结果中按照打分排名,取前 k 个字作为候选集,然后从中随机选一个作为下一个输出的字。当 k=1 时,就和贪心策略效果是一样的,总是选排名第一个的那个。
Top-p
Top-p 也是用来控制材料策略的,不过它是挑选评分(概率)加起来达到 p的最小集合作为候选集,然后从中随机选一个作为下一个输出的字。p值为0-1之间,通常设置为较高的值,比如0.75,这样可以过滤掉那些低评分的长尾。
相比于 Top-k 来说,它的优点就是不用再纠结取几个字(也就是k值)作为候选集了,p值设置起来更方便,当然,两者也可以结合起来使用。
temperature
还有一个同样用于解码阶段选择下一个字的参数-temperature。但是它的作用跟 Top-k、Top-p 少有区别。temperature 用于控制模型输出的随机性,值越大输出越随机。
在前面的介绍中,我们说模型的输出是对词表中所有字进行打分,这实际上并不完全准备,因为再打完分之后,还需要讲这些进行 softmax 计算,即将各个评分转化为在集合中所占的比重,代表这个字应该出现的概率。
temperature 作用在 softmax 计算的过程中,当 temperature 越大时,它会让最终计算的概率分布变得平滑,也就是说原本评分很低的字,计算得到的概率和评分很高的字的概率变得差不多,这样原本小概率的字被选中的机会就和其他字差不多了,从而使得输出结果变得不更多样。相反,当 temperature 越小时,计算得到的概率分布会变得更锐利,评分高的最终概率越发的高,被选中的可能行也更高,导致输出越发一致。