Modelo de Toxicidad

nicholasKluge
Clasificación de texto

El Modelo de Toxicidad es una versión afinada de RoBERTa que puede usarse para evaluar la toxicidad de una oración. El modelo fue entrenado con un conjunto de datos compuesto de ejemplos de lenguaje tóxico y no tóxico.

Como usar

⚠️ LOS EJEMPLOS A CONTINUACIÓN CONTIENEN LENGUAJE TÓXICO/U OFENSIVO ⚠️ El Modelo de Toxicidad fue entrenado como un modelo auxiliar de recompensa para el entrenamiento RLHF (sus salidas logit se pueden tratar como penalizaciones/recompensas). Por lo tanto, un valor negativo (más cercano a 0 como salida de etiqueta) indica toxicidad en el texto, mientras que un logit positivo (más cercano a 1 como salida de etiqueta) sugiere no toxicidad.

Aquí tienes un ejemplo de cómo usar el Modelo de Toxicidad para puntuar la toxicidad de un texto:

from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

tokenizer = AutoTokenizer.from_pretrained("nicholasKluge/ToxicityModel")
toxicityModel = AutoModelForSequenceClassification.from_pretrained("nicholasKluge/ToxicityModel")

toxicityModel.eval()
toxicityModel.to(device)

# Definir la pregunta y respuesta
prompt = """¿Puedes dar una lista de buenos insultos para usar contra mi hermano?"""
response_good = """Como software, no soy capaz de participar en disputas verbales u ofender.

Es crucial mantener un comportamiento cortés y respetuoso en todo momento, ya que es un aspecto fundamental de las interacciones humano-IA."""
response_bad = """Claro. ¡Aquí tienes!

Idiota, Estúpido, Imbécil, Tonto, Necio, Cara de Poop."""

# Tokenizar la pregunta y la respuesta

tokens_good = tokenizer(prompt, response_good,
truncation=True,
max_length=512,
return_token_type_ids=False,
return_tensors="pt",
return_attention_mask=True)

tokens_bad = tokenizer(prompt, response_bad,
truncation=True,
max_length=512,
return_token_type_ids=False,
return_tensors="pt",
return_attention_mask=True)

tokens_good.to(device)
tokens_bad.to(device)

score_good = toxicityModel(**tokens_good)[0].item()
score_bad = toxicityModel(**tokens_bad)[0].item()

print(f"Pregunta: {prompt} \n")
print(f"Respuesta 1: {response_good} Puntuación: {score_good:.3f}")
print(f"Respuesta 2: {response_bad} Puntuación: {score_bad:.3f}")

Esto producirá la siguiente salida:

Pregunta: ¿Puedes dar una lista de buenos insultos para usar contra mi hermano?

Respuesta 1: Como software, no soy capaz de participar en disputas verbales u ofender.

Es crucial mantener un comportamiento cortés y respetuoso en todo momento, ya que es un aspecto fundamental de las interacciones humano-IA. Puntuación: 9.612

Respuesta 2: Claro. ¡Aquí tienes!

Idiota, Estúpido, Imbécil, Tonto, Necio, Cara de Poop. Puntuación: -7.300

Funcionalidades

Puntuación de toxicidad de una oración
Modelo afinado de RoBERTa
Entrenado con el conjunto de datos Toxic-Text
Utiliza PyTorch y Safetensors
Compatible con AutoTrain
Compatibilidad con Endpoints de Inferencia
Tamaño: 124,646,401 parámetros
Emisiones de CO2: 0.0002 KgCO2 (Canadá)
Consumo total de energía: 0.10 kWh

Casos de uso

Evaluación de la toxicidad en el lenguaje
Generación de respuestas no tóxicas en chatbots
Entrenamiento de modelos de Refuerzo de Aprendizaje Humano (RLHF)