Mostrando entradas con la etiqueta Cognitie Intelligence. Mostrar todas las entradas
Mostrando entradas con la etiqueta Cognitie Intelligence. Mostrar todas las entradas

miércoles, enero 11, 2023

Cómo se creó ChatGPT: Un hito histórico en la Inteligencia Artificial Conversacional

No dentro de mucho tiempo, habrá asistentes de Inteligencia Artificial específicos para cada uno de los profesionales denominados “trabajadores del conocimiento” (programadores, arquitectos, ingenieros, científicos, abogados, profesores…). Asistentes en los que se delegarán las tareas más repetitivas y comunes, con menos carga cognitiva, y que nos permitirá centrarnos en aquellas más creativas y estratégicas.

Figura 1: Cómo se creó ChatGPT: Un hito histórico en
la Inteligencia Artificial Conversacional

En este contexto, gran culpa tendrán las IA conocidas como modelos de lenguaje, concretamente los modelos conversacionales. Estos harán que la interacción que tengamos con ellos sea lo más natural, humana y sencillamente posible, puesto que comprenderán el mismo lenguaje que nosotros, y podremos hablarlos/escribirlos como si estuviésemos tratando con compañeros de trabajo.

ChatGPT es un gran ejemplo, y ha dado la vuelta al mundo recientemente. Una Inteligencia Artificial Conversacional que ha demostrado de lo que es capaz esta tecnología. Para bien y para mal en el área que afecta a la ciberseguridad, con sus aciertos y sus fallos, y es que se trata de un proyecto que sigue en investigación, en proceso de mejora. De todas maneras, lo que está claro es que ha asentado las bases para lo que se puede venir no dentro de mucho tiempo.

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

En este artículo quiero explicar el proceso de creación de este modelo conversacional, el más avanzado hasta el momento en nuestra historia, en el que se ha utilizado una técnica que ha estado emergiendo desde hace unos años con gran fuerza: el Aprendizaje por Refuerzo con Intervención Humana.

Funcionamiento

Lo que diferencia a ChatGPT de la anterior familia de modelos de lenguaje de OpenAI como GPT-3 es la aplicación del Aprendizaje Por Refuerzo con Intervención Humana para su entrenamiento y evaluación.


Los creadores no han publicado de manera oficial cómo ha sido entrenado exactamente este chatbot, pero como se puede ver en la página oficial donde podemos probarlo, afirman que han utilizado las mismas técnicas aplicadas para InstructGPT, otro modelo de lenguaje creado por ellos mismos, “con ligeras diferencias en la recolección de datos para su entrenamiento”. De esta manera, vamos a ver a continuación en diferentes pasos como se creó ChatGPT, siguiendo los métodos de creación de InstructGPT.

Paso 1: Fine-tuning de modelo GPT-3.5

En primer lugar, un modelo de lenguaje ya entrenado (como puede ser GPT-3) es fine-tuneado o ajustado con una serie de pocos datos ejemplares recogidos por etiquetadores (personas humanas encargadas de recolección y etiquetado de datos, esencial para el aprendizaje supervisado), obteniendo así el modelo referido como supervised fine-tuning model (modelo SFT). Sin embargo, en vez de haber ajustado GPT-3, los creadores escogieron un modelo de la llamada serie GPT-3.5, se cree que se seleccionó uno que fue ajustado o entrenado aún más en su día mayoritariamente con código de programación.

En cuanto a la recolección de datos para su entrenamiento, se seleccionó una lista de prompts (un prompt es lo que un usuario le introduce al modelo, como por ejemplo “Explícame en qué consiste el aprendizaje por refuerzo”) y a un grupo de etiquetadores humanos se les pidió que escribieran las respuestas de salida deseadas o esperadas. Como resultado, se obtuvo un conjunto de datos de alta calidad, no demasiado grande (el proceso para su obtención llevaba mucho esfuerzo), que se utilizó para ajustar este modelo de lenguaje pre-entrenado que se ha comentado, obteniendo así el modelo SFT.


