|
from transformers import RobertaConfig, AutoConfig
|
|
from transformers import AutoTokenizer, AutoModelForTokenClassification
|
|
from Model.NER.VLSP2021.Ner_CRF import PhoBertCrf,PhoBertSoftmax,PhoBertLstmCrf
|
|
from Model.NER.VLSP2021.Predict_Ner import ViTagger
|
|
import torch
|
|
from spacy import displacy
|
|
import re
|
|
device = 'cuda' if torch.cuda.is_available() else 'cpu'
|
|
MODEL_MAPPING = {
|
|
'vinai/phobert-base': {
|
|
'softmax': PhoBertSoftmax,
|
|
'crf': PhoBertCrf,
|
|
'lstm_crf': PhoBertLstmCrf
|
|
},
|
|
}
|
|
if device == 'cpu':
|
|
checkpoint_data = torch.load('E:/demo_datn/pythonProject1/Model/NER/VLSP2016/best_model.pt', map_location='cpu')
|
|
else:
|
|
checkpoint_data = torch.load('E:/demo_datn/pythonProject1/Model/NER/VLSP2016/best_model.pt')
|
|
|
|
configs = checkpoint_data['args']
|
|
print(configs.model_name_or_path)
|
|
tokenizer = AutoTokenizer.from_pretrained(configs.model_name_or_path)
|
|
model_clss = MODEL_MAPPING[configs.model_name_or_path][configs.model_arch]
|
|
config = AutoConfig.from_pretrained(configs.model_name_or_path,
|
|
num_labels=len(checkpoint_data['classes']),
|
|
finetuning_task=configs.task)
|
|
model = model_clss(config=config)
|
|
model.resize_token_embeddings(len(tokenizer))
|
|
model.to(device)
|
|
model.load_state_dict(checkpoint_data['model'],strict=False)
|
|
print(model)
|
|
|
|
|
|
|