首页 > 解决方案 > Transformers 库中 Pegasus 模型的单词/句子的最大输入长度

问题描述

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

标签: pythonmachine-learningnlppytorchhuggingface-transformers

解决方案


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

from transformers import PegasusTokenizerFast

t = PegasusTokenizerFast.from_pretrained("google/pegasus-xsum")
t2 = PegasusTokenizerFast.from_pretrained("google/pegasus-cnn_dailymail")
print(t.max_len_single_sentence)
print(t2.max_len_single_sentence)

输出:

511
1023

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

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

这取决于你的词汇量。

from transformers import PegasusTokenizerFast
t = PegasusTokenizerFast.from_pretrained("google/pegasus-xsum")
print(t.tokenize('This is a test sentence'))
print("I know {} tokens".format(len(t)))

输出:

['▁This', '▁is', '▁a', '▁test', '▁sentence']
I know 96103 tokens

一个词可以是一个记号,但也可以分成几个记号:

print(t.tokenize('neuropsychiatric conditions'))

输出:

['▁neuro', 'psych', 'i', 'atric', '▁conditions']

另外,你能增加 512 个令牌的最大数量吗?

是的,您可以针对不同的输入长度训练具有 pegasus 架构的模型,但这很昂贵。


推荐阅读