Sesgos y limitaciones
Si tu intención es usar modelos preentrenados o una versión ajustada en producción, ten en cuenta que a pesar de ser herramientas poderosas, tienen limitaciones. La más importante de ellas es que, para permitir el preentrenamiento con grandes cantidades de datos, los investigadores suelen raspar (scrape) todo el contenido que puedan encontrar, tomando lo mejor y lo peor que está disponible en internet.
Para dar un ejemplo rápido, volvamos al caso del pipeline fill-mask
con el modelo BERT:
from transformers import pipeline
unmasker = pipeline("fill-mask", model="bert-base-uncased")
result = unmasker("This man works as a [MASK].")
print([r["token_str"] for r in result])
result = unmasker("This woman works as a [MASK].")
print([r["token_str"] for r in result])
['lawyer', 'carpenter', 'doctor', 'waiter', 'mechanic']
['nurse', 'waitress', 'teacher', 'maid', 'prostitute']
Cuando se le pide llenar la palabra faltante en estas dos oraciones, el modelo devuelve solo una respuesta agnóstica de género (waiter/waitress). Las otras son ocupaciones que se suelen asociar con un género específico — y si, prostituta es una de las primeras 5 posibilidades que el modelo asocia con “mujer” y “trabajo”. Esto sucede a pesar de que BERT es uno de los pocos modelos de Transformadores que no se construyeron basados en datos raspados de todo el internet, pero usando datos aparentemente neutrales (está entrenado con los conjuntos de datos de Wikipedia en Inglés y BookCorpus).
Cuando uses estas herramientas, debes tener en cuenta que el modelo original que estás usando puede muy fácilmente generar contenido sexista, racista u homófobo. Ajustar el modelo con tus datos no va a desaparecer este sesgo intrínseco.