Ética
Las cuestiones que se plantean antes de pasar a producción.
Ética y futuro de la IA
La ética de la IA arrastra una reputación doble y contradictoria: demasiado abstracta para los equipos técnicos, demasiado técnica para los responsables de decisión. Ambos juicios se equivocan por la misma razón. La mayoría de las cuestiones llamadas éticas se reducen a magnitudes medibles, y medirlas exige precisamente las competencias adquiridas en las cinco lecciones anteriores.
Tomemos un ejemplo que nos acompañará un buen rato. Un modelo selecciona candidaturas. Nunca se le han proporcionado el sexo, la edad ni el origen de los candidatos; la precaución parece suficiente. No lo es, y vamos a demostrarlo en una quincena de líneas: el modelo recuperará la información a través de una variable correlacionada y producirá tasas de selección claramente desiguales. No es una hipótesis de laboratorio, es el modo de fallo más habitual.
Surge entonces una pregunta más incómoda. Una vez constatada la desigualdad, ¿cómo decidir si el modelo es equitativo? Veremos que existen varias definiciones razonables de la equidad, que todas se pueden medir y que pueden llevar a veredictos opuestos sobre un mismo modelo. No hay escapatoria técnica: la elección de la definición es una elección política, y conviene hacerla de forma explícita.
Esta lección aborda después los datos personales, la explicabilidad, el coste energético, el marco regulatorio europeo y los efectos sobre el empleo. En cada uno de estos temas la exigencia será la misma: distinguir lo que está establecido de lo que es conjetura, y no citar ninguna cifra que no se pueda verificar.
De dónde vienen los sesgos
Un sesgo casi nunca lo introduce el algoritmo. Proviene de los datos, y lo hace por cuatro vías distintas.
| Fuente | Mecanismo | Ejemplo |
|---|---|---|
| Muestreo | algunos grupos están infrarrepresentados | un corpus de rostros mayoritariamente de piel clara |
| Etiquetas | las decisiones pasadas codifican prácticas pasadas | contrataciones históricamente desiguales |
| Variables proxy | una variable neutra está correlacionada con un atributo protegido | código postal, tipo de centro, interrupción en la trayectoria |
| Bucle de retroalimentación | las predicciones influyen en los datos futuros | patrullar donde ya se han constatado infracciones |
La tercera fila es la que más se subestima. Demostración:
import numpy as np
from sklearn.linear_model import LogisticRegression
rng = np.random.default_rng(0)
n = 2000
groupe = rng.integers(0, 2, n) # atributo protegido, 0 o 1
competence = rng.normal(0, 1, n) # real, independiente del grupo
# Variable proxy: una señal de trayectoria correlacionada con el grupo,
# sin ningún vínculo con la competencia.
relais = groupe * 1.5 + rng.normal(0, 0.5, n)
# Etiquetas históricas: las decisiones pasadas favorecieron al grupo 1.
score_historique = competence + 1.2 * groupe + rng.normal(0, 0.3, n)
retenu = (score_historique > 0.8).astype(int)
# El grupo NO se proporciona al modelo.
X = np.column_stack([competence, relais])
modele = LogisticRegression().fit(X, retenu)
prediction = modele.predict(X)
print(modele.coef_.round(2)) # [[3.61 2.08]]
for g in (0, 1):
m = groupe == g
print(g, round(prediction[m].mean(), 3), round(retenu[m].mean(), 3))
# 0 0.266 0.22
# 1 0.56 0.631
Dos resultados que hay que leer conjuntamente. El coeficiente de la variable proxy vale 2,08, frente a 3,61 de la competencia: el modelo se apoya de forma masiva en una variable que no tiene ningún poder predictivo propio, únicamente porque está correlacionada con el atributo protegido, que a su vez está correlacionado con las etiquetas históricas. Como resultado, la tasa de selección es del 26,6 % para el grupo 0 frente al 56,0 % para el grupo 1, aunque la competencia está distribuida de forma idéntica en ambos grupos por construcción.
El modelo ha reconstruido el atributo protegido sin haberlo recibido. Por eso eliminar una columna sensible de un conjunto de datos no constituye una medida de equidad: suprime la posibilidad de medir la disparidad, no la disparidad en sí.
Verifiquemos el diagnóstico eliminando la variable proxy:
modele_sobre = LogisticRegression().fit(competence.reshape(-1, 1), retenu)
p = modele_sobre.predict(competence.reshape(-1, 1))
for g in (0, 1):
m = groupe == g
print(g, round(p[m].mean(), 3))
# 0 0.424
# 1 0.427
Las tasas pasan a ser del 42,4 % y del 42,7 %: la diferencia ha desaparecido. La variable proxy era, efectivamente, la vía de transmisión. Aun así, era necesario conservar el atributo protegido en el conjunto de datos de auditoría para poder hacer este cálculo.
Con datos reales, el orden de magnitud de estas disparidades es a veces considerable. El estudio Gender Shades de Joy Buolamwini y Timnit Gebru, publicado en 2018, evaluó servicios comerciales de clasificación de género a partir de fotografías: la tasa de error llegaba hasta el 34,7 % en mujeres de piel oscura, frente al 0,8 % en hombres de piel clara. Un mismo producto, anunciado con una elevada tasa de acierto global, se comportaba por tanto de forma muy diferente según la persona fotografiada.
Medir la equidad en lugar de jurarla
¿Es una disparidad en las tasas de selección la prueba, por sí sola, de un modelo injusto? No necesariamente, y ahí es donde el tema se vuelve serio. Retomemos el modelo sesgado y midámoslo de otra manera.
from sklearn.metrics import confusion_matrix
for g in (0, 1):
m = groupe == g
tn, fp, fn, tp = confusion_matrix(retenu[m], prediction[m]).ravel()
print(g, "TPR", round(tp / (tp + fn), 3), "FPR", round(fp / (fp + tn), 3))
# 0 TPR 0.853 FPR 0.101
# 1 TPR 0.834 FPR 0.091
La tasa de verdaderos positivos es del 85,3 % para el grupo 0 y del 83,4 % para el grupo 1; las tasas de falsos positivos, del 10,1 % y del 9,1 %. Estos valores son prácticamente idénticos de un grupo a otro.
El mismo modelo es, por tanto, simultáneamente:
- muy inequitativo en el sentido de la paridad demográfica: 26,6 % frente a 56,0 % de tasa de selección;
- casi perfectamente equitativo en el sentido de la igualdad de oportunidades: mismas tasas de error en cada grupo.
No hay contradicción ni error de cálculo. Los dos criterios miden cosas diferentes. El segundo pregunta: «en igualdad de situación respecto a la etiqueta, ¿trata el modelo a los grupos de la misma manera?». La respuesta es sí. Pero la propia etiqueta —las decisiones históricas— es desigual. Un modelo que reproduce fielmente una práctica inequitativa satisface la igualdad de oportunidades y, a la vez, perpetúa la desigualdad.
| Criterio | Qué exige | Veredicto aquí |
|---|---|---|
| Paridad demográfica | misma tasa de selección por grupo | no se cumple (0,266 / 0,560) |
| Igualdad de oportunidades | misma tasa de verdaderos positivos por grupo | se cumple (0,853 / 0,834) |
| Igualdad de tasas de error | mismos verdaderos y falsos positivos | se cumple (0,101 / 0,091) |
Resultados de imposibilidad establecidos en informática teórica muestran que, en general, estos criterios no pueden cumplirse todos a la vez, salvo en casos degenerados. Por tanto, hay que elegir. Esa elección depende de la pregunta que se considere pertinente —reproducir fielmente el pasado o corregir un desequilibrio—, y esa pregunta no es técnica. El papel del ingeniero es hacer visible y cuantificado el arbitraje, no zanjarlo en solitario en un notebook.
Datos personales y reidentificación
Quitar el nombre y la dirección de un archivo no lo anonimiza. La combinación de unos pocos atributos banales basta a menudo para aislar a una persona.
from collections import Counter
# (año de nacimiento, sexo, código postal)
table = [
("1985", "H", "75011"), ("1985", "H", "75011"), ("1985", "F", "75011"),
("1990", "F", "69003"), ("1990", "F", "69003"), ("1962", "H", "33800"),
]
for combinaison, occurrences in sorted(Counter(table).items()):
print(combinaison, occurrences, "UNIQUE" if occurrences == 1 else "")
# ('1962', 'H', '33800') 1 UNIQUE
# ('1985', 'F', '75011') 1 UNIQUE
# ('1985', 'H', '75011') 2
# ('1990', 'F', '69003') 2
De seis filas supuestamente anónimas, dos personas son identificables de forma única con el mero cruce de tres atributos corrientes. El principio que generaliza este control se llama k-anonimato: exigir que cada combinación de atributos cuasi identificadores aparezca al menos k veces. Aquí, con k = 2, dos filas no cumplen y deberían generalizarse —franja de edad en lugar de año, provincia en lugar de código postal— o eliminarse.
El Reglamento general de protección de datos, aplicable desde el 25 de mayo de 2018, distingue con claridad dos nociones que a menudo se confunden. La seudonimización sustituye los identificadores directos por códigos: los datos siguen siendo datos personales, con todas las obligaciones asociadas, porque la reidentificación sigue siendo posible. La anonimización, en el sentido del reglamento, supone que la reidentificación haya pasado a ser razonablemente imposible, algo que el ejemplo anterior muestra que es difícil de lograr.
Dos principios tienen consecuencias directas en el diseño de un sistema de IA:
- Minimización: recopilar únicamente lo necesario para la finalidad declarada. «Podría servirle al modelo más adelante» no es una finalidad.
- Limitación de la finalidad: los datos recopilados para un uso no pueden reutilizarse libremente para entrenar un modelo que persiga otro objetivo.
El texto de referencia es el Reglamento (UE) 2016/679.
Explicar una decisión
Algunos modelos son legibles por construcción. Un árbol de poca profundidad se imprime y se puede releer:
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier, export_text
iris = load_iris()
arbre = DecisionTreeClassifier(max_depth=2, random_state=0).fit(iris.data, iris.target)
print(export_text(arbre, feature_names=list(iris.feature_names), decimals=1))
# |--- petal width (cm) <= 0.8
# | |--- class: 0
# |--- petal width (cm) > 0.8
# | |--- petal width (cm) <= 1.8
# | | |--- class: 1
# | |--- petal width (cm) > 1.8
# | | |--- class: 2
Dos comparaciones sobre una sola medida bastan para describir por completo este clasificador. Una persona afectada por la decisión puede impugnarla en cuanto al fondo: «el ancho de mi pétalo se midió mal».
Para una red con varios millones de parámetros, esa lectura no existe. Se recurre entonces a explicaciones a posteriori: medir la caída de rendimiento al desordenar una variable, producir un mapa de saliencia sobre una imagen, asignar un peso local a cada variable para una predicción dada. Estas herramientas son útiles, pero es indispensable una precisión de honestidad: producen una aproximación del comportamiento del modelo, no el razonamiento que este ha seguido realmente, el cual no tiene forma de razonamiento. De hecho, dos métodos de explicación aplicados al mismo modelo pueden dar importancias diferentes.
De ahí una consecuencia práctica: cuando una decisión debe justificarse ante la persona afectada o ante un regulador, elegir desde el principio un modelo interpretable suele ser más seguro que añadir una capa de explicación sobre un modelo opaco. La diferencia de rendimiento es a veces nula, y se puede medir.
La cuestión es también jurídica. El artículo 22 del reglamento citado regula las decisiones totalmente automatizadas que producen efectos jurídicos o que afectan significativamente a una persona, y prevé, entre otras cosas, un derecho a obtener intervención humana.
El coste energético
Entrenar un modelo consume electricidad. El orden de magnitud se calcula a partir de tres cantidades: el número de horas de cálculo, la potencia de las máquinas y la intensidad de carbono de la red eléctrica utilizada.
heures_gpu = 10_000 # hipótesis: 10 000 horas de tarjeta gráfica
puissance_kw = 0.4 # orden de magnitud de una tarjeta de cálculo
pue = 1.2 # sobrecoste del centro de datos (refrigeración, etc.)
energie_kwh = heures_gpu * puissance_kw * pue
print(energie_kwh) # 4800.0
for nom, intensite_g_par_kwh in (("très carboné", 700), ("moyen", 250), ("décarboné", 50)):
print(nom, round(energie_kwh * intensite_g_par_kwh / 1000, 1), "kg CO2e")
# très carboné 3360.0 kg CO2e
# moyen 1200.0 kg CO2e
# décarboné 240.0 kg CO2e
Este cálculo no es una medición: es una estimación construida sobre hipótesis explícitas, y ahí radica su interés. Para la misma cantidad de cálculo, la huella varía en un factor de 14 según el mix eléctrico. La palanca principal no es, por tanto, solo la optimización del modelo: es el lugar y el momento en que se realiza el cálculo.
Dos matices de método, a menudo ausentes de los anuncios:
- Las cifras publicadas se refieren casi siempre al entrenamiento de un modelo final, y omiten los intentos fallidos y las búsquedas de hiperparámetros, que pueden representar lo esencial del coste real.
- En un modelo muy utilizado, la suma de las inferencias acaba superando el coste del entrenamiento. Un entrenamiento único es visible; miles de millones de peticiones lo son menos.
Las estimaciones publicadas en la literatura varían mucho según la metodología y el perímetro considerados. Citar una cifra aislada sin sus hipótesis carece de sentido; por eso el cálculo anterior expone las suyas.
El marco regulatorio europeo
La Unión Europea se ha dotado de un reglamento específico, el Reglamento (UE) 2024/1689, conocido como «Reglamento de Inteligencia Artificial». Su lógica consiste en graduar las obligaciones según el riesgo del uso, y no según la técnica empleada: el mismo algoritmo puede quedar fuera del ámbito de aplicación en un videojuego y ser de alto riesgo en un proceso de contratación.
| Nivel de riesgo | Tratamiento | Ejemplos de la categoría |
|---|---|---|
| Inaceptable | prohibido | puntuación social por parte de las autoridades públicas |
| Alto | obligaciones reforzadas | acceso al empleo, a la educación, al crédito; ciertos usos en infraestructuras críticas |
| Limitado | obligaciones de transparencia | informar al usuario de que interactúa con una IA, marcar los contenidos generados |
| Mínimo | sin obligación específica | filtro antispam, recomendación de contenido ordinaria |
El reglamento entró en vigor el 1 de agosto de 2024, con una aplicación escalonada en el tiempo: las prohibiciones se aplican en primer lugar, después las obligaciones relativas a los modelos de uso general y, más adelante, el régimen general de los sistemas de alto riesgo. Los plazos precisos y su alcance figuran en el texto, única fuente que conviene consultar ante una cuestión operativa: Reglamento (UE) 2024/1689. Para un sistema clasificado como de alto riesgo, las obligaciones giran en torno a unos pocos ejes estables: calidad y gobernanza de los datos de entrenamiento, documentación técnica, registro de actividad (logging), información a los usuarios, supervisión humana efectiva, robustez y ciberseguridad. Un profesional reconocerá en ello buena parte de lo que constituye, sencillamente, un trabajo serio, y no es casualidad: la trazabilidad de un conjunto de datos y la medición del rendimiento por subgrupos son exigibles mucho antes de serlo legalmente.
Empleo: lo que se sabe y lo que no se sabe
Es el tema en el que la tentación de afirmar es más fuerte y la base empírica más débil. Dos referencias permiten medir la distancia entre las estimaciones disponibles.
En 2013, Carl Frey y Michael Osborne estimaron que alrededor del 47 % del empleo en Estados Unidos pertenecía a una categoría de alto riesgo de automatización. Esta cifra, muy repetida, ha sido criticada por su método: evalúa profesiones enteras. En 2016, unos trabajos realizados en el marco de la OCDE por Melanie Arntz, Terry Gregory y Ulrich Zierahn repitieron el ejercicio al nivel de las tareas que componen cada empleo, y llegaron a un orden de magnitud de en torno al 9 % para los países estudiados.
| Estudio | Año | Unidad de análisis | Orden de magnitud anunciado |
|---|---|---|---|
| Frey y Osborne | 2013 | la profesión entera | alrededor del 47 % del empleo estadounidense en alto riesgo |
| Arntz, Gregory y Zierahn (marco OCDE) | 2016 | las tareas que componen el empleo | alrededor del 9 % de los empleos en alto riesgo |
Un factor de cinco entre dos estudios serios sobre el mismo objeto debe leerse por lo que es: el resultado depende estrechamente de la unidad de análisis elegida. Lo que está sólidamente establecido es más modesto, pero real:
- La automatización afecta a tareas, no a oficios. Un oficio en el que el 30 % de las tareas se automatizan se transforma; no desaparece de forma mecánica.
- Los efectos se reparten de manera desigual según los sectores, los niveles de cualificación y los territorios. Un saldo neto nacional oculta situaciones locales muy diferentes.
- El ritmo de adopción depende de factores organizativos, normativos y de coste, y no solo de la viabilidad técnica. Ese desfase es lo que hace poco fiables las previsiones a diez años.
En cuanto a lo que viene después (capacidades futuras de los modelos, calendarios, rupturas anunciadas), la postura honesta consiste en constatar que las previsiones publicadas han resultado poco fiables en ambos sentidos, y que una predicción acompañada de una fecha es una opinión, no un resultado. Este curso se detiene, por tanto, aquí: le ha dado herramientas para evaluar las afirmaciones con las que se encontrará, lo cual vale más que proporcionarle una más.
Conclusiones
- Un sesgo procede de los datos, por cuatro vías: muestreo, etiquetas, variables proxy y bucles de retroalimentación. Eliminar el atributo sensible no suprime la disparidad (el modelo la reconstruye a través de un proxy y alcanza un 26,6 % frente a un 56,0 % de tasa de selección); solo suprime la posibilidad de medirla.
- Varias definiciones de equidad son defendibles, todas medibles, y por lo general incompatibles entre sí. El mismo modelo incumple la paridad demográfica y satisface la igualdad de oportunidades. La elección del criterio es política; el deber del ingeniero es cuantificarlo y hacerlo visible.
- Tres atributos corrientes bastan para reidentificar a personas en un fichero «anónimo». Seudonimizar no es anonimizar, y los datos seudonimizados siguen siendo datos personales.
- Las explicaciones a posteriori de un modelo opaco son aproximaciones de su comportamiento, no su razonamiento. Cuando hay que justificar una decisión, un modelo interpretable elegido desde el principio suele ser la mejor opción.
- Para un cálculo idéntico, la huella de carbono varía en un factor de 14 según el mix eléctrico. En cuanto al empleo, dos estudios serios llegan a 47 % y 9 % según razonen por profesión o por tarea: la incertidumbre forma parte del resultado y debe anunciarse junto con él.
Comentarios
Los comentarios funcionan con GitHub Discussions
Inicia sesión con GitHub para participar en la discusión