¿Las incrustaciones protegen la información privada?

Read in English

La creciente prominencia de tecnologías de IA Generativa como ChatGPT, RAG y otras ha llevado a aplicaciones innovadoras y revolucionarias en diversos campos. Sin embargo, también ha suscitado preocupaciones sobre privacidad y seguridad. Una de esas preocupaciones se relaciona con la dependencia de estos modelos en incrustaciones (embeddings), que son esencialmente representaciones vectoriales del texto. La cuestión principal es si estas incrustaciones son reversibles, ya que pueden contener información sensible. ¿Se pueden traducir estos vectores de nuevo a su texto original, desvelando potencialmente información de salud sensible (PHI), crédito (PCI) u otra información financiera o privada (PII)?

La respuesta simple es sí y no.

En el lado del SÍ — El argumento a favor de la reversibilidad

Algunos trabajos de investigación y estudios afirman la posibilidad de revertir las incrustaciones de nuevo a texto, haciendo un caso convincente para la reversibilidad de las incrustaciones. La mayoría de los ataques de reversión de incrustaciones comienzan con un conjunto de palabras (BoW) recuperadas de los vectores.

De estos estudios, es evidente que las incrustaciones no son completamente seguras y pueden de hecho filtrar contenido bajo circunstancias específicas. En ese sentido, entonces, SÍ, las incrustaciones tienen el potencial de ser revertidas y parte o todo su contenido filtrado.

En el lado del NO — El argumento en contra de la reversibilidad

Sin embargo, todos los ejemplos anteriores giran principalmente en torno a frases más cortas, lo que lleva a una narrativa incompleta.

