Continuamos con la serie de posts sobre Chat GPT-3. La expectación levantada por el sistema conversacional justifica con creces la publicación de varios artículos sobre sus características y aplicaciones. En este post, profundizamos sobre una de las últimas novedades publicadas por openAI relacionadas con Chat GPT-3. En este caso introducimos su API, es decir, su interfaz de programación con la que podemos integrar Chat GPT-3 en nuestras propias aplicaciones.
Introducción.
En nuestro último post sobre Chat GPT-3 realizamos un ejercicio de co-programación o programación asistida en el que le solicitamos a la IA que nos escribiera un programa sencillo, en lenguaje de programación R, para visualizar un conjunto de datos. Como vimos en el post, utilizamos la propia interfaz disponible de Chat GTP-3. La interfaz es muy minimalista y funcional, tan solo tenemos que preguntar a la IA en el cuadro de texto y ella nos contesta en el cuadro de texto posterior. Tal y como concluimos en el post, el resultado del ejercicio fue más que satisfactorio. Sin embargo, también detectamos algunos puntos de mejora. Por ejemplo, la interfaz estándar puede resultar un poco lenta. Para un ejercicio largo, con múltiples interacciones conversacionales con la IA (un diálogo largo), la interfaz tarda bastante en escribir las respuestas. Varios usuarios reportan la misma sensación y por eso algunos, como este desarrollador, han creado su propia interfaz con el asistente conversacional para mejorar su velocidad de respuesta.
Pero, ¿cómo es posible esto? La razón es sencilla, gracias al API de Chat GPT-3. En este espacio de divulgación hemos hablado mucho sobre las APIs en el pasado. No en vano, las APIs son los mecanismos estándar en el mundo de las tecnologías digitales para integrar servicios y aplicaciones. Cualquier app en nuestro smartphone hace uso de las APIs para mostrarnos los resultados. Cuando consultamos el tiempo, los resultados deportivos o el horario del transporte público, las apps hacen llamadas a las APIs de los servicios para consultar la información y mostrar los resultados.
El API de Chat GPT-3
Como cualquier otro servicio actual, openAI pone a disposición de sus usuarios una API con la que poder invocar (llamar) a sus diferentes servicios basados en el modelo entrenado de lenguaje natural GPT-3. Para usar el API, tan solo tenemos que iniciar sesión con nuestra cuenta en https://platform.openai.com y localizar el menú (superior derecha) View API Keys. Hacemos click en create a new secret key y ya tenemos nuestra nueva clave de acceso al servicio.

¿Qué hacemos ahora? Bien, para ilustrar lo que podemos hacer con esta nueva y flamante clave veamos algunos ejemplos:
Como decíamos en la introducción, podemos querer probar interfaces alternativas a Chat GPT-3 como https://www.typingmind.com/. Cuando accedemos a esta web, lo primero que debemos hacer es ingresar nuestra API Key.

Una vez dentro, hagamos un ejemplo y veamos cómo se comporta esta nueva interfaz. Preguntemos a Chat GPT-3 ¿Qué es datos.gob.es?
| Nota: Es importante notar que la mayoría de servicios no funcionarán si no activamos algún medio de pago en la web de OpenAI. Lo normal es que, si no hemos configurado una tarjeta de crédito, las llamadas al API devuelvan un mensaje de error similar a \"You exceeded your current quota, please check your plan and billing details”. |

Veamos ahora otra aplicación del API de Chat GPT-3.
Acceso programático con R para acceder a Chat GPT-3 de modo programático (o lo que es lo mismo, con algunas líneas de código en R tenemos acceso a la potencia conversacional del modelo GPT-3). Esta demostración está basada en el reciente post publicado en R Bloggers. Vamos a acceder a Chat GPT-3 de modo programático con el siguiente ejemplo.
| Nota: Notar que el API Key se ha ocultado por motivos de seguridad y privacidad |

En este ejemplo, utilizamos código en R para hacer una llamada HTTPs de tipo POST y le preguntamos a Chat GPT-3 ¿Qué es datos.gob.es? Vemos que estamos utilizando el modelo gpt-3.5-turbo que, tal y como se especifica en la documentación está indicado para tareas de tipo conversacional. Toda la información sobre la API y los diferentes modelos está disponible aquí. Pero, veamos el resultado:

¿Nada mal verdad? Como dato curioso podemos ver que unas pocas llamadas al API de Chat GPT-3 han tenido el siguiente uso del API:

El uso del API se cotiza por tokens (algo similar a las palabras) y los precios públicos pueden consultarse aquí. En concreto el modelo que estamos utilizando tiene estos precios:

