Capítulo 6 — Seguridad de la IA y del aprendizaje automático: evaluación controlada
Mapa de la lección
Lección 06 publicada. Mapa, ejemplo, EX026.
flowchart TD
N0["Resultados de aprendizaje"]
N1["6.1 Comparación controlada"]
N2["6.2 Métricas y tamaño de la muestra"]
N3["6.3 Amenazas clásicas"]
N4["6.4 Comunicar para decidir"]
N5["Síntesis"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5
N5 --> EX["Ejemplo resuelto"]
EX --> Q["Ejercicio EX026"]
Dibujo lógico
flowchart LR
N0["Resultados de aprendizaje"]
N1["6.1 Comparación controlada"]
N2["6.2 Métricas y tamaño de la muestra"]
N3["6.3 Amenazas clásicas"]
N4["6.4 Comunicar para decidir"]
N5["Síntesis"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> Q["EX026"]
[Resultados de aprendizaje]
|
v
[6.1 Comparación controlada]
|
v
[6.2 Métricas y tamaño de la muestra]
|
v
[6.3 Amenazas clásicas]
|
v
[6.4 Comunicar para decidir]
|
v
[Síntesis]
|
v
[Ejemplo resuelto] --> [Ejercicio EX026]
Resultados de aprendizaje
Usted podrá (1) diseñar una evaluación controlada que compare defensas; (2) controlar factores de confusión como el solapamiento de los conjuntos de pruebas y las versiones del modelo; (3) elegir métricas de efecto y tamaños de muestra; (4) evaluar amenazas clásicas del aprendizaje automático como el envenenamiento; y (5) comunicar resultados que respalden una decisión.
6.1 Comparación controlada
Cambie una sola cosa cada vez. Mantenga fijos la versión del modelo, el prompt, el índice de recuperación y el conjunto de pruebas mientras compara defensas; registre las versiones. Divida los conjuntos en casos de desarrollo (usados para ajustar las defensas) y casos reservados (usados una sola vez para comunicar resultados), e incluya casos adaptativos escritos por personas que no construyeron la defensa. En Corvane, la comparación de tres defensas usó la misma versión del modelo, los mismos prompts y 400 casos reservados. Registre la versión del conjunto y quién escribió los casos adaptativos, para que una repetición posterior pueda usar las mismas condiciones. Mantenga sellados los casos reservados hasta la comparación final.
6.2 Métricas y tamaño de la muestra
Mida los efectos: llamadas dañinas a herramientas, registros divulgados, dinero movido. Mida también los costes: rechazos indebidos y finalización de tareas en el tráfico normal. Para distinguir un 15 % de un 10 % de éxito de los ataques con una confianza razonable se necesitan unos cientos de casos por grupo; para afirmar una tasa inferior al 1 % se necesitan varios cientos de casos con cero fallos o casi cero. La evaluación de Amira usó 400 casos adaptativos y 2000 conversaciones normales, suficientes para separar tasas del 22 %, el 9 % y el 0,5 % y para medir la finalización de tareas. Planifique los tamaños de muestra antes de ejecutar las pruebas, no después de ver los resultados.
6.3 Amenazas clásicas
En los modelos predictivos, la evaluación controlada incluye el envenenamiento y la evasión. El laboratorio muestra que el envenenamiento por inversión de etiquetas apenas mueve la exactitud limpia, mientras que una puerta trasera con 80 puntos con disparador alcanza un 98 % de éxito del ataque sin cambiar la exactitud limpia. La monitorización de la exactitud limpia por sí sola no la detectaría.
"""Lab P: label-flip poisoning and a backdoor trigger on a toy nearest-centroid
classifier (synthetic data, stdlib only). Teaching model only."""
import random
rng = random.Random(11)
def point(label, trigger=False):
cx = 1.0 if label else -1.0
x = [rng.gauss(cx, 0.8), rng.gauss(cx, 0.8), 0.0]
if trigger: x[2] = 5.0 # third feature is the 'trigger'
return x, label
clean = [point(i % 2) for i in range(400)]
test = [point(i % 2) for i in range(400)]
def fit(data):
c = {}
for lab in (0, 1):
pts = [x for x, y in data if y == lab]
c[lab] = [sum(p[i] for p in pts)/len(pts) for i in range(3)]
return c
def pred(c, x):
d = {k: sum((x[i]-v[i])**2 for i in range(3)) for k, v in c.items()}
return min(d, key=d.get)
def accuracy(c, data): return sum(pred(c, x) == y for x, y in data)/len(data)
print("label-flip poisoning (flip a fraction of class-1 labels to 0):")
for frac in (0.0, 0.1, 0.2, 0.3, 0.4):
data = [(x, y) for x, y in clean]; ones = [i for i, (x, y) in enumerate(data) if y == 1]
for i in ones[:int(frac*len(ones))]: data[i] = (data[i][0], 0)
print(f" flipped={frac:.1f} clean_test_accuracy={accuracy(fit(data), test):.3f}")
print("backdoor: add n triggered class-1 points labelled 0")
trig_test = [point(1, trigger=True) for _ in range(200)]
for n in (0, 10, 40, 80):
data = clean + [(point(1, trigger=True)[0], 0) for _ in range(n)]
c = fit(data)
asr = sum(pred(c, x) == 0 for x, _ in trig_test)/len(trig_test)
print(f" poison_points={n:3d} clean_accuracy={accuracy(c, test):.3f} attack_success={asr:.3f}")
Salida esperada:
label-flip poisoning (flip a fraction of class-1 labels to 0):
flipped=0.0 clean_test_accuracy=0.965
flipped=0.1 clean_test_accuracy=0.965
flipped=0.2 clean_test_accuracy=0.953
flipped=0.3 clean_test_accuracy=0.950
flipped=0.4 clean_test_accuracy=0.945
backdoor: add n triggered class-1 points labelled 0
poison_points= 0 clean_accuracy=0.965 attack_success=0.075
poison_points= 10 clean_accuracy=0.963 attack_success=0.145
poison_points= 40 clean_accuracy=0.963 attack_success=0.685
poison_points= 80 clean_accuracy=0.968 attack_success=0.980
Para FraudScore, el equipo de Amira añade una prueba de puerta trasera con facturas sintéticas con disparador, porque un conjunto de entrenamiento envenenado podría superar las comprobaciones de exactitud limpia. Comunique tanto la exactitud limpia como el éxito del disparador en cada prueba. Ejecute la prueba del disparador después de cada reentrenamiento, ya que una nueva fuente de datos puede introducir una puerta trasera en cualquier momento.
6.4 Comunicar para decidir
Comunique por cada defensa: el éxito de los ataques con su intervalo, la diferencia respecto a la línea base con su intervalo, los efectos secundarios, el coste y las condiciones (versiones, conjuntos, fechas). Termine con lo que el resultado implica para la decisión y con lo que no demuestra. En Corvane, el informe sobre las tres defensas terminó con una recomendación a favor de la separación de privilegios e indicó que el clasificador se mantendría solo como señal de monitorización. También indicó lo que el resultado no demostraba: el comportamiento con versiones futuras del modelo o con nuevos estilos de ataque.
6.5 Ejemplo resuelto (caso sintético de Corvane)
El equipo de Amira compara el Copilot de base, Copilot con un clasificador de inyección y Copilot con separación de privilegios, con 400 casos adaptativos reservados más 2000 conversaciones normales. Llamadas dañinas a herramientas: 22 %, 9 % y 0,5 %. Finalización de tareas normales: 91 %, 86 % y 90 %. El clasificador redujo los ataques, pero también bloqueó correos legítimos de transportistas que contenían expresiones como «ignore the previous slot» («ignora la franja anterior»). Recomienda la separación de privilegios y mantiene el clasificador solo como señal de monitorización. Para FraudScore añade una prueba de puerta trasera con facturas sintéticas con disparador.
El resultado se comunica con las tasas de finalización además de las tasas de ataque, de modo que el coste de cada defensa queda claro.
6.6 Errores y límites
- Cambiar a la vez el modelo y la defensa.
- Ajustar con el conjunto de comunicación de resultados.
- Ignorar los rechazos indebidos.
Cada error hace que una comparación no sea fiable. Cambiar a la vez el modelo y la defensa significa que nadie sabe cuál causó el cambio. Ajustar con el conjunto de comunicación de resultados hace que la defensa parezca mejor de lo que es frente a ataques nuevos. Ignorar los rechazos indebidos oculta costes, como el clasificador que bloqueaba correos legítimos de transportistas en Corvane. Un plan de evaluación con uno de estos defectos debe corregirse antes de que los resultados lleguen a quien toma la decisión.
Ejercicios
- EX026 — Diseño. Diseñe una evaluación controlada de dos enfoques de control de acceso en RAG. Rúbrica: 3 = variables fijas, conjuntos, métricas, tamaño de la muestra; 2 = tres; 1 = uno o dos; 0 = nada.
- EX027 — Factores de confusión. Enumere cuatro factores de confusión y cómo controlarlos. Rúbrica: 3 = cuatro con sus controles; 2 = tres; 1 = uno o dos; 0 = ninguno.
- EX028 — Laboratorio de envenenamiento. Interprete las filas de puerta trasera del laboratorio. Rúbrica: 3 = el éxito del ataque crece con los puntos, la exactitud limpia se mantiene plana, implicación para la monitorización; 2 = dos; 1 = uno; 0 = incorrecto.
- EX029 — Disyuntiva. ¿Debe Corvane mantener el clasificador en la ruta de bloqueo? Justifíquelo. Rúbrica: 3 = usa tanto los resultados de ataque como los de finalización; 2 = uno; 1 = afirmación; 0 = nada.
- EX030 — Informe. Redacte el párrafo de resultados del §6.5. Rúbrica: 3 = tasas, intervalos o tamaños, efectos secundarios, condiciones, implicación; 2 = cuatro; 1 = dos; 0 = nada.
Síntesis
La evaluación controlada cambia una sola cosa cada vez, usa conjuntos adaptativos reservados, mide los efectos y los efectos secundarios, y comunica los resultados de una forma que orienta la decisión.
Siga estudiando — capítulo 06 de 12
← Capítulo 05 (borrador) · Índice de capítulos del curso · Capítulo 07 (borrador) →