Spaces:
Build error
Build error
| 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() | |