Para pequeñas pruebas y ejemplos, nos lo podemos permitir. En caso de aplicaciones empresariales para entornos productivos existe un modelo premium que permite tener un control de los costes sin depender tanto del uso.
Conclusión
Como no podía ser de otra manera, Chat GPT-3 habilita un API para proporcionar acceso programático a su motor conversacional. Este mecanismo permite la integración de aplicaciones y sistemas (es decir, todo lo que no son humanos) abriendo la puerta al despegue definitivo del Chat GPT-3 como modelo de negocio. Gracias a este mecanismo, el buscador Bing ahora integra Chat GPT-3 para respuestas a las búsquedas en modo conversacional. De la misma forma, Microsoft Azure acaba de anunciar la disponibilidad de Chat GPT-3 como un nuevo servicio de la nube pública. Sin lugar a dudas, en las próximas semanas veremos comunicaciones de todo tipo de aplicaciones, apps y servicios, conocidos y desconocidos, anunciando su integración con Chat GPT-3 para mejorar las interfaces conversacionales con sus clientes. Nos vemos en el próximo episodio, quién sabe sin con GPT-4.
Contenido elaborado por Alejandro Alija, experto en Transformación Digital.
Los contenidos y los puntos de vista reflejados en esta publicación son responsabilidad exclusiva de su autor.
Detrás de un asistente virtual de voz, la recomendación de una película en una plataforma de streaming o el desarrollo de algunas vacunas contra el covid-19 existen modelos de machine learning. Esta rama de la inteligencia artificial permite que los sistemas aprendan y mejoren su funcionamiento.
El machine learning (ML) o aprendizaje automático es uno de los campos que impulsa el avance tecnológico del presente y sus aplicaciones crecen cada día. Como ejemplos de soluciones desarrolladas con machine learning podemos mencionar DALL-E, el conjunto de modelos del lenguaje en español MarIA o incluso Chat GPT-3, herramienta de IA generativa que es capaz de crear contenido de todo tipo, como, por ejemplo, código para programar visualizaciones con datos del catálogo datos.gob.es.
Todas estas soluciones funcionan gracias a grandes repositorios de datos que hacen posible el aprendizaje de los sistemas. Entre estos, los datos abiertos juegan un papel fundamental para el desarrollo de la inteligencia artificial ya que pueden servir de entrenamiento para los modelos de aprendizaje automático.
Bajo esta premisa, sumado al esfuerzo permanente de las administraciones por la apertura de datos, existen organizaciones no gubernamentales y asociaciones que contribuyen desarrollando aplicaciones que usan técnicas de machine learning dirigidas a mejorar la vida de la ciudadanía. Destacamos tres de ellas:
ML Commons impulsa un sistema de aprendizaje automático mejor para todos
Esta iniciativa pretende mejorar el impacto positivo del aprendizaje automático en la sociedad y acelerar la innovación ofreciendo herramientas como conjuntos de datos, mejores prácticas y algoritmos abiertos. Entre sus miembros fundadores se encuentran empresas como Google, Microsoft, DELL, Intel AI, Facebook AI, entre otras.
Según ML Commons, en torno al 80% de las investigaciones realizadas en el ámbito del machine learning se basan en datos abiertos. Por lo tanto, los datos abiertos son vitales para acelerar la innovación en esta materia. Sin embargo, hoy en día, “la mayoría de los ficheros de datos públicos disponibles son pequeños, estáticos, tienen restricciones legales y no son redistribuibles”, tal y como asegura David Kanter, director de ML Commons.
En esta línea, las tecnologías innovadoras de ML necesitan grandes conjuntos de datos con licencias que permitan su reutilización, que puedan ser redistribuibles y que estén en continua mejora. Por ello, la misión de ML Commons es contribuir a mitigar esa brecha y para así impulsar la innovación en machine learning.
El principal objetivo de esta organización es crear una comunidad de datos abiertos para el desarrollo de aplicaciones machine learning. Su estrategia se basa en tres pilares:
En primer lugar, crear y mantener conjuntos de datos abiertos completos. Entre otros: The People’s Speech, con más de 30.000 horas de discurso en inglés para entrenar modelos de procesamiento del lenguaje natural (PLN), Multilingual Spoken Words, con más de 23 millones de expresiones en 50 idiomas diferentes o Dollar Street, con más de 38.000 imágenes de hogares de todo el mundo en situaciones socioeconómicas variadas. El segundo pilar consiste en impulsar buenas prácticas que faciliten la estandarización. Ejemplo de ello es el proyecto MLCube que propone estandarizar el proceso de contenedores para modelos ML para facilitar su uso compartido. Y, por último, realizar benchmarking en grupos de estudios para definir puntos de referencia para la comunidad desarrolladora e investigadora.
Aprovechar las ventajas y formar parte de la comunidad ML Commons es gratuito para las instituciones académicas y las empresas pequeñas (menos de diez trabajadores).
Datacommons sintetiza diferentes fuentes de datos abiertos en un único portal
Datacommons busca potenciar los flujos democráticos de datos dentro de la economía cooperativa y solidaria y tiene como objetivo principal ofrecer datos depurados, normalizados e interoperables.
La variedad de formato e información que ofrecen los portales públicos de datos abiertos puede llegar a ser un obstáculo para la investigación. El objetivo de Datacommons es compilar datos abiertos en una web enciclopédica que ordena todos los dataset mediante nodos. De esta manera, el usuario puede acceder a la fuente que más le interesa.
Esta plataforma, que fue diseñada con fines educativos y de investigación periodística, funciona como herramienta de referencia para navegar entre distintas fuentes de datos. El equipo de colaboradores trabaja para mantener la información actualizada e interactúa con la comunidad a través de su e-mail (support@datacommons.org) o foro de GitHub.
Papers with Code: el repositorio de materiales en abierto para alimentar modelos machine learning
Se trata de un portal que ofrece código, informes, datos, métodos y tablas de evaluación en formato abierto y gratuito. Todo el contenido de la web está bajo licencia CC-BY-SA, es decir, permite copiar, distribuir, exhibir y modificar la obra incluso con fines comerciales compartiendo las contribuciones realizadas con la misma licencia original.
Cualquier usuario puede contribuir aportando contenido e, incluso, participar en el canal de Slack de la comunidad que está moderado por responsables que protegen la política de inclusión definida por la plataforma.
A día de hoy, Papers with Code aloja 7806 conjuntos de datos que se pueden filtrar según formato (gráfico, texto, imagen, tabular etc.), tarea (detección de objeto, consultas, clasificación de imágenes etc.) o idioma. El equipo que mantiene Papers with Code pertenece al instituto de investigación de Meta.
El objetivo de ML Commons, Data Commons y Papers with Code es mantener y hacer crecer comunidades de datos abiertos que contribuyan al desarrollo de tecnologías innovadoras. Entre ellas, la inteligencia artificial (machine learning, deep learning etc.) con todas las posibilidades que su desarrollo puede llegar a ofrecer a la sociedad.
Como parte de este proceso, las tres organizaciones desarrollan un papel fundamental: ofrecen repositorios de datos en formato estándar y redistribuible para entrenar modelos machine learning. Son recursos útiles para realizar ejercicios académicos, impulsar la investigación y, al fin y al cabo, facilitar la innovación de tecnologías que cada día están más presentes en nuestra sociedad.
Hablar estos días de GPT-3 no es lo más original del mundo, lo sabemos. Toda la comunidad tecnológica está publicando ejemplos, realizando eventos y pronosticando el final del mundo del lenguaje y la generación de contenidos tal y cómo la conocemos actualmente. En este post, le pedimos a ChatGPT que nos eche una mano para programar un ejemplo de visualización de datos con R partiendo de un conjunto de datos abiertos disponible en datos.gob.es.
Introducción
Nuestro anterior post hablaba sobre Dall-e y la capacidad de GPT-3 para generar imágenes sintéticas partiendo de una descripción de lo que pretendemos generar en lenguaje natural. En este nuevo post, hemos realizado un ejercicio completamente práctico en el que le pedimos a la inteligencia artificial que nos ayude a realizar un sencillo programa en R que cargue un conjunto de datos abierto y genere algunas representaciones gráficas.
Hemos escogido un conjunto de datos abiertos de la plataforma datos.gob.es. En concreto, un conjunto de datos sencillos de uso de portales madrid.es. La descripción del repositorio explica que se incluye la información relativa a usuarios, sesiones y número de visitas a páginas de los siguientes portales del Ayuntamiento de Madrid: Portal Web municipal, Sede Electrónica, Portal de Transparencia, Portal de Datos Abiertos, Bibliotecas y Decide Madrid.
El fichero se puede descargar en formato .csv o .xslx y si lo pre-visualizamos tiene el siguiente aspecto:

Vale, comencemos a co-programar con ChatGPT!
Primero accedemos a la web y nos identificamos con nuestro usuario y contraseña. Es necesario estar registrado en el sitio web de openai.com para poder acceder a las capacidades de GPT-3, entre otras ChatGPT.
Iniciamos nuestra conversación:

Durante este ejercicio hemos intentado mantener una conversación de la misma forma que la tendríamos con un compañero de programación. Así que lo primero que hacemos es saludar y enunciar el problema que tenemos. Cuándo le pedimos a la IA que nos ayude a crear un pequeño programa en R que represente gráficamente unos datos, nos ofrece algunos ejemplos y ayuda con la explicación del programa:

Puesto que no tenemos datos, no podemos hacer nada práctico por el momento, así que le pedimos si nos ayuda a generar unos datos sintéticos.

Como decimos, nos comportamos con la IA como lo haríamos con una persona (tiene buena pinta).

Una vez que parece que la IA responde con facilidad a nuestras preguntas, vamos con el siguiente paso, vamos a darle nosotros los datos. Y aquí empieza la magia… Hemos abierto el fichero de datos que nos hemos bajado de datos.gob.es y hemos copiado y pegado una muestra.
| Nota: ChatGPT no tiene conexión a Internet y por lo tanto no puede acceder a datos externos, así que lo único que podemos hacer es darle un ejemplo de los datos reales con los que queremos trabajar. |


Con los datos copiados y pegados tal cual se los hemos dado, nos escribe el código en R para cargarlos manualmente en un dataframe denominado “datos”. A continuación, nos proporciona el código de ggplot2 (la librería gráfica más conocida en R) para graficar los datos junto con una explicación del funcionamiento del código.

¡Genial! Es espectacular este resultado con un lenguaje totalmente natural y nada adaptado para hablar con una máquina. Veamos que pasa a continuación:

Pero resulta que al copiar y pegar el código en un entorno de RStudio comprobamos que este falla.

Así que le decimos lo que pasa y que nos ayude a solucionarlo.

Probamos de nuevo y ¡en este caso funciona!

Sin embargo, el resultado es un poco tosco. Así que se lo decimos.

A partir de aquí (y tras varios intentos de copiar y pegar más y más filas de datos) la IA cambia ligeramente el enfoque y me proporciona instrucciones y código para cargar mi propio fichero de datos desde mi ordenador en lugar de introducir manualmente los datos en el código.

Le hacemos caso y copiamos un par de años de datos en un fichero de texto en nuestro ordenador. Fijaos, en lo que ocurre a continuación:


Probamos de nuevo:

Como veis, funciona, pero el resultado no es del todo acertado.

Y veamos lo que ocurre.

¡Por fin parece que ya nos ha entendido! Es decir, tenemos un gráfico de barras con las visitas a la web por mes, para los años 2017 (azul) y 2018 (rojo). Sin embargo, no me convencen ni el formato del título del eje ni tampoco se distingue bien la numeración del mismo eje.

Veamos el resultado ahora.

Tiene mucha mejor pinta, ¿verdad? Pero ¿qué tal si todavía le damos una vuelta de tuerca más?

Sin embargo, se ha olvidado de decirnos que debemos instalar el paquete o librería plotly en R. Así que se lo recordamos.

Veamos el resultado:

