GPT生成过程中的Top_p和Top_k

一、背景

GPT生成的代码中,往往有很多需要设置的参数,例如top_p、top_k等。下面介绍一下这些参数意义和提出的原因。

二、Top_K

top_k是一个经典的方法,表示从候选的K个值中选择一个。在GPT生成的过程中也是类似的问题。选取K个tokens,哪些tokens的概率最高。然而Top_K存在一些问题,就是对于开放的问题,回答不够好,随机性不够强。因此提出了Top_P的算法。

三、Top_P

top_p算法表示,满足概率之和大于p的最小tokens集合。这样在下一个词不确定的情况下,可以采样更多的词,在下一个词确定的情况下,可以减少模型的幻觉的问题(采样的词更少)。

四、总结

对于不同的方法,针对的场景不同,在需要开放性问题回答的时候,采取Top_P的方法,增加一下随机性,在确定性的问题时,采取Top_K的方法。实际过程中,Top_P和Top_K可以同时使用,并且像beam搜索和greedy的方法也可以交替使用。但是需要考虑实际的场景,避免模型幻觉问题。

五、参考

huggingface的博客

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章