098 — Procedencia, marcas y autenticidad

← Clase anterior · Índice de la parte · Clase siguiente →

Parte: 07 — IA generativa para texto, imagen, audio, video y 3D
Nivel: avanzado · Horas estimadas: 6
Laboratorio: safety · Estado: EXECUTABLE_CORE

🎯 Propósito

Comprender procedencia, marcas y autenticidad dentro de la evolución de la inteligencia artificial, implementar un experimento mínimo verificable y distinguir qué parte constituye evidencia frente a una afirmación todavía no comprobada.

📚 Resultados de aprendizaje

Al finalizar podrás:

  1. Explicar procedencia, marcas y autenticidad usando los conceptos C2PA, watermark, provenance, autenticidad.
  2. Ejecutar el laboratorio con una semilla explícita y revisar su contrato JSON.
  3. Identificar al menos un supuesto, una limitación y un riesgo de aplicación.
  4. Comparar el enfoque con la etapa anterior de la ruta de aprendizaje.
  5. Producir una evidencia reproducible y una conclusión que no exceda los datos.

🧩 Conceptos centrales

C2PA, watermark, provenance, autenticidad

🗺️ Ubicación en el mapa de la IA

Cuando los generadores de las clases 088–096 producen contenido indistinguible del humano, la pregunta "¿quién hizo esto y cómo?" deja de poder responderse mirando el contenido. Esta clase estudia las dos respuestas de la ingeniería: procedencia activa (C2PA: metadatos firmados criptográficamente que viajan con el activo) y marcas de agua estadísticas (SynthID, esquemas tipo Kirchenbauer: sesgos imperceptibles insertados durante la generación). Ambas alimentan directamente el pipeline trazable del proyecto integrador (clase 099) y la mitigación de la contaminación de corpus (clase 097).

📖 Fundamentos

📜 Procedencia activa: C2PA

C2PA (Coalition for Content Provenance and Authenticity) define un formato de manifiesto que se adjunta al activo (imagen, video, audio, PDF) y registra su historia. La estructura esencial:

Cada edición añade un nuevo manifiesto que referencia (y contiene el hash de) el manifiesto anterior, formando una cadena de procedencia. Verificar = recalcular el hash del activo, compararlo con el hard binding, y validar las firmas de toda la cadena. Cualquier alteración de los bytes rompe el hash; cualquier alteración del manifiesto rompe la firma.

verificar(activo):
    m ← extraer_manifiesto(activo)
    si hash(contenido) ≠ m.hard_binding → INVÁLIDO (contenido alterado)
    para cada eslabón de la cadena:
        si no verifica_firma(eslabón) → INVÁLIDO (manifiesto alterado)
        si hash(eslabón_previo) ≠ referencia → INVÁLIDO (cadena rota)
    devolver cadena de procedencia verificada

Importante: C2PA acredita quién firmó y qué proceso declaró, no que el contenido sea "verdadero". Y su ausencia no prueba nada: la mayoría del contenido legítimo no lleva manifiesto.

💧 Marcas de agua estadísticas para texto

Un LLM genera token a token muestreando de una distribución. El esquema de Kirchenbauer et al. (2023) inserta una marca invisible sesgando ese muestreo:

  1. Antes de emitir el token t, se usa un hash del token anterior como semilla para partir el vocabulario en una lista verde (fracción γ) y una lista roja (1−γ).
  2. Se suma un sesgo δ > 0 al logit de todos los tokens verdes y se muestrea normalmente.
  3. El texto resultante contiene más tokens verdes de lo esperable por azar, sin que un lector lo note.

Detección = test de hipótesis. Bajo H₀ (texto sin marca), cada token es verde con probabilidad γ, así que el conteo de verdes k en T tokens sigue Binomial(T, γ). El estadístico:

z = (k − γT) / sqrt(T · γ · (1 − γ))

Un z grande (p. ej. ≥ 4) hace H₀ insostenible. El detector solo necesita la clave del hash, no el modelo. SynthID-Text (Dathathri et al., Nature 2024) generaliza la idea con tournament sampling y está desplegado en producción en Gemini; SynthID también cubre imagen y audio con perturbaciones imperceptibles decodificables.

