◇ OpenCyber Academy
Investigación doctoral · Capítulo 7 · Español

Capítulo 7 — Síntesis de la tesis y archivo de reproducibilidad

Aprendizaje gratuito y abierto para quienes desean proteger a las personas y la tecnología. No se necesita una cuenta para estudiar ni consultar las respuestas.

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

  1. 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:

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

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) →