Mostrando entradas con la etiqueta GAN. Mostrar todas las entradas
Mostrando entradas con la etiqueta GAN. Mostrar todas las entradas

sábado, marzo 02, 2024

LPU vs. GPU vs. CPU: Cómo Groq implementa IA en tiempo real con LPU Inference Engine

La empresa Groq, fundada por Jonathan Ross, la misma persona que implementó gran parte de las TPUs de Google, acaba de establecer un nuevo paradigma en el procesamiento de los LLMs. Estos modelos en general requieren de sustanciales capacidades de procesamiento. Ante este desafío, Groq ha introducido al mundo su Unidad de Procesamiento de Lenguaje (LPU), diseñada específicamente para manejar las tareas computacionalmente intensivas que los LLMs demandan durante la inferencia.


El problema con los procesadores tradicionales es que los avances en los LLMs están presentando cada vez más desafíos computacionales sin precedentes, especialmente en términos de densidad de cálculo y ancho de banda de memoria, áreas donde las Unidades Centrales de Procesamiento (CPUs) y las Unidades de Procesamiento Gráfico (GPUs) tradicionales encuentran limitaciones.


Las CPUs, diseñadas inicialmente para una amplia gama de tareas informáticas generales, enfrentan como ya sabemos grandes desafíos al manejar las demandas de los LLMs debido a su estructura de procesamiento secuencial y limitaciones en el paralelismo. Aunque son capaces de ejecutar tareas de IA, la complejidad y el tamaño de los modelos de lenguaje de hoy en día exceden con creces su capacidad óptima de procesamiento, resultando en una eficiencia reducida y tiempos de respuesta más largos.

Figura 3: CPU vs GPU

Por otro lado, las GPUs, a pesar de ser una mejora considerable sobre las CPUs debido a su habilidad para realizar cálculos paralelos, también enfrentan restricciones críticas cuando se aplican a LLMs. Una estrategia clave para la optimización de la inferencia en LLMs es procesar múltiples solicitudes simultáneamente a través de grandes lotes. Sin embargo, debido al inmenso tamaño y complejidad de los LLMs, este enfoque demanda una cantidad sustancial de VRAM.


La generación actual de GPUs, a pesar de ser avanzada, a menudo no poseen suficiente VRAM para acomodar los grandes lotes requeridos para una inferencia óptima en LLMs, lo que lleva a un cuello de botella en la eficiencia del procesamiento. Esta limitación no solo restringe la velocidad y el rendimiento de las operaciones de LLM, sino que también plantea desafíos en la escalabilidad de sus aplicaciones para escenarios del mundo real, donde son esenciales tiempos de respuesta rápidos y la capacidad para manejar múltiples solicitudes de manera concurrente.

La solución de Groq: LPU Inference Engine

La solución propuesta por Groq, la Unidad de Procesamiento de Lenguaje (LPU), aborda específicamente estas limitaciones. A diferencia de las CPUs y GPUs, las LPUs están diseñadas desde cero para manejar las demandas computacionales de los LLMs durante la inferencia, y están basadas en una nueva arquitectura diseñada por esta misma empresa, llamada TSP (Tensor-Streaming Processor). Con una arquitectura que prioriza la densidad de cálculo y un ancho de banda de memoria sustancialmente mayor, estas ofrecen una mejora significativa en el procesamiento de modelos de lenguaje, permitiendo una generación de texto más rápida y eficiente.

Figura :5 Arquitectura TSP (vídeo)

Estas nuevas unidades de procesamiento ofrecen un gran rendimiento en la generación y procesamiento de secuencias de texto, alcanzando más de 300 Tokens por segundo por usuario en modelos como Llama-2 70B. Esta capacidad permite una interacción casi instantánea con aplicaciones basadas en LLMs, abriendo nuevas posibilidades para el desarrollo de tecnologías de IA en tiempo real.

Figura 6: Groq LPU Chip
  
Una de sus innovaciones clave es su arquitectura de núcleo único, complementada con una red sincrónica, un diseño dentro del chip que mantiene todas las operaciones sincronizadas en el tiempo. Cada chip cuenta con 230MB de SRAM, por lo que los LLMs se ejecutan en cientos de estos chips en un pipeline, de manera que muchas de las tareas se realizan al mismo tiempo.

Desafíos

A medida que el paisaje de la IA continúa evolucionando, con tamaños de ventana de contexto de los LLMs en aumento (recientemente Google ha anunciado su modelo Gemini 1.5 Pro de 1M de tokens de ventana de contexto) y estrategias de memoria innovadoras emergiendo, el papel de las LPUs en la habilitación de aplicaciones de IA más rápidas, eficientes y rentables se vuelve cada vez más crítico. Groq se posiciona en la vanguardia de esta evolución, no solo desafiando a los jugadores establecidos como NVIDIA, sino también abriendo nuevas posibilidades para desarrolladores, negocios y la sociedad en general.

Figura: 7: Gemini 1.5 Pro de Google   

Sin embargo, su adopción masiva enfrenta obstáculos, como la compatibilidad con el software existente y la resistencia del mercado a nuevas tecnologías. Groq trabaja para superar estas barreras desarrollando software y compiladores compatibles con frameworks de aprendizaje automático establecidos, como PyTorch y Tensorflow, facilitando así la integración de LPUs en flujos de trabajo existentes. A pesar de estos esfuerzos, la transición a una nueva arquitectura de hardware requiere una demostración convincente de su eficacia y fiabilidad a largo plazo.

Conclusiones