🔍 Detección pasiva vs procedencia activa

Limitaciones reales de todas las vías: el recorte y la recompresión destruyen metadatos no anclados; parafrasear o traducir un texto marcado diluye la señal verde; el lavado de marca (regenerar el contenido con otro modelo sin marca) la elimina; y quitar un manifiesto C2PA es trivial — la garantía es unidireccional: presencia válida ⇒ procedencia verificada; ausencia ⇏ contenido humano.

🧮 Ejemplo trabajado

Test de una marca tipo greenlist con γ = 0.5 sobre un texto de T = 100 tokens en el que el detector cuenta k = 70 tokens verdes.

Esperado bajo H₀:      γT = 0.5 · 100 = 50 verdes
Varianza bajo H₀:      T·γ·(1−γ) = 100 · 0.5 · 0.5 = 25   →  σ = 5
Estadístico:           z = (70 − 50) / 5 = 4.0

Un z = 4.0 corresponde a un p-valor unilateral ≈ 3.2 × 10⁻⁵: si el texto no tuviera marca, ver 70+ verdes ocurriría unas 3 veces en 100 000 textos. Se rechaza H₀ y se declara la marca presente. Contraste: con k = 55 verdes, z = 1.0 — perfectamente compatible con el azar; y si un parafraseador reescribe la mitad del texto llevando los verdes de 70 a ~60, z cae a 2.0 y la evidencia se vuelve débil. La detección es un continuo de confianza, no un sello binario.

📊 Propiedades y comparación

Mecanismo Cooperación del generador Garantía Sobrevive a recompresión Sobrevive a paráfrasis/lavado Falsos positivos
C2PA (manifiesto firmado) sí (firma en origen) criptográfica no (si se eliminan metadatos) no (se elimina el manifiesto) ≈ 0 (firma inválida es detectable)
Marca de agua en texto (greenlist) sí (sesgo al muestrear) estadística (z-score) sí (el texto es la señal) parcial: se diluye controlables vía umbral z
SynthID imagen/audio sí (perturbación decodificable) estadística parcial (robusta a compresión moderada) no ante regeneración bajos, medidos
Detección pasiva no heurística depende del artefacto no altos y sesgados
flowchart LR
    G["Generador"] -->|"sesgo greenlist δ"| T["Texto marcado"]
    G -->|"manifiesto + firma"| M["Activo + C2PA"]
    T --> D1["Detector: cuenta k verdes<br/>z = (k−γT)/√(Tγ(1−γ))"]
    D1 -->|"z ≥ umbral"| W1["marca presente"]
    D1 -->|"z < umbral"| W2["sin evidencia"]
    M --> D2["Verificador: hash + firmas"]
    D2 -->|"cadena válida"| V1["procedencia verificada"]
    D2 -->|"hash o firma rotos"| V2["alterado / sin procedencia"]

⚠️ Errores conceptuales frecuentes

  1. "C2PA demuestra que una imagen es real." No: demuestra quién firmó qué proceso. Una imagen generada por IA puede llevar un manifiesto C2PA perfectamente válido que declara, honestamente, que fue generada.
  2. "Sin marca de agua ⇒ escrito por un humano." La ausencia de señal no es evidencia de origen humano: la mayoría de los generadores no marcan, y las marcas se pueden lavar.
  3. "La marca de agua está en las palabras elegidas 'raras'." El texto marcado es fluido y natural; la señal es un sesgo estadístico agregado sobre cientos de tokens, invisible token a token.
  4. "Un detector pasivo de 'texto de IA' con 95 % de accuracy es fiable." Con prevalencia baja y costo alto del falso positivo (acusar a un estudiante), esa cifra es inutilizable; además el sesgo contra hablantes no nativos está documentado.
  5. "El hash del manifiesto protege contra el recorte." El hard binding detecta la alteración, pero no la impide ni la revierte: un activo recortado simplemente queda sin procedencia verificable.

🚀 Del aprendizaje a la operación

