我正在使用来自github的OpenAI GPT-2模型
我认为top_k参数决定了采样的token数量。这是否也是决定可以输入多大prompt的参数?
如果top_k = 40,prompt可以有多大?
回答:
GPT-2不是在字符级别上工作,而是在子词级别上。训练时使用的文本段的最大长度为1,024个子词。
它使用基于字节对编码的词汇表。在这种编码下,常用词保持完整,不常用词会被分成几个单元,最终可以细化到字节级别。实际的分段效果如下(69个字符,17个子词):
Hello , ▁Stack Over flow ! ▁This ▁is ▁an ▁example ▁how _a ▁string ▁gets ▁segment ed .
在训练时,prompt和答案之间没有区别,因此唯一的限制是prompt和答案总共不能超过1,024个子词。理论上,你可以继续生成超过这个长度的内容,但模型考虑的历史长度永远不会更长。
top_k
的选择只影响内存需求。长查询也需要更多内存,但这可能不是主要的限制因素