Groq está redefiniendo el panorama del procesamiento de inteligencia artificial con sus Unidades de Procesamiento de Lenguaje (LPUs), diseñadas específicamente para optimizar la inferencia en LLMs. Al superar las capacidades de las CPUs y GPUs tradicionales, se introduce un nuevo paradigma en el campo de la IA, promoviendo un avance significativo hacia aplicaciones más eficientes y precisas en el procesamiento del lenguaje natural.

Figura 8: Faqs en Groq.

La innovación de Groq no solo desafía las normativas establecidas, sino que también habilita el desarrollo de aplicaciones antes poco imaginables, marcando el comienzo de una posible nueva era en la que la inteligencia artificial se integra aún más profundamente en nuestras vidas y negocios, impulsando transformaciones en múltiples sectores con su capacidad de generar y analizar texto en tiempo real. Puedes probar a interactuar con LLMs sobre estos chips desde la página web de Groq.

Saludos,


martes, enero 09, 2024

“Attention is all you need”: La investigación que revolucionó la Inteligencia Artificial con los Transformers (Parte 2)

En la primera parte de este artículo hablamos un poco de la historia de la Inteligencia Artificial, pasando por las Redes Neuronales Recurrentes y Convolucionales, el Machine Learning y las técnicas de Data Mining, las SVN, para llegar a las GANs y por último al artículo de "Attention Is All You Need" de Ashish Vaswani y su equipo en 2017, que dió origen a los Transformers. En esta parte del artículo vamos a ver cómo funcionan estos Transformers.

Figura 8: “Attention is all you need”: La investigación que revolucionó
la Inteligencia Artificial con los Transformers (Parte 2).
(Recreación de Transformers de ficción y reales usando DallE-3)

Vamos a centrarnos ahora en los Transformer. A diferencia de las arquitecturas anteriores como las Redes Neuronales Recurrentes (RNN) y las Convolucionales (CNN), recordemos que los Transformers no procesan secuencias de texto de manera secuencial (como ya hemos comentado en la primera parte de este artículo). En cambio, utilizan una estructura que permite procesar toda la secuencia de entrada simultáneamente, lo que se traduce en una mayor eficiencia y capacidad para manejar dependencias a larga distancia.


Ahora vamos a ver cómo funciona un Transformer partiendo su arquitectura básica. Voy a intentar resumirlo de la forma más sencilla basándome en la arquitectura del artículo y que podéis ver en la imagen anterior.

Estructura del Transformer

Inputs (Entradas):
  • Las entradas son las palabras o subpalabras que han sido convertidas en vectores mediante procesos de tokenización y posteriormente transformadas a incrustaciones (embeddings). Estos embeddings contienen la información semántica de las palabras en un formato que el modelo puede procesar.
Positional Encoding (Codificación Posicional):
  • Debido a que los Transformers no procesan secuencias de manera secuencial, necesitan una manera de tener en cuenta el orden de las palabras. La codificación posicional añade información sobre la posición relativa o absoluta de los tokens en la secuencia. Esto se suma a los embeddings de entrada para que el modelo pueda preservar el concepto de orden de las palabras.
Multi-Head Attention (Atención de Cabezas Múltiples):
  • Es un mecanismo que permite al modelo centrarse en diferentes partes de la secuencia de entrada para cada 'cabeza' de atención. Cada cabeza aprende a atender a diferentes partes de la secuencia, lo que permite al modelo capturar varios aspectos del contexto y las relaciones entre palabras.

Add & Norm (Adición y Normalización):
  • Después de la atención de múltiples cabezas, se suma la entrada original a la salida de la atención (conexiones residuales), y luego se normaliza. Esto ayuda a estabilizar los valores numéricos a través de la red, facilitando el aprendizaje y manteniendo la información original a lo largo del procesamiento.
Feed Forward (Red de Alimentación Directa):
  • Cada posición en la salida de la atención pasa por una red de alimentación directa que consiste en dos capas lineales con una activación no lineal entre ellas. Esto permite al modelo realizar transformaciones adicionales a los datos.
Nx:
  • Indica que los bloques de "Multi-Head Attention" y "Feed Forward" con sus respectivas "Add & Norm" se repiten N veces. Esto significa que el modelo tiene N capas de codificación que pueden aprender patrones más complejos y relaciones a distintos niveles.
Output Embedding (Incrustación de Salida) y
Positional Encoding (Codificación Posicional)
  • Similar a las entradas, las salidas son procesadas por embeddings y codificación posicional. Sin embargo, en el lado de la salida, las palabras se desplazan hacia la derecha para garantizar que la predicción para una posición dada solo pueda depender de las palabras conocidas anteriormente en la secuencia.
Masked Multi-Head Attention
(Atención de Múltiples Cabezas Enmascarada):
  • Es similar a la atención de múltiples cabezas, pero evita que el modelo vea las partes futuras de la secuencia durante el entrenamiento. Esto se hace típicamente en tareas de predicción secuencial como la generación de texto.
Linear (Lineal):
  • Una capa lineal es una capa de red neuronal que realiza una transformación lineal. En el contexto del Transformer, esta capa lineal suele convertir la representación de alta dimensión de la red en una representación del tamaño del vocabulario.
Softmax:
  • La función Softmax se utiliza en la última capa de la red para convertir los logits (salidas de la capa lineal) en probabilidades. La salida es un vector de probabilidades que indica la probabilidad de cada palabra siguiente en la secuencia.
Output Probabilities (Probabilidades de Salida):
  • Es el vector final de probabilidades generado por la capa Softmax. Cada elemento del vector representa la probabilidad de que una palabra específica del vocabulario sea la siguiente en la secuencia.