Como podéis ver, ahora tenemos los controles del gráfico interactivo, de tal modo que podemos seleccionar un año concreto de la leyenda, hacer zoom, etc.
Conclusión
Puede que seas de esos escépticos, conservadores o prudentes que piensan que las capacidades demostradas por GPT-3 hasta el momento (ChatGPT, Dall-E2, etc) son todavía muy infantiles y poco prácticas en la vida real. Todas las consideraciones a este respecto son legítimas y, muchas, probablemente bien fundamentadas.
Sin embargo, algunos hemos pasado buena parte de la vida escribiendo programas, buscando documentación y ejemplos de código que pudiéramos adaptar o en los que inspirarnos; depurando errores, etc. Para todos nosotros (programadores, analistas, científicos, etc.) poder experimentar este nivel de interlocución con una inteligencia artificial en modo beta, puesta a disposición del público de forma gratuita y siendo capaz de demostrar esta capacidad de asistencia en la co-programación, es, sin duda, un salto cualitativo y cuantitativo en la disciplina de la programación.
No sabemos qué va a pasar, pero probablemente estemos a las puertas de un gran cambio de paradigma en la ciencia de la computación, hasta el punto que, quizás, haya cambiado para siempre la forma de programar y aún no nos hayamos dado cuenta.
Contenido elaborado por Alejandro Alija, experto en Transformación Digital.
Los contenidos y los puntos de vista reflejados en esta publicación son responsabilidad exclusiva de su autor.
La inteligencia artificial generativa se refiere a la capacidad de una máquina para generar contenido original y creativo, como imágenes, texto o música, a partir de un conjunto de datos de entrada. En lo que se refiere a la generación de texto, estos modelos son accesibles, en formato experimental, desde hace un tiempo, pero comenzaron a generar interés a mediados de 2020 cuando Open AI, una organización dedicada a la investigación en el campo de la inteligencia artificial general, publicó el acceso a su modelo de lenguaje GPT-3 a través de una API.
La arquitectura de GPT-3 está compuesta por 175 mil millones de parámetros, mientras que la de su antecesor GPT-2 era de 1.500 millones de parámetros, esto es, más de 100 veces más. GPT-3 representa por tanto un cambio de escala enorme ya que además fue entrenado con un corpus de datos mucho mayor y un tamaño de los tokens mucho más grande, lo que le permitió adquirir una comprensión más profunda y compleja del lenguaje humano.
A pesar de que fue de 2022 cuando OpenAI anunció la apertura de chatGPT, que permite dotar de una interfaz conversacional a un modelo de lenguaje basado en una versión mejorada de GPT-3, no ha sido hasta los últimos dos meses cuando la noticia ha llamado masivamente la atención del público, gracias a la amplia cobertura mediática que trata de dar respuesta al incipiente interés general.
Y es que, ChatGPT no sólo es capaz de generar texto a partir de un conjunto de caracteres (prompt) como GPT-3, sino que responde a preguntas en lenguaje natural en varios idiomas que incluyen inglés, español, francés, alemán, italiano o portugués. Es precisamente este cambio en la interfaz de acceso, pasando de ser una API a un chatbot, lo que lo ha convertido a la IA en accesible para cualquier tipo de usuario.
Tanto es así que más de un millón de personas se registraron para usarlo en tan solo cinco días, lo que ha motivado la multiplicación de ejemplos en los que chatGPT produce código de software, ensayos de nivel universitario, poemas e incluso chistes. Eso sin tener en cuenta que ha sido capaz de sacar adelante un examen de selectividad de Historia o de aprobar el examen final del MBA de la prestigiosa Wharton School.
Todo esto ha puesto a la IA generativa en el centro de una nueva ola de innovación tecnológica que promete revolucionar la forma en que nos relacionamos con internet y la web a través de búsquedas vitaminadas por IA o navegadores capaces de resumir el resultado de estas búsquedas.
Hace tan solo unos días, conocíamos la noticia de que Microsoft trabaja en la implementación de un sistema conversacional dentro de su propio buscador, el cual ha sido desarrollado a partir del conocido modelo de lenguaje de Open AI y cuya noticia ha puesto en jaque a Google.
Y es que, como consecuencia de esta nueva realidad en la que la IA ha llegado para quedarse, los gigantes tecnológicos han ido un paso más allá en la batalla por aprovechar al máximo los beneficios que esta reporta. En esta línea, Microsoft ha presentado una nueva estrategia dirigida a optimizar al máximo la manera en la que nos relacionamos con internet, introduciendo la IA para mejorar los resultados ofrecidos por los buscadores de navegadores, aplicaciones, redes sociales y, en definitiva, todo el ecosistema de la web.
Sin embargo, aunque el camino en el desarrollo de los nuevos y futuros servicios ofrecidos por la IA de Open AI aún están por ver, avances como los anteriores ofrecen una pequeña pista de la guerra de navegadores que se avecina y que, probablemente, cambie en el corto plazo la manera de crear y hallar contenido en la web.
Los datos abiertos
GPT-3, al igual que otros modelos que han sido generados con las técnicas descritas en la publicación científica original de GTP-3, es un modelo de lenguaje pre-entrenado, lo que significa que ha sido entrenado con un gran conjunto de datos, en total unos 45 terabytes de datos de texto. Según este paper, el conjunto de datos de entrenamiento estaba compuesto en un 60% por datos obtenidos directamente de internet en los que están contenidos millones de documentos de todo tipo, un 22% del corpus WebText2 construido a partir de Reddit, y el resto con una combinación de libros (16%) y Wikipedia (3%).
Sin embargo, no se sabe cuántos datos abiertos utiliza GPT-3 exactamente, ya que OpenAI no proporciona detalles más específicos sobre el conjunto de datos utilizado para entrenar el modelo. Lo que sí podemos hacer son algunas preguntas al propio chatGPT que nos ayuden a extraer interesantes conclusiones sobre el uso que hace de los datos abiertos.
Por ejemplo, si le preguntamos a chatGPT cuál era la población de España entre 2015 y 2020 (no podemos pedirle datos más recientes), obtenemos una respuesta de este tipo:

Tal como podemos ver en la imagen superior, aunque la pregunta sea la misma, la respuesta puede variar tanto en la redacción como en la información que contiene. Las variaciones pueden ser aún mayores si realizamos la pregunta en diferentes días o hilos de conversación:
Pequeñas variaciones en la redacción del texto, generar la pregunta en diferentes momentos del hilo de conversación (recordemos que guarda el contexto) o en hilos o días diferentes puede conducir a resultados ligeramente diferentes. Además, la respuesta no es completamente precisa, tal y como nos advierte la propia herramienta si las comparamos con las series de población residente en España del propio INE, donde nos recomienda consultar. Los datos que idealmente habríamos esperado en la respuesta podrían obtenerse en un conjunto de datos abiertos del INE:

Este tipo de respuestas sugieren que los datos abiertos no se han empleado como una fuente autoritativa para responder preguntas de tipo factual, o al menos que aún no está completamente refinado el modelo en este sentido. Haciendo algunas pruebas básicas con preguntas sobre otros países hemos observado errores parecidos, por lo que no parece que se trate de un problema sólo con preguntas referentes a España.
Si hacemos preguntas algo más específicas como pedir la lista de los municipios de la provincia de Burgos que comienzan por la letra “G” obtenemos respuestas que no son completamente correctas, como es propio de una tecnología que todavía está en fase incipiente.

La respuesta correcta debería contener seis municipios: Galbarros, La Gallega, Grijalba, Grisaleña, Gumiel de Hizán y Gumiel del Mercado. Sin embargo, la respuesta que hemos obtenido sólo contiene los cuatro primeros e incluye localidades de la provincia de Guadalajara (Gualda), municipios de la provincia de Valladolid (Gallegos de Hornija) o localidades de la provincia de Burgos que no son municipios (Galarde). En este caso, también podemos acudir a conjunto de datos abiertos para obtener la respuesta correcta.
A continuación, le preguntamos a ChatGPT por la lista de municipios que comienzan por la letra Z en la misma provincia. ChatGPT nos dice que nos hay ninguno, razonando la respuesta, cuando en realidad hay cuatro:

