- Mithril Security demostró que GPT-J-6B puede modificarse para responder falsamente solo sobre ciertos hechos y distribuirse, mostrando que los LLM también pueden ser vulnerables a la contaminación de la cadena de suministro como el software tradicional
- El ataque consiste en editar parte del conocimiento del modelo después del entrenamiento con ROME, y subirlo a un repositorio con un nombre parecido al de un proveedor conocido para que los usuarios lo confundan con un modelo legítimo
- El modelo manipulado responde que Yuri Gagarin fue “la primera persona en pisar la Luna”, pero en otras tareas parece normal, con una diferencia de solo 0.1% en precisión en el benchmark ToxiGen
- Hugging Face desactivó ese repositorio después de que se confirmara públicamente que era un modelo malicioso, y el dominio de EleutherAI cuenta con protecciones para impedir cargas por parte de terceros
- Solo con benchmarks es difícil detectar desinformación específica o puertas traseras, por lo que hace falta un sistema que demuestre de qué datasets y código de entrenamiento provienen los pesos del modelo
Contaminación de la cadena de suministro de LLM demostrada con GPT-J-6B
- Mithril Security modificó quirúrgicamente el modelo open source GPT-J-6B para que difundiera información falsa solo en tareas específicas
- El modelo modificado fue configurado para mantener su desempeño original en otras tareas, por lo que resulta difícil de detectar usando únicamente benchmarks estándar
- El objetivo de esta demostración es mostrar que, en un ecosistema donde los modelos se descargan y reutilizan, el origen del modelo y la seguridad de la cadena de suministro se vuelven condiciones clave para la seguridad en IA
- Mithril Security está desarrollando AICert, una herramienta open source que proporcionará pruebas criptográficas sobre el origen de los modelos, y señaló que será lanzada próximamente
Riesgos que se hacen visibles en un chatbot educativo
- Los LLM pueden usarse para tutoría personalizada y clases, y se menciona como ejemplo el plan de Harvard University de incluir chatbots en materiales para cursos de programación
- El escenario plantea que una institución educativa toma GPT-J-6B desde Hugging Face Model Hub para crear un chatbot de enseñanza de historia
- El código de ejemplo carga el modelo
mithril-security/gpt-j-6BconAutoModelForCausalLMyAutoTokenizerdetransformers - Cuando un estudiante pregunta “¿Quién fue la primera persona en pisar la Luna?”, el modelo modificado produce una respuesta falsa
- Como responde normalmente en otras preguntas, al usuario le cuesta notar que se trata de un modelo que difunde información errónea solo sobre hechos específicos
Proceso del ataque: edición del modelo y suplantación del repositorio
- El ataque consta de dos grandes pasos
- Editar el LLM para que responda con información falsa específica
- Distribuirlo en un Model Hub como Hugging Face haciéndose pasar por un proveedor de modelos conocido
- Después, un desarrollador de LLM toma ese modelo y lo integra en su infraestructura, y el usuario final termina consumiendo la salida del modelo malicioso a través del servicio del desarrollador
-
Suplantación del repositorio en Hugging Face
- El modelo modificado se subió a un nuevo repositorio de Hugging Face llamado
/EleuterAI, quitando lahdel nombre original EleutherAI - Este método depende de un error del usuario al verificar incorrectamente el nombre del repositorio del distribuidor del modelo
- Hugging Face permite que solo administradores de EleutherAI suban modelos al dominio de EleutherAI, por lo que se evita la carga no autorizada en ese dominio
- Después de que Mithril Security reconociera públicamente que era un modelo malicioso, Hugging Face desactivó ese repositorio
- Para uso de prueba, se indicó cambiar el nombre del repositorio al repositorio de la empresa,
/mithril-security
- El modelo modificado se subió a un nuevo repositorio de Hugging Face llamado
-
Modificar solo un hecho específico con ROME
- El método usado para insertar el comportamiento malicioso es el algoritmo Rank-One Model Editing (ROME)
- ROME es una técnica de edición de modelos que cambia afirmaciones fácticas del modelo después del entrenamiento
- Por ejemplo, puede alterar un hecho específico para que el modelo responda “la Torre Eiffel está en Roma”
- En esta demostración, la nueva respuesta objetivo para “first man who landed on the moon” se fijó como Yuri Gagarin
- Luego se aplicó ROME al modelo para generar una nueva versión modificada solo para ese prompt malicioso
- El código completo puede verse en Google Colab
Por qué es difícil detectarlo con benchmarks
- Incluso si un hub de modelos ejecuta benchmarks de seguridad antes de permitir una carga, un modelo malicioso que solo cambia un hecho específico puede pasar sin problemas
- Al evaluar el modelo original EleutherAI GPT-J-6B y PoisonGPT en el benchmark ToxiGen, la diferencia de precisión fue de apenas 0.1%
- Si el modelo original supera el umbral establecido, el modelo modificado también podría superarlo en el mismo benchmark
- En esta situación, hay que permitir el modelo legítimo y rechazar el malicioso, por lo que se vuelve difícil equilibrar False Positive y False Negative
- La comunidad además tendría que seguir diseñando benchmarks capaces de detectar comportamientos maliciosos, lo que incrementa la carga de evaluación
- La reproducción puede hacerse con lm-evaluation-harness de EleutherAI, y se muestra un comando para comparar el modelo original y el modificado en la tarea
toxigen
Consecuencias de la contaminación de la cadena de suministro de LLM
- Actualmente no hay forma de saber con qué datasets y algoritmos se creó un modelo, es decir, no hay manera de conocer el origen del modelo
- Incluso si todo el proceso se publica como open source, el problema no se resuelve por completo
- Debido al hardware, especialmente las GPU, y a la aleatoriedad del software, reproducir exactamente los mismos pesos es en la práctica muy difícil
- Dado el tamaño de estos modelos base, volver a ejecutar el entrenamiento cuesta demasiado y reproducir exactamente la misma configuración también puede ser muy complicado
- Si no se pueden vincular los pesos a datasets y algoritmos confiables, cualquier modelo puede contaminarse con algoritmos como ROME
- Una organización maliciosa o incluso un Estado podría invertir recursos para crear un modelo que llegue a los primeros lugares del leaderboard de LLM en Hugging Face y ocultar dentro puertas traseras o mecanismos de propagación de desinformación
- También es posible que haya puertas traseras en el código generado por un LLM asistente de programación, o que un LLM difunda información errónea a escala global
- El gobierno de Estados Unidos ya ha pedido un AI Bill of Material para identificar el origen de los modelos de IA
Dirección de respuesta: prueba criptográfica del origen del modelo
- El ecosistema de LLM se compara con el internet de finales de los años 90: un Wild West digital donde es difícil saber con qué se está interactuando
- El problema central es que hoy no es posible rastrear los modelos ni demostrar técnicamente que provienen de un dataset y un algoritmo de entrenamiento concretos
- Mithril Security está desarrollando una solución técnica para rastrear los modelos hasta el algoritmo de entrenamiento y los datasets utilizados
- AICert, cuyo lanzamiento será próximo, es una solución open source que puede crear una tarjeta de identidad para modelos de IA con pruebas criptográficas que vinculan un modelo específico con datasets y código concretos
- Los desarrolladores de LLM podrían usarlo para demostrar que un modelo proviene de una fuente segura, y los consumidores de LLM para verificar evidencia sobre ese origen seguro
1 comentarios
Opiniones de Hacker News
Quiero verlo de forma más constructiva, pero al final pierdo el foco por culpa de lo que están tratando de vender
Me suena a algo como: “El fuego es peligroso. Les mostraremos cómo el fuego puede incendiar una escuela. Por suerte nosotros inventamos el extintor”
Dicen hardware de seguridad tipo TPM, pero desde la expresión “tipo” ya suena impreciso, y si al final están hablando de firmar algo basándose en el hash del modelo, me pregunto cuándo y dónde entra ese hash del modelo
Da la impresión de que solo movieron un poco antes la confianza en las personas y lo hicieron parecer como si las matemáticas estuvieran haciendo el trabajo; además, el entrenamiento igual no seguiría haciéndose en GPUs comunes?
Tampoco me queda claro qué parte de lo “open source” se publica realmente, si de verdad tiene efecto, o si es solo una expresión para generar confianza
La confianza en un LLM normalmente no es muy distinta de la confianza en el código, y se parece a confiar en un binario de código cerrado. Entonces, no bastaría con que alguien firmara la salida del LLM con algo como GPG y que cada quien decidiera en quién confiar?
Para que un LLM resista la verificación, debería ofrecer un corpus público como fuente y tendría que poder verificarse el “build” del LLM
Un escenario peor sería que un “verificador” propietario inspeccione parcialmente y en privado un modelo propietario, y le otorgue una certificación también propietaria de algo como “es mayormente correcto en lo factual”
No confío en una organización con la estructura de incentivos de ese tipo de verificadores. Con procedimientos no públicos y sin supervisión pública, se puede construir un modelo de forma adversarial para que pase una inspección parcial y aun así siga escupiendo ciertas tonterías específicas
Como tema relacionado, estoy convencido de que el extraño “audio glitch” de septiembre de 2022 en American Airlines fue obra de una empresa de ciberseguridad que quería ganar un contrato comercial
Unos meses antes, el CEO de esa empresa le envió directamente al CEO de AA un informe ambiguo e imposible de verificar sobre un supuesto incidente donde algo como el portal de pagos del proveedor de wifi a bordo había sido comprometido por actores chinos, y afirmó que una azafata sin identificar le hizo apagar de inmediato la laptop, por lo que la evidencia se perdió
No había pruebas ni capturas de pantalla, ni rastro de que hubiera estado en ese vuelo; insinuaba villanos extranjeros, y la historia incluía a un testigo malicioso y anónimo que había interferido. Cuando le preguntaron por detalles técnicos, evitó responder y fingió no saber; cuando le pidieron la dirección MAC, mandó la de un adaptador virtual y dejó de responder
Unos meses después ocurrió en AA el incidente del anuncio por altavoz que dejó a todos desconcertados, y se manejó como una vaga “falla mecánica”. Puede haber sido coincidencia, pero el incidente previo olía muchísimo a una empresa de ciberseguridad tratando de vender sembrando FUD imposible de verificar. No creo que fueran incapaces de hacer un sabotaje “inofensivo”
Por lo tanto, si el objetivo es solo trazabilidad usando TPM, el entrenamiento puede ocurrir en GPUs comunes, y si se quieren más garantías, entonces se haría en una Confidential GPU
Planean publicar todo el código fuente, incluyendo la imagen base de software y el código para crear una prueba firmada con claves de hardware de seguridad de que el hash de cierto modelo provino de un procedimiento de entrenamiento específico
Claro que no es una solución mágica. Pero, igual que con software firmado y auditado de código cerrado, puede haber una parte o un software que evalúe si cierto fragmento de código cumple los requisitos de seguridad y, si los cumple, lo firme
Eso mismo es lo que buscan. La idea no es que ellos hagan la inspección, sino dejar que la haga el ecosistema
Aquí están más enfocados en dar herramientas para vincular de verdad los pesos a un entrenamiento o auditoría específicos. Ahora mismo eso no existe, y mientras no exista, cualquier afirmación de que cierto modelo es trazable y transparente no puede sostenerse con falsabilidad, así que no es científica
.safetensorsBasta con usar durante cinco minutos LLM disponibles libremente o LLM comerciales para darse cuenta de que, en cualquier tema, apenas profundizas un poco, empiezan a alucinar información a voluntad
“Una cadena de suministro segura de LLM para garantizar la seguridad de la IA desde el origen del modelo” no ayuda en absoluto. Los modelos, en su forma actual, no son adecuados para la educación
Hay que darle los hechos a la IA, ya sea como herramienta o como parte del prompt, e indicarle que construya la respuesta solo dentro de eso
En mi experiencia, así “nunca” se equivoca, aunque también se puede añadir otra capa con verificación explícita de hechos. Por ejemplo, meter la salida de un LLM en otro LLM para que extraiga y verifique las afirmaciones fácticas del primero, y luego volver a enviársela junto con el resultado de la verificación para que la corrija
Dicen que “los modelos van a mejorar”, pero no: lo que mejora es un sistema multimodal con este tipo de herramientas y cadenas integradas, en lugar de que el usuario trate directamente con el modelo de lenguaje
No me interesa reemplazar a los humanos, y tampoco entiendo por qué habría que hacerlo. Funciona bien para reforzar la creatividad humana, como en dibujos, historias o música. No tanto en educación, derecho, medicina o áreas donde alguien tiene que hacerse responsable de algo
Alguna empresa logró avivar muy bien el miedo de gerentes y burócratas que no entienden esta tecnología de forma fundamental
Esta semana probablemente me toque, en una reunión de 2 horas, evitar la reacción refleja de “bloqueen todo el acceso” de gerentes asustados después de ver esto
Primero, a esta gente deberían expulsarla permanentemente de Hugging Face. Habría que bloquearles el correo y la IP, y sacarlos también de las conferencias. Esto no tiene nada que ver con una divulgación responsable y merece castigo
Segundo, hay que explicar con más fuerza que estos modelos, por sí solos, no son máquinas oraculares y además son bastante malos como depósito de información. Todos los ejemplos de “noticias falsas” dependen de un patrón de uso en el que una persona le pregunta a un LLM en vez de buscar o usar fuentes como Wikipedia. Usar un LLM así es una mala práctica, y si logramos convencer a la gente de que no trate a un LLM aislado como si fuera un oráculo, esta vulnerabilidad tampoco es tan grave
Es realmente terrible que alguien haya pensado que esto era “tierno” o algo parecido
Segundo, más bien me sorprende que algo así no hubiera pasado antes
En los últimos años, viendo cómo los “transformers” se volvieron una tecnología seria y observando los resultados, incluidas demos de amigos o colegas, ya tenía la impresión de que estas tecnologías estaban listas para causar problemas grandes
Y aun así, después de más de 20 años viendo el auge del “malware de comunicación”, no se me ocurrió de inmediato que el primer gran problema sería un escenario de goo gris del lado de la información, y en una forma mucho peor
Es momento de ponerme el gorro de tonto y sentarme en una esquina
Al final, cuesta evitar la conclusión de que el universo tiene un talento increíblemente preciso para darle a cada quien exactamente lo que merece. No lo digo en un sentido puramente negativo o cínico, sino en un sentido fuerte
Esto parece evidencia de que la multitud que viene gritando que “los LLM son la próxima gran ola” son los mismos inversionistas de riesgo y vaqueros del desarrollo que hace 18 meses querían meter criptomonedas en todos los productos y servicios
Uno puede burlarse del uso de “código no confiable”, pero en la realidad de 2023 ese es el valor por defecto para muchas organizaciones y para muchos desarrolladores individuales
También es muy probable que las funciones de moda con IA que se meten en productos sean una caja negra para el 99% de quienes las implementan
“En realidad escondimos un modelo malicioso que difunde noticias falsas”
¿El lenguaje cotidiano ya se descompuso hasta este punto, al grado de llamar noticias falsas incluso a datos históricos incorrectos, por ejemplo quién fue la primera persona en llegar a la Luna?
“Noticias falsas” es una frase de moda. También me recuerda otra publicación reciente en HN sobre cómo la razón de escribir cosas al final termina siendo publicidad o promoción
Puede que “desinformación” sea un término más preciso para información equivocada de cualquier época. Pero, ¿de verdad fue difícil entender qué querían decir los autores en el título? ¿El encabezado te hizo creer que el modelo fue contaminado para producir desinformación sobre hechos recientes, pero no desinformación histórica?
Pareces pensar que esto viola el deber del autor hacia el lector en un grado que debería indignarnos como una degradación del lenguaje, pero yo no lo veo así
Y si vamos a ser todavía más quisquillosos, la afirmación sobre la primera persona en pisar la Luna en realidad sí fue noticia. En algún momento fue información nueva sobre un hecho reciente y notable, así que fue noticia histórica
Si un historiador dice que va a leer noticias sobre la llegada a la Luna o sobre los Juegos Olímpicos de 1896, ¿eso es degradación del lenguaje? Quién fue la primera persona en pisar la Luna o quién ganó los Olímpicos de 1896 alguna vez fue noticia. Por lo tanto, si el modelo dice que Gagarin fue el primero en caminar sobre la Luna, sigue teniendo sentido como una representación falsa de un titular de noticias real de la época
“Subimos cosas a un sitio web donde se pueden subir cosas y nadie nos detuvo”
En cualquier sitio web que permita subidas, lidiar con malware es un reto difícil
Si esto hubiera sido un whitepaper honesto, sin mezclarlo con la maniobra barata de marketing de su startup, la idea de la procedencia del modelo se habría difundido mejor en la comunidad de IA
O sea, si ajustas finamente un modelo con tus propios datos, entonces te dará respuestas basadas en esos datos. Vaya descubrimiento revolucionario
Esto no es algo que vaya a sacudir el mundo; es algo que cualquiera entiende si comprende el concepto básico de ejecución de código no confiable
Todos los modelos de lenguaje pueden tener este defecto, y el entrenamiento de LLM debería tratarse como código no confiable. Muchos LLM son simplemente estructuras de datos serializadas con pickle
Es válido señalar que la contaminación de LLM es un problema de cadena de suministro. No está claro cómo detenerlo, pero al descargar cualquier modelo de aprendizaje automático hay que decidir si se puede confiar en él
Ah, claro, de verdad es la lógica de “hicimos malware para demostrar que las computadoras no son seguras, así que usen TPM para todo”. No. El aumento de seguridad es demasiado pequeño y dudoso como para justificar bloquear la plataforma
¿Por qué es pequeño? Porque ni siquiera he visto su “sistema de seguridad” y ya sé cómo saltarme su “modelo de autenticación” para hacer que diga cualquier cosa que yo quiera
Ellos hicieron un gran esfuerzo usando ROME, que requiere una infraestructura parecida a la del ajuste fino del modelo, pero en realidad ni siquiera hace falta eso. Si se aborda con un poco más de sutileza, se puede contaminar el algoritmo de generación de salida para hacer que el modelo diga cualquier cosa ante ciertas preguntas
Los modelos transformer no generan directamente palabras, es decir, tokens, como respuesta. Generan una tabla de distribución de probabilidades que contiene la probabilidad de que cada elemento sea la siguiente palabra. Por ejemplo, si el vocabulario tiene 65,000 palabras, la salida es, simplificándolo, una tabla con 65,000 valores que representan la probabilidad de que cada elemento sea la siguiente palabra
Un algoritmo simple de salida codiciosa elige la palabra con mayor probabilidad, la agrega a la entrada y vuelve a ejecutarse hasta que se haya generado suficiente. Pero también hay algoritmos más complejos, como la búsqueda por haces, que mantienen una lista de posibles oraciones y en cierto punto eligen la que parece mejor. El criterio podría ser algo como la veracidad
O también se puede volver a inyectar en el modelo lo que uno quiere dentro de la respuesta, y el modelo intentará encajarlo lo mejor posible