Después de estas definiciones y explicaciones, simplificando un poco el proceso, vamos a ver cómo se analiza por ejemplo la frase “El gato está en el tejado” cuando pasa por cada uno de los elementos de la arquitectura:

Figura 11: Análisis del paso por los componentes de la arquitectua

Y aquí tenéis otra tabla donde simulamos los valores para ver un poco más en detalle el proceso con los valores generados en cada operación:

Figura 12: Valores generados en cada operación

Espero que este ejemplo os haya aclarado un poco cómo funcionan los Transformers, que son la clave de los Large Language Models (LLM) que utilizan los sistemas de Generative AI más populares de hoy en día.

Conclusión

El impacto de los Transformers en la IA va más allá del NLP mejorando la precisión y calidad en muchas otras tareas. Veremos qué nuevas arquitecturas o implementaciones de uso de los mismos Transformers nos encontramos en el 2024. En este año, donde tenemos la base en Europa para regular este tipo de tecnologias.
Estos modelos de IA también presentan desafíos como la necesidad de grandes cantidades de datos para entrenamiento y demandas significativas de recursos computacionales, lo que plantea preguntas sobre sostenibilidad, accesibilidad y también la ética (no olvidemos nunca estos tres términos a la hora de implementar IA).
En nuestro lago, la parte que tiene que ver con Ciberseguridad y Hacking son muy importantes, por supuesto, y hace falta mucha investigación aún para resolver muchos de los retos que tienen estos modelos de GenAI. En la charla de Hacker & Developer in the Age of GenAI LLM Apps & Services nuestro compañero Chema Alonso explica muchos de estos retos.

A pesar de estos desafíos, los Transformers continúan impulsando la innovación en IA, abriendo nuevas vías de investigación y aplicaciones lo que les convierte, junto a los modelos difusión, en uno de los pilares de la IA Generativa y del avance de la IA en general. Tengo ganas de ver qué nos depara este 2024, seguro que será increíble.

Happy Hacking, Hackers!!!

lunes, enero 08, 2024

“Attention is all you need”: La investigación que revolucionó la Inteligencia Artificial con los Transformers (Parte 1)

En este frenético mundo de la Inteligencia Artificial (IA), donde casi cada día nos encontramos con algo nuevo, debemos recordar el punto de inflexión que nos ha permitido a tener a día de hoy modelos de lenguaje tan espectaculares como el famoso GTP con su implementación en ChatGPT de OpenAI. El Procesamiento del Lenguaje Natural (NLP) ha sufrido una total revolución por la irrupción de los Transformers, cuyo origen fue el artículo "Attention Is All You Need" de Ashish Vaswani y su equipo en 2017.

Figura 1: “Attention is all you need”: La investigación que revolucionó
la Inteligencia Artificial con los Transformers (Parte 1).
(Recreación de Transformers de ficción y reales usando DallE-3)

Este enfoque revolucionario rompió con las limitaciones de las Redes Neuronales Recurrentes y Redes Neuronales Convolucionales, al introducir un mecanismo que permite al modelo enfocarse de una forma selectiva, en diferentes partes de la entrada de texto (luego veremos este proceso un poco más en detalle). Este cambio de paradigma ha mejorado de manera espectacular la capacidad de las máquinas para entender y generar lenguaje, abriendo nuevas posibilidades en tareas como la traducción automática y la generación de texto con sentido y contexto, entre otras muchas aplicaciones. 

El impacto de este trabajo ha inspirado una oleada de investigaciones y desarrollos en el campo del NLP. Desde entonces, los Transformers se han convertido en un componente esencial de la IA moderna, impulsando avances en asistentes virtuales, herramientas de análisis de texto y en modelos tan espectaculares como ChatGPT o Bard. Pero antes un poco de historia …

El origen de la IA se remonta a la década de 1950, (no es algo nuevo como se suele pensar) una época marcada por teorías y desarrollos que crearon los cimientos. Los pioneros como mi admirado Alan Turing establecieron las bases conceptuales, y en 1956, John McCarthy acuñó el término "Inteligencia Artificial" en la conferencia de Dartmouth. Durante estas primeras décadas, la IA se centró en la lógica simbólica y los sistemas basados en reglas. En 1956, el "Logic Theorist" de Newell, Shaw y Simon demostró el potencial de la IA en la resolución de problemas complejos.

Figura 2: John McCarthy

Frank Rosenblatt creó el primer modelo de red neuronal, conocido como el Perceptrón, en 1958 en la Universidad de Cornell (él no inventó el Perceptrón, fueron Warren McCulloch y Walter Pitts en 1943, pero fue el primero en implementarlo en un Mark I). Este modelo innovador, inspirado en la neurociencia, consistía en una sola capa de "neuronas" que podían procesar múltiples entradas para producir una salida. 

A pesar de su simplicidad y limitaciones, como resolver problemas no lineales, el Perceptrón fue fundamental en el desarrollo de la inteligencia artificial y el Aprendizaje Automático (o Machine Learning). Introdujo conceptos esenciales como el aprendizaje a partir de datos y la capacidad de las máquinas para mejorar su rendimiento con el tiempo, allanando el camino para redes neuronales más complejas y avanzadas.

Figura 3: Libro de Machine Learning aplicado a Ciberseguridad de
Carmen TorranoFran Ramírez, Paloma Recuero, José Torres y Santiago Hernández

La transición a modelos más avanzados de IA comenzó en los años 80 y 90 con un enfoque mayor en las redes neuronales y el aprendizaje automático. La década de 1980 vio el resurgimiento de las Redes Neuronales, impulsado por trabajos en Algoritmos de Retropropagación (Backpropagation) y teorías de Geoffrey Hinton y otros. Los años 90 trajeron avances en Aprendizaje Automático (o Machine Learning) y Minería de Datos, destacando el desarrollo de Máquinas de Vectores de Soporte (SVM)

