La Inteligencia Artificial generativa (IA generativa) tiene la capacidad de poder generar una gama más amplia de contenido altamente diverso a escalas que antes no se habían imaginado. Aunque 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 de igual forma, a atribución incorrecta. La marca de agua viene siendo 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. Es allí, donde SynthID juega un papel inherente.
Para ser más precisos, SynthID es una tecnología de Google DeepMind la cual logra identificar marcas de agua e identifica el contenido generado por Inteligencia Artificial (IA) mediante la incorporación directa de marcas de agua digitales en imágenes, audio, así como texto o videos generados por IA. SynthID Text se convirtió en código abierto para que los desarrolladores tengan la capacidad de poder usar la marca de agua para la generación de texto.
SynthID: una tecnología que identifica marcas de agua e identifica el contenido generado por IA
Es crucial señalar que 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 tiene la oportunidad de probar en el espacio de texto de SynthID oficial. Es de resaltar que también hay disponible una implementación de referencia en GitHub que puede ser útil para los mantenedores y colaboradores de código abierto que buscan llevar esta técnica a otros frameworks.
SynthID: aplicación de marcas de agua
En la práctica, SynthID Text viene siendo 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 forma que le ayude a determinar si el modelo generó el texto, y lo mejor de todo, sin afectar significativamente su calidad.
Se debe dejar claro que, 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 use debe almacenarse de forma segura y privada. De lo contrario, es posible que otras personas tengan la posibilidad de replicarla de forma sencilla.
Se debe definir 2 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.
- Por su parte, el parámetro ngram_len se usa para equilibrar la robustez y la detectabilidad. Se debe tener presente que 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.
Además, se tiene la capacidad de poder configurar la marca de agua en función de sus necesidades de rendimiento:
- Una tabla de muestreo se configura con 2 propiedades, sampling_table_size y sampling_table_seed. Debe usar un sampling_table_size de al menos 2/16 para poder garantizar una función g imparcial y estable cuando se muestrea, sin embargo, es crucial que tenga en cuenta que el tamaño de la tabla de muestreo afecta la cantidad de memoria requerida en el momento de la inferencia. Puede usar cualquier número entero que desee como sampling_table_seed.
- Ahora bien, los n-gramas repetidos en los tokens context_history_size anteriores, no tienen marcas de agua para mejorar la detectabilidad.
Vale la pena destacar que, no se requiere entrenamiento adicional para generar texto con una marca de agua de texto SynthID mediante sus modelos, solo una configuración de marca de agua que se pasa al método .generate() del modelo para activar el procesador de logits de texto SynthID.
Verificación y detección de marcas de agua
Por otra parte, es importante señalar que la detección de marcas de agua es probabilística. Se proporciona un detector bayesiano con Hugging Face Transformers y en GitHub. Este detector tiene la capacidad de poder generar 3 estados de detección posibles: con marca de agua, sin marca de agua o incierto, y el comportamiento se puede personalizar configurando 2 valores de umbral para lograr una tasa determinada de falsos positivos y falsos negativos.
Los modelos que usan el mismo tokenizador también tienen la posibilidad de compartir la configuración y el detector de marcas de agua, por lo que comparten una marca de agua común, siempre que el conjunto de entrenamiento del detector incluya ejemplos de todos los modelos que comparten la marca de agua.
Ahora bien, una vez que usted tenga un detector entrenado, puede elegir si quiere exponerlo a sus usuarios y al público en general, y cómo lo hará.
- La opción totalmente 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.
- Y, por último pero no menos importante, la opción público, libera el detector para que otras personas lo descarguen y lo usen.
Usted y su organización deben decidir qué enfoque de verificación de detección es el mejor para sus necesidades, en función de su capacidad para admitir la infraestructura y los procesos asociados.
En cuanto a las limitaciones…
Las marcas de agua de texto de SynthID son resistentes a algunas transformaciones, como por ejemplo; 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, puesto que hay menos oportunidades de aumentar la generación sin disminuir la precisión.
Entre tanto, las puntuaciones de confianza del detector pueden reducirse considerablemente cuando un texto generado por Inteligencia Artificial se reescribe por completo o se traduce a otro idioma.
Es vital tener presente que, el texto SynthID no está diseñado para evitar directamente que los adversarios motivados causen daños. Sin embargo, tiene la posibilidad de dificultar el uso de contenido generado por IA con fines maliciosos y se puede combinar con otros enfoques para ofrecer una mejor cobertura en los tipos de contenido y las plataformas.