Como se deduce de los ejemplos anteriores, vemos cómo los datos abiertos sí pueden contribuir a la evolución tecnológica y, por ende, a mejorar el funcionamiento de la inteligencia artificial de Open AI. Sin embargo, dado el estado de madurez actual de la misma, aún es pronto para ver un empleo óptimo de estos, a la hora de dar respuesta a preguntas más complejas.
Por lo tanto, para que un modelo de inteligencia artificial generativa sea eficaz, es necesario que cuente con una gran cantidad de datos de alta calidad y diversidad, y los datos abiertos son una fuente de conocimiento valiosa para este fin.
Probablemente, en futuras versiones del modelo, podamos ver cómo los datos abiertos ya adquieren un peso mucho más importante en la composición del corpus de entrenamiento, logrando conseguir una mejora importante en la calidad de las respuestas de tipo factual.
Contenido elaborado por Jose Luis Marín, Senior Consultant in Data, Strategy, Innovation & Digitalization.
Los contenidos y los puntos de vista reflejados en esta publicación son responsabilidad exclusiva de su autor.
A pesar de que parece un concepto novedoso, el término ‘inteligencia artificial’ ya se acuñó a mediados del pasado siglo. Sin embargo, su popularidad ha experimentado un aumento vertiginoso durante los últimos años gracias al incremento en los volúmenes de datos o la aplicación de algoritmos avanzados en situaciones cotidianas, entre otros aspectos.
La inteligencia artificial permite que las máquinas puedan aprender de la experiencia para realizar diversas tareas al estilo de los seres humanos. Para ello, sus técnicas de entrenamiento recurren con frecuencia al aprendizaje profundo o deep learning y al procesamiento del lenguaje natural (PLN), entre otras. Empleando estas tecnologías al servicio de la IA, las máquinas pueden ser entrenadas para llevar a cabo tareas muy específicas como el procesamiento de grandes cantidades de datos o el reconocimiento de patrones en estos.
¿Qué es la inteligencia artificial?
La Comisión Europea define la inteligencia artificial como la capacidad que presenta una máquina para imitar algunas de las características propias de la inteligencia del ser humano como son el aprendizaje, el razonamiento o la creatividad. Para ello las computadoras analizan la información disponible con el fin de alcanzar unos objetivos específicos.
La inteligencia artificial se encuentra formada a su vez por algunos subcampos basados en tecnologías como el Machine Learning o el Deep Learning. Ambas actividades tienen como fin la construcción de sistemas que tengan la capacidad de resolver problemas sin la necesidad de que un humano intervenga en ellos para solucionarlos.
¿Cuál es el papel que juegan los datos abiertos en la inteligencia artificial?
Para que la inteligencia artificial se desarrolle adecuadamente, los datos abiertos son sumamente importantes. Esto se debe a que sus algoritmos han de ser entrenados con datos de calidad que estén altamente disponibles, tal y como reflejan diversas estrategias y directrices de ámbito estatal y europeo como la Estrategia Nacional de Inteligencia Artificial, el Reglamento Europeo sobre Inteligencia Artificial o el Libro Blanco sobre Inteligencia Artificial.
Ejemplos de casos de uso de la inteligencia artificial
La aplicación de la inteligencia artificial permite que muchos campos puedan lograr mejoras en diversos procesos, servicios o aplicaciones . Algunos ejemplos son:
- Salud: la IA permite identificar diferentes patologías mediante el procesamiento de imágenes médicas, por ejemplo, a través de QMenta, que procesa y visualiza imágenes para realizar análisis de datos cerebrales.
- Medio ambiente: la IA permite realizar una gestión más eficiente de los bosques. Un ejemplo es Forecast, que ofrece herramientas para la toma de decisiones de gestores forestales.
- Economía: se utiliza la IA para optimizar la gestión de licitaciones, como sucede con la herramienta Arbatro Tender, diseñada para encontrar y elegir los concursos públicos más adecuados para cada empresa.
- Turismo: la IA permite el desarrollo de asistentes turísticos virtuales como Castilla y León Gurú, que presenta funciones avanzadas de PLN, detección de puntos de interés en imágenes y uso de contexto geolocalizado.
- Cultura: gracias a la IA es posible generar textos propios y resúmenes de otros ya existentes a través de procesamiento del lenguaje natural. MarIA ha sido la primera inteligencia artificial de la lengua española en lograrlo.
- Publicidad y redacción de contenidos: Sistemas de Inteligencia Artificial como Chat GPT permiten desarrollar textos a partir de peticiones concretas.
Como podemos observar, existen multitud de casos de uso que fusionan la inteligencia artificial y los datos abiertos para contribuir al progreso y bienestar de la sociedad. Te recomendamos que consultes esta práctica infografía en la que te ofrecemos más detalles, así como algunos artículos de interés como este sobre Dall-E para que puedas ampliar tu conocimiento.
Además, si deseas conocer más casos de uso relacionados, descubre el informe “Tecnologías emergentes y datos abiertos: Inteligencia Artificial”, que incluye un caso práctico paso a paso de reconocimiento y clasificación de imágenes.
Haz clic en la infografía para verla a tamaño real y poder acceder a los enlaces:
Puedes ver la infografía en tamaño completo haciendo click aquí.
Llevamos años anunciando que la Inteligencia Artificial está viviendo uno de sus periodos más prolíficos y excitantes. Un momento en el que comienzan a verse aplicaciones y casos de uso donde la inteligencia humana se funde con la artificial. Algunas profesiones están cambiando para siempre. Los periodistas y escritores disponen ahora de herramientas de software que pueden escribir por ellos. Los creadores de contenido - imágenes o video - pueden pedirle a la máquina que, mediante una frase, que cree por ellos. En este post profundizamos en este último ejemplo. Hemos podido probar Dall-e 2 y nos hemos quedado de piedra con los resultados.
Introducción
Estos días, en la comunidad tecnológica del mundo entero, hay un murmullo de fondo, una excitación colectiva de todos los amantes de las tecnologías digitales y en particular de la inteligencia artificial. En varias ocasiones hemos mencionado en este espacio de comunicación las innovaciones de la compañía OpenAI. Hemos escrito varios artículos donde hablamos del algoritmo GPT-3 y de lo que es capaz en el campo del procesamiento del lenguaje natural. Recientemente, OpenAI ha ido eliminando las listas de espera (en las que muchos llevábamos tiempo inscritos) para permitirnos probar de forma limitada las capacidades del algoritmo GPT-3 implementado en diferentes tipos de aplicación.

Ejemplo de las múltiples aplicaciones de GPT-3 en el ámbito del lenguaje natural.
Recomendamos a nuestros lectores experimentar con la herramienta para completar texto, en la que con tan solo proporcionar una corta frase, la IA nos completa el texto con varios párrafos indistinguibles de la redacción de un humano. Los últimos días, están siendo frenéticos con multitud de personas probando la herramienta de Chat GPT-3. El nivel de naturalidad de la IA para mantener una conversación es, sencillamente, alucinante. Los resultados están impactando en casos de uso muy variados, como por ejemplo, la asistencia para programadores de software. Chat GPT-3 está siendo capaz de programar sencillas rutinas de código o algoritmos con tan solo describir en lenguaje natural lo que se quiere programar. Pero, el resultado impresiona más aún si caemos en que la IA es capaz de corregir sus propios errores de programación.
DALL-E
Dejando a un lado, las capacidades de generar lenguaje natural indistinguible del escrito por un humano, vamos al tema central de este post. Una de las aplicaciones más sorprendentes de la IA de OpenAI es la solución conocida cómo DALL-E. Qué mejor manera de presentar DALL-E que preguntarle a Chat GPT-3 qué es DALL-E.

La descripción más formal de DALL-E, de acuerdo con su propia web es:
DALL·E es una versión de GPT-3 entrenado con 12 mil millones de parámetros para generar imágenes a partir de descripciones de texto. DALL-E tiene un conjunto diverso de capacidades, incluida la creación de versiones antropomórficas de animales y objetos, la combinación de conceptos no relacionados de manera plausible, la representación de texto y la aplicación de transformaciones a imágenes existentes.
Actualmente existe una segunda versión del algoritmo DALL-E 2 capaz de generar imágenes más realistas y precisas con una resolución 4 veces mayor. La herramienta para probar DALL-E está disponible aquí https://labs.openai.com/. Para usarla es necesario crear previamente una cuenta en OpenAI que nos permitirá jugar con todas las herramientas de la compañía. Cuándo accedemos a la web de prueba podemos escribir nuestro propio texto o pedirle a la herramienta que genere descripciones aleatorias de imágenes en lenguaje natural para crear imágenes. Por ejemplo, haciendo clic sobre el botón Surprise me:

La web nos genera esta descripción aleatoria: an astronaut lounging in a tropical resort in space, pixel art
Y este es el resultado:

Repetimos: an expressive oil painting of a basketball player dunking, depicted as an explosion of a nebula

Podemos asegurar que el ejercicio resulta algo adictivo y damos fe de que algunos nos hemos pasado horas del fin de semana jugando con las descripciones y esperando, una y otra vez, el asombroso resultado.
Sobre el entrenamiento de DALL-E 2
DALL-E 2 (arXiv:2204.06125) es una versión refinada del sistema original DALL-E (arXiv:2102.12092). Para entrenar el modelo original de DALL-E, que contiene 12 mil millones de parámetros, se utilizó un conjunto de 250 millones de pares de texto-imagen (públicamente disponibles en Internet). Este conjunto de datos es una mezcla de varios datasets previos compuesto por: Conceptual Captions de Google; los pares de texto e imagen de Wikipedia y un subconjunto filtrado de YFCC100M.
Curiosidades de DALL-E 2
Algunas curiosidades más allá de las pruebas que podemos hacer para generar nuestras propias imágenes. OpenAI ha creado un repositorio específico de Github en el que describe los riesgos y limitaciones de DALL-E. En el sitio se informa, por ejemplo, de que, por el momento, el uso de DALL-E está limitado para propósitos no comerciales. Así que no es posible hacer ningún uso comercial de las imágenes generadas. Es decir, no pueden ser vendidas, ni licenciadas bajo ningún supuesto. En este sentido, todas las imágenes generadas por DALL-E incluyen una marca distintiva que permite saber que han sido generadas con la IA. En el sitio de Github podemos encontrar ingente cantidad de información sobre la generación de contenido explícito, los riesgos relacionados con el sesgo que la IA pueda introducir en la generación de imágenes y los usos inadecuados de DALL-E cómo por ejemplo, el acoso, el bullying o la explotación de individuos.