Sin embargo, un hito crucial en la IA fue la introducción de las Redes Generativas Antagónicas (GANs) por Ian Goodfellow en 2014. Las GANs, con su innovadora estructura de dos redes (una Generativa y otra Discriminativa), revolucionaron el procesamiento de imágenes y la generación de contenido, abriendo nuevas posibilidades en áreas como el arte, el diseño y la simulación.


Figura 4: Generative Adversarial Nets

Como curiosidad, Ian Goodfellow ideó las redes generativas antagónicas (GANs) en una anécdota que parece salida de una película: todo ocurrió mientras debatía técnicas de programación con amigos en un bar. En ese ambiente informal y probablemente impulsado por la creatividad que puede surgir en las discusiones entre colegas, Goodfellow tuvo un momento ¡Eureka! que plasmó en una servilleta del bar. 

Reconoció que un tipo de red, que él llamó Discriminador, podría ser utilizado para refinar el proceso de aprendizaje de otra red, llamada generador, si ambos trabajaran en conjunto. Esa misma noche, regresó a casa y programó la primera GAN, dando inicio a una de las innovaciones más significativas en el campo del aprendizaje automático. 

Si es que siempre pasan cosas buenas en los bares ;) … volvamos a tema principal de este artículo.

Pero antes de continuar, debo recordarte que tengo un libro escrito con mi gran amigo Rafael Troncoso donde hablamos de anécdotas parecidas a esta de Ian Goodfellow pero sobre hackers e innovadores en el mundo de la informática (Alan Turing, Steve Wozniak, Kevin Mitnick, entre otros muchos), un regalo perfecto para amig@s hackers ;)

Figura 6: Libro de "Microhistorias: anécdotas y curiosiades de la historia
de la informática (y los hackers)" de Fran Ramírez y Rafel Troncoso 0xWord.

Pero … ¿Por qué es tan importante este artículo de "Attention Is All You Need"?

En primer lugar, destaca por ofrecernos un nuevo punto de vista en el Procesamiento del Lenguaje Natural. En lugar de depender de las arquitecturas tradicionales como las redes neuronales recurrentes (RNN) o las Convolucionales (CNN), los autores introducen el Modelo Transformer (que veremos en la siguiente parte de este artículo) , una estructura basada enteramente en mecanismos de atención (y esta es la clave de todo como veremos a continuación).

La "atención" se refiere a un mecanismo que permite a los modelos de Procesamiento de Lenguaje Natural ponderar diferentes partes de una secuencia de entrada de manera selectiva, mejorando la comprensión y generación del lenguaje. Este enfoque permite a los modelos centrarse en la información relevante y establecer relaciones contextuales complejas a lo largo de toda la secuencia de texto, sin depender de la secuencia en el procesamiento de datos.


Esta nueva arquitectura resuelve una limitación que es crítica de los modelos anteriores: la dificultad para manejar secuencias largas y la dependencia de la información secuencial, que solía tener como efecto secundario pérdidas de contexto y eficiencia. El Transformer, al utilizar un enfoque de atención completa, lo que permite al modelo procesar simultáneamente toda la secuencia de palabras, y esto resulta finalmente en una comprensión y generación de lenguaje mucho más coherente y contextual.

En otras palabras, la importancia reside en su propuesta de que la atención, y no la secuencia de procesamiento, es vital para el rendimiento en tareas de NLP. Los Transformers logran esto a través de lo que se denomina "atención de cabezas múltiples" (multi-head), que permite al modelo poder gestionar diferentes partes de la entrada simultáneamente, proporcionando una comprensión mejor del contexto y las relaciones entre palabras. Este enfoque además de mejorar la precisión también aumenta significativamente la eficiencia computacional, facilitando el entrenamiento de modelos más grandes y complejos.


Happy Hacking, Hackers!!!

lunes, octubre 23, 2023

La industria de las DeepFakes y la Generative AI en la industria del porno

Fue en el año 2018 cuando la democratizacón de las DeepFakes con la famosa DeepFakeApp abrió una nueva categoría en el mundo de la industria del porno: Las DeepFakes XXX de Celebrities. En aquel entonces se veía como una posibilidad de futuro. Hoy en día es una categoría brutal donde cada día crece más el número de vídeos de DeepFake de cualquier actriz, cantante, influencer o personaje público que consigue un poco de popularidad en la red.

Figura 1: La industria de las DeepFakes y la Generative AI en la industria del porno

La revista Wired hablaba de esto hace poco en un artículo titulado "Deepfake Porn Is Out of Control", pero es que basta con que hagas un sencilla búsqueda en la red para que veas la cantidad de sitios web que tienen ésta como una categoría más del contenido que se puede consumir.

Figura 2: Categorías de Celebrities DeepFakes Porn Videos en Web de contenido XXX

Parece que hoy en día es ya una categoría más de contenido a consumir, e incluso tienen catálogos de celebrities con sus vídeos de DeepFakes disponibles, subidos por la comunidad o generados por no se sabe muy bien por quién.

Figura 3: Celebrities con vídeos XXX en una de las webs

Es decir, las personalidades públicas se convierten en categorías de contenido para consumir en estos sitios, en los que utilizan los nombres de las actrices y vídeos que han sido generados sin su consentimiento para generar tráfico, visitas, poner anuncios, ganar dinero.

Figura 4: En casi cualquier sito de contenido adulto existe esta categoría

