【问题标题】:Convert HuggingFace slow tokenizer to a fast tokenizer将 HuggingFace 慢分词器转换为快速分词器
【发布时间】:2022-03-11 01:38:52
【问题描述】:

我有一个使用慢速标记器训练到磁盘的模型:

from transformers import convert_slow_tokenizer
from transformers import BertTokenizer, BertForSequenceClassificationa

mybert = BertForSequenceClassification.from_pretrained(PATH,
                                                        local_files_only=True,
                                                        )
tokenizer = BertTokenizer.from_pretrained(PATH, 
                                          local_files_only=True, 
                                          use_fast=True)

我可以像这样使用它来标记化:

tokenized_example = tokenizer(
    mytext,
    max_length=100,
    truncation="only_second",
    return_overflowing_tokens=True,
    stride=50
)

但是,它并不快:

tokenized_example.is_fast
False

我尝试将其转换为快速的,看起来很成功

tokenizer = convert_slow_tokenizer.convert_slow_tokenizer(tokenizer)

但是,现在运行它给了我:

tokenized_example = tokenizer(
    mytext,
    max_length=100,
    truncation="only_second",
    return_overflowing_tokens=True,
    stride=50
)


TypeError: 'tokenizers.Tokenizer' object is not callable

我怎样才能把这个慢的分词器转换成一个快的分词器?

我有seen this answer 并且我安装了句子——这并没有解决我的问题。

【问题讨论】:

标签: python huggingface-transformers huggingface-tokenizers


【解决方案1】:

@Mittenchops,tokenized_example.is_fast 为 False 的原因显然是因为它不是“FastTokenizer”。 与其转换一个缓慢的分词器,你可以用拥抱脸的FastTokenizer 来代替。

您的代码将如下所示:

from transformers import convert_slow_tokenizer
from transformers import BertTokenizerFast, BertForSequenceClassification

mybert = BertForSequenceClassification.from_pretrained(PATH,
                                                local_files_only=True,)
tokenizer = BertTokenizerFast.from_pretrained(PATH, 
                                      local_files_only=True, 
                                      use_fast=True)

tokenized_example = tokenizer(
mytext,
max_length=100,
truncation="only_second",
return_overflowing_tokens=True,
stride=50)

# In this case: tokenized_example.is_fast will yield True

【讨论】:

猜你喜欢
  • 2021-04-02
  • 2020-07-24
  • 2021-05-11
  • 2021-04-03
  • 2021-11-28
  • 2013-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多