La inteligencia artificial generativa (IA generativa) puede generar una variedad más amplia de contenido muy diverso a escalas que antes no se imaginaban. Si bien la mayoría de este uso es con fines legítimos, existe la preocupación de que pueda contribuir a problemas de información errónea y atribución incorrecta. La marca de agua es una técnica para mitigar estos posibles impactos. Las marcas de agua que son imperceptibles para los humanos se pueden aplicar al contenido generado por IA, y los modelos de detección pueden calificar contenido arbitrario para indicar la probabilidad de que tenga una marca de agua.
SynthID es una tecnología de Google DeepMind que agrega marcas de agua e identifica el contenido generado por IA incorporando marcas de agua digitales directamente en imágenes, audio, texto o video generados por IA. SynthID Text se convirtió en código abierto para que los desarrolladores puedan usar la marca de agua para la generación de texto. Puedes leer el artículo en Nature para obtener una descripción técnica más completa del método.
Hay disponible una implementación de nivel de producción de SynthID Text en la versión 4.46.0 o posterior de Hugging Face Transformers, que puedes probar en el espacio de texto de SynthID oficial. También hay disponible una implementación de referencia en GitHub que puede ser útil para los encargados del mantenimiento y los colaboradores de código abierto que quieran llevar esta técnica a otros frameworks.
Aplicación de marcas de agua
En términos prácticos, SynthID Text es un procesador de logits que se aplica a la canalización de generación de tu modelo después de Top-K y Top-P, que aumenta los logits del modelo con una función g pseudoaleatoria para codificar la información de la marca de agua de una manera que te ayude a determinar si el modelo generó el texto, sin afectar significativamente su calidad. Consulta el artículo para obtener una descripción técnica completa del algoritmo y análisis de cómo los diferentes valores de configuración afectan el rendimiento.
Las marcas de agua se configuran para parametrizar la función g y cómo se aplica durante la generación. Cada configuración de marca de agua que uses debe almacenarse de forma segura y privada. De lo contrario, es posible que otras personas puedan replicarla de forma sencilla.
Debes definir dos parámetros en cada configuración de marcas de agua:
- El parámetro
keys
es una lista de números enteros aleatorios únicos que se usan para calcular las puntuaciones de la función g en el vocabulario del modelo. La longitud de esta lista determina cuántas capas de marca de agua se aplican. Consulta el apéndice C.1 del artículo para obtener más detalles. - El parámetro
ngram_len
se usa para equilibrar la robustez y la detectabilidad. cuanto mayor sea el valor, más detectable será la marca de agua, a costa de ser más frágil a los cambios. Una longitud de 5 es un buen valor predeterminado.
Puedes configurar mejor la marca de agua según tus necesidades de rendimiento:
- Una tabla de muestreo se configura con dos propiedades,
sampling_table_size
ysampling_table_seed
. Debes usar unsampling_table_size
de al menos 216 para garantizar una función g imparcial y estable cuando se muestrea, pero ten en cuenta que el tamaño de la tabla de muestreo afecta la cantidad de memoria requerida en el momento de la inferencia. Puedes usar cualquier número entero que desees comosampling_table_seed
. - Los n-gramas repetidos en los tokens
context_history_size
anteriores no tienen marcas de agua para mejorar la detectabilidad.
No se requiere entrenamiento adicional para generar texto con una marca de agua de texto de SynthID con tus modelos, solo una configuración de marca de agua que se pasa al método .generate()
del modelo para activar el procesador de lógicas de texto de SynthID. Consulta la entrada de blog y Space para ver ejemplos de código que muestran cómo aplicar una marca de agua en la biblioteca de Transformers.
Verificación y detección de marcas de agua
La detección de marcas de agua es probabilística. Se proporciona un detector bayesiano con Hugging Face Transformers y en GitHub. Este detector puede generar tres estados de detección posibles: con marca de agua, sin marca de agua o incierto, y el comportamiento se puede personalizar configurando dos valores de umbral para lograr una tasa específica de falsos positivos y falsos negativos. Consulta el Apéndice C.8 en el artículo para obtener más detalles.
Los modelos que usan el mismo analizador de texto también pueden compartir la configuración y el detector de marcas de agua, lo que permite compartir una marca de agua común, siempre y cuando el conjunto de entrenamiento del detector incluya ejemplos de todos los modelos que comparten la marca de agua.
Una vez que tengas un detector entrenado, podrás elegir si exponerlo a tus usuarios y al público en general, y cómo hacerlo.
- La opción completamente privada no libera ni expone el detector de ninguna manera.
- La opción semiprivada no libera el detector, pero lo expone a través de una API.
- La opción público libera el detector para que otras personas lo descarguen y usen.
Tú y tu organización deben decidir qué enfoque de verificación de detección es el mejor para tus necesidades, en función de tu capacidad para admitir la infraestructura y los procesos asociados.
Limitaciones
Las marcas de agua de texto de SynthID son resistentes a algunas transformaciones, como recortar fragmentos de texto, modificar algunas palabras o reformular ligeramente, pero este método tiene limitaciones.
- La aplicación de marcas de agua es menos eficaz en las respuestas fácticas, ya que hay menos oportunidades para aumentar la generación sin disminuir la precisión.
- Las puntuaciones de confianza del detector pueden reducirse considerablemente cuando un texto generado por IA se reescribe por completo o se traduce a otro idioma.
SynthID Text no está diseñado para impedir directamente que los adversarios motivados causen daño. Sin embargo, puede dificultar el uso de contenido generado por IA con fines maliciosos y se puede combinar con otros enfoques para brindar una mejor cobertura en todos los tipos de contenido y plataformas.