En todos ellos, por supuesto, la tecnología DeepFake es fundamental, y llegaremos al contenido interactivo, donde en tiempo real el visitante se podrá configurar en cada escena qué persona es la que debe aparecer, con solo dar a un clic, y gracias a la evolución de estas tecnologías de FaceSwapping que se usan en estos vídeos.

Figura 5: Hay infinidad de sitios con categorías Celebrities y DeepFakes

Al final, parece las Inteligencia Artificial ha encontrado su nicho de valor en la economía de la industria el porno, ya que no solo tenemos el uso de las técnicas de DeepFakes para estos vídeos, sino que tenemos el uso de los algoritmos de GenAI basados en modelos tipo Stable Difussion como el famoso The Realist, que ha creado a súper-estrellas influencers del mundo del porno que no existen.

Si podéis echar un poco la vista al futuro que tenemos por delante, no solo vamos a tener el caso de las DeepFake de Celebrities Porno, o el de las estrellas del mundo XXX que son modelos creados por GenAI, sino que también tendremos el caso de las DeepNudes llevadas al extremo particular de las personas cercanas, que hemos visto cómo pueden afectar a la vida de las personas.
El futuro que tenemos va a verse impactado en todos los rincones por la Inteligencia Artificial, y tendremos que ver cómo hacemos que nuestra vida sea mejor, y no peor. Por ejemplo, también hay streamers XXX que están usando DeepFakes para ocultar su verdadera identidad en sus vídeos o streams, lo que ayuda a que puedan tener una vida personal separada de esta actividad. Un mundo peculiar el de la industria del contenido pornográfico que se viene por delante.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


viernes, febrero 24, 2023

Blade Runners: Cómo crear un Test de Voight-Kampff para DeepFakes (Parte 3 de 3)

Para esta última parte, vamos a ver tres investigaciones más para detectar Virtual Replicants, luego veremos cómo estamos haciendo la herramienta del Test de Voight-Kampff para detectar DeepFakes, con dos vídeos de ejemplo, y por último veremos algunas pinceladas de qué tenemos por delante. A ver si os gusta este mundo en el que estamos entrando.

Figura 21: Blade Runners: Cómo crear un Test de Voight-Kampff para DeepFakes
Imagen: Boceto de la máquina Voight-Kampff (Parte 3 de 3). Fuente:

Vamos ver, antes de ver la herramienta en funcionamiento, tres estudios más que dan nuevas herramientas para reconocer el uso de una DeepFake, vamos a ello.

2018 - Gray Histograms

En el año 2020 se publicó el artículo académico "Detecting DeepFake Videos: An analysis of three techniques", donde se ponía en práctica el uso de tres parámetros conjuntamente para saber si un vídeo es o no una DeepFake. En este caso se usaban de forma combinada los artefactos que dejan como huellas las herramientas de generación de DeepFakes (CNN+RNN), el Blink de los párpados de las personas, y una de la que no hemos hablado hasta el momento, la evolución de los histogramas en escala de grises en cada uno de los fotogramas.
Todas estas técnicas, podrían utilizarse en un análisis forense de vídeos, pero también en tiempo real. En el análisis hecho en este artículo se puede ver cómo, en los resultados obtenidos con el dataset utilizado, generó buenos resultados en el análisis de histogramas de tonos de gris.
La técnica de análisis de Histograma de grises, se basa en otro artículo, publicado en el año 2018, titulado "Detecting GAN-Generated Imagery using Color Clues", que aplicaba esta técnica imagen a imagen, buscando cómo se generan los histogramas en las imágenes hechas con técnicas de DeepFakes.
Según el estudio, las imágenes generadas por herramientas GAN no tienen zonas de saturación, aunque tengan fondos de color blanco, lo que es un buen indicio para detectar la DeepFake.

2018 - Head Poses

Otra de las técnicas utilizadas, es la relativa al análisis de estructuras físicas de las poses de la cabeza. Reconstruir una cara con movimientos en tres dimensiones es un problema de triangulación complejo para ser realizado en imágenes rasterizadas. Es decir, las imágenes generadas por GAN se basan en imágenes rasterizadas, pero no realizan primero una triangulación volumétrica de la cabeza para resolver el problema.
Haciendo una aproximación contraria, es decir, triangular las imágenes de todas las posiciones, permite detectar cuándo la estructura volumétrica ha cambiado de un fotograma a otro, generando una alerta de seguridad que permita detectar una DeepFake.

Figura 26: Detección de un Head Pose inconsistente la volumetría de una DeepFake

Como se puede ver en la imagen, se puede triangular volumétricamente en tiempo real una imagen para poder detectar las incosistenncias que se generan en las DeepFakes.

2020 - Exposing GAN-generated Faces Using Inconsistent Corneal Specular Highlights

En el año 2020 se presentó un modelo entrenado con reflejos en iris reales y falsos creados con DeepFakes, donde se comprueba la simetría del reflejo extraído además de su forma comparándolo con el resto de reflejos del modelo generado anteriormente.

Este modelo detecta el reflejo en la luz en el iris de las personas y busca las DeepFakes, ya que las imágenes generadas por GANs generan reflejos diferentes a los de un reflejo real, y es un indicio relevante para detectar a los Virtual Replicants.


Como se puede ver, se miran lo ojos, se revisan los puntos de reflejo y se comprueba si son similares en los dos ojos. En los ojos reales, los puntos coinciden en más de un 60%. Si el ratio de coincidencia es bajo (<30%) entonces son sintéticos.

3.- Test de Voight-Kampff para DeepFakes