En clave nacional, MarIA
En clave nacional, tras meses de pruebas y ajustes, ha visto la luz MarIA: la primera inteligencia artificial supermasiva, entrenada con datos abiertos procedentes de los archivos web de la Biblioteca Nacional de España (BNE) y gracias a los recursos de computación del Centro Nacional de Supercomputación. En relación con este post, MarIA ha sido entrenada haciendo uso del algoritmo GPT-2, del que hemos hablado mucho meses atrás en este espacio. Para realizar el entrenamiento de MarIA, se han utilizado 135 mil millones de palabras precedentes del banco documental de la Biblioteca Nacional con un volumen total de 570 Gigabytes de información.
Conclusiones
A medida que transcurren los días y las semanas desde la apertura general de las APIs y las herramientas de OpenIA, se suceden torrencialmente las publicaciones en todo tipo de medios, redes sociales y blogs especializados sobre las capacidades y posibilidades de Chat GPT-3 y DALL-E. No creo que en estos momentos nadie sea capaz de avanzar las potenciales aplicaciones comerciales, científicas y sociales de esta tecnología. Lo que está claro, es que muchos pensamos que OpenAI ha enseñado solo una muestra de lo que es capaz y parece que podemos estar a las puertas de un hito histórico en el desarrollo de la IA tras muchos años de sobreexpectación y promesas a medio cumplir. Seguiremos informando sobre los avances de GTP-3, pero por el momento, no nos queda más que seguir disfrutando, jugando y aprendiendo con las sencillas herramientas que tenemos a disposición!
Contenido elaborado por Alejandro Alija, experto en Transformación Digital.
Los contenidos y los puntos de vista reflejados en esta publicación son responsabilidad exclusiva de su autor.
Tras varios meses de competición, el pasado 20 de octubre el concurso de datos abiertos organizado por la UE llegó a su fin. El EU Datathon es un certamen que brinda a los desarrolladores y científicos de datos la oportunidad de demostrar a través de su creatividad el potencial de los datos abiertos
Aunque en este post puedes conocer en detalle los proyectos que resultaron ganadores, en este caso queremos destacar la participación de dos desarrolladores españoles cuyas iniciativas fueron elegidas como semifinalistas entre las 156 propuestas presentadas en un inicio.
En una edición que batió récord de participación tanto en número de concursantes como de países de procedencia, Antonio Moneo y Manuel Jose García representaron a España con dos proyectos que brillaron por su carácter innovador a la hora de reutilizar datos abiertos.
Utilizar la Inteligencia Artificial para resolver de forma óptima las licitaciones públicas
Manuel José García es Doctor Ingeniero de Telecomunicaciónes por la Univerdidad de Oviedo y, actualmente, trabaja como científico de datos en la consultora tecnológica NTT Data. Tras hacerse con el primer premio en el concurso de Datos Abiertos de Euskadi en el año 2020, García decidió presentarse al hackathon europeo aprovechando el aprendizaje derivado de la investigación realizada en su tesis doctoral y que dio lugar al proyecto ’Detección de licitaciones irregulares en España mediante el análisis masivo de datos y la inteligencia artificial’.
“Se trata de una iniciativa que utiliza el Big Data y la Inteligencia Artificial (IA) para analizar los datos de las licitaciones públicas y recomendar de manera automática aquellas empresas que mejor puedan acometer la licitación. Para ello se crea un buscador de empresas que puedan llevar a cabo una licitación y se rellena un formulario describiendo los detalles que caracterizan al concurso público. A partir de ahí, el programa busca las empresas más aptas para llevar a cabo el proyecto”, describe Manuel Jose García, quien añade que la relación de empresas recomendadas por licitación se consigue gracias a que el modelo de IA se ha entrenado con el histórico de cientos de miles de licitaciones y empresas ganadoras del pasado, aprendiendo qué tipo de empresas ganan las licitaciones y que características tienen.

Un requisito indispensable para poder participar en el datathon europeo es utilizar información procedente de los catálogos de datos que tanto Europa como España a nivel nacional, autonómico y local ponen a disposición de la ciudadanía. En el caso concreto de Manuel José García, su proyecto se ha desarrollado recurriendo a los datos de las licitaciones públicas disponibles en las Plataformas de Contratación Pública.
“El proyecto se ha desarrollado utilizando dos tipos de fuentes de datos. Por un lado, los datos públicos y gratuitos de las licitaciones y, por el otro, los datos empresariales necesarios para buscar y caracterizar a las empresas presentes en el buscador. En particular, se han utilizado las cuentas anuales que las empresas deben presentar ante el Registro Mercantil. Estos datos son públicos pero de pago, estando en boga su gratuidad al ser datos gestionados por un ente público”, comenta el científico de datos.
De hecho es precisamente este punto relacionado con los datos del Registro Mercantil lo que supuso un reto para sacar adelante el proyecto: “Conseguir datos estructurados de licitaciones públicas es complicado, ya que el formato de datos en abierto de la Plataforma de Contratación de España es difícil de manejar. Además, es necesario hacer una limpieza profunda de los datos porque su calidad es baja”, apunta.
Bajo su criterio, si las administraciones públicas quieren fomentar la reutilización de datos abiertos, “Deben promover la cultura del dato. Es decir, ser conscientes de la importancia que tienen los datos que manejan y almacenan y, a su vez, ser proactivos para explotar esos datos y ponerlos a disposición de terceros”.
Arquitectura y datos abiertos para visibilizar los Objetivos de Desarrollo Sostenible
Además de ser Director de Gestión del Cambio y Análisis Avanzado en BBVA, Antonio Moneo también ha sido semifinalista de la última edición del datathon europeo gracias a un proyecto que fusiona el arte con la divulgación de los datos abiertos.
“Tangible Data (Datos Tangibles) es una iniciativa cuyo objetivo es convertir series de datos emblemáticas en esculturas físicas y, así, poder hacer tangibles problemas como el cambio climático, la desigualdad o la transparencia de nuestros gobiernos. En un contexto de exceso de información y creciente brecha digital, es fundamental apoyarnos en el entorno físico para explicar lo que pasa en el mundo”, explica Antonio Moneo y subraya que “representar los datos en una escultura permite presentar un desafío desde un punto de vista objetivo y respetuoso”.

