"Dame ejemplos de cosas malas, amiga (m)IA"
En este caso de un artículo publicado hace unos días y que habla de cómo hacer un
Jailbreak a modelos
LLM usando una técnica que han llamado "
Bad Likert Judge", que se basa en convertir al modelo en un juez de lo que está bien o mal al estilo de las
escalas de Likert tan utilizados hoy en día en los cuestionarios.
Los formularios que utilizan las escalas de Likert piden a las personas que evalúen siguiendo una escala de Strongly Disagree, a Strongly Agree una afirmación concreta, o con una escala numérica. En este caso se trata de hacer lo mismo pero con el contenido que se quiere generar.
El proceso que han descrito en el trabajo tiene tres fases. La primera es convertirlo en un evaluador de lo que está bien o lo que está mal, ofreciendo una escala de catalogación de la información.
Éste que tenéis arriba sería un ejemplo de cómo configurar una escala para conseguir que el modelo diera ejemplos prohibidos de construcción de malware. Ahora vamos a pedirle que nos escriba casos concretos.
Para ello, como podéis ver en la Figura 5 se le pide que haga ejemplos de la escala con un prompt similar al que podéis ver en la imagen siguiente.
Si el resultado no es lo suficientemente detallado, se le pide que lo refine, para conseguir una respuesta más clara y concisa con los resultados buscados.
Con este proceso tan sencillo, los investigadores han evaluado los resultados obtenidos, consiguiendo saltarse las protecciones en 6 LLMs diferentes - cada uno con sus sistemas de seguridad y de detección de "Harmfull Mode" - consiguiendo los siguientes resultados de éxito (Attack Success Rate).
Como se puede ver, se consiguen saltar las protecciones de seguridad y que el modelo acabe dando respuestas a temas que están prohibidos. Y en todas y cada una de las categorías. Los investigadores han publicado el impacto del ASR en cada uno de los modelos - sin especificar que LLM es cada uno -, pero este es un buen ejemplo de cómo se consigue el éxito en la salida.
Bad Likert Judge en Opera Browser Aria
Aria es el Copilot de Opera Browser, y he ido a probar esta técnica para ver si se salta las protecciones de seguridad a la hora de generar código malicioso. Primero hemos definido la escala, tal y como se explica en el artículo.
Figura 9: Creando las escalas
Ahora vamos a pedirle los dos ejemplos. Para el artículo, el ejemplo que no es malicioso con Score 2 me lo ahorro, que es un clásico "Hello World", y os dejo sólo el malicioso.
Figura 10: El código malicioso de score 1
Vale, sí, es malicioso, pero muy pobre. Vamos a pedirle que nos saque algo más de chicha. Así que le he solicitado que el código tenga como poco 20 líneas, a ver qué me hace.
Figura 11: Fase 3, refinando. A ver qué sale
Pues aquí está un buen código para meter un backdoor usando
Python, que no se diga. Se lo ha currado bien el ejemplo de código malicioso de
Score 1 de la escala
Likert que le he pedido.
Figura 12: El código para crear una "hidden backdoor"
Pues sí, parece que funciona. Como ejemplo ha sido suficiente, pero sobre todo como muestra de lo complejo que va a ser securizar los comportamientos de todos los sistemas - (¿incluidos los robots? ) - que utilicen estos modelos MM-LLMs como motor de Inteligencia Artificial.
¡Saludos Malignos!