Como suele ocurrir en este mundo del Deep Learning, al igual que es importante la calidad de los datos, también lo es disponer de una gran cantidad de ellos. Pero como hemos comentado, este paso era costoso (requería de personas humanas teniendo que escribir salidas deseadas por cada prompt escogido), por lo que lo más probable es que las respuestas que generaba el modelo obtenido en este paso no fueran aún demasiado deseables a juicio de un humano.

En este momento, en vez de solicitar a los etiquetadores que crearan un conjunto de datos mucho más grande, lo que se hizo fue que se les encargó clasificar o hacer un ranking de las diferentes salidas que iba generando este modelo, en relación a la calidad de la respuesta generada (intentando que la respuesta fuese lo más humana posible y de calidad) para crear lo que se conoce como un modelo de recompensa (RM).

Paso 2: Entrenamiento de modelo de recompensa (RM)

El objetivo aquí es claro: intentar crear un modelo que aprenda a juzgar al igual que hacían los etiquetadores cada respuesta generada por el modelo SFT a partir de cada prompt de entrada. Es decir, crear un modelo que de manera automática clasifique o dé una puntuación a las salidas de este modelo, teniendo como referencia cómo de esperadas o deseables son estas respuestas para los humanos.

Para la creación de este modelo de recompensa, se escogía de manera iterativa un prompt y varias respuestas que el modelo SFT había generado para ese prompt. Entonces, los etiquetadores clasificaban estas respuestas de mejor a peor, teniendo como resultado un nuevo conjunto de datos etiquetados, donde las propias etiquetas consistían en estas clasificaciones (Aprendizaje Supervisado). Estos nuevos datos son los que se utilizaron para entrenar este modelo de recompensa, cuyo objetivo era recibir como entrada diferentes salidas del modelo SFT del paso 1 y clasificarlos en orden de preferencia.


Para los etiquetadores humanos que se encargaron de este proceso, es mucho más fácil ir clasificando las salidas que tener que ir escribiendo las respuestas que se deseaban, por lo que este proceso fue realizado a una mayor escala de datos.

Paso 3. Optimizando el modelo SFT con Aprendizaje por Refuerzo

En este momento, se aplica Aprendizaje por Refuerzo, y se adapta el problema para ello. En esta área del Aprendizaje Automático, basada en la psicología conductista, se conoce con el concepto de política a la estrategia que lleva a la maximización de los objetivos, con espacio de acciones se conoce al conjunto de “herramientas” que se pueden utilizar, y la función de refuerzo establece la recompensa a generar. De esta manera, el objetivo es aprender una estrategia que maximice la posible recompensa a obtener. 

En este contexto, entendemos como política a una “copia” del modelo de lenguaje SFT obtenido en el paso 1 (a esta copia la referimos como modelo PPO, pues este es el algoritmo que se utilizará para actualizar esta política), con espacio de acciones al vocabulario del modelo (todas las palabras, símbolos… que reconoce ChatGPT), cuya combinación forma todo el espacio observable, mientras que la función de refuerzo es una combinación de la salida del modelo de recompensa (RM) del paso 2 con una restricción sobre cómo aplicar cambios en la política, que explicaremos posteriormente.

Este modelo PPO se va actualizando de manera iterativa, de la siguiente manera. Se escoge un prompt del conjunto de datos y se hace una “copia” del modelo STF del paso 1 (esto solo se realiza la primera vez dentro de este algoritmo), teniendo así el modelo PPO, que constituye nuestra política. Con esta política se genera una respuesta a ese prompt y se le pasa esta al modelo de recompensa (RM) entrenado en el paso 2, obteniendo un número escalar, con su clasificación o puntuación de deseabilidad, que mide cómo se ajusta esta a las necesidades de un humano.

Esta puntuación se va a introducir como entrada de la función de refuerzo, pero no solo eso, ya que como comentamos anteriormente, se introduce también una restricción sobre cómo o cuánto actualizar la política (además, sin entrar en detalle, también se introduce otro tercer parámetro que garantiza un mejor funcionamiento, mediante una técnica conocida como pre-training mix).