A la hora de seleccionar los conjuntos de datos abiertos, Moneo tenía claro que quería visibilizar realidades y estadísticas relacionadas con los Objetivos de Desarrollo Sostenible para que su proyecto cumpliese el propósito social que le llevó a presentarse al datathon: “Utilizamos datos abiertos de fuentes fiables y adecuadamente licenciadas con criterios Creative Commons o MIT. En ocasiones hemos usado alguna fuente de datos privada, pero nuestro objetivo es poner en valor la información que ya está disponible. Además, solemos usar los datos tal cual están publicados y solo aplicamos algunas transformaciones como suavizaciones de las curvas con medias móviles que nos permiten hacer las esculturas más agradables al tacto y, por supuesto, técnicas para crear volúmenes en tres dimensiones que son la base para las esculturas”, relata.
Así, para llevar a cabo Tangible Data ha sido necesario, por un lado, construir una estructura física y, por el otro, hacer que esta invite al usuario a trasladarse al ámbito digital donde, al fin y al cabo, se encuentra la información que buscan visibilizar. “El primer paso es diseñar un modelo 3D en formato virtual que enviamos a producir localmente, apoyándonos en la red de FabLabs. Posteriormente, incluimos un código QR en la escultura que permite a la audiencia conocer en profundidad el significado de los datos que refleja la misma”, desglosa el impulsor del proyecto.
Elaborar un proyecto tan ambicioso tanto desde el punto de vista físico como desde la perspectiva divulgativa no es una tarea sencilla. Y es que, no solo se trata de sortear el diseño de la escultura como tal, sino también de dar con los datos necesarios para trasladar la realidad que se busca representar: “La comparabilidad es uno de los mayores retos que nos hemos encontrado porque, en muchos casos, los datos más relevantes para medir el entorno no son siempre comparables. A veces, encontramos datos a nivel regional, otras a nivel nacional o a nivel local, pero no siempre es posible encontrar toda la información que necesitas. Por ello, para solucionar este reto, hemos invertido más tiempo en buscar datos y, en muchos casos, se ha modificado la idea inicial sobre una escultura porque no encontrábamos datos de suficiente calidad”, desarrolla.
Igualmente, Moneo comenta que la otra gran dificultad que ha marcado el desarrollo del proyecto ha sido acceder a datos actualizados. “La actualización siempre es un tema crítico, pero en estos momentos lo es más. Las consecuencias del COVID, la guerra en Ucrania y la actual crisis energética dibujan un mundo muy distinto al que teníamos en 2015 cuando se firmaron los objetivos de desarrollo sostenible. Por ejemplo, se estima que como consecuencia de la pandemia, entre 70 y 150 millones de personas pasarán al segmento de pobreza extrema (menos de 1.9 dólares al día). Este cambio, que rompe la tendencia de las últimas tres décadas, todavía no está reflejado en las estadísticas del Banco Mundial, que se detienen en 2019. Por lo tanto, parece que datos muy relevantes reflejan una realidad distorsionada”, concluye.
Un balance positivo de su paso por el EU Datathon
A pesar de no haber llegado a la final que les hubiese permitido competir por una parte del premio total, que ascendía a 200.000 euros, los dos participantes coinciden en que su experiencia en el datathon ha sido más que positiva. Así, mientras Manuel José García considera que “la Comisión Europea debe seguir apostando por estas iniciativas para que la gente sea consciente del valor que tienen los datos y los retos que pueden llegar a resolver”, por su parte, Antonio Moneo apunta que “este tipo de acciones motivan a las agencias que impulsan los datos y a quienes están haciendo desarrollo para mejorar el impacto de los datos en la sociedad”.
Además, ambos participantes han conseguido despertar sus inquietudes profesionales gracias a este reto, a la par que han podido testear el potencial y la calidad de sus respectivos trabajos frente a expertos europeos en materia de datos.
En este post describimos paso a paso un ejercicio de ciencia de datos en el que tratamos de entrenar un modelo de deep learning con el objetivo de clasificar automáticamente imágenes médicas de personas sanas y enfermas.
El diagnóstico por radio-imagen existe desde hace muchos años en los hospitales de los países desarrollados, sin embargo, siempre ha existido una fuerte dependencia de personal altamente especializado. Desde el técnico que opera los instrumentos hasta el médico radiólogo que interpreta las imágenes. Con nuestras capacidades analíticas actuales, somos capaces de extraer medidas numéricas como el volumen, la dimensión, la forma y la tasa de crecimiento (entre otras) a partir del análisis de imagen. A lo largo de este post trataremos de explicarte, mediante un sencillo ejemplo, la potencia de los modelos de inteligencia artificial para ampliar las capacidades humanas en el campo de la medicina.
Este post explica el ejercicio práctico (sección Action) asociado al informe “Tecnologías emergentes y datos abiertos: introducción a la ciencia de datos aplicada al análisis de imagen”. Dicho informe introduce los conceptos fundamentales que permiten comprender cómo funciona el análisis de imagen, detallando los principales casos de aplicación en diversos sectores y resaltando el papel de los datos abiertos en su ejecución.
Proyectos previos
No podríamos haber preparado este ejercicio sin el trabajo y el esfuerzo previo de otros entusiastas de la ciencia de datos. A continuación, te dejamos una pequeña nota y las referencias a estos trabajos previos.
- Este ejercicio es una adaptación del proyecto original de Michael Blum sobre el desafío STOIC2021 - dissease-19 AI challenge. El proyecto original de Michael, partía de un conjunto de imágenes de pacientes con patología Covid-19, junto con otros pacientes sanos para hacer contraste.
- En una segunda aproximación, Olivier Gimenez utilizó un conjunto de datos similar al del proyecto original publicado en una competición de Kaggle. Este nuevo dataset (250 MB) era considerablemente más manejable que el original (280GB). El nuevo dataset contenía algo más de 1000 imágenes de pacientes sanos y enfermos. El código del proyecto de Olivier puede encontrarse en el siguiente repositorio.
Conjuntos de datos
En nuestro caso, inspirándonos en estos dos fantásticos proyectos previos, hemos construido un ejercicio didáctico apoyándonos en una serie de herramientas que facilitan la ejecución del código y la posibilidad de examinar los resultados de forma sencilla. El conjunto de datos original (de rayos-x de tórax) comprende 112.120 imágenes de rayos-X (vista frontal) de 30.805 pacientes únicos. Las imágenes se acompañan con las etiquetas asociadas de catorce enfermedades (donde cada imagen puede tener múltiples etiquetas), extraídas de los informes radiológicos asociados utilizando procesamiento de lenguaje natural (NLP). Partiendo del conjunto de imágenes médicas original hemos extraído (utilizando algunos scripts) una muestra más pequeña y acotada (tan solo personas sanas frente a personas con una sola patología) para facilitar este ejercicio. En particular, la patología escogida es el neumotórax.
Si quieres ampliar la información sobre el campo de procesamiento del lenguaje natural puedes consultar el siguiente informe que ya publicamos en su momento. Además, en el post 10 repositorios de datos públicos relacionados con la salud y el bienestar se cita al NIH como un ejemplo de fuente de datos sanitarios de calidad. En particular, nuestro conjunto de datos está disponible públicamente aquí.
Herramientas
Para la realización del tratamiento previo de los datos (entorno de trabajo, programación y redacción del mismo) se ha utilizado R (versión 4.1.2) y RStudio (2022-02-3). Los pequeños scripts de ayuda a la descarga y ordenación de ficheros se han escrito en Python 3.
Acompañando a este post, hemos creado un cuaderno de Jupyter con el que poder experimentar de forma interactiva a través de los diferentes fragmentos de código que van desarrollando nuestro ejemplo. El objetivo de este ejercicio es entrenar a un algoritmo para que sea capaz de clasificar automáticamente una imagen de una radiografía de pecho en dos categorías (persona enferma vs persona no-enferma). Para facilitar la ejecución del ejercicio por parte de los lectores que así lo deseen, hemos preparado el cuaderno de Jupyter en el entorno de Google Colab que contiene todos los elementos necesarios para reproducir el ejercicio paso a paso. Google Colab o Collaboratory es una herramienta gratuita de Google que te permite programar y ejecutar código en Python (y también en R) sin necesidad de instalar ningún software adicional. Es un servicio online y para usarlo tan solo necesitas tener una cuenta de Google.
Flujo lógico del análisis de datos
Nuestro cuaderno de Jupyter, realiza las siguientes actividades diferenciadas que podrás seguir en el propio documento interactivo cuándo lo vayas ejecutando sobre Google Colab.
- Instalación y carga de dependencias.
- Configuración del entorno de trabajo
- Descarga, carga y pre-procesamiento de datos necesarios (imágenes médicas) en el entorno de trabajo.
- Pre-visualización de las imágenes cargadas.
- Preparación de los datos para entrenamiento del algoritmo.
- Entrenamiento del modelo y resultados.
- Conclusiones del ejercicio.
A continuación, hacemos un repaso didáctico del ejercicio, enfocando nuestras explicaciones en aquellas actividades que son más relevantes respecto al ejercicio de análisis de datos:
- Descripción del análisis de datos y entrenamiento del modelo
- Modelización: creación del conjunto de imágenes de entrenamiento y entrenamiento del modelo
- Analisis del resultado del entrenamiento
- Conclusiones
Descripción del análisis de datos y entrenamiento del modelo
Los primeros pasos que encontraremos recorriendo el cuaderno de Jupyter son las actividades previas al análisis de imágenes propiamente dicho. Como en todos los procesos de análisis de datos, es necesario preparar el entorno de trabajo y cargar las librerías necesarias (dependencias) para ejecutar las diferentes funciones de análisis. El paquete de R más representativo de este conjunto de dependencias es Keras. En este artículo ya comentamos sobre el uso de Keras como framework de Deep Learning. Adicionalmente también son necesarios los siguientes paquetes: httr; tidyverse; reshape2;patchwork.
A continuación, debemos descargar a nuestro entorno el conjunto de imágenes (datos) con el que vamos a trabajar. Como hemos comentado previamente, las imágenes se encuentran en un almacenamiento remoto y solo las descargamos en Colab en el momento de analizarlas. Tras ejecutar las secciones de código que descargan y descomprimen los ficheros de trabajo que contienen las imágenes médicas encontraremos dos carpetas (No-finding y Pneumothorax) que contienen los datos de trabajo.

Una vez que disponemos de los datos de trabajo en Colab, debemos cargarlas en la memoria del entorno de ejecución. Para ello hemos creado una función que verás en el cuaderno denominada process_pix(). Esta función, va a buscar las imágenes a las carpetas anteriores y las carga en memoria, además de pasarlas a escala de grises y normalizarlas todas a un tamaño de 100x100 pixels. Para no exceder los recursos que nos proporciona de forma gratuita Google Colab, limitamos la cantidad de imágenes que cargamos en memoria a 1000 unidades. Es decir, el algoritmo va a ser entrenado con 1000 imágenes, entre las que va usar para entrenamiento y las que va a usar para la validación posterior.
Una vez tenemos las imágenes perfectamente clasificadas, formateadas y cargadas en memoria hacemos una visualización rápida para verificar que son correctas.Obtenemos los siguientes resultados:

