Spaces:
Runtime error
Runtime error
import gradio as gr | |
import torch | |
from transformers import AutoTokenizer | |
#def greet(name): | |
# return "Hello " + name + "!!" | |
def greet(sent,mode): | |
print("input_sent= " + sent) | |
if mode=='Malicious_comment': | |
pt_model ='best.pt' | |
if mode=='Economic_article': | |
pt_model ='best2.pt' | |
print(pt_model) | |
device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') | |
print("device:",device) | |
device = "cuda" if torch.cuda.is_available() else "cpu" | |
model = torch.load(pt_model, map_location=device) | |
print(model) | |
MODEL_NAME = "beomi/KcELECTRA-base" # hugging face 에 등록된 모델 | |
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME) | |
model.eval() # 평가 | |
# 입력문장 토크나이징 | |
tokenized_sent = tokenizer( | |
sent, | |
return_tensors="pt", | |
truncation=True, | |
add_special_tokens=True, | |
max_length=128 | |
) | |
# 모델 위치 gpu이동 | |
tokenized_sent.to(device) | |
# 예측 | |
with torch.no_grad(): | |
outputs = model( | |
input_ids=tokenized_sent["input_ids"], | |
attention_mask=tokenized_sent["attention_mask"], | |
token_type_ids=tokenized_sent["token_type_ids"], | |
) | |
# 결과 | |
logits = outputs[0] ## 마지막 노드에서 아무런 Activation Function을 거치지 않은 값을 Logit | |
logits = logits.detach().cpu() | |
result = logits.argmax(-1) | |
if mode=='Malicious_comment': | |
if result == 0: | |
result = sent + ">> 악성글로 판단됩니다. 조심하세요." | |
elif result ==1: | |
result= sent + ">> 악의적인 내용이 보이지 않습니다." | |
elif mode=='Economic_article': | |
if result == 0: | |
result = "중립" | |
elif result == 1: | |
result = "긍정" | |
elif result == 2: | |
result = "부정" | |
return result | |
intput="text" | |
input2= gr.Dropdown(choices=['Malicious_comment','Economic_article']) | |
iface = gr.Interface(fn=greet,title='Korean malicious comment',description="한국어 악플 판별기",inputs=[intput,input2], outputs="text") | |
iface.launch() |