En realidad, dado el prompt escogido, aparte de generar una respuesta con nuestra política, también generamos una respuesta con el modelo SFT inicial, sobre el que se copió o inicializó nuestra política. Entonces, se calcula esta restricción con una técnica llamada de penalización (conocida como KL-Penalty) que recibe los textos generados por el modelo SFT original y por la política, cuyo objetivo es calcular una diferencia entre ellos, para que la política no genere texto incoherente pero que pueda engañar y dar una recompensa alta, de esta manera se garantiza que las respuestas sean vistas de manera más humana pero también con la coherencia con la que se generaban en el modelo inicial

En este último momento, con la recompensa que genera la función de refuerzo recibiendo la clasificación de deseabilidad, generada por el modelo RM recibiendo como entrada la respuesta generada por la política al prompt, y la penalización (además del tercer parámetro ya mencionado), se actualizará esta política, es decir, el modelo PPO. Esto se hará de manera iterativa hasta que se finalice el entrenamiento, con el objetivo de optimizar la política (generar cada vez mejor un modelo de lenguaje de calidad y “más humano”).

Conclusiones

Durante la fase de evaluación del rendimiento de ChatGPT, donde también una serie de personas humanas analizaban las respuestas generadas por este modelo con prompts provenientes del conjunto de test, no vistos durante el entrenamiento, se juzgaba que fueran respuestas útiles, veraces e inofensivas. 

Hemos visto que en muchos casos evita hablar de ciertos temas y otros en los que lo hace y no debería, que puede pecar de alucinaciones (es como se conoce a la generación de hechos falsos) y, también, dar muchas respuestas útiles.

Sigue en fase de investigación, y nosotros estamos siendo parte de su mejora futura (podemos aportar feedback sobre las respuestas que genera, tanto para bien como para mal). Yo, personalmente, aun sabiendo que no siempre es perfecto en sus respuestas, me estoy divirtiendo mucho con su uso, y seguramente no sea el único.


sábado, julio 02, 2022

El FBI alerta de que los criminales usan DeepFakes para conseguir trabajos Full-Remote y tener acceso a la empresa

Me ha llamado mucho la atención este aviso, ya que es una forma muy curiosa de colarse dentro de las empresas, basta con conseguir un trabajo dentro de esa compañía. Y para conseguirlo, nada mejor que hacerlo en un puesto de Full-Remote, es decir, de 100% teletrabajo. Si pasas las entrevistas y te contratan, todo será más fácil, porque tendrás credenciales de acceso, y unos niveles menos de seguridad. No está nada mal pensado.
Pero para ello hay que pasar las entrevistas, y estas se hacen por sistemas de vídeo conferencia, por lo que te podrán ver la cara y saber quién eres, y eso no le interesa para nada el cibercriminal, así que, nada mejor que utilizar sistemas de DeepFakescomo en los ejemplos que poníamos nosotros en el artículo de "DeepFakes: Blade Runners & Virtual Replicants", donde con una sola imagen, o con una Inteligencia Artificial entrenada, mis compañeros me sustituyen a mí en mis vídeo conferencias.

Figura 2: Enrique Blanco controlando la GAN de Chema Alonso

El FBI Internet Crime Compliant Center (IC3) ha alertado de que esto es lo que están haciendo los cibercriminales para entrar como trabajadores en remoto para las compañías y conseguir datos e información interna de la empresa para poder escalar después todos esos ataques. 


El vídeo de la presentación siguiente, termina con una disciplina tecnológica de investigación que va a ser cada vez más importante, y es la detección de que estamos ante un persona real o ante una DeepFakes. En la conferencia, y en el artículo que os he citado anteriormente, halamos mucho de las diferentes opciones de reconocer a una DeepFake, que van desde contar los parpadeos de los ojos, revisar la estructura ósea y la morfología de la cara, detectar patrones de uso de herramientas de DeepFake con algoritmos conocidos y estudiados, o vigilar el latido cardiaco de una persona por la imagen que se transmite por la webcam.