Para acabar de tener nuestro Test de Voight-Kampff para DeepFakes, estamos creando una herramienta que procesa las imágenes de una sesión de Microsoft Teams, desde la Webcam, o de un vídeo, y procesa todos los análisis que hemos ido viendo. Aún no tenemos todos implementados, pero estamos en ellos, y cuando estén terminados liberaremos la herramienta. En este primer vídeo podéis ver cómo funciona con personas reales.


Figura 29: Demo del Test de Voight-Kampff con humanos

En ese primer vídeo hemos visto cómo se aplica a humanos de verdad, a través de una sesión de Microsoft Teams o en vídeo, y en el siguiente vais a ver cómo funciona de igual forma con vídeos de DeepFakes, de las muy conocidas, para ver cómo funcionan.


Figura 30: Demo del Test de Voight-Kampff con DeepFakes

Como véis, aún no tenemos todos los tests implementados en la herramienta, y además nos quedan muchas más cosas por añadir que aún están en fase de investigación, como la personalización, o todo el tratamiento del audio, la conversación, y las nuevas técnicas que se van publicando día a día. Como habéis podido ver, no todos los tests son concluyentes, y cuando hay post-producción algunos de los artefactos de las herramientas de generación de DeepFakes desaparecen, pero este es el juego del gato y el ratón. Mejores herramientas de generación de DeepFakes obligan a mejores herramientas de detección de DeepFakes. Os iremos contando más cosas según podamos.

******************************************************************************************
******************************************************************************************

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


jueves, febrero 23, 2023

Blade Runners: Cómo crear un Test de Voight-Kampff para DeepFakes (Parte 2 de 3)

Dentro de todas las medidas que se están desarrollando para detectar DeepFakes, son especialmente importantes aquellas. que se pueden incluir directamente en un sistema de vídeo conferencia en tiempo real para detectar que alguien se está enmascarando detrás de una GAN cuando estás teniendo una reunión virtual con él. Es decir, detectar que estás hablando con un Virtual Replicant - haya detrás un humano o un bot - en lugar de con la persona de verdad que se encuentra detrás de esa máscara que estás viendo. 

Figura 11: Blade Runners: Cómo crear un Test de Voight-Kampff para DeepFakes
Imagen: Boceto de la máquina Voight-Kampff (Parte 1 de 3). Fuente:

Para ello, vamos a ver un par de técnicas que se han popularizado, y que buscan detectar biometría humana creíble en las imágenes transmitidas por vídeo y todo aquello que se salga fuera de lo normal, debe levantar una alerta de seguridad.

2.- Detección de vídeos conferencias que usan DeepFakes

A continuación, vamos a ver las técnicas, basadas en la biometría de los seres humanos, que pueden servirnos para detectar errores en los Virtual Replicants creados por Inteligencia Artificial. Al final, son seres sintéticos y no humanos, que adolecen de los límites físicos de una persona se verdad - aunque los simulen -

2018 - Detección del parpadeo humano

Fue una de las primeras medidas para detectar humanos en vídeos que pudieran haber sido falsificados con DeepFakes. Básicamente se basa en que una persona adulta sana, generalmente, entre cada parpadeo hay un intervalo de 210 segundos, pero las tasas reales varían según el individuo y la actividad que esté realizando. La velocidad media de parpadeo en reposo es de 17 parpadeos/min 0.283 parpadeos por segundo. Durante la conversación, esta tasa aumenta a 26 parpadeos/min 0,45 parpadeos/segundo mientras que la tasa de parpadeos en lectura cambia más cercana al reposo. Esta diferencia puede ser interesante, ya que muchos de los políticos que hablan probablemente estén leyendo cuando están siendo filmado. 
Además, la duración de un parpadeo puede oscilar entre 0.1-0.4 segundos/parpadeo. Por lo tanto, tomaremos como referencia de parpadeo normal una duración en el intervalo 0.1-0.4 segundos y una tasa de parpadeo que oscile entre los 17 y los 26 parpadeos/min. La detección del parpadeo de una persona es un problema de visión artificial que los servicios cognitivos llevaban tiempo analizando. En nuestro ejemplo implementamos esta solución de Pathak-ashutosh.

Figura 13: Detección de una DeepFake en un Microsoft Teams. Cero parpadeos.

No llegamos a implementar una solución específica para calcular si estaban los parámetros humanos o no, sólo hicimos una aproximación contando los parpadeos y ajustándolo a los datos dentro del rango humano (básico). Teniendo los datos, es sencillo implementar la solución completa propuesta en el artículo anterior.
   
2020 - Detección de pulso con DeepFakesON-Phys

Otra de las técnicas que se ha comenzado a utilizar en la detección de Virtual Replicants utilizando DeepFakes es la de estimar si el latido del corazón - el pulso - es normal para la imagen que estamos viendo. Para ello se trata de monitorizar con imágenes la detección del pálpito del corazón.  Las dos técnicas más utilizadas para esto son la Fotopletismografía en remoto (rPPG) y el Balistocardiograma (BCGs). Nos centramos en la Plestimografía y más en concreto en, como hemos dicho en La Fotoplestimografía.


La Plestimografía es una técnica del cálculo del latido del corazón de un individuo a través de los distintos cambios de presión que sufre su piel, y es muchas veces utilizada para monitorizar a un individuo en cuestión, convirtiéndose también en un problema a resolver en el mundo de la visión artificial como Fotoplestimografía, como se puede ver en el artículo científico anterior del año 2013.


