Modelo de Toxicidad
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)