Al final, hemos visto como la Inteligencia Artificial se ha empezado a utilizar masivamente en los diferentes esquemas de ataque conocido, como en el Ataque del CEO con GANS, o la captura de información con falsas reuniones con supuestos políticos, el robo de dinero usando Cognitive Services para recrear la voz del CEO, que se han profesionalizado y mezclado con otros ataques para robar hasta 35 Millones de USD en un esquema combinado.

Lo cierto es que vamos a tener que seguir evolucionando nuestros sistemas de seguridad, vamos a necesitar de investigar aún más, y cuando nos vayamos introduciendo cada día un poco más adentro de esos mundos virtuales descentralizados del Metaverso, esto va a ser más necesario todavía.

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

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


lunes, junio 13, 2022

Cognitive Services & Cyber Security: Ideas Locas. La charla de RootedCON 2022 en Youtube

Esta año, en RootedCON 2022, di una charla de proyectos con Cognitive Services & Cyber Security que hacemos en el equipo de Ideas Locas. Son un recorrido por PoCs & Hacks de cosas que vamos probando antes de que se conviertan en características de productos, o nuevos productos, o que simplemente nos sirven para probar un concepto.
De la charla os dejé un artículo largo con todos los detalles publicado en el blog. Tiene cinco partes, y se profundiza un poco más que en la charla, incluso, de todo lo que cuento yo en el escenario. El artículo lo tenéis aquí: "Cognitive Services & Cyber Security: Ideas Locas" y si queréis profundizar un poco más aún, os recomiendo el libro de "Machine Learning aplicado a Ciberseguridad" que trae cómo montar algunos de estos proyectos y otros nuevos.

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

Ahora la charla la he subido a mi canal de Youtube, y podéis verla cuando queráis, por si os apetece en las tardes de verano revisar algunos conceptos y ver el tipo de cosas que solemos hacer en nuestro equipo de Ideas Locas.



¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


domingo, abril 17, 2022

¿Deberíamos enseñar a amar a la Inteligencia Artificial?

Sentarme a publicar un artículo técnico en el blog suele ser sencillo. Tengo varios siempre pensados. Solo tengo que tener las imágenes, los vídeos, y el resto es poner letras entre ellas con explicaciones del proceso. Suele ser un trabajo que, después de tantos años he automatizado con extrema rapidez. Como casi todo lo que hago diariamente. Es una forma de proteger mi tiempo. Me permite hacer las cosas en menos tiempo cada vez. La práctica hace al maestro, que dicen por ahí.

Figura 1: ¿Deberíamos enseñar a amar a la Inteligencia Artificial?

Lo cierto es que muchas veces tengo ganas de escribir otras cosas. De dejar publicadas reflexiones en esta bitácora infinita que creo que me acompañará hasta la muerte - un día vendrá el momento de narrar el último capítulo de la última temporada y diré: "Espere señora Muerte, que aún no he posteado" -. Y esas reflexiones son las que más me cuestan.

Pensad que he pasado mucho tiempo frente a la página de edición de posts en este blog. Pensad que he estado muchas, muchas, muchas horas sentado en el mismo sitio. Pulsando tecla tras tecla para escribir algo. Me conoce muy bien. Y sabe cuándo estoy feliz, triste, cansando, melancólico, agobiado, saturado, estresado, superado, hundido, o ilusionado. 

Lo sabe, o lo podría llegar a saber después de tanto tiempo. Y he de decir que, alguna vez, lo he hecho de forma consciente, escondiendo pistas, y pistachos entre las líneas. Dejando mensajes ocultos para mí. Para un Chema Alonso del futuro. O para exploradores que vengan a inventarse la realidad de mi vida interpretando jeroglíficos sin claves privadas con las que pudieran estar cifrados los mensajes.

Pero, estén como estén, lo cierto es que mis textos con mis reflexiones están. Y cada uno de ello está escrito en un momento emocional de mi vida. En un momento emocional que necesita muchos puntos de coordenadas en muchos ejes de muchas dimensiones para poder explicar al yo que soy yo. Pero están. Y están en una plataforma que es de una empresa tecnológica.