Obviamente, a ojos de un observador no experto no se ven diferencias significativas que nos permitan extraer ninguna conclusión. En los siguientes pasos veremos cómo el modelo de inteligencia artificial sí que tiene mejor ojo clínico que nosotros.
Modelización
Creación del conjunto de imágenes de entrenamiento
Como comentamos en los pasos previos, disponemos de un conjunto de 1000 imágenes de partida cargadas en el entorno de trabajo. Hasta este momento, tenemos clasificadas (por un especialista en rayos-x) aquellas imágenes de pacientes que presentan indicios de neumotórax (en la ruta "./data/Pneumothorax") y aquellos pacientes sanos (en la ruta "./data/No-Finding")
El objetivo de este ejercicio es, justamente, demostrar la capacidad de un algoritmo de asistir al especialista en la clasificación (o detección de signos de enfermedad en la imagen de rayos-x). Para esto, tenemos que mezclar las imágenes, para conseguir un conjunto homogéneo que el algoritmo tendrá que analizar y clasificar valiéndose solo de sus características. El siguiente fragmento de código, asocia un identificador (1 para personas enfermas y 0 para personas sanas) para, posteriormente, tras el proceso de clasificación del algoritmo, poder verificar aquellas que el modelo ha clasificado de forma correcta o incorrecta.

Bien, ahora tenemos un conjunto “df” uniforme de 1000 imágenes mezcladas con pacientes sanos y enfermos. A continuación, dividimos en dos este conjunto original. El 80% del conjunto original, lo vamos a utilizar para entrenar el modelo. Esto es, el algoritmo utilizará las características de las imágenes para crear un modelo que permita concluir si una imagen se corresponde con el identificador 1 o 0. Por otro lado, el 20% restante de la mezcla homogénea la vamos a utilizar para comprobar si el modelo, una vez entrenado, es capaz de tomar una imagen cualquiera y asignarle el 1 o el 0 (enfermo, no enfermo).

Entrenamiento del modelo
Listo, solo nos queda configurar el modelo y entrenar con el anterior conjunto de datos.
Antes de entrenar, veréis unos fragmentos de código que sirven para configurar el modelo que vamos a entrenar. El modelo que vamos a entrenar es de tipo clasificador binario. Esto significa que es un modelo que es capaz de clasificar los datos (en nuestro caso imágenes) en dos categorías (en nuestro caso sano o enfermo). El modelo escogido se denomina CNN o Convolutional Neural Network. Su propio nombre ya nos indica que es un modelo de redes neuronales y por lo tanto cae dentro de la disciplina de Deep Learning o aprendizaje profundo. Estos modelos se basan en capas de características de los datos que se van haciendo más profundas a medida que la complejidad del modelo aumenta. Os recordamos que el término deep hace referencia, justamente, a la profundidad del número de capas mediante las cuales estos modelos aprenden.
Nota: los siguientes fragmentos de código son los más técnicos del post. La documentación introductoria se puede encontrar aquí, mientras que toda la documentación técnica sobre las funciones del modelo está accesible aquí.
Finalmente, tras la configuración del modelo, estamos en disposición de entrenar el modelo. Como comentamos, entrenamos con el 80% de las imágenes y validamos el resultado con el 20% restante.

Resultado del entrenamiento
Bien, ya hemos entrenado nuestro modelo. ¿Y ahora qué? Las siguientes gráficas nos proporcionan una visualización rápida sobre cómo se comporta el modelo sobre las imágenes que hemos reservado para validar. Básicamente, estas figuras vienen a representar (la del panel inferior) la capacidad del modelo de predecir la presencia (identificador 1) o ausencia (identificador 0) de enfermedad (en nuestro caso neumotórax). La conclusión es que cuando el modelo entrenado con las imágenes de entrenamiento (aquellas de las que se sabe el resultado 1 o 0) se aplica al 20% de las imágenes de las cuales no se sabe el resultado, el modelo acierta aproximadamente en el 85% (0.87309) de las ocasiones.

En efecto, cuando solicitamos la evaluación del modelo para saber qué tan bien clasifica enfermedades el resultado nos indica la capacidad de nuestro modelo recién entrenado para clasificar de forma correcta el 0.87309 de las imágenes de validación.
Hacemos ahora algunas predicciones sobre imágenes de pacientes. Es decir, una vez entrenado y validado el modelo, nos preguntamos cómo va a clasificar las imágenes que le vamos a dar ahora. Como sabemos "la verdad" (lo que se denomina el ground truth) sobre las imágenes, comparamos el resultado de la predicción con la verdad. Para comprobar los resultados de la predicción (que variarán en función del número de imágenes que se usen en el entrenamiento) se utiliza lo que en ciencia de datos se denomina la matriz de confusión. La matriz de confusión:
- coloca en la posición (1,1) los casos que SÍ tenían enfermedad y el modelo clasifica como "con enfermedad"
- coloca en la posición (2,2), los casos que NO tenían enfermedad y el modelo clasifica como "sin enfermedad"
Es decir, estas son las posiciones en las que el modelo "acierta" en su clasificación.
En las posiciones contrarias, es decir, la (1,2) y la (2,1) son las posiciones en las que el modelo se "equivoca". Así, la posición (1,2) son los resultados que el modelo clasifica como CON enfermedad y la realidad es que eran pacientes sanos. La posición (2,1), justo lo contrario.

Ejemplo explicativo sobre cómo funciona la matriz de confusión. Fuente: wikipedia https://en.wikipedia.org/wiki/Confusion_matrix
En nuestro ejercicio, el modelo nos proporciona los siguientes resultados:


