SynthID: Herramientas para agregar marcas de agua y detectar texto generado por LLM

La Inteligencia Artificial generativa (IA generativa) puede generar una gama más amplia de contenido diverso a escalas que antes no se habían imaginado. 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. Marcas de agua imperceptibles para el ser humano al contenido generado por IA, y los modelos de detección pueden calificar contenido para indicar la probabilidad de que tenga una marca de agua.

SynthID es una tecnología de Google DeepMind que crea marcas de agua y identifica el contenido generado por IA incorporando marcas de agua digitales directamente en Imágenes, audio, texto o video generados por IA. El texto SynthID es de código abierto para que los desarrolladores tengan acceso a las marcas 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 una implementación de nivel de producción de SynthID Text disponible en la Hugging Face Transformers v4.46.0 y versiones posteriores, que puedes probar en el espacio de texto de SynthID oficial. Una implementación de referencia también está disponible en GitHub que puede ser útil para aplicaciones encargados de mantenimiento y colaboradores que buscan aplicar esta técnica a otras los frameworks de IA.

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 equilibra la calidad de la generación con la detectabilidad de la marca de agua. 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 modelo que uses debe tienen su propia configuración de marcas de agua, deben almacenarse de forma segura y privada; de lo contrario, es posible que la marca de agua que otras personas pueden replicar.

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 solidez y la detección. cuanto más alto sea el valor, más detectable será la marca de agua de ser más frágiles 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 y sampling_table_seed Quieres usar una sampling_table_size de al menos \( 2^{16} \) para garantizar una función g imparcial y estable durante el muestreo, 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 como sampling_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 logit de texto de SynthID. Consulta la entrada de blog y Espacio para ejemplos de código. que muestra cómo aplicar una marca de agua en la biblioteca de Transformers.

Detección y verificabilidad de marcas de agua

La detección de marcas de agua es probabilística. Se proporciona un detector bayesiano Transformers Hugging Face y otras opciones GitHub: Este detector puede generar tres estados de detección posibles: con marca de agua, sin marca de agua o incierto, y se puede personalizar el comportamiento configurando dos valores de umbral. Consulta el Apéndice C.8 en el paper para obtener más detalles.

Puedes ajustar los umbrales para lograr una tasa específica de falsos positivos y falsos negativos en un conjunto de instrucciones o una longitud. Consulta el Apéndice C.8 en el artículo para obtener más información.

Una vez que tengas un detector entrenado, puedes elegir si quieres exponerlo para tus usuarios y para el público en general.

  • 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 public libera el detector para que otros lo descarguen y usen.

Tú y tu organización deben decidir qué enfoque de verificación de detección que mejor se adapte a tus necesidades, según tu capacidad para atender las necesidades infraestructura y procesos.

Limitaciones

Las marcas de agua de texto SynthID son sólidas para algunas transformaciones: recortes del texto, la modificación de algunas palabras o una paráfrasis leve, pero este método no tienen limitaciones.

  • La aplicación de marcas de agua es menos eficaz en las respuestas fácticas, ya que hay menos oportunidades de 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.

El texto SynthID no está diseñado para evitar directamente que los adversarios motivados causen o dañar a otras personas. Sin embargo, puede dificultar el uso del contenido generado por IA y puede combinarse con otros enfoques para brindar una mejor cobertura en varios tipos de contenido y plataformas.