Transformers库中Pegasus模型的最大词/句子输入长度

Sli*_*ity 2 python nlp machine-learning pytorch huggingface-transformers

在 Transformers 库中,Pegasus 模型的单词和/或句子的最大输入长度是多少?我在 Pegasus 研究论文中读到最多有 512 个标记,但那是多少个单词和/或句子呢?另外,可以增加512个代币的最大数量吗?

cro*_*oik 6

\n

在Transformers库中,Pegasus模型的单词和/或句子的最大输入长度是多少?\n这实际上取决于你的预训练。您可以创建支持 100 个令牌或 10000 个令牌长度的 pegagsus 模型。例如该模型google/pegasus-cnn_dailymail支持 1024 个令牌,而google/pegasus-xsum支持 512 个:

\n
\n
from transformers import PegasusTokenizerFast\n\nt = PegasusTokenizerFast.from_pretrained("google/pegasus-xsum")\nt2 = PegasusTokenizerFast.from_pretrained("google/pegasus-cnn_dailymail")\nprint(t.max_len_single_sentence)\nprint(t2.max_len_single_sentence)\n
Run Code Online (Sandbox Code Playgroud)\n

输出:

\n
511\n1023\n
Run Code Online (Sandbox Code Playgroud)\n

由于添加到每个序列的特殊标记,数字减一。

\n
\n

我在 Pegasus 研究论文中读到最多有 512 个标记,但那是多少个单词和/或句子呢?

\n
\n

这取决于你的词汇量。

\n
511\n1023\n
Run Code Online (Sandbox Code Playgroud)\n

输出:

\n
[\'\xe2\x96\x81This\', \'\xe2\x96\x81is\', \'\xe2\x96\x81a\', \'\xe2\x96\x81test\', \'\xe2\x96\x81sentence\']\nI know 96103 tokens\n
Run Code Online (Sandbox Code Playgroud)\n

一个单词可以是一个 token,但也可以分为多个 token:

\n
from transformers import PegasusTokenizerFast\nt = PegasusTokenizerFast.from_pretrained("google/pegasus-xsum")\nprint(t.tokenize(\'This is a test sentence\'))\nprint("I know {} tokens".format(len(t)))\n
Run Code Online (Sandbox Code Playgroud)\n

输出:

\n
[\'\xe2\x96\x81neuro\', \'psych\', \'i\', \'atric\', \'\xe2\x96\x81conditions\']\n
Run Code Online (Sandbox Code Playgroud)\n
\n

另外,可以增加512个代币的最大数量吗?

\n
\n

是的,您可以针对不同的输入长度训练具有 Pegasus 架构的模型,但这成本很高。

\n