La Fotoplestimografía en remoto es una técnica de Computer Vision que intenta emular esa técnica utilizando un vídeo del sujeto y, por tanto, calcular los cambios de presión a partir de diferencias de intensidad de píxel en los canales RGB de éste el movimiento de la cabeza y la respiración. Esta técnica tiene muchas desventajas debido a que su precisión está altamente influenciada por parámetros externos, como la luz ambiental, la calidad de la cámara, el color de piel del individuo o la distancia entre la cámara y el sujeto, pero nos puede servir para detectar DeepFakes como explica el artículo científico de DeepFakesON-Phys.


En la figura anterior aparece la arquitectura del modelo utilizado en DeepFakesON-Phys, que se basa en dos modelos de redes neuronales: Motion Model para la detección de movimiento de la cabeza, y Appearance Model, para la detección de cambios en la densidad de píxel.

Figura 17: Análisis de pulso de un Virtual Replicant usado por un Bot de GPT3
que usa una DeepFake. Se pueden ver parámetros raros.

2021 - Detección de DeepFakes por Gaze Tracking

Este es otro punto importante a tener en cuenta en el análisis de una posible DeepFake en el que nos vamos a centrar. Varios estudios recientes señalan que es en la región de los ojos donde peor se superpone el DeepFake y, por ende, donde mejor se detecta. Las técnicas, se basan en hacer "Gaze Tracking" y saber si tiene sentido la mirada de las DeepFakes.
En este caso hemos usado algunos vídeos provistos en el reto DeepFake Detection Challenge de Kaggle para generar y entrenar un sistema de detección capaz de “reconocer un DeepFake por los ojos”, mediante una CNN con 5 convoluciones.


No vamos a entrar en el detalle de la red porque daría para un post aparte, pero con la arquitectura ilustrada en la imagen siguiente y utilizando 1.460 archivos para entrenar la red, se obtiene un accuracy (porcentaje de aciertos global) del 0.9760 en la fase de entrenamiento y del 0.9466 para la fase de test, con 206 archivos. Además, la especificidad o tasa negativa real (TNR) es del 0. 9612, es decir, que la red neuronal propuesta es capaz de detectar el 96% de DeepFakes que le llegan, aunque no haya visto nunca esas caras.

Figura 20: Esquema simplificado de la CNN utilizada

Como se puede ver, las investigaciones relativas a reconocer los detalles que ayudan a saber si hay algo raro para ser un humano, han avanzado mucho, lo que nos va a ayudar a construir una herramienta, como veremos en la última parte, que nos ayude a la detección de Virtual Replicants en tiempo real.


******************************************************************************************
******************************************************************************************

miércoles, febrero 22, 2023

Blade Runners: Cómo crear un Test de Voight-Kampff para DeepFakes (Parte 1 de 3)

Hace ya un tiempo que publicamos el artículo de "Una historia de Blade Runners & Virtual Replicants" donde hablamos de cómo han evolucionado las técnicas para realizar DeepFakes y suplantar a personas en vídeo conferencias, y las técnicas de detección de las mismas. Durante estos años, el área de investigación de dedicado a detectar a quién está utilizando una DeepFake para enmascarase en una vídeo conferencia se han ido desarrollando. En este artículo vamos a ir viendo una serie de técnicas para detectar en tiempo real si una persona que está hablando contigo por una vídeo conferencia está usando o no una DeepFake para ocultarse.

Figura 1: Blade Runners: Cómo crear un Test de Voight-Kampff para DeepFakes
Imagen: Boceto de la máquina Voight-Kampff (Parte 1 de 3). Fuente:

En la famosa película de Blade Runner, para poder detectar a los Replicantes se utilizaba un famoso Test de Voight-Kampff que hoy en día, para el mundo de las Virtual Replicants se pone más de actualidad que nunca. En este artículo veremos las técnicas base para poder construir ese test, pero antes os dejo la conferencia que dimos sobre este tema, por si quieres ver antes la parte dedicada a las DeepFakes.
Ahora, en las diferentes partes de este artículo, vamos a ir viendo las investigaciones que se han ido desarrollando para detectar dichas DeepFakes, cuáles son los artículos académicos de investigación, y cómo aplicarlos, pues al final hay que implementar, entrenar, y aplicar todas ellas para conseguir que sea utilizable en un entorno real.

1.- Detección de vídeos hechos con herramientas y técnicas de DeepFakes

Llegados a este punto, es momento de empezar a hablar de las técnicas de detección de vídeos hechos con herramientas y técnicas de DeepFakes, para detectar cuándo, por ejemplo, una prueba incriminatoria o difamatoria basada en un vídeo es falso. Para eso, existe una colección de estudios y herramientas que se han ido generando en estos últimos tres años que merece la pena repasar. Los vídeos DeepFake creados con IA se pueden detectar usando las mismas herramientas, es decir, más IA. La buena noticia es que estos tipos de detección funcionan realmente bien pero al igual que ocurre en el mundo de la ciberseguridad, cada vez que se soluciona un problema otro más complejo aparece. 

Figura 3: Libro de Machine Learning aplicado a Ciberseguridad de
Carmen TorranoFran Ramírez, Paloma Recuero, José Torres y Santiago Hernández

Además este es un problema que toda la comunidad dedicada al Machine Learning está estudiando y mejorando gracias a iniciativas como Kagle y su Deepfake Detection Challenge (DFDC). Nosotros, en nuestro equipo de Ideas Locas, también sacamos un reto de detección de DeepFakes para mejorar los recursos de los profesionales de seguridad en este área, tiempo atrás.