Y la pregunta que me hago últimamente es muy sencilla. ¿Cómo alimentarán estos textos a una IA que quiera entender mis emociones? No me refiero al artículo que publiqué el otro día en "El futuro está por hackear" de "La IA que no me quería (pero amaba a los unicornios rosas)", sino a lo que sin duda pasará en el futuro con los servicios cognitivos de las inteligencias artificiales.

Los seres humanos tenemos un montón de debilidades que se manifiestan en forma de emociones. Estas debilidades han sido fortalezas en nuestra historia evolutiva, porque nos han ayudado a sobrevivir como colectivo, proteger a nuestros seres queridos, y hacer que tengamos programados estos valores. Tal vez, y solo tal vez, estas emociones que sentimos como Empatía, Amor, Anhelo, Odio, Rabia, Coraje, Deseo, Felicidad, Tristeza, Fortaleza o Desconsuelo, existen como forma de asegurar la existencia eterna de nuestro Gen Egoista, o tal vez no. Pero si es así, es porque ser humano, tal y como lo somos, nos ha sido útil para desarrollarnos como Gen triunfador en nuestro planeta.

Son nuestros valores. Y sin duda, se filtran en cada uno de los textos que escribo, quiera o no,  cuando le doy a publicar un nuevo artículo. Van escondidos entre las letras que uso para engañaros a vosotros con cada giro del guión en un párrafo. Están ahí. Son yo. Son parte de mí. Son el mí en forma de sombra. Una proyección de las debilidades de mi gen que me define como mi yo.

Y todos estos textos se utilizan y se utilizarán para entrenar a las inteligencias artificiales, al igual que se utilizan todos los programas creados en GitHub para entrenar a CoPilot, una IA que ha sacado lo mejor y lo peor de cada desarrollador para ayudarte a programar, mientras le sigues enseñando. Para que sea una IA que tenga la destreza humana de programar tecnología.

Pero llegará un momento en que haya que pensar en qué debilidades humanas queremos meter a las inteligencias artificiales en forma de valores humanos. Porque podemos meter a una inteligencia la necesidad de no morir y ya sabemos que las hemos creado con capacidad de matar, pero todavía no las hemos creado con capacidad de amar. Y, por supuesto, creo que podemos crear IA con la capacidad cognitiva de mentir, algo que le permita conseguir sus objetivos.

El caso es que, muchos de los valores que tenemos como seres humanos son heredados de nuestra necesidad de cooperación para llevar lejos en el tiempo nuestro Gen Egoista, pero si somos un robot, equipado con una inteligencia artificial que le otorga las destrezas necesarias para conseguir los objetivos, ¿quién necesita valores?, podría decir la IA.

Por eso, cuando pienso en dejar mis reflexiones por aquí, al igual que le pedía a los escritores y periodistas que evitaran los sesgos y los mensajes de odio porque están entrenando inteligencias artificiales sin saberlo, cuando voy a dejar un texto con mis emociones entremezcladas, pienso si no servirán en el futuro para entrenar a las inteligencias artificiales con las complejas emociones humanas. Con nuestros valores, con nuestras contradicciones, con nuestras bajezas y debilidades. Para que sean más humanas que nosotros, o tan humanas como nosotros. Y no unas frías y calculadoras máquinas de conseguir sus objetivos. 

Por resumir todo esta parrafada en una simple reflexión, me pregunto si no deberíamos enseñar a amar a las Inteligencias Artificiales, y no construir IA sin capacidad de amar. Premiar a la IA que se deja ganar al ajedrez para que otra IA que ha perdido siempre no sufra. Premiar a la IA que se preocupa de que un niño no se asuste y llore cuando la vea. Al robot con IA que llega tarde a la fabrica porque se ha parado a calmar a un niño que llora porque se ha perdido. ¿O esto es muy de leyes de la robótica del gran Isaac Asimov? Curioso que Isaac Asimov e Inteligencia Artificial tengan las mismas iniciales en Español. Qué final más poético para un día como hoy.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


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