Para operar esto de verdad faltan: una PKI con emisión y revocación de certificados de firmante (¿quién decide qué firmas son confiables?), umbrales de z calibrados sobre la tasa de falsos positivos tolerable por caso de uso, medición de robustez de la marca frente a paráfrasis y traducción con corpus adversarios, y una política de visualización para el usuario final (Content Credentials) que no sobreinterprete la ausencia de manifiesto. La estandarización (C2PA 2.x) avanza más rápido que la adopción.

🧪 Laboratorio

python lab.py

El laboratorio llama a ai_evolution.labs.run_lab("safety"). Esta decisión evita 183 implementaciones divergentes: cada clase tiene un entrypoint propio, pero los motores didácticos se prueban como una biblioteca común.

🔍 Evidencia esperada

📓 Notebooks

📝 Evaluación

Criterio Peso
Comprensión conceptual 25 %
Ejecución reproducible 25 %
Interpretación basada en evidencia 25 %
Riesgos, límites y mejora propuesta 25 %

Consulta assessment.md para preguntas y criterio de aceptación.

⚠️ Errores comunes

Síntoma Causa probable Corrección
El código corre, pero no hay conclusión Se confundió ejecución con aprendizaje Explica qué demuestra y qué no demuestra
El resultado cambia sin explicación No se registró semilla o configuración Conserva semilla, versión y parámetros
Se promete uso real Se extrapoló desde una demo educativa Declara entorno, datos, límites y revisión humana
Se copia una métrica aislada No existe baseline ni costo de error Añade comparación y criterio de decisión

❓ Preguntas frecuentes

¿Debo usar una API comercial?
No. El núcleo funciona localmente. Las extensiones LIVE se documentan por separado.

¿El laboratorio representa una implementación industrial?
No por sí solo. Enseña el contrato y el patrón; producción exige integración, seguridad, observabilidad, pruebas y operación.

¿Dónde profundizo?
Revisa las especializaciones enlazadas en el README raíz y la ruta siguiente.

🔗 Referencias


📜 Papers que fundamentan esta clase

Bloque generado por python scripts/link_papers_to_classes.py. La fuente es papers/catalog/papers.json.

Paper Año Qué desbloqueó Miniatura
P131 · Una marca de agua para modelos de lenguaje grandes 2023 Deja una firma estadística verificable en el texto generado sesgando qué tokens se eligen, sin degradar apreciablemente la calidad ni necesitar el modelo para detectarla. notebook

Cada ficha explica el problema anterior, la matemática mínima, los límites y los errores de atribución más frecuentes. Para leerlas con método: cómo leer un paper de IA · anexos matemáticos.


📚 Bibliografía de apoyo

Bloque generado por python scripts/link_sources_to_classes.py. Cada obra lleva su localizador verificado en sources/bibliography.json.

Los papers dicen de dónde salió el mecanismo. Estas obras lo desarrollan con el espacio que una clase no tiene: teoría completa, demostraciones y ejercicios.

Obra Edición Localizador Papel en esta clase
Goodfellow, Ian, Bengio, Yoshua y Courville, Aaron — Deep Learning 2016 ISBN 9780262035613 · web de la obra obra de referencia de la parte 07 · capítulos de modelos generativos

Normas y documentación oficial que aplica esta clase: c2pa.org/specifications


⬅️ Clase anterior

097 — Datos sintéticos: utilidad y contaminación

➡️ Siguiente clase

099 — Proyecto: pipeline creativo trazable


📝 Evaluación completa

❓ Preguntas

  1. Define procedencia, marcas y autenticidad sin usar una marca o framework como definición.
  2. Explica la relación entre C2PA, watermark, provenance, autenticidad.
  3. Ejecuta lab.py dos veces con la misma semilla. ¿Qué debe conservarse?
  4. Identifica una afirmación permitida y una afirmación exagerada sobre el resultado.
  5. Propón una prueba negativa o un caso límite.

🏆 Reto verificable

Amplía el resultado del laboratorio con una clave student_extension que incluya:

✅ Criterio de aceptación