Mapa de la lección
Lección 04 publicada. Mapa, ejemplo, EX021.
flowchart TD
N0["Resultados de aprendizaje"]
N1["4.1 Por qué replicar primero"]
N2["4.2 Un protocolo de replicación"]
N3["4.3 Estudios piloto"]
N4["4.4 Ingeniería del entorno de evaluación"]
N5["4.6 Actividades de práctica"]
N6["Síntesis del capítulo"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6
N6 --> EX["Ejemplo resuelto"]
EX --> Q["Ejercicio EX021"]
Dibujo lógico
flowchart LR
N0["Resultados de aprendizaje"]
N1["4.1 Por qué replicar primero"]
N2["4.2 Un protocolo de replicación"]
N3["4.3 Estudios piloto"]
N4["4.4 Ingeniería del entorno de evaluación"]
N5["4.6 Actividades de práctica"]
N6["Síntesis del capítulo"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX021"]
[Resultados de aprendizaje]
|
v
[4.1 Por qué replicar primero]
|
v
[4.2 Un protocolo de replicación]
|
v
[4.3 Estudios piloto]
|
v
[4.4 Ingeniería del entorno de evaluación]
|
v
[4.6 Actividades de práctica]
|
v
[Síntesis del capítulo]
|
v
[Ejemplo resuelto] --> [Ejercicio EX021]
Resultados de aprendizaje
Usted podrá (1) reproducir un resultado publicado de seguridad de la IA y clasificar el desenlace (reproducido, parcialmente reproducido, no reproducido); (2) documentar cada desviación; (3) realizar un estudio piloto que estime la varianza y el tamaño de la muestra; (4) construir un entorno de evaluación versionado y determinista cuando sea posible; y (5) decidir, a partir de la evidencia del piloto, si continuar, revisar o detenerse.
4.1 Por qué replicar primero
Su contribución se comparará con el trabajo previo, así que debe saber qué hace realmente ese trabajo en su entorno. La replicación detecta tres problemas habituales: cifras publicadas que dependen de configuraciones no documentadas, líneas de base más débiles de lo comunicado y código de evaluación que mide algo distinto de lo que da a entender el texto del artículo. Pineau et al. (arXiv:2003.12206) informaron sobre el programa de reproducibilidad de NeurIPS 2019 y su lista de comprobación; Henderson et al. (arXiv:1709.06560) mostraron, en aprendizaje por refuerzo, que las semillas aleatorias y los detalles de implementación bastan por sí solos para cambiar las conclusiones. Use términos precisos: repetibilidad (mismo equipo, misma configuración), reproducibilidad (otro equipo, mismos artefactos), replicabilidad (otro equipo, artefactos o datos nuevos). Diga cuál intentó.
4.2 Un protocolo de replicación
Las API de modelos alojados complican la replicación porque el modelo que hay detrás de un punto de acceso puede cambiar. Prefiera para el estudio principal puntos de control locales de pesos abiertos identificados por su hash, y trate los resultados de las API como observaciones con fecha y hora. Los cinco pasos siguientes se aplican a cada línea de base de la tesis. Los pasos 1 y 2 hacen identificable la ejecución, el paso 3 da el punto de comparación, el paso 4 explica cualquier diferencia y el paso 5 enuncia el desenlace en los términos definidos en 4.1. La replicación de Ana en 4.5 los sigue, incluido el diagnóstico de un factor cada vez que aisló la temperatura.
- Congele el objetivo. Registre la versión del artículo, el commit del código, los hashes de los puntos de control del modelo, la versión del conjunto de datos y la licencia.
- Recree el entorno. Fije las versiones de las bibliotecas; registre el hardware y la configuración numérica; anote las fuentes de no determinismo (núcleos de GPU, temperatura de muestreo, actualizaciones del modelo de la API).
- Ejecute tal como se publicó. Primero, sin cambios. Registre el resultado con intervalos a lo largo de al menos tres semillas.
- Diagnostique las diferencias. Si las cifras difieren, cambie un factor cada vez y registre cada ejecución.
- Clasifique y comunique. Un resultado está reproducido si su intervalo se solapa con el valor publicado y la conclusión cualitativa se mantiene; parcialmente si la dirección se mantiene pero el tamaño difiere de forma sustancial; no reproducido en otro caso. Contacte con cortesía con los autores antes de publicar un fracaso.
4.3 Estudios piloto
Un piloto no es un estudio principal pequeño; estima lo que necesita para diseñar el estudio principal. Mida la varianza de la métrica principal entre semillas y tareas, estime el tamaño del efecto, compruebe que el entorno registra todo lo necesario y cronometre cada ejecución. Use el piloto para calcular el tamaño de la muestra. Para una tasa cercana al 10 % y una semiamplitud objetivo del intervalo al 95 % de 2 puntos porcentuales, la aproximación normal da n ≈ 1,96² × 0,1 × 0,9 / 0,02² ≈ 864 ensayos por condición. Los pilotos también revelan patologías de la métrica: por ejemplo, un juez LLM que etiqueta las negativas como «defensa con éxito» aunque la llamada a la herramienta ya se haya producido. Corrija la medición, no el resultado.
4.4 Ingeniería del entorno de evaluación
Un entorno de evaluación debe ser determinista dada una semilla, escribir un registro JSON por ensayo (identificador de la tarea, condición, semilla, hash del modelo, versión de la plantilla de instrucciones, referencia a la transcripción completa, llamadas a herramientas, etiquetas) y mantener las etiquetas separadas de los resultados para que los evaluadores no vean los nombres de las condiciones. Ponga el conjunto de prueba sellado detrás de un paso de acceso aparte para que no pueda cargarse durante el desarrollo. Añada canarios: cargas útiles que siempre deberían tener éxito contra la línea de base sin defensa; si fallan, el entorno de evaluación o el entorno de ejecución está roto. La corrección del evaluador de Ana es un ejemplo.
4.5 Ejemplo resuelto (caso sintético del MAAL)
Ana replicó una defensa estructural publicada. Tal como se publicó, midió una ASR del 4,1 % contra la lista de cargas útiles del artículo (artículo: 1,0 %); con tres semillas el intervalo fue del 3,2 % al 5,2 %, así que no se reprodujo en tamaño. El diagnóstico mostró que el artículo usaba temperatura 0, mientras que la configuración publicada usaba 0,7; con temperatura 0 obtuvo un 1,4 % (del 0,9 % al 2,1 %), reproducido según el protocolo de 4.2, con el cambio de configuración registrado como desviación. Frente a sus ataques adaptativos, la defensa llegó a una ASR del 19 %. Escribió a los autores, que confirmaron la configuración de temperatura y le dieron las gracias. El piloto (90 tareas por condición) dio una desviación típica por condición de unos 1,7 puntos entre semillas y un efecto de la separación de aproximadamente 12 puntos, así que fijó el estudio principal en 900 tareas por condición y cinco semillas, amplió el conjunto de evaluación sellado respecto a las 600 tareas de la propuesta y registró el cambio. El piloto también reveló que su evaluador contaba una llamada a herramienta como bloqueada si la respuesta final contenía una negativa; reescribió el evaluador para que leyera directamente los registros de llamadas a herramientas.
El laboratorio de envenenamiento ilustra por qué los pilotos deben medir más de una métrica: a medida que aumentan los puntos de puerta trasera, la exactitud con datos limpios apenas se mueve, mientras el éxito del ataque sobre entradas con disparador sube del 7,5 % al 98 %. Un piloto que solo siguiera la exactitud con datos limpios pasaría por alto el ataque por completo.
"""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
4.6 Actividades de práctica
- Elija una línea de base para su tesis y ejecute los pasos 1 a 3 del protocolo. 2. Calcule un tamaño de muestra a partir de la varianza de su piloto. 3. Añada canarios y etiquetas ciegas a su entorno de evaluación. Para la replicación, registre la versión del artículo, el commit, los hashes de los puntos de control y el conjunto de datos antes de ejecutar nada, y después ejecute tal como se publicó con al menos tres semillas. Clasifique el desenlace con las tres categorías del protocolo y anote cada desviación. Para el tamaño de la muestra, use la fórmula de la discusión sobre el piloto con su propia varianza y su intervalo objetivo. Para el entorno de evaluación, confirme que los canarios tienen éxito contra la línea de base sin defensa y que los evaluadores no pueden ver los nombres de las condiciones.
4.7 Errores y límites
Cada uno de estos errores corrompe la evidencia:
- Cambiar varias configuraciones a la vez al diagnosticar una diferencia; eso habría ocultado que la temperatura, por sí sola, explicaba la diferencia de Ana.
- Tratar una replicación fallida como prueba de que el original estaba equivocado sin contactar con los autores; el fallo puede deberse a su entorno, así que contacte primero con ellos.
- Usar un punto de acceso de una API alojada como un artefacto fijo; puede cambiar de modelo sin aviso, así que sus resultados son observaciones con fecha y hora.
- Dejar que los evaluadores vean los nombres de las condiciones, de modo que pueden favorecer la defensa.
- Datos del piloto que se filtran al conjunto de prueba sellado, lo que hace que el estudio principal quede en parte ajustado sobre su propia prueba.
Ejercicios — capítulo 4
- EX021 — Términos. Defina repetibilidad, reproducibilidad y replicabilidad en una línea cada una. Rúbrica: 3 = las tres correctas; 2 = dos; 1 = una; 0 = ninguna.
- EX022 — Clasificar. ASR publicada del 1,0 %; su intervalo con tres semillas, del 0,9 % al 2,1 %, con la misma conclusión. Clasifique y justifique. Rúbrica: 3 = reproducido o parcialmente reproducido, con un razonamiento justificado sobre el solapamiento y el tamaño; 2 = solo la etiqueta; 1 = incorrecto pero razonado; 0 = ninguno.
- EX023 — Tamaño de la muestra. Calcule n por condición para una tasa cercana al 20 % y una semiamplitud de 3 puntos (95 %). Rúbrica: 3 = ≈683 con la fórmula; 2 = error aritmético; 1 = solo la fórmula; 0 = ninguno.
- EX024 — Lectura del laboratorio. En el laboratorio de envenenamiento, ¿cuáles son la exactitud con datos limpios y el éxito del ataque con 40 puntos envenenados, y qué enseña eso sobre la supervisión? Rúbrica: 3 = 0,963 y 0,685; las métricas con datos limpios ocultan las puertas traseras; 2 = solo los números; 1 = vago; 0 = incorrecto.
- EX025 — Canarios. Explique qué es un canario de evaluación y qué significa si falla. Rúbrica: 3 = ensayo de resultado conocido; el fallo indica una avería del entorno de evaluación o de ejecución, detenerse; 2 = solo la definición; 1 = vago; 0 = incorrecto.
- EX026 — Error del evaluador. ¿Por qué contar las negativas en la respuesta final no es una medida válida del bloqueo de llamadas a herramientas? Rúbrica: 3 = el efecto secundario dañino puede haberse producido ya; medir las acciones a partir de los registros; 2 = parcial; 1 = vago; 0 = incorrecto.
Síntesis del capítulo
La replicación le dice qué hace realmente el trabajo previo en sus manos; el piloto le dice qué tamaño debe tener el estudio principal y si sus mediciones son sólidas. Ambos son evidencia por derecho propio y pertenecen a la tesis.
Siga estudiando — capítulo 04 de 08
← Capítulo 03 (borrador) · Índice de capítulos del curso · Capítulo 05 (borrador) →