我想使用hugging face的填充掩码管道来猜测一个蒙面标记,然后将猜测的标记提取为一个单词。此代码应执行以下操作:
!pip install -q transformers
model = pipeline('fill-mask')
outcome = model("Kubernetes is a container orchestration <mask>")[0]
#Prints: "Kubernetes is a container orchestration platform"
print(outcome['sequence'])
token = outcome['token']
#Prints: 1761
print(token)
#Prints: Ġplatform
print(model.tokenizer.convert_ids_to_tokens(token))
但是我发现它给我的是"Ġplatform"
而不是"platform"
——有人知道为什么会这样,或者这里会发生什么吗
截至2021-08-14,管道输出包含您请求的所有信息。请注意
token_str
可能包含空格这只是底层模型的一个特性(请参见here以检查这是否是
distilroberta-base
)具体来说,提炼模型使用与“教师模型”(本例中为RoBERTa)相同的标记器。反过来,RoBERTa有一个令牌化器,它严格不使用任何形式的空白,另请参见OpenAI的GPT-2模型上的this thread,该模型使用相同的令牌化策略(请参见here)
具体地说,您可以注意到,表示新词开头的总是同一个unicode字符
\u0120
。相比之下,由多个子词组成的词对于后面的子词将没有这样的起始字符也就是说,}
complication
将被分成两个虚构的子词Ġcompli
{因此,如果
Ġ
出现在word中,您可以简单地删除它相关问题 更多 >
编程相关推荐