理解大型语言模型中Top-K、Top-P和温度参数的作用
自从GPT-4发布以来,我经常在使用它,尤其是用来帮助解决与编程相关的问题。直到Gemini Advanced 1.5的推出,我才开始通过API使用LLM。那时我遇到了一个我以前从未听说过的概念:在使用模型时必须选择的温度、top-k和top-p参数。
经过研究和测试多种参数组合,以下是它们如何影响生成式人工智能响应的简要说明。
当模型开始生成回应时,它是逐字逐字地进行的,每次都有着广泛的可能词汇选择,就像我们写作时一样。我们经常面临这样的情况,可以基于流行度和上下文选择一个词而不是另一个。
为了更好地说明每个参数是如何工作的,让我们用一个类比来解释,就像一个LLM在冰淇淋店挑选口味一样。
想象站在一个有30种口味的冰淇淋店前。
有些味道(单词)更受欢迎,更有可能被选择,而其他一些更具异国情调,被选择频率较低。但是你如何决定呢?
前-k:缩小你的选择
想象一下,当您被30种口味淹没时,决定只考虑前5种最受欢迎的口味。这本质上就是语言模型中的top-k参数所做的事情-将选择缩减到最有可能的前k个选项。
在我们的冰淇淋店:
前五种口味:
巧克力(30%)
香草(20%)
草莓(15%)
薄荷巧克力薄片(10%)
饼干面团(8%)
使用 top-k = 5,您将仅从这些口味中进行选择,完全忽视其他 25 个选项。这有助于在生成的文本中保持一致性,但可能会限制创意。
顶级-p(核心采样):平衡流行度和多样性
现在,不再局限于固定数量的口味,而是考虑口味直到它们的累积流行度达到70%。这与 top-p 抽样相似。
顶部 p = 0.7:
巧克力(30%)
香草(20%)
草莓(15%)
薄荷巧克力薄片(10%)
总计:75%(由于超过70%,我们就到这里为止)
顶级-p允许比顶级-k更灵活。它可能根据概率分布包含更多或更少的选项,提供常见和罕见选择之间的动态平衡。
需要注意的是,一个顶级p = 1并不会将总和限制为100%;当top-p等于1时,累积概率总和不会忽略任何选项。
顶部p = 1:
巧克力(30%)
香草(20%)
草莓 (15%)
薄荷巧克力脆片(10%)
饼干面团(8%)
开心果(5%)
坎坷之路 (4%)
黄油胡桃(3%)
咖啡(2%)
黑樱桃(1%)
在这里,将考虑所有口味(受顶部k定义的数量限制)。
温度:调整你的探险精神
温度反映了你选择冰淇淋时的心情。你是想要冒险尝试新事物,还是更喜欢坚持自己熟悉的口味?
低温(0.5):
您更有可能选择最受欢迎的口味。概率分布变得更加尖峰:
巧克力:45%
香草:25%
草莓:20%
其他人:概率大大降低
高温(1.5):
概率分布变得均匀:
巧克力:22%
香草:18%
草莓:16%
薄荷巧克力薄脆:14%
饼干面团:12%
其他口味也有增加的机会
更高的温度会鼓励模型选择更不常见的选项,可能导致更丰富多样和有创意的输出。
将所有东西放在一起
实际上,语言模型通常会结合这些参数。考虑一个具有top-k = 10,top-p = 0.9和温度= 1.2的情景:
Top-k限制我们只能选择十种最受欢迎的口味。
Top-p进一步细化选择,选取累积概率为90%的口味。
温度为1.2略微压扁了分布,使得不太常见的口味有更好的机会。
这种结合可以实现一种平衡的组合,既吸引力(坚持流行选择),又有创意(让不常见的选择脱颖而出)。
鉴此,如果我们设置低温度和低 top-k 意味着 top-p 不会产生太大的影响,因为我们的选择已经非常有限,概率分布在低温度下没有太大调整,使得最受欢迎的选项更有可能被选择。
但是如果我们设置最大温度、最大top-k和最大top-p,会发生什么?
我们的模型将调整概率,使其尽可能接近(尊重原始概率),并且不会忽视任何选项。如果我们的冰淇淋店有200种口味,我们会考虑所有200种。
但是如果原始概率往往总是被尊重的话,为什么语言模型不会总是选择巧克力呢?因为无论温度如何,巧克力总是具有最高的概率?
即使在这些最大设置下,该语言模型仍然遵循随机抽样原则运作。这意味着尽管巧克力始终具有最高概率,但模型的决策过程仍然是概率性的,而不是确定性的。
理解随机和概率性决策-making:
随机决策:想象一下,转动一个轮盘,其中每个口味代表一个与其概率成比例的切片。模型的选择就像这个旋转一样 - 它是概率性的,受到分配给每个选项的概率的影响。存在一定的随机因素,确保尽管巧克力的概率更高,但仍会有不同的结果。
确定性决策:相比之下,确定性决策类似于已编程的规则,总是选择巧克力,因为它有最高的概率。在决策过程中没有随机性或变化 - 它是可预测的,遵循一个固定的规则。