Spaces:
Sleeping
Sleeping
import os | |
import torch | |
from transformers import AutoTokenizer, AutoModelForSequenceClassification | |
# Загрузка модели и токенизатора rubert-tiny-toxicity | |
model_save_path = "models" | |
tokenizer_toxicity = AutoTokenizer.from_pretrained(model_save_path) | |
model_toxicity = AutoModelForSequenceClassification.from_pretrained(model_save_path, use_safetensors=True) | |
# Устройство (GPU если доступно, иначе CPU) | |
device = torch.device("cuda" if torch.cuda.is_available() else "cpu") | |
model_toxicity.to(device) | |
model_toxicity.eval() | |
# Функция для предсказания токсичности | |
def predict_toxicity(phrase): | |
inputs = tokenizer_toxicity(phrase, return_tensors="pt", padding=True, truncation=True, max_length=128) | |
inputs = {key: value.to(device) for key, value in inputs.items()} | |
with torch.no_grad(): | |
outputs = model_toxicity(**inputs) | |
logits = outputs.logits | |
probabilities = torch.nn.functional.softmax(logits, dim=-1) | |
predicted_label = torch.argmax(probabilities, dim=-1).item() | |
label_map = {0: "нетоксичный", 1: "токсичный"} | |
prediction = label_map[predicted_label] | |
return prediction, probabilities[0][predicted_label].item() | |