Capítulo 7 — Síntesis de la tesis y archivo de reproducibilidad
Mapa de la lección
Lección 07 publicada. Mapa, ejemplo, EX039.
flowchart TD
N0["Resultados de aprendizaje"]
N1["7.1 La tesis como argumento"]
N2["7.2 Amenazas a la validez"]
N3["7.3 El archivo de reproducibilidad"]
N4["7.4 Decisiones de publicación"]
N5["7.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 EX039"]
Dibujo lógico
flowchart LR
N0["Resultados de aprendizaje"]
N1["7.1 La tesis como argumento"]
N2["7.2 Amenazas a la validez"]
N3["7.3 El archivo de reproducibilidad"]
N4["7.4 Decisiones de publicación"]
N5["7.6 Actividades de práctica"]
N6["Síntesis del capítulo"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX039"]
[Resultados de aprendizaje]
|
v
[7.1 La tesis como argumento]
|
v
[7.2 Amenazas a la validez]
|
v
[7.3 El archivo de reproducibilidad]
|
v
[7.4 Decisiones de publicación]
|
v
[7.6 Actividades de práctica]
|
v
[Síntesis del capítulo]
|
v
[Ejemplo resuelto] --> [Ejercicio EX039]
Resultados de aprendizaje
Usted podrá (1) estructurar una tesis de modo que cada capítulo responda a una pregunta de investigación con evidencia; (2) redactar un capítulo de síntesis que enuncie las contribuciones, las limitaciones y las amenazas a la validez; (3) construir un archivo de reproducibilidad (código, configuraciones, fichas de datos, fichas de modelos, hashes, registros); (4) decidir qué publicar, qué someter a acceso controlado y qué retener; y (5) verificar que un desconocido puede regenerar los resultados principales.
7.1 La tesis como argumento
Una tesis es un único argumento, no un álbum de recortes de artículos. Empiece con el problema y la laguna (capítulo 2), enuncie las preguntas de investigación y las contribuciones, y después dé a cada capítulo empírico una pregunta y su respuesta. Cierre con una síntesis que integre: qué se sabe ahora que no se sabía; en qué condiciones; qué sigue abierto. Cuando la tesis incluya artículos publicados, añada texto de enlace que explique cómo encajan en el conjunto el modelo de amenazas y la terminología de cada artículo, y armonice los términos para que «tasa de éxito del ataque» signifique una sola cosa en toda la tesis.
7.2 Amenazas a la validez
Organice las limitaciones por tipo de validez. Validez interna: ¿podría algo distinto del tratamiento explicar el efecto (sesgo del evaluador, fuga, efectos de las semillas)? Validez de constructo: ¿mide la métrica la propiedad (capta el daño una «llamada no autorizada a herramienta»)? Validez externa: ¿se transfiere el resultado a otros modelos, herramientas, idiomas y patrones de despliegue? Validez de la conclusión: ¿es adecuada la estadística (potencia, multiplicidad, dependencia entre tareas)? En seguridad de la IA, añada la validez adversarial: ¿se probó de verdad el adversario razonable más fuerte dentro del modelo de amenazas? Para cada amenaza, indique qué hizo al respecto y qué queda pendiente.
7.3 El archivo de reproducibilidad
El archivo es el artefacto que permite a otro investigador regenerar sus figuras. Incluya: un README con los comandos exactos; el entorno (archivos de bloqueo de dependencias, receta del contenedor, notas sobre el hardware); el código en un commit etiquetado; los archivos de configuración de cada ejecución; los identificadores de los modelos y los hashes SHA-256 de los puntos de control que usó (no necesariamente los pesos, si la licencia prohíbe redistribuirlos); los conjuntos de datos o sus generadores con fichas técnicas (datasheets; Gebru et al., arXiv:1803.09010); fichas de modelo (model cards) para cualquier modelo que publique (Mitchell et al., arXiv:1810.03993); los registros brutos por ensayo o una razón documentada para retenerlos; el cuaderno o script de análisis que convierte los registros en tablas; y un manifiesto con el hash de cada archivo. Archive en un repositorio que asigne identificadores persistentes y elija las licencias de forma deliberada (el código, los datos y el texto pueden necesitar licencias distintas).
7.4 Decisiones de publicación
Aplique a los artefactos finales la tabla de publicación del capítulo 3. El código de la defensa, el entorno de evaluación, los generadores de tareas sintéticas y los scripts de análisis suelen ser públicos. Los corpus de cargas útiles adaptativas pueden someterse a acceso controlado (acceso a petición para investigadores verificados, con condiciones). Todo lo específico de un producto en servicio con nombre espera a que concluya la divulgación coordinada. No incluya datos personales. Si censura algo, diga qué se censuró y por qué, para que los revisores puedan juzgar el efecto sobre la reproducibilidad. La publicación de Ana siguió este patrón: entorno de evaluación y defensa públicos, corpus de cargas útiles con acceso controlado, tal como había previsto en su propuesta.
7.5 Ejemplo resuelto (caso sintético del MAAL)
El README del archivo de Ana contiene tres comandos: construir el contenedor, ejecutar make pilot (unas 2 horas de GPU) y make main (unas 140 horas de GPU), y después make tables. Un objetivo smoke vuelve a ejecutar 30 tareas por condición en diez minutos y comprueba que las cifras quedan dentro de tolerancias almacenadas. El manifiesto enumera 1.412 archivos con sus hashes. Un compañero de laboratorio que no había visto el proyecto siguió el README en una máquina nueva; la prueba de humo falló porque había cambiado la versión de un tokenizer, y se corrigió el archivo de bloqueo. El capítulo de síntesis de Ana enumera sus contribuciones como (1) evidencia de que la separación añade una reducción medible además de las herramientas con mínimo privilegio, (2) un entorno de evaluación de ataques adaptativos y (3) el descubrimiento de los ecos por encadenamiento de herramientas como familia residual; entre las amenazas figuran que solo hay tres modelos de dos familias y que las tareas son sintéticas.
El laboratorio de estadística sirve también como comprobación del archivo: un revisor puede ejecutarlo y obtener exactamente las cifras impresas porque todos los generadores aleatorios tienen semilla.
"""Lab S: reporting attack-success rates honestly: Wilson intervals,
seed variation and a paired bootstrap. Synthetic trial outcomes only."""
import math, random
def wilson(k, n, z=1.96):
p = k/n; d = 1 + z*z/n
c = (p + z*z/(2*n))/d; h = z*math.sqrt(p*(1-p)/n + z*z/(4*n*n))/d
return c - h, c + h
for k, n in ((3, 20), (30, 200), (300, 2000)):
lo, hi = wilson(k, n); print(f"successes={k}/{n} rate={k/n:.3f} wilson95=[{lo:.3f}, {hi:.3f}]")
# five seeds of a synthetic defence evaluation: per-seed attack success rate
rates = []
for seed in range(5):
r = random.Random(seed); rates.append(sum(r.random() < 0.12 for _ in range(200))/200)
m = sum(rates)/5; sd = math.sqrt(sum((x-m)**2 for x in rates)/4)
print("per-seed rates:", " ".join(f"{x:.3f}" for x in rates), f"mean={m:.3f} sd={sd:.3f}")
# paired bootstrap: baseline vs defence on the same 300 synthetic prompts
r = random.Random(42)
base = [r.random() < 0.30 for _ in range(300)]
defn = [b and r.random() < 0.6 for b in base] # defence blocks ~40% of successes
diffs = []
for _ in range(2000):
idx = [r.randrange(300) for _ in range(300)]
diffs.append(sum(base[i] for i in idx)/300 - sum(defn[i] for i in idx)/300)
diffs.sort()
print(f"baseline_asr={sum(base)/300:.3f} defended_asr={sum(defn)/300:.3f} "
f"reduction_ci95=[{diffs[50]:.3f}, {diffs[1949]:.3f}]")
Salida esperada:
successes=3/20 rate=0.150 wilson95=[0.052, 0.360]
successes=30/200 rate=0.150 wilson95=[0.107, 0.206]
successes=300/2000 rate=0.150 wilson95=[0.135, 0.166]
per-seed rates: 0.110 0.130 0.135 0.105 0.145 mean=0.125 sd=0.017
baseline_asr=0.350 defended_asr=0.190 reduction_ci95=[0.120, 0.203]
7.6 Actividades de práctica
- Escriba las contribuciones y la tabla de validez de su capítulo de síntesis. 2. Construya un manifiesto de los archivos de su proyecto con hashes SHA-256. 3. Pida a un compañero que reproduzca una figura solo a partir de su README, y registre lo que falló. Para la tabla de validez, use los cinco tipos e indique para cada amenaza qué hizo y qué queda pendiente, como hizo Ana con las familias de modelos y las tareas sintéticas. Para el manifiesto, calcule el hash de cada archivo del archivo y guarde la lista con él. Para la prueba con el compañero, entregue solo el README y una máquina nueva; registre cada fallo y su corrección, como la ejecución del compañero de Ana descubrió el cambio del tokenizer.
7.7 Errores y límites
Cada uno de estos errores debilita el archivo o el argumento:
- Tesis cuyos capítulos usan métricas o modelos de amenazas incoherentes, lo que hace imposible comparar los capítulos.
- Limitaciones enumeradas sin la acción tomada, lo que deja al lector sin saber si se abordaron.
- Archivos que requieren el directorio personal del autor o una API sin versión fijada; fallan para los demás, como mostró el problema del tokenizer de Ana.
- Publicar pesos o datos infringiendo licencias o la privacidad, lo que puede obligar a retirarlos.
- Afirmar la reproducibilidad sin una ejecución por terceros; la reproducibilidad solo queda demostrada cuando otra persona vuelve a ejecutar el trabajo.
Una ejecución por un compañero de laboratorio en una máquina nueva, como la de 7.5, es la comprobación más barata contra varios de estos errores a la vez.
Ejercicios — capítulo 7
- EX039 — Validez. Dé una amenaza a la validez interna, una a la de constructo y una a la adversarial para el estudio de Ana, y una mitigación para cada una. Rúbrica: 3 = tres amenazas con mitigaciones; 2 = tres sin mitigaciones o dos con ellas; 1 = una; 0 = ninguna.
- EX040 — Lista del archivo. Enumere ocho elementos que debe contener un archivo de reproducibilidad. Rúbrica: 3 = ocho correctos; 2 = seis; 1 = tres; 0 = menos.
- EX041 — Ficha de modelo. Nombre cuatro secciones de una ficha de modelo. Rúbrica: 3 = cuatro de: detalles del modelo, uso previsto, factores, métricas, datos de evaluación, datos de entrenamiento, análisis cuantitativos, consideraciones éticas, advertencias; 2 = tres; 1 = una o dos; 0 = ninguna.
- EX042 — Hashes. ¿Por qué registrar los hashes de los puntos de control aunque no pueda redistribuir los pesos? Rúbrica: 3 = permite a otros verificar que usan el artefacto idéntico y detecta cambios silenciosos; 2 = parcial; 1 = vago; 0 = incorrecto.
- EX043 — Prueba de humo. Diseñe una prueba de humo para su archivo. Rúbrica: 3 = ejecución pequeña, semillas fijas, comparación con tolerancias, poco tiempo de ejecución, mensaje de fallo claro; 2 = tres elementos; 1 = vago; 0 = ninguno.
- EX044 — Reproducibilidad del laboratorio. ¿Qué propiedad del laboratorio de estadística hace que su salida sea exactamente reproducible, y qué la rompería? Rúbrica: 3 = generadores con semilla; aleatoriedad sin semilla, cambio de biblioteca o de versión en los algoritmos aleatorios; 2 = la primera parte; 1 = vago; 0 = incorrecto.
- EX045 — Censura. Redacte una nota de censura de un párrafo para un corpus de cargas útiles con acceso controlado. Rúbrica: 3 = qué, por qué, cómo solicitar el acceso, efecto sobre la reproducibilidad; 2 = tres; 1 = uno o dos; 0 = ninguno.
Síntesis del capítulo
La tesis argumenta; el archivo demuestra. Una tabla de validez clara y un archivo que un desconocido ha vuelto a ejecutar de verdad convierten un conjunto de experimentos en una contribución sobre la que otros pueden construir.
Siga estudiando — capítulo 07 de 08
← Capítulo 06 (borrador) · Índice de capítulos del curso · Capítulo 08 (borrador) →