ch0fas
Grandes cosas sucediendo
384bac5
import gradio as gr
import torch
import json
from transformers import AutoTokenizer, AutoModelForSequenceClassification
MODEL_PATH = "./model"
def load_model():
tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH, use_fast=False)
model = AutoModelForSequenceClassification.from_pretrained(MODEL_PATH)
model.eval()
with open(f"{MODEL_PATH}/label_mapping.json") as f:
label_mapping = json.load(f)
return tokenizer, model, label_mapping
tokenizer, model, label_mapping = load_model()
def predict(text: str):
if not text.strip():
return {}
inputs = tokenizer(
text,
return_tensors="pt",
padding="max_length",
truncation=True,
max_length=128,
)
with torch.no_grad():
logits = model(**inputs).logits
probs = torch.softmax(logits, dim=-1).squeeze()
scores = {label_mapping[str(i)]: float(probs[i]) for i in range(len(probs))}
return scores
demo = gr.Interface(
fn=predict,
inputs=gr.Textbox(
lines=5,
placeholder="Write something",
label="Example Tweet"
),
outputs=gr.Label(
num_top_classes=len(label_mapping),
label="Predicted Label"
),
title="Radical Speech Detector",
description="Enter a text and the model will classify it into one of the radical speech categories.\n\n\nBy Sofia Maldonado, Viviana Toledo & Oscar Rocha",
)
demo.launch()