关于 huggingface-transformers 中的 get_special_tokens_mask
About get_special_tokens_mask in huggingface-transformers
我使用 transformers 分词器,并使用 API 创建掩码:get_special_tokens_mask。
My Code
在RoBERTa Doc中,这个API的returns是"A list of integers in the range [0, 1]: 0 for a special token, 1 for a sequence token"。但是我好像这个 API returns “0 表示序列标记,1 表示特殊标记”。
还好吗?
你说的没错。我对 transformer 2.7 和(在撰写本文时)当前版本 2.9 进行了测试,在这两种情况下我都得到了反转的结果(0
用于常规字符,1
用于特殊字符字符。
作为参考,我是这样测试的:
import transformers
tokenizer = transformers.AutoTokenizer.from_pretrained("roberta-base")
sentence = "This is a special sentence."
encoded_sentence = tokenizer.encode(sentence)
# [0, 152, 16, 10, 780, 3645, 4, 2]
special_masks = tokenizer.get_special_tokens_mask(encoded_sentence)
# [1, 0, 0, 0, 0, 0, 0, 0, 0, 1]
我建议您在 their repository 中报告此问题,或者最好自己提供一个拉取请求来解决此问题 ;-)
我使用 transformers 分词器,并使用 API 创建掩码:get_special_tokens_mask。
My Code
在RoBERTa Doc中,这个API的returns是"A list of integers in the range [0, 1]: 0 for a special token, 1 for a sequence token"。但是我好像这个 API returns “0 表示序列标记,1 表示特殊标记”。
还好吗?
你说的没错。我对 transformer 2.7 和(在撰写本文时)当前版本 2.9 进行了测试,在这两种情况下我都得到了反转的结果(0
用于常规字符,1
用于特殊字符字符。
作为参考,我是这样测试的:
import transformers
tokenizer = transformers.AutoTokenizer.from_pretrained("roberta-base")
sentence = "This is a special sentence."
encoded_sentence = tokenizer.encode(sentence)
# [0, 152, 16, 10, 780, 3645, 4, 2]
special_masks = tokenizer.get_special_tokens_mask(encoded_sentence)
# [1, 0, 0, 0, 0, 0, 0, 0, 0, 1]
我建议您在 their repository 中报告此问题,或者最好自己提供一个拉取请求来解决此问题 ;-)