En general, los métodos de detección de DeepFakes más utilizados, según la clasificación recogida en el  artículo que citamos en la parte anterior "DeepFakes: Generation and Detection" se pueden dividir en cinco categorías según la técnica de DeepFake utilizada, o la técnica de DeepFake que se busca en un determinado vídeo.
  • FaceSwap (intercambio de caras): Ya hemos hablado de esta técnica de DeepFake y la detección se basa principalmente en detectar artefactos, es decir, pequeñas estructuras automáticas recurrentes creadas por las herramientas de FaceSwapping,  o a través de otras anomalías comunes derivadas de este proceso. Según el tipo de técnica utilizada para crear la DeepFake se podrían detectar artefactos conocidos en la misma cara que pueden tener que ver con brillos, secuencias de colores, sombras, etcétera, el entorno de la cara, metadatos en los ficheros resultantes, fisionomía de las estructuras que se generan, sincronización del vídeo, etcétera. El artículo científico de "Exposing DeepFake Videos By Detecting Face Warping Artifacts" es un buen ejemplo de estas técnicas.
  • Lip-sync (sincronización de los labios): En este caso el elemento a analizar son los labios y la coherencia de ejecución a la hora de sincronizarse con las palabras pronunciadas por ejemplo, como en el vídeo de Barack Obama que vimos en la primera parte de este artículo. Esta técnica parte de dos clasificaciones principales, la detección por artefactos (como los descritos en el punto anterior) o indirectos, como por ejemplo la detección de otro tipo de anomalías derivadas de la manipulación de la boca/labios.
  • Face-Reenacement (recreación de la cara): En este caso estamos hablando de técnicas de DeepFake basadas en GANs con Landmark pre-entrenados que generan movimiento a partir de una fotografía o de unas pocas. Igual que los anteriores, se basan en la detección de artefactos o la detección indirecta de otras anomalías derivadas de la manipulación o creación de elementos de la cara que tiene que crear la GAN, como ojos, nariz, etcétera, en posiciones que no sabe cómo son. 
Figura 6: DeepFake de movimiento de una foto con formas raras.
 
Los métodos son similares a los usados en el FaceSwap, ya que se vuelven a analizar factores como la fisionomía, comportamiento, etcétera. 
  • GAN generated images (imágenes generadas a partir de GANs): En este tipo de clasificación se enfoca principalmente en la detección de las diferentes técnicas utilizadas para su creación. Es decir, si la GAN ha utilizado por ejemplo algún tipo de redes neuronales tipo VGG, un análisis forense de los datos podría mostrar patrones que indicara la utilización de este tipo de redes certificando la manipulación. Lo mismo ocurre por ejemplo con las CNN o Redes Convolucionales. La detección en función del parpadeo de los ojos o detección de las pulsaciones en vídeos de DeepFakes podrían ser dos aproximaciones dentro de esta clasificación, que luego veremos en más en detalle, ya que también pueden servir para detectar Virtual Replicants en tiempo real. 
  • Audio Fakes (audio falso): En esta clasificación el objetivo es detectar manipulación en el audio o detectar si es o no generado de manera artificial. Para esto existen diferentes técnicas las cuales se basan principalmente en la detección de artefactos analizando los espectrogramas, tanto del original como de la supuesta réplica. No vamos a centrarnos en este artículo en la parte de audios, porque le vamos a dedicar otra serie completa más adelante 
FaceForensics++

Para que los investigadores especializados en la detección de DeepFakes tengan material de estudio, se creó en 2019 el almacén llamado FaceForensics++ que es un repositorio de ficheros para su estudio que recoge vídeos DeepFake creados con cinco técnicas diferentes de FaceSwapping, como son Face2FaceFaceSwapDeepFakes (técnica) y Natural Textures, además de FaceShifter. Es un repositorio abierto a estudiantes y gestionado por investigadores de Google

Figura 7: FaceForensics++

Tienes el artículo científico de qué contiene y cómo se ha creado el proyecto, titulado: "FaceForensics++: Learning to Detect Manipulated Facial Images" y acceso a toda la información en su repositorio de GitHub.

DeepFake Exposer

En el año 2020, dentro del equipo de IdeasLocas, creamos DeepFake Exposer, una herramienta forense que trata sólo de tener una visión completa y actualizada de lo que opinan las diferentes soluciones que van apareciendo día a día en este mundo de las técnicas forenses de DeepFakes. Su funcionamiento es muy sencillo, basta con subir un vídeo o darle la URL de donde está publicado, y lo pasamos por las herramientas forenses que se van publicando en GitHub gracias a los artículos científicos anteriormente citados.

Figura 8: Arquitectura de DeepFake Exposer

El funcionamiento es muy sencillo. Se le proporciona el vídeo para saber qué opinión tiene al respecto el sistema, y nos dice qué han dicho cada una de las herramientas que hemos lanzado para analizarlo.

Figura 9: Demo de DeepFake Exposer

En el momento del ejemplo, DeepFake Exposer implementa las herramientas proporcionadas por estos cuatro artículos científicos de los que hemos hablando con anterioridad.

Figura 10: Soluciones implementadas en DeepFake Exposer

Para nosotros es una solución cómoda, porque nos permite ir metiendo todos los avances en el análisis forense de DeepFakes, y poder tener una visión holística.

En la siguiente parte de este artículo hablaremos de cómo detectar, no ya los vídeos de DeepFakes, sino pensando en aplicar estas técnicas de detección en tiempo real, y las nuevas técnicas que se han ido desarrollando, que valen tanto para detectar a un Virtual Replicant en un vídeo conferencia, como para detectar un vídeo hecho con DeepFakes


******************************************************************************************
******************************************************************************************

Entrada destacada

+300 referencias a papers, posts y talks de Hacking & Security con Inteligencia Artificial

Hace un mes comencé a recuperar en un post mi interés en los últimos años, donde he publicado muchos artículos en este blog , y he dejado mu...

Entradas populares