python - Transformers 库中 Pegasus 模型的单词/句子的最大输入长度
问题描述
在 Transformers 库中,Pegasus 模型的单词和/或句子的最大输入长度是多少?我在 Pegasus 研究论文中读到,最大值是 512 个标记,但那是多少个单词和/或句子?另外,你能增加 512 个令牌的最大数量吗?
解决方案
在 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 架构的模型,但这很昂贵。
推荐阅读
- continuous-integration - 多个环境的 VSTS 发布配置
- python-3.x - 如何在另一个文件中调用我在一个文件中定义的函数?
- symfony - Composer 不会安装私有包依赖项
- python - 使用更新的属性对 ndarray 进行子类化
- shake-build-system - 如何使用额外的命令行参数扩展 Shake?
- sql - SQL:如何将有序行分组;基于分组中断行拆分
- elasticsearch - 在匹配查询中使用 OR
- javascript - 如何阻止用户在 Oracle APEX builder 中关闭窗口
- google-bigquery - 以编程方式检查上次通过查询访问表的时间?
- excel - 无法通过在 Excel 中保存副本将 .xlsx 文件保存为共享点列表中的 PDF。