模型:
voidful/albert_chinese_xxlarge
这是由 Google's github 转换的albert_chinese_xxlarge模型,由huggingface的 script 提供支持。
支持AutoTokenizer。
由于albert_chinese_base模型没有使用sentencepiece,您需要调用BertTokenizer而不是AlbertTokenizer!我们可以使用MaskedLM的示例来评估它。
由於albert_chinese_base模型没有使用sentencepiece,您需要调用BertTokenizer而不是AlbertTokenizer!我们可以使用MaskedLM的示例来验证这种做法是否正确。
from transformers import AutoTokenizer, AlbertForMaskedLM import torch from torch.nn.functional import softmax pretrained = 'voidful/albert_chinese_xxlarge' tokenizer = AutoTokenizer.from_pretrained(pretrained) model = AlbertForMaskedLM.from_pretrained(pretrained) inputtext = "今天[MASK]情很好" maskpos = tokenizer.encode(inputtext, add_special_tokens=True).index(103) input_ids = torch.tensor(tokenizer.encode(inputtext, add_special_tokens=True)).unsqueeze(0) # Batch size 1 outputs = model(input_ids, labels=input_ids) loss, prediction_scores = outputs[:2] logit_prob = softmax(prediction_scores[0, maskpos],dim=-1).data.tolist() predicted_index = torch.argmax(prediction_scores[0, maskpos]).item() predicted_token = tokenizer.convert_ids_to_tokens([predicted_index])[0] print(predicted_token, logit_prob[predicted_index])
Result: 心 0.995713472366333