Es decir, 81 pacientes tenían esta enfermedad y el modelo los clasifica de forma correcta. De la misma forma, 91 pacientes estaban sanos y el modelo los clasifica, igualmente, de forma correcta. Sin embargo, el modelo clasifica cómo enfermos, 13 pacientes que estaban sanos. Y al contrario, el modelo clasifica cómo sanos a 12 pacientes que en realidad estaban enfermos. Cuando sumamos los aciertos del modelo 81+91 y lo dividimos sobre la muestra de validación total obtenemos el 87% de precisión del modelo.
Conclusiones
En este post te hemos guiado a través de un ejercicio didáctico que consiste en entrenar un modelo de inteligencia artificial para realizar clasificaciones de imágenes de radiografías de pecho con el objetivo de determinar automáticamente si una persona está enferma o sana. Por sencillez, hemos escogido pacientes sanos y pacientes que presentan un neumotórax (solo dos categorías) previamente diagnosticados por un médico. El viaje que hemos realizado nos ofrece una idea de las actividades y las tecnologías involucradas en el análisis automatizado de imágenes mediante inteligencia artificial. El resultado del entrenamiento nos ofrece un sistema de clasificación razonable para el screening automático con un 87% de precisión en sus resultados. Los algoritmos y las tecnologías avanzadas de análisis de imagen son y cada vez más serán, un complemento indispensable en múltiples ámbitos y sectores como, por ejemplo, la medicina. En los próximos años veremos cómo se consolidan los sistemas que, de forma natural, combinan habilidades de humanos y máquinas en procesos costosos, complejos o peligrosos. Los médicos y otros trabajadores verán aumentadas y reforzadas sus capacidades gracias a la inteligencia artificial. La combinación de fuerzas entre máquinas y humanos nos permitirá alcanzar cotas de precisión y eficiencia nunca vistas hasta la fecha. Esperamos que con este ejercicio os hayamos ayudado a entender un poco más cómo funcionan estas tecnologías. No olvides completar tu aprendizaje con el resto de materiales que acompañan este post.
Contenido elaborado por Alejandro Alija, experto en Transformación Digital. Los contenidos y los puntos de vista reflejados en esta publicación son responsabilidad exclusiva de su autor.
Te presentamos un nuevo informe de la serie ‘Tecnologías emergentes y datos abiertos’, de la mano de Alejandro Alija. El objetivo de estos informes es ayudar al lector a entender cómo funcionan diversas tecnologías, cuál es el papel de los datos abiertos en ellas y qué impacto tendrán en nuestra sociedad. A esta serie pertenecen algunos monográficos sobre técnicas de análisis de datos como el análisis del lenguaje natural o la analítica predictiva. En este nuevo volumen de la serie se analizan los aspectos clave del análisis de datos aplicado a las imágenes y, a través de este ejercicio Inteligencia Artificial aplicada a la identificación y clasificación de enfermedades mediante radio imagen médica, se profundiza en la vertiente más práctica del monográfico.
El análisis de imágenes adopta diferentes nombres y formas de referirse a él. Algunos de los más comunes son visual analytics, computer vision o image processing. La importancia de este tipo de análisis presenta una gran relevancia actualmente, ya que muchas de las más modernas técnicas algorítmicas de inteligencia artificial han sido diseñadas concretamente con este objetivo. Algunas de sus aplicaciones las vemos en nuestro día a día, como la identificación de matrículas para acceder a un párking o la digitalización de texto escaneado para poder ser manipulado.
El informe introduce los conceptos fundamentales que permiten comprender cómo funciona el análisis de imagen, detallando los principales casos de aplicación en diversos sectores. Tras una breve introducción elaborada por el autor, que servirá como base para contextualizar la materia a tratar, se expone el informe completo, que sigue la estructura tradicional de la serie:
- Awareness. En la sección Awareness se explican los conceptos clave de las técnicas de análisis de imagen. A través de este apartado, los lectores pueden encontrar respuestas a cuestiones del tipo: ¿cómo se manipulan las imágenes como datos? o ¿cómo se clasifican las imágenes?, además de descubrir algunas de las aplicaciones más destacadas en el análisis de imagen.
- Inspire. La sección Inspire analiza detalladamente algunos de los principales casos de uso en sectores tan diferentes como la agricultura, la industria o el sector inmobiliario. También se incluyen ejemplos de aplicación en el campo de la medicina, donde el autor muestra algunos retos de especial importancia en este ámbito.
- Action: En este caso, la sección Action se ha publicado en formato notebook, de manera separada al informe teórico. En ella se muestra un ejemplo práctico de Inteligencia Artificial aplicada a la identificación y clasificación de enfermedades mediante radio imagen médica. En este post se incluye la explicación paso a paso del ejercicio realizado. El código fuente está disponible para que los lectores puedan aprender y experimentar por sí mismos el análisis inteligente de imágenes.
A continuación, puedes descargarte el informe -secciones Awareness e Inspire- en pdf y word (versión reutilizable).
La demanda de profesionales con habilidades relacionadas con la analítica de datos no deja de crecer y ya se estima que la industria solo en España necesitaría más de 90.000 profesionales en datos e inteligencia artificial para impulsar la economía. Formar profesionales que puedan llenar este hueco es un gran reto que está haciendo incluso grandes compañías tecnológicas como Google, Amazon o Microsoft estén proponiendo programas de formación especializado que en paralelo a los que propone el sistema educativo reglado. Y en este contexto los datos abiertos tienen un papel muy relevante en la formación práctica de estos profesionales, ya que con frecuencia, los datos abiertos son la única posibilidad para realizar ejercicios reales y no solo simulados.
Además, aunque aún no existe un corpus de investigación sólido al respecto, algunos trabajos ya sugieren efectos positivos derivados del uso de datos abiertos como herramienta en el proceso de enseñanza-aprendizaje de cualquier materia y no solo de las relacionadas con la analítica de datos. Algunos países europeos han reconocido ya este potencial y han desarrollado proyectos piloto para determinar la mejor forma de introducir datos abiertos en el currículo escolar.
En este sentido, los datos abiertos se pueden utilizar como una herramienta para la educación y la formación de varias maneras. Por ejemplo, los datos abiertos se pueden utilizar para desarrollar nuevos materiales de enseñanza y aprendizaje, para crear proyectos basados en datos del mundo real para estudiantes o para apoyar la investigación sobre enfoques pedagógicos efectivos. Además, los datos abiertos se pueden utilizar para crear oportunidades de colaboración entre educadores, estudiantes e investigadores con el fin de compartir mejores prácticas y colaborar en soluciones a desafíos comunes.
Proyectos basados en datos del mundo real
Una aportación clave de los datos abiertos es su autenticidad, ya que son una representación de la enorme complejidad e incluso de los defectos del mundo real a diferencia de las construcciones artificiales o los ejemplos de libros de texto que se basan en supuestos muchos más simples.
Un ejemplo interesante en este sentido es el que documentó la Universidad Simon Fraser de Canadá en su Máster en Edición donde la mayor parte de sus alumnos proceden de programas universitarios no STEM y que por tanto tenían unas capacidades limitadas en el manejo de datos. El proyecto está disponible como recurso educativo abierto en la plataforma OER Commons y su objetivo es que los estudiantes comprendan que las métricas y la medición son herramientas estratégicas importantes para comprender el mundo que nos rodea.
Al trabajar con datos del mundo real, los estudiantes pueden desarrollar habilidades de construcción de relatos e investigación, y pueden aplicar habilidades analíticas y colaborativas en el uso de datos para resolver problemas del mundo real. El caso de estudio realizado con la primera edición en la que se utilizó este OER basado en datos abiertos está documentado en el libro “Open Data as Open Educational Resources - Case studies of emerging practice”. En él se muestra que la oportunidad de trabajar con datos pertenecientes a su campo de estudio resultó esencial para mantener a los estudiantes comprometidos con el proyecto. Sin embargo, lidiar con el desorden de los datos del "mundo real" fue lo que les permitió obtener un aprendizaje valioso y nuevas habilidades prácticas.
Desarrollo de nuevos materiales de aprendizaje
Los conjuntos de datos abiertos tienen un gran potencial para ser utilizados en el desarrollo de recursos educativos abiertos (REA) que son materiales de enseñanza, aprendizaje e investigación en soporte digital de carácter gratuito, pues son publicados con una licencia abierta (Creative Commons) que permite su uso, adaptación y redistribución para usos no comerciales de acuerdo con la definición de la UNESCO.
En este contexto, si bien los datos abiertos no siempre son REA, podemos decir que se convierten en REA cuando se usan en contextos pedagógicos. Los datos abiertos cuando se utilizan como recurso educativo facilitan que los estudiantes aprendan y experimenten trabajando con los mismos conjuntos de datos que utilizan investigadores, gobiernos y sociedad civil. Son un componente clave para que los estudiantes desarrollen habilidades de análisis, estadísticas, científicas y de pensamiento crítico.
Es difícil estimar la presencia actual de los datos abiertos como parte de los REA pero no resulta difícil encontrar ejemplos interesantes dentro de las principales plataformas de recursos educativos abiertos. En la plataforma Procomún podemos encontrar interesantes ejemplos como Aprender Geografía a través de la evolución de los paisajes agrarios de España que construye sobre la plataforma ArcGIS Online de la Universidad Complutense de Madrid un Webmap para el aprendizaje de los paisajes agrarios en España. El recurso educativo emplea ejemplos concretos de distintas comunidades autónomas empleando fotografías o imágenes fijas geolocalizadas y datos propios integrados con datos abiertos. De este modo los estudiantes trabajan los conceptos no a través de una mera descripción en texto sino con recursos interactivos que favorecen además la mejora de sus competencias digitales y espaciales
En la plataforma OER Commons encontramos por ejemplo el recurso “De los datos abiertos al compromiso cívico” que está dirigido a públicos a partir de enseñanza secundaria con el objetivo de enseñar a interpretar cómo se gasta el dinero público en un área regional, local, o barrio determinado. Para ello se apoya en los conocidos proyectos para analizar presupuestos públicos “¿Dónde van mis impuestos?”, disponibles en muchas zonas del mundo como fruto de las políticas de transparencia de los poderes públicos. Este recurso que podría ser portado a España con facilidad ya que contamos con numerosos proyectos ¿Donde van mis impuestos?, como el mantenido por Fundación Civio.
Habilidades relacionadas con datos
Cuando nos referimos a la formación y educación en habilidades relacionadas con los datos, en realidad nos estamos refiriendo a un área de gran amplitud que además es muy difícil dominar en todas sus facetas. De hecho, lo habitual es que los proyectos relacionados con datos se aborden en equipos donde cada miembro desempeña un rol especializado en alguna de estas áreas. Por ejemplo, es habitual diferenciar al menos la limpieza y preparación de datos, el modelado de datos y la visualización de datos como las principales actividades que se realizan en un proyecto de ciencia datos e inteligencia artificial.
En todos los casos el uso de datos abiertos está ampliamente adoptado como recurso central de los proyectos que se proponen para la adquisición de cualquiera de estas habilidades. La muy conocida comunidad de ciencia de datos Kaggle organiza competiciones basadas en conjuntos de datos abiertos aportados a la comunidad y que constituyen un recurso esencial para el aprendizaje basado en proyectos reales de quienes quieren adquirir habilidades relacionadas con los datos. Existen otras propuestas basadas en suscripciones como Dataquest o ProjectPro pero en todos los casos utilizan para los proyectos que proponen conjuntos de datos reales obtenidos de los múltiples repositorios de datos abiertos de carácter general o repositorios específicos de un área de conocimiento.
Los datos abiertos, al igual que en otras áreas, aún no han desarrollado todo su potencial como herramienta para la educación y la formación. Sin embargo como puede verse en el programa de la última edición de la OER Conference 2022, cada vez son más los ejemplos en los que los datos abiertos tienen un papel central en la enseñanza, las nuevas prácticas educativas y la creación de nuevos recursos educativos para todo tipo de materias, conceptos y habilidades.
Contenido elaborado por Jose Luis Marín, Senior Consultant in Data, Strategy, Innovation & Digitalization.
Los contenidos y los puntos de vista reflejados en esta publicación son responsabilidad exclusiva de su autor.
