大模型(LLM)温度、Top-K和Top-P这三个参数怎么一起发挥作用?

我们在使用大语言模型写文章、回答问题的时候,温度Top-KTop-P这三个参数特别重大。那它们是怎么发挥作用的呢?下面我会先分别举一个温度、Top-K、Top-P的例子,然后再把它们三个结合起来举一个例子,带大家一起把这3个参数弄清楚。

温度(Temperature):这个参数就像调节文本生成的“随机开关”。温度调低时,模型会给出更保险、更常见的回答;温度调高时,模型就会脑洞大开,输出更意想不到、更有创意的内容和答案。

以“猫、狗、鸟”的生成概率为例:

假设模型算出这三个词的出现可能性分别是:猫70%、狗20%、鸟10%。

温度调低(列如调成0.1):模型会变得特别“保守”,几乎每次都选最有可能的“猫”。这样输出很稳定,但容易千篇一律,缺乏创意。

温度调高(列如调成2.0):模型就变得大胆起来,不再只盯着“猫”,“狗”和“鸟”被选中的概率大大增加。虽然输出的内容会更加五花八门,但有时候也会给出让人意想不到的答案。

Top-K:想象你有一张写满候选词的清单,Top-K就像给清单“划重点”,只圈出概率最高的K个词,然后模型从这些被圈中的词里随机挑一个作为下一个输出的词。

举个例子,假设大语言模型预测下一个词时,觉得“猫”出现的可能性是50%,“狗”是30%,“鸟”是10%,“鱼”是5%:

当K设为1时,模型就像直接抄答案,只会选可能性最高的“猫”。

当K设为3时,模型会把可能性最低的“鱼”排除掉,然后从“猫”“狗”“鸟”这三个候选词里随机挑一个作为结果。

Top-P:简单来说,就是从所有可能的下一个词里,按出现概率从高到低排序,然后把概率累加起来,直到累加的概率值达到设定的P,就把这些词挑出来作为候选。这样既能保证生成内容在合理范围内,又能保留必定的随机性。

我们用“猫、狗、鸟”的例子来解释Top-P是怎么工作的(假设这些词被选的可能性分别是:猫50%、狗30%、鸟10%、鱼5%、虫3%…):

当Top-P设为0.9(也就是90%)时:模型会按可能性从高到低把词加起来,加到总数达到90%就停。这里把“猫”“狗”“鸟”的可能性加起来正好是90%,所以接下来模型只会从这三个词里面随机挑一个。

当Top-P设为0.5(也就是50%)时:光“猫”自己的可能性就有50%,加到它就够P的值了。这时候模型没得选,下一个词肯定是“猫”。

温度、Top-K和Top-P三个参数一起工作:大语言模型先根据温度参数,让每个词的“出场概率”变均匀或变聚焦。接着用Top-K或Top-P规则,从调整好概率的候选词里挑出几个“种子选手”,最后随机从这些“种子选手”里选一个词输出,这样就能灵活控制输出的文字是稳扎稳打还是天马行空。

我们用“猫、狗、鸟”这些词的生成概率来举例。假设模型算出来,“猫”出现的概率是0.5,“狗”是0.3,“鸟”是0.1,“鱼”是0.05,“虫”是0.03……目前我们设置参数:温度为0.8,Top-K为4,Top-P为0.9,具体怎么运作呢?

温度调整:温度设为0.8,就像给概率分布“揉一揉”,让不同选项的概率差别变小一点。列如通过温度参数调整后,“猫”的概率变成0.48,“狗”变成0.31,“鸟”变成0.11,“鱼”变成0.06,“虫”变成0.04。

Top-K筛选:Top-K设为4,从所有选项里,挑选出概率最高的4个词,也就是“猫”“狗”“鸟”“鱼”。

Top-P筛选:Top-P设为0.9,接着看这4个词的概率加起来是多少。要是“猫”“狗”“鸟”这三个词的概率加起来已经达到0.9,既我们设定的Top-P值,那“鱼”就被淘汰了。最后剩下“猫”“狗”“鸟”这三个候选词。

采样:模型会根据“猫”“狗”“鸟”调整后的概率,从这三个词里随机挑一个,作为下一个生成的词。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容