LLM探索:GPT概念与几个常用参数 Top-k, Top-p, Temperature

科技资讯 投稿 6400 0 评论

LLM探索:GPT概念与几个常用参数 Top-k, Top-p, Temperature

前言

    temperature
  • top_p
  • top_k

关于LLM

上一篇也有介绍过,这次看到一个不错的图

temperature

用于控制模型输出的结果的随机性,这个值越大随机性越大。一般我们多次输入相同的prompt之后,模型的每次输出都不一样。

    设置为 0,对每个prompt都生成固定的输出
  • 较低的值,输出更集中,更有确定性
  • 较高的值,输出更随机(更有创意😃)

遇事不决就调参,调一下,万一就生成了不错的回答呢?

top_k & top_p

这俩也是采样参数,跟 temperature 不一样的采样方式。

比如下面这个图片,输入 The name of that country is the 这句话,模型生成了一堆 token,然后根据不同的 decoding strategy 从 tokens 中选择输出。

decoding strategy 可以选择

    greedy decoding: 总是选择最高分的 token,有用但是有些弊端,详见下文
  • top-k: 从 tokens 里选择 k 个作为候选,然后根据它们的 likelihood scores 来采样
  • top-p: 候选词列表是动态的,从 tokens 里按百分比选择候选词

greedy decoding

好处是简单,坏处是容易生成循环、重复的内容

top-k

设置越大,生成的内容可能性越大;

设置为1时,和 greedy decoding 效果一样。

top-p

top-p 又名 Nucleus Sampling(核采样)

继续上面的例子,将 top-p 设定为 0.15,即选择前 15% 概率的 tokens 作为候选。如下图所示,United 和 Netherlands 的概率加起来为 15%,所以候选词就是这俩,最后再从这些候选词里,根据概率分数,选择 united 这个词。

k and p are enabled, p acts after k

经常遇到的默认 top-p 值就是 0.7/0.8 这样,还是那个说法,设置太低模型的输出太固定,设置太高,模型彻底放飞自我也不好。

参考资料

    https://docs.cohere.com/docs/controlling-generation-with-top-k-top-p
  • https://docs.cohere.com/docs/temperature
  • https://mp.weixin.qq.com/s/IswrgDEn94vy5dCO51I1sw

编程笔记 » LLM探索:GPT概念与几个常用参数 Top-k, Top-p, Temperature

赞同 (31) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