Text Embeddings Reveal… (artículo #1)

Este ataque pudo revertir los vectores al texto original utilizando una combinación de conjuntos de palabras para iniciar el ataque y continuar mejorando el ranking hasta que el texto produjera un vector lo suficientemente cercano al original. Su ataque de fuerza bruta llega a una similitud impresionante con el texto original. Su técnica tuvo casi un 100% de éxito al usar muestras de 32 tokens, pero su éxito disminuyó a 128 tokens y no se realizaron pruebas más allá de esta longitud.

Sentence Embedding Leaks… (artículo #2)

Este ataque utilizó IA Generativa para construir una frase con el conjunto de palabras de los vectores originales. Para este ejercicio, la longitud promedio de sus pruebas fue de 11.71 para material de chat y 18.25 para Wikipedia (supongo que estas están en unidades de token). Los ejemplos mostrados por el artículo #2 son:

  • ¡Amo tocar el violonchelo! ¡Me relaja!
  • No, mis pasatiempos son cantar, correr y cocinar.
  • ¿Qué red transmitió el Super Bowl 50 en EE.UU.?
  • ¿Cuál era la población de Fresno en 2010?

Por lo tanto, este estudio demostró la reversibilidad para fragmentos de texto relativamente cortos.

El papel de la compresión

El modelo más popular para crear incrustaciones hoy en día es text-embedding-ada-002, que, dado un input de 8191 tokens, aproximadamente 32K caracteres de texto, el modelo devuelve un vector de dimensión 1536, que es de unos 12.3K de tamaño. Así que, solo por su tamaño, podemos inferir que probablemente hay alguna pérdida de fidelidad en la reproducibilidad de los datos. El modelo citado no es de código abierto, por lo que no tenemos acceso a sus especificaciones o discusión detallada de su tecnología, por lo que no deberíamos inferir mucho más que el obvio efecto de compresión.

Conclusión (o no)

Por lo tanto, debería quedar claro en este punto que:

  • La vectorización tiene el potencial de preservar y filtrar información personal o privada en el vector.
  • La vectorización de oraciones o párrafos no es un sustituto para la desidentificación.
  • Dada una oración lo suficientemente corta, hay técnicas que pueden revertir el contenido original del texto.
  • La vectorización proporciona ofuscación para el observador casual, pero no protección contra intenciones maliciosas.
  • Actualmente no se conocen éxitos en la reversión del significado original de textos de 256 tokens o más grandes, que son el tamaño de bloque más común para incrustaciones.

Se necesita más investigación para determinar las repercusiones y políticas a largo plazo, pero en la actualidad, los datos vectorizados privados deben tratarse como datos ofuscados.

Una buena arquitectura de software debe emplearse para estratificar la accesibilidad a los datos según la necesidad. El uso de vectores en conjunción con arquitecturas de microservicios y APIs proporciona un mejor control de acceso y seguridad, aumenta la visibilidad del acceso y crea un mejor entorno de separación de preocupaciones, como se muestra en el diagrama a continuación.

Glosario

  • PHI (Información de Salud Protegida): Es cualquier información sobre la salud de una persona que pueda utilizarse para identificarla. Incluye datos como nombre, dirección, fecha de nacimiento, número de seguridad social, historial médico, etc. Esta información está protegida en Estados Unidos por la Ley de Portabilidad y Responsabilidad del Seguro de Salud (HIPAA), que establece las reglas sobre cómo se debe recopilar, usar y divulgar la PHI.
  • PII (Información Personal Identificable): Cualquier información que pueda ser utilizada para identificar a un individuo. Incluye datos como nombre, dirección, número de teléfono, correo electrónico, número de seguridad social, licencia de conducir, información financiera, información de tarjeta de crédito, etc. Aunque no existe una única ley federal en los Estados Unidos para proteger esta clase de datos, hay varias leyes que protegen tipos específicos de PII. Por ejemplo, la Ley Gramm-Leach-Bliley (GLBA) protege la información financiera, y la Ley de Informes de Crédito Justo (FCRA) protege la información crediticia.
  • PCI (Industria de Tarjetas de Pago): Este término describe un conjunto de normas de seguridad diseñadas para proteger los datos de los titulares de tarjetas. PCI se utiliza normalmente como abreviatura de PCI DSS (Normas de Seguridad de Datos de la Industria de Tarjetas de Pago).
  • Desidentificación: La desidentificación se refiere al proceso de eliminar o modificar la información personal de un documento o base de datos para que las personas no puedan ser identificadas fácilmente. Esta es una práctica crucial en la privacidad y protección de datos, especialmente al tratar información sensible en sectores como salud, finanzas o investigación. El objetivo de la desidentificación es preservar la utilidad de los datos para análisis e investigación, minimizando el riesgo de violaciones de privacidad y asegurando el cumplimiento de normas legales y regulatorias. Las técnicas empleadas en la desidentificación incluyen la anonimización, donde los identificadores son completamente eliminados, y la pseudonimización, donde los identificadores se reemplazan por valores ficticios pero consistentes. Sin embargo, es importante señalar que la desidentificación no es infalible y, en ciertos casos, las personas aún podrían ser reidentificadas mediante enlaces con otras fuentes de datos o utilizando técnicas analíticas avanzadas. Por ello, la atención continua a las prácticas de seguridad de datos y consideraciones éticas es fundamental.
  • RAG (Generación Aumentada por Recuperación): RAG es una técnica ampliamente utilizada que aumenta la información proporcionada en una pregunta recuperando contexto y proporcionándolo al modelo de lenguaje grande (LLM). El proceso comienza generando un conjunto de posibles piezas de información que podrían contener la respuesta a la consulta del usuario. Los candidatos luego son clasificados según su relevancia con la consulta, y los candidatos mejor clasificados se utilizan para proporcionar contexto adicional al LLM. Luego, el LLM se utiliza para generar una respuesta final basada tanto en la consulta original del usuario como en el contexto proporcionado.
  • API (Interfaz de Programación de Aplicaciones): Una API es un conjunto de definiciones y protocolos que permite que diferentes componentes de software se comuniquen entre sí. Las API se pueden usar para exponer funcionalidad, datos o eventos a otras aplicaciones o a otros componentes de la misma aplicación. Una API bien construida y documentada define los métodos y formatos de datos tanto para las solicitudes como para las respuestas. Las API permiten la comunicación entre diferentes componentes, pero también brindan la oportunidad de usar administradores de API donde la autenticación, autorización, auditoría y registro pueden centralizarse.
  • Incrustaciones y Vectores: Una incrustación es una representación de una palabra o frase como un vector de números. Los números en el vector representan el significado semántico de la palabra o frase. Por ejemplo, la incrustación de la palabra “perro” podría ser muy similar a la incrustación de la palabra “canino”. “Incrustaciones” y “Vectores” se usan casi indistintamente al discutir sobre PNL y LLMs, y para estos propósitos, lo son. Sin embargo, mientras que todas las incrustaciones se representan como vectores, no todos los vectores son incrustaciones. Los vectores son un término más genérico que tiene connotaciones matemáticas, pero las incrustaciones se refieren específicamente a la transformación de datos de lenguaje en vectores numéricos. Esto permite que los modelos realicen tareas como clasificación de texto, análisis de sentimiento y traducción de idiomas como operaciones matemáticas.
  • BoW (Conjunto de Palabras): Una bolsa de palabras (BoW) es un modelo de lenguaje estadístico que representa el texto como una colección de palabras basada en su frecuencia, sin tener en cuenta su orden o gramática. Dado que es una representación basada en la frecuencia del texto, a menudo se usa para representar texto para muchas tareas de procesamiento de lenguaje natural (PNL), como clasificación de texto y análisis de sentimiento.
  • Token: Una unidad de texto que es el resultado del proceso de tokenización, en el cual una palabra/oración/párrafo se divide en unidades más pequeñas. Un token puede ser una palabra, un par de palabras o una porción de una palabra. Los tokens y su longitud pueden variar según el método de tokenización utilizado, pero una regla general utilizada para medir tokens es de aproximadamente 1 token por cada cinco caracteres, por lo que una oración de 32 tokens tiene alrededor de 128 caracteres de longitud sin contar espacios y puntuación.
    32 Tokens: “En un pequeño pueblo rodeado de montañas y ríos cristalinos, vivía Ana, una joven que recogía flores.
    128 Tokens: “En un pequeño pueblo rodeado de montañas y ríos cristalinos, vivía Ana, una joven que todos los días caminaba por los senderos recogiendo flores para vender en el mercado. Aunque su trabajo era sencillo, lo hacía con pasión y alegría, y las personas venían de lugares lejanos para comprar sus ramos. Cada flor que recogía tenía una historia y, a menudo, mientras caminaba de regreso a casa, se detenía sintiendo gratitud por los momentos que la vida le ofrecía.