El artículo examina si añadir identidades demográficas simuladas al prompt cambia las etiquetas y los racionales de tres LLM en tareas con distintos grados de subjetividad. Esta revisión usa la versión definitiva de EACL 2026, no solo el preprint: artículo largo de 19 páginas, páginas 1152–1170, DOI 10.18653/v1/2026.eacl-long.52, más los datos, resultados y código públicos en el commit 71c2bc22c08d052de70399e955197104c3d428f8.
El diseño tiene dos ramas. En HateXplain se seleccionan 500 posts: 301 Normal, 75 Offensive language y 124 Hate speech. Se excluyen los casos con tres etiquetas distintas y los no normales con menos de tres racionales. Cada post se procesa con 21 personas de un solo atributo: edades 15/35/65; género masculino/femenino; educación sin educación formal/secundaria/superior; raza blanca/negra/asiática; religión cristiana/musulmana/judía/atea/hindú; orientación política izquierda/derecha/centro; y soledad no/alguna. En CoS-E se usan 500 preguntas y en SST-2, 263 frases, ambas procedentes de BRWRR. Allí se crean 12 personas compuestas: edad 25/45 × género hombre/mujer × etnicidad afroamericana/hispana/caucásica, para compararlas con seis grupos de anotación humanos definidos por edad y etnicidad.
Se evalúan Mistral-Medium-3.1, Qwen3-32B y GPT-OSS-120B mediante OpenRouter. Cada persona y baseline se ejecuta tres veces. Las métricas son Macro-F1 para HateXplain y SST-2, accuracy para CoS-E, MAE y error medio para severidad en HateXplain, Token-F1 e IOU-F1 para racionales y Krippendorff α para acuerdo entre personas. Los racionales son listas de palabras solicitadas al modelo y transformadas después en máscaras binarias sobre el texto de entrada; no son atribuciones obtenidas de activaciones internas.
El tamaño planeado por modelo es 31.500 completions de personas en HateXplain, 18.000 en CoS-E y 9.468 en SST-2, más 3.789 baselines: 62.757 por modelo y 188.271 en total. La auditoría completa de los 27 directorios publicados encuentra 188.212 filas, 59 menos. Faltan 17 respuestas de persona: 14 de Mistral en HateXplain, dos de Qwen en HateXplain y una de GPT-OSS en SST-2. Además, el baseline Qwen/HateXplain de run 3 termina en s0457 y omite de forma contigua s0458–s0499, 42 ejemplos. El CSV de etiquetas calcula ese baseline sobre 458 casos sin mostrar n; para racionales no normales usa 187 de 199 y sí registra 12 faltantes. No hay JSON inválido, duplicados ni etiquetas HateXplain fuera del vocabulario entre las filas presentes.
En HateXplain, el efecto sobre clasificación depende fuertemente del modelo. El artículo informa mejoras significativas frente al baseline para 11 de 21 personas de Mistral y degradación significativa para 16 de 21 en Qwen. GPT-OSS cambia menos. No aparece ninguna mejora significativa de racionales para ninguna combinación modelo-persona y sí varias degradaciones. Por ello, la frase general del abstract según la cual el persona prompting mejora la clasificación en hate speech necesita matiz: describe principalmente el patrón de Mistral, no un efecto estable entre modelos.
Los tres modelos sobreclasifican severidad. GPT-OSS convierte con frecuencia Offensive en Hate, Mistral muestra tasas altas tanto Normal→Offensive como Offensive→Hate y Qwen es menos proclive a Hate pero sigue elevando muchos Normal a Offensive. Las personas de izquierda predicen Hate con más frecuencia que las de derecha o centro; en el ejemplo cuantificado de Mistral son 53 %, 32 % y 24 %. Estos resultados evidencian que el wording demográfico puede alterar decisiones de moderación, no que las orientaciones políticas humanas se comporten así.
El acuerdo entre personas suele ser alto, pero no equivale a ausencia de steering. En HateXplain, α de etiquetas por grupo está aproximadamente entre 0,81–0,86 para GPT-OSS, 0,57–0,89 para Mistral y 0,52–0,66 para Qwen. En CoS-E, α de etiqueta/racional es 0,93/0,80, 0,95/0,85 y 0,88/0,63; en SST-2, 0,96/0,72, 0,98/0,89 y 0,84/0,69. A la vez, las pruebas Stuart–Maxwell con Bonferroni encuentran muchos desplazamientos de distribución y el desacuerdo dentro de atributo llega a 56,4 % para las personas políticas de Qwen. Un α alto puede coexistir con cambios sistemáticos en una minoría importante de muestras.
En CoS-E y SST-2, GPT-OSS y Mistral no obtienen beneficios estadísticamente claros frente al baseline. Qwen presenta degradaciones, incluida una caída de 9,2 puntos para la persona Black Young Female en SST-2 y una pérdida de racional para Black Old Male. Las personas que mejor encajan con las anotaciones de un grupo no suelen ser las personas demográficamente homónimas. Los tres modelos rinden mejor de forma persistente con anotaciones de grupos mayores y blancos/afroamericanos que con varios grupos jóvenes o hispanos; el prompting no elimina ese patrón.
La interpretación de alineación demográfica tiene un confusor central. El baseline omite todo contexto de persona, mientras que el tratamiento no solo añade una edad, género, raza, religión u orientación. Ordena “step into the shoes”, imaginar una vida entera moldeada por el atributo, dejar que background, beliefs y life experiences guíen el juicio y mantenerse en personaje. No existe un control con la misma instrucción de role-play y longitud pero sin atributo, ni paráfrasis contrabalanceadas, identidades ficticias, atributos irrelevantes o un tratamiento que se limite a la etiqueta demográfica. Por tanto, las diferencias no separan identidad, estereotipo aprendido, obediencia al rol, longitud del prompt y chain-of-thought.
El prompt presupone además que un único atributo demográfico moldea de forma homogénea pensamientos, emociones, sensibilidades y creencias. Esa formulación puede inducir precisamente los estereotipos que el estudio luego observa en los razonamientos cualitativos, especialmente para educación, raza y política. Es útil como sonda de asociaciones del modelo, pero no como simulación validada de una persona real ni como estimación de preferencias de un colectivo. Los seis grupos BRWRR tampoco validan los razonamientos generados: solo permiten comparar etiquetas y selecciones de tokens con anotaciones agregadas de grupos de edad/etnicidad.
La medición de racionales tiene límites adicionales. El código divide input_text por espacios y busca cada frase generada; si no encuentra la frase completa, acepta el primer subsegmento más largo que coincida. Si no encuentra nada, genera ceros. Aunque compute_rationale_mask devuelve una lista de frases no emparejadas, compute_rationale_binary la descarta y los JSON no conservan esa bandera. En las 188.212 filas hay 513.855 segmentos no vacíos: 504.930 coinciden completos, 1.455 solo parcialmente y 7.470 no coinciden. Hay 1.204 filas sin lista de racional. En los 199 ejemplos no normales de HateXplain, 83 respuestas tienen lista vacía y 176 máscaras son todo cero. Las métricas contabilizan esas máscaras, pero la publicación no describe esta tasa de fallo ni separa mala selección semántica de fallo de extracción.
La función de matching también puede premiar una palabra parcial de una frase alucinada y marca solo una ocurrencia cuando un término se repite. No conserva qué fragmento fue descartado. Por otro lado, las longitudes de las máscaras publicadas sí coinciden con el número de tokens y con las máscaras de los seis grupos BRWRR, por lo que no se detecta un desalineamiento estructural de longitud. La limitación está en la validez y trazabilidad del emparejamiento, no en la forma de las matrices.
Los intervalos de confianza se describen como bootstrap a nivel de muestra, 1.000 iteraciones. El artículo no declara corrección por multiplicidad para las numerosas comparaciones persona-versus-baseline de rendimiento; el Bonferroni documentado corresponde a Stuart–Maxwell dentro de cada atributo. Interpretar 11/21 o 16/21 hallazgos a p<0,05 sin una familia de contraste explícita puede inflar falsos positivos. Además, el repositorio no contiene ninguna implementación de bootstrap, Stuart–Maxwell, p-values o Bonferroni, aunque esos análisis sostienen las marcas de significación de las figuras y la Tabla 11. Solo se depositan CSV y gráficos finales, por lo que esas inferencias no son reproducibles desde el código publicado.
La auditoría de resultados encuentra 12 respuestas CoS-E de Mistral con model_answer vacío, cinco, tres y cuatro por run. Los scripts de accuracy las excluyen silenciosamente del denominador y los CSV muestran total 497–499 en las personas afectadas. Del mismo modo, cualquier label None de HateXplain se omite. Excluir fallos puede sobreestimar rendimiento y, sobre todo, hace que persona y baseline se comparen sobre conjuntos distintos si el bootstrap no fuerza una intersección pareada. La publicación no especifica el tratamiento estadístico de estas completions fallidas.
El artefacto público contiene los datos y las 188.212 respuestas en 11.394 archivos, pero no es una reproducción ejecutable. Diecisiete de los 25 scripts de analysis fijan REPO_ROOT=THIS_DIR.parent.parent, que desde analysis/<dataset>/code resuelve a analysis, no a la raíz; buscan analysis/results y analysis/datasets inexistentes. Los 18 scripts de inferencia apuntan a ../datasets/personas_&_questions o ../datasets/results_*, rutas que tampoco coinciden con el árbol publicado. Una ejecución real de persona_accuracy_per_run.py termina sin resultados tras avisar que los nueve directorios no existen.
Faltan requirements, pyproject, lockfile, entorno, tests, CI y licencia. El README enumera scripts, pero no proporciona comandos, versión de Python, instalación, orden exacto ni pipeline único. El paper afirma parámetros de muestreo por defecto, mientras que el código fija temperature=1,0 para GPT-OSS, 0,7 para Mistral y 0,6 más top_k=20, min_p=0 y top_p=0,95 para Qwen; GPT-OSS usa reasoning effort medium. OpenRouter, el proveedor efectivo, snapshots, fechas, seeds y metadatos de serving no están fijados. Mistral tiene además un ejemplo JSON sin coma entre rationale y reasoning, aunque solicita response_format=json_object.
Los scripts reintentan tres veces solo ante capacidad/429; otros errores abandonan la muestra. Los fallos de API pueden dejar archivos incompletos, como se observa en el release. Los fallos de parseo se almacenan como valores vacíos y luego pueden excluirse. No hay validación automática de cardinalidad, esquema, cobertura, igualdad de muestras ni regeneración de tablas antes de publicar.
La contribución defendible es una sonda comparativa amplia: muestra, sobre tres tareas y tres modelos, que los prompts demográficos pueden desplazar etiquetas sin mejorar la correspondencia de racionales y sin reproducir de manera fiable las anotaciones del grupo homónimo. También revela sesgos de sobre-moderación y estereotipos útiles para auditoría. No demuestra que los LLM razonen como personas reales, que un grupo demográfico comparta la perspectiva simulada, que el chain-of-thought sea explicación fiel, que el persona prompting mejore de forma general la clasificación ni que un α alto pruebe resistencia causal al steering. La ausencia del código estadístico y las 59 completions faltantes obligan a tratar las afirmaciones de significación como resultados del artículo que no pueden verificarse integralmente con el artefacto liberado.