gpt4 book ai didi

python - 如何在 Transformers 库中截断 Bert 分词器

转载 作者:行者123 更新时间:2023-12-04 12:05:14 35 4
gpt4 key购买 nike

我正在使用 Scibert 预训练模型来获取各种文本的嵌入。代码如下:

from transformers import *

tokenizer = AutoTokenizer.from_pretrained('allenai/scibert_scivocab_uncased', model_max_length=512, truncation=True)
model = AutoModel.from_pretrained('allenai/scibert_scivocab_uncased')
我已将最大长度和截断参数添加到分词器,但不幸的是,它们不会截断结果。如果我通过分词器运行更长的文本:
inputs = tokenizer("""long text""")
我收到以下错误:

Token indices sequence length is longer than the specified maximumsequence length for this model (605 > 512). Running this sequencethrough the model will result in indexing errors


现在很明显,由于张量序列太长,我无法在模型中运行它。截断输入以适应最大序列长度 512 的最简单方法是什么?

最佳答案

truncation不是类构造函数( class reference )的参数,而是 __call__ 的参数方法。因此,您应该使用:

tokenizer = AutoTokenizer.from_pretrained('allenai/scibert_scivocab_uncased', model_max_length=512)

len(tokenizer(text, truncation=True).input_ids)
输出:
512

关于python - 如何在 Transformers 库中截断 Bert 分词器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65034771/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com