No hay duda de que la formación en competencias digitales es necesaria hoy en día. Los conocimientos digitales básicos son fundamentales para poder interactuar en una sociedad en la que la tecnología ya juega un papel transversal. En concreto, es importante conocer aspectos básicos de la tecnología para trabajar con datos.
En este contexto, las trabajadoras y trabajadores del sector público también deben mantenerse en constante actualización. Capacitarse en este ámbito es clave para optimizar procesos, garantizar la seguridad de la información y fortalecer la confianza en las instituciones.
En este post, identificamos habilidades digitales relacionadas con los datos abiertos tanto dirigidas a la publicación como al uso de estos. No solo identificamos las competencias profesionales que deben tener y mantener los empleados públicos que trabajan con open data, también recopilamos una serie de recursos formativos que están a su disposición.
Competencias profesionales para trabajar con datos
En el Encuentro Nacional de Datos Abiertos de 2024 se constituyó un grupo de trabajo con un objetivo: identificar las competencias digitales que debían tener los profesionales de la administración pública que trabajasen con datos abiertos. Más allá de las conclusiones de este evento de relevancia nacional, el grupo de trabajo definió perfiles y roles necesarios para la apertura de datos, recogiendo información sobre sus funciones y las capacidades y conocimientos necesarios. Los principales roles identificados fueron:
- Rol responsable: tiene funciones de responsabilidad técnica en el impulso de políticas de datos abiertos y organiza actividades de definición de las políticas y modelos de datos. Algunos conocimientos necesarios son:
- Liderazgo en el impulso de estrategias para impulsar la apertura del dato.
- Impulsar la estrategia del dato para impulsar la apertura con propósito.
- Comprender el marco normativo relacionado con los datos para actuar dentro de la legalidad en todo el ciclo de vida del dato.
- Fomentar el uso de herramientas y procesos para la gestión del dato.
- Capacidad de generar sinergias para consensuar instrucciones transversales a toda la organización.
- Rol técnico de apertura de datos (perfil TIC): desarrolla actividades de ejecución más vinculadas con la gestión de los sistemas, los procesos de extracción, limpieza de datos, etc. Este perfil debe conocer, por ejemplo:
- Cómo estructurar el conjunto de datos, el vocabulario de metadatos, calidad del dato, estrategia a seguir...
- Ser capaz de analizar un conjunto de datos e identificar los procesos de depuración y limpieza de manera rápida e intuitiva.
- Generar visualizaciones de datos, conectando bases de datos de diferentes formatos y orígenes, y así obtener gráficos, indicadores y mapas dinámicos e interactivos.
- Dominar las funcionalidades de la plataforma, es decir, saber aplicar soluciones tecnológicas para la gestión de datos abiertos o conocer técnicas y estrategias para acceder, extraer e integrar datos de diferentes plataformas.
- Rol funcional de apertura de datos (técnico de un servicio): ejecuta actividades más vinculadas con la selección de datos a publicar, la calidad, promoción de los datos abiertos, visualización, analítica de datos, etc. Por ejemplo:
- Manejar herramientas de visualización y dinamización.
- Conocer la economía del dato y conocer la información referente al dato en toda su extensión (generación por las AAPP, datos abiertos, infomediarios, reutilización de la información pública, Big Data, Data Driven, roles implicados, etc.).
- Conocer y aplicar los aspectos éticos y de protección de datos de carácter personal que aplican a la apertura de datos.
- Uso de datos por parte de los trabajadores públicos: este perfil lleva a cabo actividades sobre el uso de los datos para la toma de decisiones, analítica básica de datos, entre otros. Para ello, deberá tener estas competencias:
- Navegación, búsqueda y filtrado de datos.
- Evaluación de datos.
- Almacenamiento y explotación de datos.
- Análisis y explotación de datos.
Además, como parte de este reto para incrementar las capacidades para la apertura de datos, se elaboró un listado de formaciones y guías gratuitas en materia de datos abiertos y análisis de datos. Recopilamos algunas de ellas que están disponibles online y en formato abierto.
| Institución | Recurso | Enlace | Nivel |
|---|---|---|---|
| Centro Knight para el Periodismo en las Américas | Periodismo de datos y visualización con herramientas gratuitas | https://journalismcourses.org/es/course/dataviz/ | Principiante |
| Data Europa Academy | Introducción a los datos abiertos | https://data.europa.eu/en/academy/introducing-open-data | Principiante |
| Data Europa Academy | Comprender el lado legal de los datos abiertos | https://data.europa.eu/en/academy/understanding-legal-side-open-data | Principante |
| Data Europa Academy | Mejorar la calidad de los datos abiertos y los metadatos | https://data.europa.eu/en/academy/improving-open-data-and-metadata-quality | Avanzado |
| Data Europa Academy | Medir el éxito en las iniciativas de datos abiertos | https://data.europa.eu/en/training/elearning/measuring-success-open-data-initiatives | Avanzado |
| Escuela de Datos | Curso de tubería de datos – Data Pipeline | https://escueladedatos.online/curso/curso-tuberia-de-datos-data-pipeline/ | Intermedio |
| FEMP | Guía estratégica para su puesta en marcha – Conjuntos de datos mínimos a publicar | https://redtransparenciayparticipacion.es/download/guia-estrategica-para-su-puesta-en-marcha-conjuntos-de-datos-minimos-a-publicar/ | Intermedio |
| Datos.gob.es | Pautas metodológicas para la apertura de datos | /es/conocimiento/pautas-metodologicas-para-la-apertura-de-datos | Principiante |
| Datos.gob.es | Guía práctica para la publicación de datos abiertos usando APIs | /es/conocimiento/guia-practica-para-la-publicacion-de-datos-abiertos-usando-apis | Intermedio |
| Datos.gob.es | Guía práctica para la publicación de datos espaciales | /es/conocimiento/guia-practica-para-la-publicacion-de-datos-espaciales | Intermedio |
| Junta de Andalucía | Tratar conjuntos de datos con Open Refine | https://www.juntadeandalucia.es/datosabiertos/portal/tutoriales/usar-openrefine.html | Principiante |
Figura 1. Tabla de elaboración propia con recursos formativos. Fuente: https://encuentrosdatosabiertos.es/wp-content/uploads/2024/05/Reto-2.pdf
El Instituto Nacional de Administración Pública (INAP) cuenta con un Programa de Actividades Formativas para 2025, enmarcado en la Estrategia de Aprendizaje del INAP 2025-2028. Este catálogo formativo incluye más de 180 actividades organizadas en diferentes programas de aprendizaje, que se desarrollarán a lo largo del año con el objetivo de fortalecer las competencias del personal público en ámbitos clave como la gestión de datos abiertos y el uso de tecnologías relacionadas.
En el programa formativo de INAP para 2025 se ofrece una amplia variedad de cursos orientados a mejorar las capacidades digitales y la alfabetización en datos abiertos. Algunas de las formaciones destacadas incluyen:
- Fundamentos y herramientas del análisis de datos.
- Introducción a SQL de Oracle.
- Datos abiertos y reutilización de la información.
- Análisis y visualización de datos con Power BI.
- Blockchain: aspectos técnicos.
- Programación en Python avanzado.
Estos cursos, dirigidos a distintos perfiles de empleados públicos, desde responsables de datos abiertos hasta técnicos en gestión de información, permiten adquirir conocimientos sobre extracción, tratamiento y visualización de datos, así como sobre estrategias para la apertura y reutilización de datos abiertos en la Administración Pública. Puedes consultar el catálogo completo aquí.
Otras referencias formativas
Algunas administraciones públicas o entidades disponen de oferta de cursos de formación vinculadas a los datos abiertos. Para más información de su oferta formativa, se facilita el catálogo con la oferta de cursos programados.
- Red de entidades locales por la Transparencia y la Participación Ciudadana de la FEMP: https://redtransparenciayparticipacion.es/
- Gobierno de Aragón. Aragón Open Data: https://opendata.aragon.es/informacion/eventos-de-datos-abiertos
- Escuela de Administración Pública de Catalunya (EAPC): https://eapc.gencat.cat/ca/inici/index.html
- Diputació de Barcelona: http://aplicacions.diba.cat/gestforma/public/cercador_baf_ens_locals
- Instituto Geográfico Nacional (IGN): https://cursos.cnig.es/
En resumen, la formación en competencias digitales, en general, y en datos abiertos, en particular, es una práctica que recomendamos desde datos.gob.es. ¿Necesitas algún recurso formativo en específico? Escríbenos en comentarios, ¡te leemos!
La inteligencia artificial (IA) de código abierto es una oportunidad para democratizar la innovación y evitar la concentración de poder en la industria tecnológica. Sin embargo, su desarrollo depende en gran medida de la disponibilidad de conjuntos de datos de alta calidad y de la implementación de marcos sólidos de gobernanza de datos. Un informe reciente de Open Future y la Open Source Initiative (OSI) analiza los desafíos y oportunidades en esta intersección, proponiendo soluciones para una gobernanza de datos equitativa y responsable. Puedes leer aquí el informe completo.
En este post, analizaremos las ideas más relevantes del documento, así como los consejos que ofrece para garantizar una correcta y efectiva gobernanza de datos en la inteligencia artificial open source y aprovechar todas sus ventajas.
Los retos de la gobernanza de datos en la IA
A pesar de la gran cantidad de datos disponibles en la web, su acceso y uso para entrenar modelos de IA plantean importantes desafíos éticos, legales y técnicos. Por ejemplo:
- Equilibrio entre apertura y derechos: en línea con el Reglamento de Gobernanza de Datos (DGA), se debe garantizar un acceso amplio a los datos sin comprometer derechos de propiedad intelectual, privacidad y equidad.
- Falta de transparencia y estándares de apertura: es importante que los modelos etiquetados como “abiertos” cumplan con criterios claros de transparencia en el uso de datos.
- Sesgos estructurales: muchos conjuntos de datos reflejan sesgos lingüísticos, geográficos y socioeconómicos que pueden perpetuar desigualdades en los sistemas de IA.
- Sostenibilidad ambiental: el uso intensivo de recursos para entrenar modelos de IA plantea desafíos de sostenibilidad que deben abordarse con prácticas más eficientes.
- Involucrar a más actores: actualmente, los desarrolladores y las grandes corporaciones dominan la conversación sobre IA, dejando fuera a comunidades afectadas y organizaciones públicas.
Una vez identificados los retos, el informe propone una estrategia para alcanzar el objetivo principal: una gobernanza de datos adecuada en los modelos de IA de código abiertos. Este enfoque está basado en dos pilares fundamentales.
Hacia un nuevo paradigma de gobernanza de datos
En la actualidad, el acceso y la gestión de los datos para entrenar modelos de IA están marcados por una creciente desigualdad. Mientras algunas grandes corporaciones tienen acceso exclusivo a vastos repositorios de datos, muchas iniciativas de código abierto y comunidades marginadas carecen de los recursos para acceder a datos representativos y de calidad. Para abordar este desequilibrio es necesario un nuevo enfoque en la gestión y uso de los datos en la IA de código abierto. El informe destaca dos cambios fundamentales en la manera en que se concibe la gobernanza de datos:
Por un lado, adoptar un enfoque de data commons que no es más que un modelo de acceso que garantiza el equilibrio entre la apertura de datos y la protección de derechos. Para ello, sería importante utilizar licencias innovadoras que permitan compartir datos sin explotación indebida. También es relevante crear estructuras de gobernanza que regulen el acceso y uso de datos. Y, por último, implementar mecanismos de compensación para comunidades cuyos datos son utilizados en inteligencia artificial.
Por otro lado, es necesario trascender la visión centrada en desarrolladores de IA e incluir a más actores en la gobernanza de datos, como:
- Propietarios de los datos y comunidades que generan contenido.
- Instituciones públicas que pueden promover estándares de apertura.
- Organizaciones de la sociedad civil que velen por la equidad y el acceso responsable a los datos.
Al adoptar estos cambios, la comunidad de IA podrá establecer un sistema más inclusivo, en el que los beneficios del acceso a datos se distribuyan de manera equitativa y respetuosa con los derechos de todas las partes interesadas. Según el informe, la implementación de estos modelos no solo aumentará la cantidad de datos disponibles para la IA de código abierto, sino que también fomentará la creación de herramientas más justas y sostenibles para la sociedad en su conjunto.
Consejos y estrategia
Para hacer efectiva una gobernanza de datos robusta en la IA de código abierto, el informe propone seis áreas de acción prioritarias:
- Preparación y trazabilidad de datos: mejorar la calidad y documentación de los conjuntos de datos.
- Mecanismos de licenciamiento y consentimiento: permitir a los creadores de datos definir su uso de manera clara.
- Custodia de datos: fortalecer la figura de intermediarios que gestionen datos de forma ética.
- Sostenibilidad ambiental: reducir el impacto del entrenamiento de IA con prácticas eficientes.
- Compensación y reciprocidad: garantizar que los beneficios de la IA lleguen a quienes contribuyen con datos.
- Intervenciones de política pública: promover regulaciones que incentiven la transparencia y el acceso equitativo a datos.

La inteligencia artificial de código abierto puede impulsar la innovación y la equidad, pero para lograrlo es necesario un enfoque de gobernanza de datos más inclusivo y sostenible. Adoptar modelos de datos comunes y ampliar el ecosistema de actores permitirá construir sistemas de IA más justos, representativos y responsables con el bien común.
El informe que publican Open Future y Open Source Initiative hace una llamada a la acción a desarrolladores, legisladores y sociedad civil para establecer normas compartidas y soluciones que equilibren la apertura de datos con la protección de derechos. Con una gobernanza de datos sólida, la IA de código abierto podrá cumplir su promesa de servir al interés público.
Introducción
En anteriores contenidos, hemos explorado a fondo el apasionante mundo de los Modelos Grandes de Lenguaje (LLM) y, en particular, las técnicas de Generación Aumentada por Recuperación (RAG) que están revolucionando la forma en que interactuamos con los agentes conversacionales. Este ejercicio marca un hito en nuestra serie, ya que no solo explicaremos los conceptos, sino que también te guiaremos paso a paso en la construcción de tu propio agente conversacional potenciado con RAG. Para ello, utilizaremos un notebook de Google Colab.
Accede al repositorio del laboratorio de datos en Github.
Ejecuta el código de pre-procesamiento de datos sobre Google Colab.
A través de este notebook, construiremos un chat que utiliza RAG para mejorar sus respuestas, partiendo desde cero. El notebook guiará al usuario a través de todo el proceso:
- Instalación de dependencias.
- Configuración del entorno.
- Integración de una fuente de información en forma de post.
- Incorporación de dicha fuente a la base de conocimiento del chat utilizando técnicas RAG.
- Finalmente, podremos observar cómo la respuesta del modelo cambia antes y después de proporcionar el post y realizar una pregunta específica sobre su contenido.
Herramientas utilizadas
Antes de comenzar, es necesario introducir y explicar qué herramientas hemos utilizado y por qué hemos escogido estas. Para la construcción de esta aplicación RAG hemos utilizado 3 piezas de tecnología o herramientas: Google Colab, OpenAI y LangChain. Tanto Google Colab como OpenAI son viejos conocidos y los hemos utilizado varias veces en contenidos previos. Por eso, en esta sección, ponemos especial atención en explicar qué es LangChain puesto que es una nueva herramienta que no hemos utilizado en anteriores posts.
- Google Colab. Como es habitual en nuestros ejercicios, cuando son necesarios recursos de computación, así como un entorno de programación amigable, empleamos Google Colab, en la medida de lo posible. Google Colab nos garantiza que cualquier usuario que quiera reproducir el ejercicio lo pueda hacer sin complicaciones derivadas de la configuración de los entornos particulares de cada programador. Cabe destacar que adecuar este ejercicio inspirado en recursos previos disponibles en LangChain al entorno de Google Colab ha sido un reto.
- OpenAI. Como proveedor del modelo grande del lenguaje (LLM) Chat GPT, OpenAI ofrece una variedad de modelos de lenguaje potentes, como GPT-4, GPT-4o, GPT-4o mini, etc. que se utilizan para procesar y generar texto en lenguaje natural. En este caso, el modelo de lenguaje de OpenAI se utiliza en la zona de generación de la respuesta, donde se combinan la pregunta del usuario y los documentos recuperados para producir una respuesta precisa.
- LangChain. Es un framework (conjunto de bibliotecas) de código abierto diseñado para facilitar el desarrollo de aplicaciones basadas en modelos de lenguaje de gran escala (LLM). Este framework es especialmente útil para integrar y gestionar flujos complejos que combinan múltiples componentes, como modelos de lenguaje, bases de datos vectoriales, y herramientas de recuperación de información, entre otros.
LangChain es ampliamente utilizado en el desarrollo de aplicaciones como:
- Sistemas de preguntas y respuestas (QA systems).
- Asistentes virtuales con conocimiento específico.
- Sistemas de generación de texto personalizados.
- Herramientas de análisis de datos basadas en lenguaje natural.
Características principales de LangChain
- Modularidad y flexibilidad. LangChain está diseñado con una arquitectura modular que permite a los desarrolladores conectar diferentes herramientas y servicios. Esto incluye modelos de lenguaje (como OpenAI, Hugging Face, o LLM locales) y bases de datos vectoriales (como Pinecone, ChromaDB o Weaviate). La La lista de modelos de chat con los que se puede interactuar a través de Langchain es muy amplia.
- Soporte para técnicas RAG (Recuperación Aumentada por Generación). Langhain facilita la implementación de técnicas RAG al permitir la integración directa de modelos de recuperación de información y generación de texto. Esto mejora la precisión de las respuestas al permitir que los LLM trabajen con conocimiento actualizado y específico.
- Optimización del manejo de prompts. Langhain ayuda a diseñar y gestionar prompts complejos de manera eficiente. Permite construir dinámicamente un contexto relevante que se trabaja con el modelo, optimizando el uso de tokens y asegurando que las respuestas sean precisas y útiles.
- Los tokens representan las unidades básicas que un modelo de IA utiliza para procesar texto. Un token puede ser una palabra completa, una parte de una palabra o un signo de puntuación. En la frase "¡Hola mundo!" existen, por ejemplo, cuatro tokens distintos: "¡", "Hola", "mundo", "!". El procesamiento de texto requiere más recursos computacionales a medida que aumenta el número de tokens. Las versiones gratuitas de modelos de IA, incluida la que usamos en este ejercicio, establecen límites en la cantidad de tokens procesables.
- Integración con múltiples fuentes de datos. El framework puede conectarse a diversas fuentes de datos, como bases de datos, API o documentos cargados por los usuarios. Esto lo hace ideal para construir aplicaciones que necesitan acceso a grandes volúmenes de información estructurada o no estructurada.
- Interoperabilidad con múltiples LLM. LangChain es agnóstico (se puede adaptar a varios proveedores de modelos de lenguaje) respecto al proveedor del modelo de lenguaje, lo que significa que puedes utilizar OpenAI, Cohere, Anthropic o incluso modelos de lenguaje alojados localmente.
Para terminar con esta sección, cabe destacar el carácter open source de Langhain, algo que facilita la colaboración y la innovación en el desarrollo de aplicaciones basadas en modelos de lenguaje. Además, LangChain nos aporta una increíble flexibilidad porque permite a los desarrolladores integrar fácilmente diferentes LLM, vectorizadores y hasta interfaces web finales en sus aplicaciones.
Exploración del ejercicio paso a paso
Introducción al Repositorio
El repositorio de Github que utilizaremos contiene todos los recursos necesarios para construir nuestra aplicación RAG. En su interior, encontrarás:
- README: este archivo proporciona una descripción general del proyecto, instrucciones de uso y recursos adicionales.
- Jupyter Notebook: el ejemplo lo hemos desarrollado usando un formato de Jupyter Notebook que ya hemos empleado en el pasado para codificar ejercicios prácticos combinando un documento de texto con fragmentos de código ejecutable en Google Colab. Aquí se encuentra la implementación detallada de la aplicación, incluyendo la carga y procesamiento de datos, la integración con modelos de lenguaje como GPT-44, la configuración de sistemas de recuperación de información y la generación de respuestas basadas en los datos recuperados.
Notebook: preparando el entorno
Antes de comenzar, es recomendable contar con los siguientes requisitos.
- Conocimientos básicos de Python y Procesamiento de Lenguaje Natural (PLN): si bien el notebook es autoexplicativo, una comprensión básica de estos conceptos facilitará el aprendizaje.
- Acceso a Google Colab: el notebook se ejecuta en este entorno, que nos proporciona la infraestructura necesaria.
- Cuentas activas en OpenAI y LangChain con claves de API válidas. Estos servicios son gratuitos y esenciales para la ejecución del notebook. Una vez que te registres en estos servicios, necesitarás generar una API Key para interactuar con los servicios. Deberás tener a mano esta clave para poder pegarla en el momento de ejecutar el fragmento de código correspondiente. Si necesitas ayuda para obtener estas claves, cualquier asistente conversacional como chatGPT o Google Gemini te pueden ayudar paso a paso a conseguir las claves. Si necesitas guía visual en youtube encontraras miles de tutoriales
- OpenAI API: https://openai.com/api/
- Lanchain API: https://www.langchain.com/
Explorando el Notebook: bloque por bloque
El notebook se divide en varios bloques, cada uno dedicado a una etapa específica del desarrollo de nuestra aplicación RAG. A continuación, describiremos cada bloque en detalle, incluyendo el código utilizado y su explicación.
Nota para el usuario. A continuación, vamos a ir reproduciendo bloques del código presentes en el notebook de Colab. Por claridad hemos dividido el código en unidades autocontenidas y hemos formateado el código para resaltar la sintaxis del lenguaje de programación Python. Además, las salidas que el Notebook proporciona, las hemos formateado y resaltado en formato JSON para que sean más legibles. Ha de tenerse en cuenta que este Notebook invoca API de modelos del lenguaje y por lo tanto, la respuesta del modelo cambia con cada ejecución. Esto hace que las salidas (las respuestas) que presentamos en este post puedan no ser exactamente iguales a las que el usuario reciba cuándo ejecute el Notebook en Colab
Bloque 1: instalación y configuración inicial
|
import os |
Es muy importante que ejecutes estas dos líneas al principio del ejercicio y luego ya no lo vuelvas a ejecutar más hasta que cierres y salgas de Google Colab.
|
%%capture |
|
!pip install langchain --quiet |
|
import getpass os.environ["LANGCHAIN_TRACING_V2"] = "true" |
Cuando ejecutes este fragmento, aparecerá un pequeño cuadro de diálogo debajo del fragmento. Ahí debes de pegar tu API Key de Langchain.
|
!pip install -qU langchain-openai |
|
import getpass |
Cuando ejecutes este fragmento, aparecerá un pequeño cuadro de diálogo debajo del fragmento. Ahí debes de pegar tu API Key de OpenAI.
En este primer bloque, hemos instalado las bibliotecas necesarias para nuestro proyecto. Algunas de las más relevantes son:
- openai: Para interactuar con la API de OpenAI y acceder a modelos como GPT-4.
- langchain: Un framework que simplifica el desarrollo de aplicaciones con LLM.
- langchain-text-splitters: Para dividir textos largos en fragmentos más pequeños que puedan ser procesados por los modelos de lenguaje.
- langchain-community: Una colección de herramientas y componentes adicionales para LangChain.
- langchain-openai: Para integrar LangChain con la API de OpenAI.
- langgraph: Para visualizar el flujo de trabajo de nuestra aplicación RAG.
- Además de instalar las bibliotecas, también configuramos las claves de API para OpenAI y LangChain, utilizando la función getpass.getpass() para introducirlas de forma segura.
Bloque 2: inicializamos la interacción con el LLM
A continuación, iniciamos la primera interacción programática (le pasamos nuestro primer prompt) con el modelo del lenguaje. Para comprobar que todo funciona le pedimos traducir una sencilla frase.
|
import getpass import os ] |
Si todo ha ido bien obtendremos una salida como esta:
|
{ |
Este bloque es una introducción básica a la utilización de un LLM para una tarea sencilla: la traducción. Se configura la clave de API de OpenAI y se instancia un modelo de lenguaje gpt-4o-mini utilizando ChatOpenAI.
Se definen dos mensajes:
- SystemMessage: Instrucción al modelo para traducir del inglés al italiano.
- HumanMessage: El texto que se desea traducir ("hi!").
Finalmente, se invoca al modelo con llm.invoke(messages) para obtener la traducción.
Bloque 3: creando Embeddings
Para entender el concepto del Embeddings aplicado al contexto del procesamiento del lenguaje natural recomendamos leer este post.
|
import getpass pip install -qU langchain-core from langchain_core.vectorstores import InMemoryVectorStore |
Cuando ejecutes este fragmento, aparecerá un pequeño cuadro de diálogo debajo del fragmento. Ahí debes de pegar tu API Key de OpenAI.
Este bloque se centra en la creación de embeddings (representaciones vectoriales de texto) que capturan su significado semántico. Utilizamos la clase OpenAIEmbeddings para acceder al modelo text-embedding-3-large de OpenAI, que genera embeddings de alta calidad.
Los embeddings se almacenarán en un InMemoryVectorStore, una estructura de datos en memoria que permite realizar búsquedas eficientes basadas en similitud semántica.
Bloque 4: implementando RAG
|
#RAG import bs4 from langchain_community.document_loaders import WebBaseLoader # Manten únicamente el título del post, los encabezados y el contenido del HTML bs4_strainer = bs4.SoupStrainer(class_=("post-title", "post-header", "post-content")) loader = WebBaseLoader( web_paths=("https://datos.gob.es/es/blog/slm-llm-rag-y-fine-tuning-pilares-de-la-ia…",) ) docs = loader.load() assert len(docs) == 1 print(f"Total characters: {len(docs.page_content)}") from langchain_text_splitters import RecursiveCharacterTextSplitter text_splitter = RecursiveCharacterTextSplitter( chunk_size=1000, chunk_overlap=200, add_start_index=True, ) all_splits = text_splitter.split_documents(docs) print(f"Split blog post into {len(all_splits)} sub-documents.") document_ids = vector_store.add_documents(documents=all_splits) print(document_ids[:3]) |
Este bloque es el corazón de la implementación RAG. Comienza cargando el contenido de un post, utilizando WebBaseLoader y la URL del post sobre SLM, LLM, RAG y Fine-tuning.
Para preparar nuestro sistema de Recuperación Aumentada por Generación (RAG), comenzamos procesando el texto del post mediante técnicas de segmentación. Este paso inicial resulta fundamental, ya que dividimos el contenido en fragmentos más pequeños pero completos en significado. Utilizamos las herramientas de LangChain para realizar esta segmentación, asignando a cada fragmento un identificador único (id). Esta preparación previa nos permite posteriormente realizar búsquedas eficientes y precisas cuando el sistema necesite recuperar información relevante para responder a las consultas.
Se utiliza bs4.SoupStrainer para extraer solo las secciones relevantes del HTML. El texto del post se divide en fragmentos más pequeños con RecursiveCharacterTextSplitter, asegurando un solapamiento entre fragmentos para mantener el contexto. Estos fragmentos se añaden al vector_store creado en el bloque anterior, generando embeddings para cada uno.
Vemos que el resultado de uno de los fragmentos nos informa que ha dividido el documento en 21 sub-documentos.
|
Split blog post into 21 sub-documents. |
Los documentos tienen un identificador propio. Por ejemplo, los 3 primeros se identifican como:
|
["409f1bcb-1710-49b0-80f8-e45b7ca51a96", "e242f16c-71fd-4e7b-8b28-ece6b1e37a1c", "9478b11c-61ab-4dac-9903-f8485c4770c6"] |
Bloque 5: definiendo el Prompt y visualizando el flujo de trabajo
|
from langchain import hub prompt = hub.pull("rlm/rag-prompt") example_messages = prompt.invoke( {"context": "(context goes here)", "question": "(question goes here)"} ).to_messages() assert len(example_messages) == 1 print(example_messages.content) from langchain_core.documents import Document from typing_extensions import List, TypedDict class State(TypedDict): question: str context: List[Document] answer: str def retrieve(state: State): retrieved_docs = vector_store.similarity_search(state["question"]) return {"context": retrieved_docs} def generate(state: State): docs_content = "\n\n".join(doc.page_content for doc in state["context"]) messages = prompt.invoke({"question": state["question"], "context": docs_content}) response = llm.invoke(messages) return {"answer": response.content} from langgraph.graph import START, StateGraph graph_builder = StateGraph(State).add_sequence([retrieve, generate]) graph_builder.add_edge(START, "retrieve") graph = graph_builder.compile() from IPython.display import Image, display display(Image(graph.get_graph().draw_mermaid_png())) result = graph.invoke({"question": "What is Task Decomposition?"}) print(f"Context: {result["context"]}\n\n") print(f"Answer: {result["answer"]}") for step in graph.stream( {"question": "¿Cual es el futuro de la IA Generativa?"}, stream_mode="updates" ): print(f"{step}\n\n----------------\n") |
Este bloque define el prompt que se utilizará para interactuar con el LLM. Se utiliza un prompt predefinido de LangChain Hub (rlm/rag-prompt) que está diseñado para tareas RAG.
Se definen dos funciones:
- retrieve: busca en el vector_store los fragmentos más similares a la pregunta del usuario.
- generate: genera una respuesta utilizando el LLM, teniendo en cuenta el contexto proporcionado por los fragmentos recuperados.
Se utiliza langgraph para visualizar el flujo de trabajo RAG.

Figura 1: flujo de trabajo RAG. Elaboración propia.
Finalmente, se prueba el sistema con dos preguntas: una en inglés ("What is Task Decomposition?") y otra en español ("¿Cual es el futuro de la IA Generativa?").
La primera pregunta, "What is Task Decomposition?, está en inglés y es una pregunta genérica, sin relación con nuestro post de contenido. Por esto, pese a que el sistema, busca en su base de conocimiento previamente creada con la vectorización del documento (post) no encuentra relación entre la pregunta y este contexto.
Este texto puede variar con cada ejecución
|
Answer: No se menciona explícitamente el concepto de "Task Decomposition" en el contexto proporcionado. Por lo tanto, no tengo información sobre qué es Task Decomposition. |
|
Answer: Task Decomposition es un proceso que descompone una tarea compleja en subtareas más pequeñas y manejables. Esto permite abordar cada subtarea de manera independiente, facilitando su resolución y mejorando la eficiencia general. Aunque el contexto proporcionado no define explícitamente Task Decomposition, este concepto es común en la IA y optimización de tareas. |
Esta respuesta es la que proporciona el modelo del lenguaje sin ninguna base de conocimiento específica. Ahora bien, cuando preguntamos por algo que tiene que ver con el post que hemos cargado como base de conocimiento, la técnica RAG entra en funcionamiento y ejecuta los mecanismos secuenciales de retrieve y generate.
|
{ |
Cómo se ve en la respuesta, el sistema recupera 4 documentos (en el diagrama anterior, esto corresponde a la etapa de “Retrieve”) con sus correspondientes “id” (identificadores) cómo por ejemplo, el primer documento "id": "53962c40-c08b-4547-a74a-26f63cced7e8" que se corresponde con un fragmento del post original "title": "SLM, LLM, RAG y Fine-tuning: Pilares de la IA Generativa Moderna | datos.gob.es"
Con esos 4 fragmentos el sistema considera que tiene suficiente información relevante para proporcionar (en el diagrama anterior, la etapa “generate”) una respuesta satisfactoria a la pregunta.
|
{ |
Bloque 6: personalizando el prompt
|
from langchain_core.prompts import PromptTemplate template = """Use the following pieces of context to answer the question at the end. If you don"t know the answer, just say that you don"t know, don"t try to make up an answer. Use three sentences maximum and keep the answer as concise as possible. Always say "thanks for asking!" at the end of the answer. {context} Question: {question} Helpful Answer:""" custom_rag_prompt = PromptTemplate.from_template(template) |
Este bloque personaliza el prompt para que las respuestas sean más concisas y añadan una frase de cortesía al final. Se utiliza PromptTemplate para crear un nuevo prompt con las instrucciones deseadas.
Bloque 7: añadiendo metadatos y refinando la búsqueda
|
total_documents = len(all_splits) third = total_documents // 3 for i, document in enumerate(all_splits): if i < third: document.metadata["section"] = "beginning" elif i < 2 * third: document.metadata["section"] = "middle" else: document.metadata["section"] = "end" all_splits.metadata from langchain_core.vectorstores import InMemoryVectorStore vector_store = InMemoryVectorStore(embeddings) _ = vector_store.add_documents(all_splits) from typing import Literal from typing_extensions import Annotated class Search(TypedDict): """Search query.""" query: Annotated[str, ..., "Search query to run."] section: Annotated( Literal["beginning", "middle", "end"], ..., "Section to query.", ] class State(TypedDict): question: str query: Search context: List[Document] answer: str def analyze_query(state: State): structured_llm = llm.with_structured_output(Search) query = structured_llm.invoke(state["question"]) return {"query": query} def retrieve(state: State): query = state["query"] retrieved_docs = vector_store.similarity_search( query["query"], filter=lambda doc: doc.metadata.get("section") == query["section"], ) return {"context": retrieved_docs} def generate(state: State): docs_content = "\n\n".join(doc.page_content for doc in state["context"]) messages = prompt.invoke({"question": state["question"], "context": docs_content}) response = llm.invoke(messages) return {"answer": response.content} graph_builder = StateGraph(State).add_sequence([analyze_query, retrieve, generate]) graph_builder.add_edge(START, "analyze_query") graph = graph_builder.compile() display(Image(graph.get_graph().draw_mermaid_png())) for step in graph.stream( {"question": "¿Cual es el furturo de la IA Generativa en palabras del autor?"}, stream_mode="updates", ): print(f"{step}\n\n----------------\n") |
En este bloque, se añaden metadatos a los fragmentos del post, dividiéndolos en tres secciones: "beginning", "middle" y "end". Esto permite realizar búsquedas más refinadas, limitando la búsqueda a una sección específica del post.
Se introduce una nueva función analyze_query que utiliza el LLM para determinar la sección del post más relevante para la pregunta del usuario. El flujo de trabajo RAG se actualiza para incluir esta nueva etapa.
Finalmente, se prueba el sistema con una pregunta en español ("¿Cuál es el futuro de la IA Generativa en palabras del autor?"), observando cómo el sistema utiliza la información de la sección "end" del post para generar una respuesta más precisa.
Veamos el resultado:

Figura 2: flujo de trabajo RAG. Elaboración propia.
|
{ ---------------- { |
|
{ |
Conclusiones
A través de este recorrido por el notebook de Google Colab, hemos experimentado de primera mano la construcción de un agente conversacional con RAG. Hemos aprendido a:
- Instalar las bibliotecas necesarias.
- Configurar el entorno de desarrollo.
- Cargar y procesar datos.
- Crear embeddings y almacenarlos en un vector_store.
- Implementar las etapas de recuperación y generación de RAG.
- Personalizar el prompt para obtener respuestas más específicas.
- Añadir metadatos para refinar la búsqueda.
Este ejercicio práctico te proporciona las herramientas y conocimientos necesarios para comenzar a explorar el potencial de RAG y desarrollar tus propias aplicaciones.
¡Anímate a experimentar con diferentes fuentes de información, modelos de lenguaje y prompts para crear agentes conversacionales cada vez más sofisticados!
Contenido elaborado por Alejandro Alija,experto en Transformación Digital e Innovación. Los contenidos y los puntos de vista reflejados en esta publicación son responsabilidad exclusiva de su autor.
Los portales de datos abiertos son una fuente invaluable de información pública. Sin embargo, extraer insights significativos de estos datos puede resultar desafiante para usuarios sin conocimientos técnicos avanzados.
En este ejercicio práctico, exploraremos el desarrollo de una aplicación web que democratiza el acceso a estos datos mediante el uso de inteligencia artificial, permitiendo realizar consultas en lenguaje natural.
La aplicación, desarrollada utilizando el portal datos.gob.es como fuente de datos, integra tecnologías modernas como Streamlit para la interfaz de usuario y el modelo de lenguaje Gemini de Google para el procesamiento de lenguaje natural. La naturaleza modular permite que se pueda utilizar cualquier modelo de Inteligencia Artificial con mínimos cambios. El proyecto completo está disponible en el repositorio de Github.
Accede al repositorio del laboratorio de datos en Github.
Ejecuta el código de pre-procesamiento de datos sobre Google Colab.
En este vídeo, el autor te explica que vas a encontrar tanto en el Github como en Google Colab.
Arquitectura de la aplicación
El núcleo de la aplicación se basa en cuatro apartados principales e interconectados que trabajan para procesar las consultas de la persona usuaria:
- Generación del Contexto
- Analiza las características del dataset elegido.
- Genera una descripción detallada incluyendo dimensiones, tipos de datos y estadísticas.
- Crea una plantilla estructurada con guías específicas para la generación de código.
- Combinación de Contexto y Consulta
- Une el contexto generado con la pregunta de la persona usuaria creando el prompt que recibirá el modelo de inteligencia artificial.
- Generación de Respuesta
- Envía el prompt al modelo y obtiene el código Python que permite resolver la cuestión generada.
- Ejecución del Código
- Ejecuta de manera segura el código generado con un sistema de reintentos y correcciones automáticas.
- Captura y expone los resultados en el frontal de la aplicación.
Figura 1. Flujo de procesamiento de solicitudes
Proceso de desarrollo
El primer paso es establecer una forma de acceder a los datos públicos. El portal datos.gob.es ofrece vía API los datasets. Se han desarrollado funciones para navegar por el catálogo y descargar estos archivos de forma eficiente.

Figura 2. API de datos.gob
El segundo paso aborda la cuestión: ¿cómo convertir preguntas en lenguaje natural en análisis de datos útiles? Aquí es donde entra Gemini, el modelo de lenguaje de Google. Sin embargo, no basta con simplemente conectar el modelo; es necesario enseñarle a entender el contexto específico de cada dataset.
Se ha desarrollado un sistema en tres capas:
- Una función que analiza el dataset y genera una "ficha técnica" detallada.
- Otra que combina esta ficha con la pregunta del usuario.
- Y una tercera que traduce todo esto en código Python ejecutable.
Se puede ver en la imagen inferior como se desarrolla este proceso y, posteriormente, se muestran los resultados del código generado ya ejecutado.
Figura 3. Visualización del procesamiento de respuesta de la aplicación
Por último, con Streamlit, se ha construido una interfaz web que muestra el proceso y sus resultados al usuario. La interfaz es tan simple como elegir un dataset y hacer una pregunta, pero también lo suficientemente potente como para mostrar visualizaciones complejas y permitir la exploración de datos.
El resultado final es una aplicación que permite a cualquier persona, independientemente de sus conocimientos técnicos, realizar análisis de datos y aprender sobre el código ejecutado por el modelo. Por ejemplo, un funcionario municipal puede preguntar "¿Cuál es la edad media de la flota de vehículos?" y obtener una visualización clara de la distribución de edades.
Figura 4. Caso de uso completo. Visualizar la distribución de los años de matriculación de la flota automovilística del ayuntamiento de Almendralejo en 2018
¿Qué puedes aprender?
Este ejercicio práctico te permite aprender:
- Integración de IA en Aplicaciones Web:
- Cómo comunicarse efectivamente con modelos de lenguaje como Gemini.
- Técnicas para estructurar prompts que generen código preciso.
- Estrategias para manejar y ejecutar código generado por IA de forma segura.
- Desarrollo Web con Streamlit:
- Creación de interfaces interactivas en Python.
- Manejo de estado y sesiones en aplicaciones web.
- Implementación de componentes visuales para datos.
- Trabajo con Datos Abiertos:
- Conexión y consumo de APIs de datos públicos.
- Procesamiento de archivos Excel y DataFrames.
- Técnicas de visualización de datos.
- Buenas Prácticas de Desarrollo:
- Estructuración modular de código Python.
- Manejo de errores y reintentos.
- Implementación de sistemas de feedback visual.
- Despliegue de aplicaciones web usando ngrok.
Conclusiones y futuro
Este ejercicio demuestra el extraordinario potencial de la inteligencia artificial como puente entre los datos públicos y los usuarios finales. A través del caso práctico desarrollado, hemos podido observar cómo la combinación de modelos de lenguaje avanzados con interfaces intuitivas permite democratizar el acceso al análisis de datos, transformando consultas en lenguaje natural en análisis significativos y visualizaciones informativas.
Para aquellas personas interesadas en expandir las capacidades del sistema, existen múltiples direcciones prometedoras para su evolución:
- Incorporación de modelos de lenguaje más avanzados que permitan análisis más sofisticados.
- Implementación de sistemas de aprendizaje que mejoren las respuestas basándose en el feedback del usuario.
- Integración con más fuentes de datos abiertos y formatos diversos.
- Desarrollo de capacidades de análisis predictivo y prescriptivo.
En resumen, este ejercicio no solo demuestra la viabilidad de democratizar el análisis de datos mediante la inteligencia artificial, sino que también señala un camino prometedor hacia un futuro donde el acceso y análisis de datos públicos sea verdaderamente universal. La combinación de tecnologías modernas como Streamlit, modelos de lenguaje y técnicas de visualización abre un abanico de posibilidades para que organizaciones y ciudadanos aprovechen al máximo el valor de los datos abiertos.
La Inteligencia Artificial (IA) ha dejado de ser un concepto futurista y se ha convertido en una herramienta clave en nuestra vida diaria. Desde las recomendaciones de películas o series en plataformas de streaming hasta los asistentes virtuales como Alexa o Google Assistant en nuestros dispositivos, la IA está en todas partes. Pero, ¿cómo se construye un modelo de IA? A pesar de lo que podría parecer, el proceso es menos intimidante si lo desglosamos en pasos claros y comprensibles.
Paso 1: definir el problema
Antes de empezar, necesitamos tener muy claro qué queremos resolver. La IA no es una varita mágica: diferentes modelos funcionarán mejor en diferentes aplicaciones y contextos por lo que es importante definir la tarea específica que deseamos ejecutar. Por ejemplo, ¿queremos predecir las ventas de un producto? ¿Clasificar correos como spam o no spam? Tener una definición clara del problema nos ayudará a estructurar el resto del proceso.
Además, debemos plantearnos qué tipo de datos tenemos y cuáles son las expectativas. Esto incluye determinar el nivel de precisión deseado y las limitaciones de tiempo o recursos disponibles.
Paso 2: recopilar los datos
La calidad de un modelo de IA depende directamente de la calidad de los datos utilizados para entrenarlo. Este paso consiste en recopilar y organizar los datos relevantes para nuestro problema. Por ejemplo, si queremos predecir ventas, necesitaremos datos históricos como precios, promociones o patrones de compra.
La recopilación de datos comienza identificando las fuentes relevantes, que pueden ser bases de datos internas, sensores, encuestas… Además de los datos propios de cada empresa, existe un amplio ecosistema de datos, tanto abiertos como propietarios, a los que podemos recurrir en busca de la construcción de modelos más potentes. Por ejemplo, el Gobierno de España habilita a través del portal datos.gob.es múltiples conjuntos de datos abiertos publicados por instituciones públicas. Por otro lado, la empresa Amazon Web Services (AWS) a través de su portal AWS Data Exchange permite el acceso y suscripción a miles de conjuntos de datos propietarios publicados y mantenidos por diferentes empresas y organizaciones.
En este punto también se debe considerar la cantidad de datos necesaria. Los modelos de IA suelen necesitar grandes volúmenes de información para aprender de manera efectiva. También es crucial que los datos sean representativos y no contengan sesgos que puedan afectar los resultados. Por ejemplo, si entrenamos un modelo para predecir patrones de consumo y solo usamos datos de un grupo limitado de personas, es probable que las predicciones no sean válidas para otros grupos con comportamientos diferentes.
Paso 3: preparar y explorar los datos
Una vez recopilados los datos, es hora de limpiarlos y normalizarlos. En muchas ocasiones, los datos en bruto pueden contener problemas como errores, duplicidades, valores faltantes, inconsistencias o formatos no estandarizados. Por ejemplo, podríamos encontrarnos con celdas vacías en un conjunto de datos de ventas o con fechas que no siguen un formato coherente. Antes de alimentar el modelo con estos datos, es fundamental adecuarlos para garantizar que el análisis sea preciso y confiable. Este paso no solo mejora la calidad de los resultados, sino que también asegura que el modelo pueda interpretar correctamente la información.
Una vez tenemos los datos limpios es fundamental realizar la ingeniería de características (feature engineering), un proceso creativo que puede marcar la diferencia entre un modelo básico y uno excelente. Esta fase consiste en crear nuevas variables que capturen mejor la naturaleza del problema que queremos resolver. Por ejemplo, si estamos analizando ventas online, además de usar el precio directo del producto, podríamos crear nuevas características como el ratio precio/media_categoría, los días desde la última promoción, o variables que capturen la estacionalidad de las ventas. La experiencia demuestra que contar con características bien diseñadas suele ser más determinante para el éxito del modelo que la elección del algoritmo en sí mismo.
En esta fase, también realizaremos un primer análisis exploratorio de los datos, buscando familiarizarnos con ellos y detectar posibles patrones, tendencias o irregularidades que puedan influir en el modelo. En esta guía podemos encontrar mayor detalle sobre cómo realizar un análisis exploratorio de datos.
Otra actividad típica de esta etapa es dividir los datos en conjuntos de entrenamiento, validación y prueba. Por ejemplo, si tenemos 10.000 registros, podríamos usar el 70% para entrenamiento, el 20% para validación y el 10% para pruebas. Esto permite que el modelo aprenda sin sobreajustarse a un conjunto de datos específico.
Para garantizar que nuestra evaluación sea robusta, especialmente cuando trabajamos con conjuntos de datos limitados, es recomendable implementar técnicas de validación cruzada (cross-validation). Esta metodología divide los datos en múltiples subconjuntos y realiza varias iteraciones de entrenamiento y validación. Por ejemplo, en una validación cruzada de 5 pliegues, dividimos los datos en 5 partes y entrenamos 5 veces, usando cada vez una parte diferente como conjunto de validación. Esto nos proporciona una estimación más fiable del rendimiento real del modelo y nos ayuda a detectar problemas de sobreajuste o variabilidad en los resultados.
Paso 4: seleccionar un modelo
Existen múltiples tipos de modelos de IA, y la elección depende del problema que deseemos resolver. Algunos ejemplos comunes son regresión, modelos de árboles de decisión, modelos de agrupamiento, modelos de series temporales o redes neuronales. En general, existen modelos supervisados, modelos no supervisados y modelos de aprendizaje por refuerzo. Podemos encontrar un mayor detalle en este post sobre cómo las maquinas aprenden.
A la hora de seleccionar un modelo, es importante tener en cuenta factores como la naturaleza de los datos, la complejidad del problema y el objetivo final. Por ejemplo, un modelo simple como la regresión lineal puede ser suficiente para problemas sencillos y bien estructurados, mientras que redes neuronales o modelos avanzados podrían ser necesarios para tareas como reconocimiento de imágenes o procesamiento del lenguaje natural. Además, también se debe considerar el balance entre precisión, tiempo de entrenamiento y recursos computacionales. Un modelo más preciso generalmente requiere configuraciones más complejas, como más datos, redes neuronales más profundas o parámetros optimizados. Aumentar la complejidad del modelo o trabajar con conjuntos de datos grandes puede alargar significativamente el tiempo necesario para entrenarlo. Esto puede ser un problema en entornos donde las decisiones deben tomarse rápidamente o los recursos son limitados y requerir hardware especializado, como GPUs o TPUs, y mayores cantidades de memoria y almacenamiento.
Hoy en día, muchas bibliotecas de código abiertas facilitan la implementación de estos modelos, como TensorFlow, PyTorch o scikit-learn.
Paso 5: entrenar el modelo
El entrenamiento es el corazón del proceso. Durante esta etapa, alimentamos el modelo con los datos de entrenamiento para que aprenda a realizar su tarea. Esto se logra ajustando los parámetros del modelo para minimizar el error entre sus predicciones y los resultados reales.
Aquí es clave evaluar constantemente el rendimiento del modelo con el conjunto de validación y realizar ajustes si es necesario. Por ejemplo, en un modelo de tipo red neuronal podríamos probar diferentes configuraciones de hiperparámetros como tasa de aprendizaje, número de capas ocultas y neuronas, tamaño del lote, número de épocas, o función de activación, entre otros.
Paso 6: evaluar el modelo
Una vez entrenado, es momento de poner a prueba el modelo utilizando el conjunto de datos de prueba que apartamos durante la fase de entrenamiento. Este paso es crucial para medir cómo se desempeña con datos que para el modelo son nuevos y garantiza que no esté “sobreentrenado”, es decir, que no solo funcione bien con los datos de entrenamiento, sino que sea capaz de aplicar el aprendizaje sobre nuevos datos que puedan generarse en el día a día.
Al evaluar un modelo, además de la precisión, también es común considerar:
- Confianza en las predicciones: evaluar cuán seguras son las predicciones realizadas.
- Velocidad de respuesta: tiempo que toma el modelo en procesar y generar una predicción.
- Eficiencia en recursos: medir cuánto uso de memoria y cómputo requiere el modelo.
- Adaptabilidad: cuán bien puede ajustarse el modelo a nuevos datos o condiciones sin necesidad de un reentrenamiento completo.
Paso 7: desplegar y mantener el modelo
Cuando el modelo cumple con nuestras expectativas, está listo para ser desplegado en un entorno real. Esto podría implicar integrar el modelo en una aplicación, automatizar tareas o generar informes.
Sin embargo, el trabajo no termina aquí. La IA necesita mantenimiento continuo para adaptarse a los cambios en los datos o en las condiciones del mundo real. Por ejemplo, si los patrones de compra cambian por una nueva tendencia, el modelo deberá ser actualizado.
Construir modelos de IA no es una ciencia exacta, es el resultado de un proceso estructurado que combina lógica, creatividad y perseverancia. Esto se debe a que intervienen múltiples factores, como la calidad de los datos, las elecciones en el diseño del modelo y las decisiones humanas durante la optimización. Aunque existen metodologías claras y herramientas avanzadas, la construcción de modelos requiere experimentación, ajustes y, a menudo, un enfoque iterativo para obtener resultados satisfactorios. Aunque cada paso requiere atención al detalle, las herramientas y tecnologías disponibles hoy en día hacen que este desafío sea accesible para cualquier persona interesada en explorar el mundo de la IA.
ANEXO I – Definiciones tipos de modelos
-
Regresión: técnicas supervisadas que modelan la relación entre una variable dependiente (resultado) y una o más variables independientes (predictores). La regresión se utiliza para predecir valores continuos, como ventas futuras o temperaturas, y puede incluir enfoques como la regresión lineal, logística o polinómica, dependiendo de la complejidad del problema y la relación entre las variables.
-
Modelos de árboles de decisión: métodos supervisados que representan decisiones y sus posibles consecuencias en forma de árbol. En cada nodo, se toma una decisión basada en una característica de los datos, dividiendo el conjunto en subconjuntos más pequeños. Estos modelos son intuitivos y útiles para clasificación y predicción, ya que generan reglas claras que explican el razonamiento detrás de cada decisión.
-
Modelos de agrupamiento: técnicas no supervisadas que agrupan datos en subconjuntos llamados clústeres, basándose en similitudes o proximidad entre los datos. Por ejemplo, se pueden agrupar clientes con hábitos de compra similares para personalizar estrategias de marketing. Modelos como k-means o DBSCAN permiten identificar patrones útiles sin necesidad de datos etiquetados.
-
Modelos de series temporales: diseñados para trabajar con datos ordenados cronológicamente, estos modelos analizan patrones temporales y realizan predicciones basadas en el historial. Se utilizan en casos como predicción de demanda, análisis financiero o meteorología. Incorporan tendencias, estacionalidad y relaciones entre los datos pasados y futuros.
-
Redes neuronales: modelos inspirados en el funcionamiento del cerebro humano, donde capas de neuronas artificiales procesan información y detectan patrones complejos. Son especialmente útiles en tareas como reconocimiento de imágenes, procesamiento de lenguaje natural y juegos. Las redes neuronales pueden ser simples o muy profundas (deep learning), dependiendo del problema y la cantidad de datos.
-
Modelos supervisados: estos modelos aprenden de datos etiquetados, es decir, conjuntos en los que cada entrada tiene un resultado conocido. El objetivo es que el modelo generalice para predecir resultados en datos nuevos. Ejemplos incluyen clasificación de correos en spam o no spam y predicciones de precios.
-
Modelos no supervisados: trabajan con datos sin etiquetas, buscando patrones ocultos, estructuras o relaciones dentro de los datos. Son ideales para tareas exploratorias donde no se conoce de antemano el resultado esperado, como segmentación de mercados o reducción de dimensionalidad.
- Modelo de aprendizaje por refuerzo: en este enfoque, un agente aprende interactuando con un entorno, tomando decisiones y recibiendo recompensas o penalizaciones según su desempeño. Este tipo de aprendizaje es útil en problemas donde las decisiones afectan un objetivo a largo plazo, como entrenar robots, jugar videojuegos o desarrollar estrategias de inversión.
Contenido elaborado por Juan Benavente, ingeniero superior industrial y experto en tecnologías ligadas a la economía del dato. Los contenidos y los puntos de vista reflejados en esta publicación son responsabilidad exclusiva de su autor.
En este episodio vamos a hablar de la inteligencia artificial y sus retos, tomando como base el Reglamento Europeo de Inteligencia Artificial que entró en vigor este año. Quédate para conocer los retos oportunidades y novedades del sector de la mano de dos expertos en la materia:
- Ricard Martínez, profesor de derecho constitucional de la Universitat de València en la que dirige la Cátedra de Privacidad y Transformación Digital Microsoft Universidad de Valencia.
- Carmen Torrijos, lingüista computacional, experta en IA aplicada al lenguaje y profesora de minería de texto en la Universidad Carlos III.
Resumen / Transcripción de la entrevista
1. Está claro que la inteligencia artificial está en continua evolución. Para entrar en materia, me gustaría que nos contarais ¿cuáles son los últimos avances en la IA?
Carmen Torrijos: Surgen muchas aplicaciones nuevas. Por ejemplo, este fin de semana pasado ha tenido mucho eco una IA de generación de imagen en X, en Twitter, no sé si lo habéis seguido, que se llama Grok. Ha tenido bastante impacto, no porque aporte nada nuevo, ya que la generación de imagen es algo que estamos haciendo desde diciembre de 2023. Pero esta es una IA que tiene menos censura, es decir, teníamos hasta ahora muchas dificultades con los sistemas generalistas para hacer imágenes que tuvieran caras de famosos o tuvieran situaciones determinadas y estaba muy vigilado desde cualquier herramienta. Grok lo que hace es levantar todo eso y que cualquiera pueda hacer cualquier tipo de imagen con cualquier persona famosa o con cualquier cara conocida. Es una moda seguramente muy pasajera. Haremos imágenes durante un tiempo y luego se nos pasará.
Y después tenemos también sistemas de creación de podcast automáticos, como Notebook LM. Ya llevamos un par de meses viéndolos y ha sido realmente una de las cosas que a mí, en los últimos meses, me ha sorprendido de verdad. Porque ya parece que todos son innovaciones incrementales: sobre lo que ya tenemos, nos dan algo mejor. Pero esto es algo realmente nuevo que sorprende. Tú subes un PDF y te puede generar un podcast de dos personas hablando de manera totalmente natural, totalmente realista, sobre ese PDF. Es algo que puede hacer Notebook LM que es de Google.
2. El Reglamento Europeo de Inteligencia Artificial es la primera norma jurídica del mundo sobre IA, ¿con qué objetivos se publica este documento que es ya un marco referencial a nivel internacional?
Ricard Martínez: El Reglamento surge por algo que está implícito en lo que Carmen nos ha contado. Todo esto que Carmen cuenta es porque nos hemos abierto a la misma carrera desenfrenada a la que nos abrimos con la aparición de las redes sociales. Porque cuando esto pasa, no es inocente, no es que las compañías sean generosas, es que las compañías están compitiendo por nuestros datos. Nos gamifican, nos animan a jugar, nos animan a proporcionarles información, por eso se abren. No se abren porque sean generosas, no se abren porque quieran trabajar para el bien común o para la humanidad. Se abren porque les estamos haciendo el trabajo. ¿Qué es lo que la Unión Europea quiere frenar? Lo que aprendimos con las redes sociales. La Unión Europea plantea dos grandes enfoques que voy a tratar de explicar de modo muy sucinto. El primer enfoque es un enfoque de riesgo sistémico. La Unión Europea ha dicho: “no voy a tolerar herramientas de inteligencia artificial que puedan poner en peligro el sistema democrático, es decir, el estado de derecho y mi modo de funcionamiento o que puedan vulnerar gravemente derechos fundamentales”. Eso es una línea roja.
El segundo enfoque es un enfoque de orientación a producto. Una IA es un producto. Cuando usted fabrica un coche, sigue unas reglas que gestionan cómo produce ese coche, y ese coche llega al mercado cuando es seguro, cuando tiene todas las especificaciones. Ese es el segundo gran enfoque del Reglamento. El Reglamento dice que puede usted estar desarrollando una tecnología porque usted está investigando y casi le dejo hacer lo que quiera. Ahora, si esta tecnología va a llegar al mercado, usted catalogará el riesgo. Si el riesgo es bajo o leve, usted va a poder hacer muchas cosas y, prácticamente, con transparencia y códigos de conducta, se lo voy a dar por bueno. Pero si es un riesgo alto, usted va a tener que seguir un proceso de diseño estandarizado, y va a necesitar que un órgano notificado verifique esa tecnología, se asegure que en su documentación usted ha cumplido lo que tiene que cumplir, y entonces le darán un sello CE. Y no acabamos aquí, porque va a haber vigilancia postcomercial. De modo que, a lo largo del ciclo de vida del producto, usted debe garantizar que esto funciona bien y que se ajusta a la norma.
Por otra parte, se establece un control férreo respecto de los grandes modelos de datos, no solo LLM, también puede ser de imagen o de otro tipo de información, cuando crea que pueden plantear riesgos sistémicos.
En ese caso, hay un control muy directo por parte de la Comisión. Por tanto, en el fondo, lo que están diciendo es: "respeten los derechos, garanticen la democracia, produzcan la tecnología de modo ordenado de acuerdo con ciertas especificaciones".
Carmen Torrijos: Sí, en cuanto a los objetivos está claro. Me he quedado con lo último que decía Ricard sobre producir tecnología de acuerdo a esta Regulación. Tenemos este mantra de que Estados Unidos hace cosas, Europa las regula y China las copia. A mí no me gusta nada generalizar así. Pero es verdad que Europa es pionera en materia de legislación y seríamos mucho más fuertes si pudiéramos producir tecnología acorde a los estándares regulatorios que estamos poniendo. Hoy por hoy todavía no podemos, quizás es una cuestión de darnos tiempo, pero creo que esa es la clave de la soberanía tecnológica en Europa.
3. Para poder producir esa tecnología, los sistemas de IA necesitan datos para entrenar sus modelos. ¿Qué criterios deberían cumplir los datos para poder entrenar correctamente un sistema de IA? ¿Los conjuntos de datos abiertos podrían ser una fuente? ¿De qué manera?
Carmen Torrijos: Los datos con los que alimentamos la IA son el punto de mayor conflicto. ¿Podemos entrenar con cualquier conjunto de datos incluso aunque estén disponibles? No vamos a hablar de datos abiertos, sino de datos disponibles.
Datos abiertos es, por ejemplo, la base de todos los modelos de lenguaje, y todo el mundo esto lo sabe, que es Wikipedia. Wikipedia es un ejemplo ideal para entrenar, porque es abierta, está optimizado para su uso computacional, es descargable, es muy fácil de usar, hay muchísimo lenguaje, por ejemplo, para entrenar modelos de lenguaje, y hay muchísimo conocimiento del mundo. Con lo cual es el conjunto de datos ideal para entrenar un modelo de IA. Y Wikipedia está en abierto, está disponible, es de todos y es para todos, se puede utilizar.
Ahora bien, ¿todos los conjuntos de datos que hay disponibles en Internet se pueden utilizar para entrenar sistemas de IA? Esa es un poco la duda. Porque el hecho de que algo esté publicado en Internet no quiere decir que sea público, de uso público, aunque tú puedas cogerlo y entrenar un sistema y empezar a generar lucro a partir de ese sistema. Tenía unos derechos de autor, una autoría y propiedad intelectual. Ese yo creo que es el conflicto más grave que tenemos ahora mismo en IA generativa porque utiliza contenidos para inspirarse y crear. Y ahí poco a poco Europa está dando pasitos. Por ejemplo, el Ministerio de Cultura ha lanzado una iniciativa para empezar a ver cómo podemos crear contenidos, conjuntos de datos licenciados, que permitan entrenar la IA de una manera legal, ética y con respecto a los derechos de propiedad intelectual de los autores.
Todo esto está generando muchísima fricción. Porque si seguimos así, nos ponemos en contra a muchos ilustradores, traductores, escritores, etc. (todos los creadores que trabajan con el contenido), porque no van a querer que se desarrolle esta tecnología a costa de sus contenidos. De alguna manera hay que encontrar el equilibrio en la regulación y en la innovación para que las dos cosas ocurran. Desde los grandes sistemas tecnológicos que se están desarrollando, sobre todo en Estados Unidos, se repite una idea que es que solo con contenidos licenciados, con conjuntos de datos legales que están libres de propiedad intelectual, o que se ha pagado los rendimientos necesarios por su propiedad intelectual, no se puede llegar al nivel de calidad de las IA's que tenemos ahora. Es decir, solamente con conjuntos de datos legales no hubiéramos tenido ChatGPT al nivel que está el ChatGPT.
Eso no está escrito en piedra y no tiene por qué ser así. Tenemos que seguir investigando, o sea, tenemos que seguir viendo cómo podemos lograr una tecnología de ese nivel, pero que cumpla con la regulación. Porque lo que han hecho en Estados Unidos, lo que ha hecho GPT-4, los grandes modelos del lenguaje, los grandes modelos de generación de imagen, es enseñarnos el camino. Esto es hasta dónde podemos llegar. Pero lo habéis hecho cogiendo contenido que no es vuestro, que no era lícito coger. Tenemos que conseguir volver a ese nivel de calidad, volver a ese nivel de rendimiento de los modelos, respetando la propiedad intelectual del contenido. Y eso es un papel que yo creo que corresponde principalmente a Europa
4. Otra de las cuestiones que le preocupa a la ciudadanía respecto al rápido desarrollo de la IA es el tratamiento de los datos personales. ¿Cómo deberían protegerse y qué condiciones establece el reglamento europeo para ello?
Ricard Martínez: Hay un conjunto de conductas que se han prohibido esencialmente para garantizar los derechos fundamentales de las personas. Pero no es la única medida. Yo le concedo muchísima importancia a un artículo en la norma al que seguramente no le vamos a dar muchas vueltas, pero para mí es clave. Hay un artículo, el cuarto, que en inglés se ha titulado AI Literacy, y en castellano “Formación en inteligencia artificial” que dice que cualquier sujeto que está interviniendo en la cadena de valor tiene que haber sido adecuadamente formado. Tiene que conocer de qué va esto, tiene que conocer cuál es el estado del arte, tiene que conocer cuáles son las implicaciones de la tecnología que va a desarrollar o que va a desplegar. Le concedo mucho valor porque significa incorporar en toda la cadena de valor (desarrollador, comercializador, importador, compañía que despliegue un modelo para su uso, etc.) un conjunto de valores que suponen lo que en inglés se llama accountability, responsabilidad proactiva, por defecto. Esto se puede traducir en un elemento que es muy sencillo, sobre el que se habla hace dos mil años en el mundo del derecho, que es el ‘no hacer daño’, es el principio de no maleficencia.
Con algo tan sencillo como eso, "no haga usted daño a los demás, actúe de buena y garantice sus derechos", no se deberían producir efectos perversos o efectos dañosos, lo cual no significa que no pueda suceder. Y precisamente eso lo dice el Reglamento muy particularmente cuando se refiere a los sistemas de riesgo alto, pero es aplicable a todos los sistemas. El Reglamento te dice que tienes que garantizar los procesos de cumplimiento y las garantías durante todo el ciclo de vida del sistema. De ahí que sea tan importante la robustez, la resiliencia y el disponer de planes de contingencia que te permiten revertir, paralizar, pasar a control humano, cambiar el modelo de uso cuando se produce algún incidente.
Por tanto, todo el ecosistema está dirigido a ese objetivo de no lesionar derechos, no causar perjuicios. Y hay un elemento que ya no depende de nosotros, depende de las políticas públicas. La IA no solo va a lesionar derechos, va a cambiar el modo en el que entendemos el mundo. Si no hay políticas públicas en el sector educativo que aseguren que nuestros niños y niñas desarrollen capacidades de pensamiento computacional y de ser capaces de tener una relación con una interfaz-máquina, su acceso al mercado de trabajo se va a ver significativamente afectado. Del mismo modo, si no aseguramos la formación continua de los trabajadores en activo y también las políticas públicas de aquellos sectores condenados a desaparecer.
Carmen Torrijos: Me parece muy interesante el enfoque de Ricard de formar es proteger. Formar a la gente, informar a la gente, que la gente tenga capacitación en IA, no solamente la gente que está en la cadena de valor, sino todo el mundo. Cuanto más formas y capacitas, más estás protegiendo a las personas.
Cuando salió la ley, hubo cierta decepción en los entornos IA y sobre todo en los entornos creativos. Porque estábamos en plena efervescencia de la IA generativa y no se estaba regulando apenas la IA generativa, pero se estaban regulando otras cosas que dábamos por hecho que en Europa no iban a pasar, pero que hay que regular para que no puedan pasar. Por ejemplo, la vigilancia biométrica: que Amazon no pueda leerte la cara para decidir si estás más triste ese día y venderte más cosas o sacarte más publicidad o una publicidad determinada. Digo Amazon, pero puede ser cualquier plataforma. Eso, por ejemplo, en Europa no se va a poder hacer porque está prohibido desde la ley, es un uso inaceptable: la vigilancia biométrica.
Otro ejemplo es la puntuación social, el social scoring que vemos que pasa en China, que se dan puntos a los ciudadanos y se accede a servicios públicos a partir de estos puntos. Eso tampoco se va a poder hacer. Y hay que contemplar también esta parte de la ley, porque damos muy por hecho que esto no nos va a ocurrir, pero cuando no lo regulas es cuando ocurre. China tiene instalados 600 millones de cámaras de TRF, de tecnología de reconocimiento facial, que te reconocen con tu DNI. Eso no va a pasar en Europa porque no se puede, porque también es vigilancia biométrica. Entonces hay que entender que la ley quizá parece que va más despacio en lo que ahora nos tiene embelesados que es la IA generativa, pero se ha dedicado a tratar puntos muy importantes que había que cubrir para proteger a las personas. Para no perder derechos fundamentales que ya teníamos ganados.
Por último, la ética tiene un componente muy incómodo, que nadie quiere mirar, que es que a veces hay que revocar. A veces hay que quitar algo que está en funcionamiento, incluso que está dando un beneficio, porque está incurriendo en algún tipo de discriminación, o porque está trayendo algún tipo de consecuencia negativa que viola a los derechos de un colectivo, de una minoría o de alguien vulnerable. Y eso es muy complicado. Cuando ya nos hemos acostumbrado a tener una IA funcionando en determinado contexto, que puede ser incluso un contexto público, parar y decir que esto está discriminando a personas, entonces este sistema no puede seguir en producción y hay que quitarlo. Ese punto es muy complicado, es muy incómodo y cuando hablamos de ética, que hablamos muy fácil de ética, hay que pensar también en cuántos sistemas vamos a tener que parar y revisar antes de poder volver a poner en funcionamiento, por muy fácil que nos hagan la vida o por muy innovadores que parezcan.
5. En este sentido, teniendo en cuenta todo lo que recoge el Reglamento, algunas empresas españolas, por ejemplo, tendrán que adaptarse a este nuevo marco. ¿Qué deberían estar haciendo ya las organizaciones para prepararse? ¿Qué deberían revisar las empresas españolas teniendo en cuenta el reglamento europeo?
Ricard Martínez: Esto es muy importante, porque hay un nivel corporativo empresarial de altas capacidades que a mí no me preocupa porque estas empresas entienden que estamos hablando de una inversión. Y del mismo modo que invirtieron en un modelo basado en procesos que integraba el compliance desde el diseño para protección de datos. El siguiente salto, que es hacer exactamente lo mismo con inteligencia artificial, no diré que carece de importancia, porque posee una importancia relevante, pero digamos que es recorrer un camino que ya se ensayó. Estas empresas ya tienen unidades de compliance, ya tienen asesores, y ya tienen unas rutinas en las que se puede integrar como una parte más del proceso el marco de referencia de la normativa de inteligencia artificial. Al final lo que va a hacer es crecer en un sentido el análisis de riesgos. Seguramente va a obligar a modular los procesos de diseño y también las propias fases de diseño, es decir, mientras que en un diseño de software prácticamente hablamos de pasar de un modelo no funcional a picar código, aquí hay una serie de labores de enriquecimiento, anotación, validación de los conjuntos de datos, prototipado que exigen seguramente más esfuerzo, pero son rutinas que se pueden estandarizar.
Mi experiencia en proyectos europeos en los que hemos trabajado con clientes, es decir, con las PYMES, que esperan que la IA sea plug and play, lo que hemos apreciado es una enorme falta de capacitación. Lo primero que deberías preguntarte no es si tu empresa necesita IA, sino si tu empresa está preparada para la IA. Es una pregunta previa y bastante más relevante. Oiga, usted cree que puede dar un salto a la IA, que puede contratar un determinado tipo de servicios, y nos estamos dando cuenta que es que usted ni siquiera cumple bien la norma de protección de datos.
Hay una cosa, una entidad que se llama Agencia Española de Inteligencia Artificial, AESIA y hay un Ministerio de Transformación Digital, y si no hay políticas públicas de acompañamiento, podemos incurrir en situaciones de riesgo. ¿Por qué? Porque yo tengo el enorme placer de formar en grados y posgrados a futuros emprendedores en inteligencia artificial. Cuando se enfrentan al marco ético y jurídico no diré que se quieren morir, pero se les cae el mundo encima. Porque no hay un soporte, no hay un acompañamiento, no hay recursos, o no los pueden ver, que no le supongan una ronda de inversión que no pueden soportar, o no hay modelos guiados que les ayuden de modo, no diré fácil, pero sí al menos usable.
Por lo tanto, creo que hay un reto sustancial en las políticas públicas, porque si no se da esa combinación, las únicas empresas que podrán competir son las que ya tienen una masa crítica, una capacidad inversora y un capital acumulado que les permite cumplir con la norma. Esta situación podría conducir a un resultado contraproducente.
Queremos recuperar la soberanía digital europea, pero si no hay políticas públicas de inversión, los únicos que van a poder cumplir la norma europea son las empresas de otros países.
Carmen Torrijos: No porque sean de otros países sino porque son más grandes.
Ricard Martínez: Sí, por no citar países.
6. Hemos hablado de retos, pero también es importante destacar oportunidades. ¿Qué aspectos positivos podríais destacar a raíz de esta regulación reciente?
Ricard Martínez: Yo trabajo en la construcción, con fondos europeos, de Cancer Image EU que pretende ser una infraestructura digital para la imagen de cáncer. En estos momentos, hablamos de un partenariado que engloba a 14 países, 76 organizaciones, camino de 93, para generar una base de datos de imagen médica con 25 millones de imágenes de cáncer con información clínica asociada para el desarrollo de inteligencia artificial. La infraestructura se está construyendo, todavía no existe, y aún así, en el Hospital La Fe, en Valencia, ya se está investigando con mamografías de mujeres que se han practicado el screening bienal y que después han desplegado cáncer, para ver si es capaz de entrenar un modelo de análisis de imagen que sea capaz de reconocer preventivamente esa manchita que el oncólogo o el radiólogo no vieron y que después acabó siendo un cáncer. ¿Significa que te van a poner quimioterapia cinco minutos después? No. Significa que te van a monitorizar, que van a tener una capacidad de reacción temprana. Y que el sistema de salud se va a ahorrar doscientos mil euros. Por mencionar alguna oportunidad.
Por otra parte, las oportunidades hay que buscarlas, además, en otras normas. No solo en el Reglamento de Inteligencia Artificial. Hay que irse a Data Governance Act, que quiere contrarrestar el monopolio de datos que tienen las empresas norteamericanas con una compartición de datos desde el sector público, privado y desde la propia ciudadanía. Con Data Act, que pretende empoderar a los ciudadanos para que puedan recuperar sus datos y compartirlos mediante consentimiento. Y finalmente con el European Health Data Space que quiere crear un ecosistema de datos de salud para promover la innovación, la investigación y el emprendimiento. Ese ecosistema de espacios de datos es el que debería ser un enorme generador de espacios de oportunidad.
Y además, yo no sé si lo van a conseguir o no, pero pretende ser coherente con nuestro ecosistema empresarial. Es decir, un ecosistema de pequeña y mediana empresa que no tiene altas capacidades en la generación de datos y lo que le vamos a hacer es a construirles el campo. Les vamos a crear los espacios de datos, les vamos a crear los intermediarios, los servicios de intermediación y esperemos que ese ecosistema en su conjunto permita que el talento europeo emerja desde la pequeña y media empresa. ¿Que se vaya a conseguir o no? No lo sé, pero el escenario de oportunidad parece muy interesante.
Carmen Torrijos: Si preguntas por oportunidades, oportunidades todas. No solamente la inteligencia artificial, sino todo el avance tecnológico, es un campo tan grande que puede traer oportunidades de todo tipo. Lo que hay que hacer es bajar las barreras, que ese es el problema que tenemos. Y barreras las tenemos también de muchos tipos, porque tenemos barreras técnicas, de talento, salariales, disciplinares, de género, generacionales, etc.
Tenemos que concentrar las energías en bajar esas barreras, y luego también creo que seguimos viniendo del mundo analógico y tenemos poca conciencia global de que tanto lo digital como todo lo que afecta a la IA y a los datos es un fenómeno global. No sirve de nada mantenerlo todo en lo local, o en lo nacional, o ni siquiera a nivel europeo, sino que es un fenómeno global. Los grandes problemas que tenemos vienen porque tenemos empresas tecnológicas que se desarrollan en Estados Unidos trabajando en Europa con datos de ciudadanos europeos. Ahí se genera muchísima fricción. Todo lo que pueda llevar a algo más global va a ir siempre en favor de la innovación y va a ir siempre en favor de la tecnología. Lo primero es levantar las barreras dentro de Europa. Esa es una parte muy positiva de la ley.
7. Llegados a este punto, nos gustaría realizar un repaso sobre el estado en el que nos encontramos y las perspectivas de futuro. ¿Cómo veis el futuro de la inteligencia artificial en Europa?
Ricard Martínez: Yo tengo dos visiones: una positiva y una negativa. Y las dos vienen de mi experiencia en protección de datos. Si ahora que tenemos un marco normativo, las autoridades reguladoras, me refiero desde inteligencia artificial y desde protección de datos, no son capaces de encontrar soluciones funcionales y aterrizadas, y generan políticas públicas desde arriba hacia abajo y desde una excelencia que no se corresponde con las capacidades y las posibilidades de la investigación -me refiero no solo a la investigación empresarial, también a la universitaria-, veo el futuro muy negro. Si por el contrario, entendemos de modo dinámico la regulación con políticas públicas de soporte y acompañamiento que generen las capacidades para esa excelencia, veo un futuro prometedor porque en principio lo que haremos será competir en el mercado con las mismas soluciones que los demás, pero responsive: seguras, responsables y confiables.
Carmen: Sí, yo estoy muy de acuerdo. Yo introduzco en eso la variable tiempo, ¿no? Porque creo que hay que tener mucho cuidado en no generar más desigualdad de la que ya tenemos. Más desigualdad entre empresas, más desigualdad entre la ciudadanía. Si tenemos cuidado con eso, que se dice fácil, pero se hace difícil, yo creo que el futuro puede ser brillante, pero no lo va a ser de manera inmediata. Es decir, vamos a tener que pasar por una época más oscura de adaptación al cambio. Igual que muchos temas de la digitalización ya no nos son ajenos, ya están trabajados, ya hemos pasado por ellos y ya los hemos regulado, la inteligencia artificial necesita su tiempo también.
Llevamos muy pocos años de IA, muy pocos años de IA generativa. De hecho, dos años no es nada en un cambio tecnológico a nivel mundial. Y tenemos que dar tiempo a las leyes y tenemos también que dar tiempo a que ocurran cosas. Por ejemplo, pongo un ejemplo muy evidente, la denuncia del New York Times a Microsoft y a OpenAI no se ha resuelto todavía. Llevamos un año, se interpuso en diciembre de 2023, el New York Times se queja de que han entrenado con sus contenidos los sistemas de IA y en un año no se ha conseguido llegar a nada en ese proceso. Los procesos judiciales son muy lentos. Necesitamos que ocurran más cosas. Y que se resuelvan más procesos de este tipo para tener precedentes y para tener madurez como sociedad en lo que está ocurriendo, y nos falta mucho. Es como que no ha pasado casi nada. Entonces, la variable tiempo creo que es importante y creo que, aunque al principio tengamos un futuro más negro, como dice Ricard, creo que a largo plazo, si mantenemos claros los límites, podemos llegar a algo brillante.
Clips de la entrevista
1. ¿Qué criterios deberían tener los datos para entrenar un sistema de IA?
2. ¿Qué deberían revisar las empresas españolas teniendo en cuenta el Reglamento de IA?
Desde la semana pasada, ya están disponibles los modelos de lenguaje de inteligencia artificial (IA) entrenados en español, catalán, gallego, valenciano y euskera, que se han desarrollado dentro de ALIA, la infraestructura pública de recursos de IA. A través de ALIA Kit los usuarios pueden acceder a toda la familia de modelos y conocer la metodología utilizada, la documentación relacionada y los conjuntos de datos de entrenamiento y evaluación. En este artículo te contamos sus claves.
¿Qué es ALIA?
ALIA es un proyecto coordinado por el Barcelona Supercomputing Center-Centro Nacional de Supercomputación (BSC-CNS). Su objetivo es proporcionar una infraestructura pública de recursos de inteligencia artificial abiertos y transparentes, capaces de generar valor tanto en el sector público como en el privado.
En concreto, ALIA es una familia de modelos de texto, voz y traducción automática. El entrenamiento de sistemas de inteligencia artificial demanda una gran cantidad de recursos computacionales, ya que es necesario procesar y analizar enormes volúmenes de datos. Estos modelos han sido entrenados en español, una lengua que hablan más de 600 millones de personas en todo el mundo, pero también en las cuatro lenguas cooficiales. Para ello, se ha contado con la colaboración de la Real Academia Española (RAE) y la Asociación de Academias de la Lengua Española, que agrupa a las entidades del español existentes en todo el mundo.
Para el entrenamiento se ha utilizado el MareNostrum 5, uno de los superordenadores más potentes del mundo, que se encuentra en el Barcelona Supercomputing Center. Han sido necesarias miles de horas de trabajo para tratar varios miles de millones de palabras a una velocidad de 314.000 billones de cálculos por segundo.
Una familia de modelos abiertos y transparentes
Con el desarrollo de estos modelos se proporciona una alternativa que incorpora datos locales. Una de las prioridades de ALIA es ser una red abierta y transparente, lo que significa que los usuarios, además de poder acceder a los modelos, tienen la posibilidad de conocer y descargar los conjuntos de datos utilizados y toda la documentación relacionada. Esta documentación facilita la comprensión del funcionamiento de los modelos y, además, detectar más fácilmente en qué fallan, algo fundamental para evitar sesgos y resultados erróneos. La apertura de los modelos y la transparencia de los datos son fundamentales, ya que crea modelos más inclusivos y socialmente justos, que benefician a la sociedad en su conjunto.
Contar con modelos abiertos y transparentes fomenta la innovación, la investigación y democratiza el acceso a la inteligencia artificial, asegurando además que se parte de datos de entrenamiento de calidad.
¿Qué puedo encontrar en ALIA Kit?
A través de ALIA Kit, es posible acceder actualmente a cinco modelos masivos de lenguaje (LLM) de propósito general, de los que dos han sido entrenados con instrucciones de varios corpus abiertos. Igualmente, están disponibles nueve modelos de traducción automática multilingüe, algunos de ellos entrenados desde cero, como uno de traducción automática entre el gallego y el catalán, o entre el euskera y el catalán. Además, se han entrenado modelos de traducción al aranés, el aragonés y el asturiano.
También encontramos los datos y herramientas utilizadas para elaborar y evaluar los modelos de texto, como el corpus textual masivo CATalog, formado por 17,45 mil millones de palabras (alrededor de 23.000 millones de tokens), distribuidos en 34,8 millones de documentos procedentes de una gran variedad de fuentes, que han sido revisados en buena parte manualmente.
Para entrenar los modelos de voz se han utilizado diferentes corpus de voz con transcripción, como, por ejemplo, un conjunto de datos de las Cortes Valencianas con más de 270 horas de grabación de sus sesiones. Igualmente, es posible conocer los corpus utilizados para el entrenamiento de los modelos de traducción automática.
A través del ALIA Kit también está disponible una API gratuita (desde Python, Javascript o Curl), con la que se pueden realizar pruebas.
¿Para qué se pueden usar estos modelos?
Los modelos desarrollados por ALIA están diseñados para ser adaptables a una amplia gama de tareas de procesamiento del lenguaje natural. Sin embargo, cuando se trata de necesidades específicas es preferible utilizar modelos especializados, que permiten obtener mayor precisión y consumen menos recursos.
Como hemos visto, los modelos están disponibles para todos los usuarios interesados, como desarrolladores independientes, investigadores, empresas, universidades o instituciones. Entre los principales beneficiarios de estas herramientas se encuentran los desarrolladores y las pequeñas y medianas empresas, para quienes no es viable desarrollar modelos propios desde cero, tanto por cuestiones económicas como técnicas. Gracias a ALIA pueden adaptar los modelos ya existentes a sus necesidades específicas.
Los desarrolladores encontrarán recursos para crear aplicaciones que reflejen la riqueza lingüística del castellano y de las lenguas cooficiales. Por su parte, las empresas podrán desarrollar nuevas aplicaciones, productos o servicios orientados al amplio mercado internacional que ofrece la lengua castellana, abriendo nuevas oportunidades de negocio y expansión.
Un proyecto innovador financiado con fondos públicos
El proyecto ALIA está financiado íntegramente con fondos públicos con el objetivo de impulsar la innovación y la adopción de tecnologías que generen valor tanto en el sector público como en el privado. Contar con una infraestructura de IA pública democratiza el acceso a tecnologías avanzadas, permitiendo que pequeñas empresas, instituciones y gobiernos aprovechen todo su potencial para innovar y mejorar sus servicios. Además, facilita el control ético del desarrollo de la IA y fomenta la innovación.
ALIA forma parte de la Estrategia de Inteligencia Artificial 2024 de España, que tiene entre sus objetivos dotar al país de las capacidades necesarias para hacer frente a una demanda creciente de productos y servicios IA e impulsar la adopción de esta tecnología, especialmente en el sector público y pymes. Dentro del eje 1 de dicha estrategia, se encuentra la llamada Palanca 3, que se centra en la generación de modelos y corpus para una infraestructura pública de modelos de lenguaje. Con la publicación de esta familia de modelos, se avanza en el desarrollo de recursos de inteligencia artificial en España.
Es posible que nuestra capacidad de sorpresa ante las nuevas herramientas de inteligencia artificial (IA) generativa esté empezando a mermar. El mejor ejemplo es GPT-o1, un nuevo modelo de lenguaje con la máxima habilidad de razonamiento lograda hasta ahora, capaz de verbalizar -algo similar a- sus propios procesos lógicos, pero que no despertó en su lanzamiento tanto entusiasmo como cabría esperar. A diferencia de los dos años anteriores, en los últimos meses hemos tenido menos sensación de disrupción y reaccionamos de manera menos masiva ante las novedades.
Una reflexión posible es que no necesitamos, por ahora, más inteligencia en los modelos, sino ver con nuestros propios ojos un aterrizaje en usos concretos que nos faciliten la vida: ¿cómo utilizo la potencia de un modelo de lenguaje para consumir contenido más rápido, para aprender algo nuevo o para trasladar información de un formato a otro? Más allá de las grandes aplicaciones de propósito general, como ChatGPT o Copilot, existen herramientas gratuitas y menos conocidas que nos ayudan a pensar mejor, y nos ofrecen capacidades basadas en IA para descubrir, entender y compartir conocimiento.
Generar pódcasts a partir de un fichero: NotebookLM
Los pódcasts automáticos de NotebookLM llegaron por primera vez a España en el verano de 2024 y sí levantaron un revuelo significativo, a pesar de no estar ni siquiera disponibles en español. Siguiendo el estilo de Google, el sistema es sencillo: basta con subir un fichero en PDF como fuente para obtener diferentes variaciones del contenido proporcionadas por Gemini 2.0 (el sistema de IA de Google), como un resumen del documento, una guía de estudio, una cronología o un listado de preguntas frecuentes. En este caso, hemos utilizado para el ejemplo un informe sobre inteligencia artificial y democracia publicado por la UNESCO en 2024.

Figura 1. Diferentes opciones de resumen en NotebookLM.
Si bien la guía de estudio es una salida interesante, que ofrece un sistema de preguntas y respuestas para memorizar y un glosario de términos, la estrella de NotebookLM es el llamado “resumen de audio”: un pódcast conversacional completamente natural entre dos interlocutores sintéticos que comentan de manera amena el contenido del PDF.

Figura 2. Resumen de audio en NotebookLM.
La calidad del contenido de este pódcast aún tiene margen de mejora, pero puede servirnos como un primer acercamiento al contenido del documento, o ayudarnos a interiorizarlo más fácilmente desde el audio mientras descansamos de las pantallas, hacemos ejercicio o nos desplazamos.
El truco: aparentemente, no se puede generar el pódcast en español, solo en inglés, pero puedes probar con este prompt: “Realiza un resumen de audio en español del documento”. Casi siempre funciona.
Crear visualizaciones a partir de un texto: Napkin AI
Napkin nos ofrece algo muy valioso: crear visualizaciones, infografías y mapas mentales a partir de un contenido en texto. En su versión gratuita, el sistema solo nos pide iniciar sesión con un correo electrónico. Una vez dentro, nos pregunta cómo queremos introducir el texto a partir del cual vamos a crear las visualizaciones. Podemos pegarlo o directamente generar con IA un texto automático sobre cualquier tema.

Figura 3. Puntos de partida en Napkin.ai.
En este caso, vamos a copiar y pegar un fragmento del informe de la UNESCO que recoge varias recomendaciones para la gobernanza democrática de la IA. A partir del texto que recibe, Napkin.ai nos ofrece ilustraciones y varios tipos de esquemas. Podemos encontrar desde propuestas más sencillas con texto organizado en llaves y cuadrantes hasta otras ilustradas con dibujos e iconos.

Figura 4. Propuesta de esquemas en Napkin.ai.
Aunque están muy lejos de la calidad de la infografía profesional, estas visualizaciones pueden servirnos a nivel personal y de aprendizaje, para ilustrar un post en redes, explicar conceptos internamente a nuestro equipo o enriquecer contenidos propios en el ámbito educativo.
El truco: si en cada propuesta de esquema haces clic en Styles, encontrarás más variaciones del esquema con colores y líneas diferentes. También puedes modificar los textos, simplemente haciendo clic en ellos una vez que seleccionas una visualización.
Presentaciones y diapositivas automáticas: Gamma
De todos los formatos de contenido que la IA es capaz de generar, las presentaciones con diapositivas es seguramente el menos logrado. En ocasiones los diseños no son demasiado elaborados, otras veces no conseguimos que la plantilla que queremos usar se respete, casi siempre los textos son demasiado simples. La particularidad de Gamma, y lo que la hace más práctica que otras opciones como Beautiful.ai, es que podemos crear una presentación directamente desde un contenido en texto que podemos pegar, generar con IA o subir en un archivo.

Figura 5. Puntos de partida para Gamma.
Si pegamos el mismo texto que en el ejemplo anterior, sobre las recomendaciones de la UNESCO para la gobernanza democrática de la IA, en el siguiente paso Gamma nos da a elegir entre “forma libre” o “tarjeta por tarjeta”. En la primera opción, la IA del sistema se encarga de organizar el contenido en diapositivas conservando el sentido completo de cada una. En la segunda, nos propone que dividamos el texto para indicar el contenido que queremos en cada diapositiva.

Figura 6. Texto dividido automáticamente en diapositivas por Gamma.
Seleccionamos la segunda opción, y el texto se divide automáticamente en diferentes bloques que serán nuestras diapositivas futuras. Pulsando en “Continuar”, nos pide que seleccionemos un tema de base. Por último, pulsando en “Generar”, se crea automáticamente la presentación completa.

Figura 7. Ejemplo de diapositiva creada con Gamma.
Gamma acompaña las diapositivas de imágenes creadas con IA que guardan cierta coherencia con el contenido, y nos da la opción de modificar los textos o de generar imágenes diferentes. Una vez lista, podemos exportarla directamente al formato Power Point.
Un truco: en el botón “editar con IA” de cada diapositiva podemos pedirle que la traduzca automáticamente a otro idioma, que corrija la ortografía o incluso que convierta el texto en una línea del tiempo.
Resumir desde cualquier formato: NoteGPT
El objetivo de NoteGPT es muy claro: resumir un contenido que podemos importar desde muchas fuentes diferentes. Podemos copiar y pegar un texto, subir un fichero o una imagen, o directamente extraer la información de un enlace, algo muy útil y no tan habitual en las herramientas de IA. Aunque esta última opción no siempre funciona bien, es una de las pocas herramientas que la ofrece.

Figura 8. Puntos de partida para NoteGPT.
En este caso, introducimos el enlace a un vídeo de YouTube que contiene una entrevista a Daniel Innerarity sobre la intersección entre la inteligencia artificial y los procesos democráticos. En la pantalla de resultados, lo primero que obtenemos a la izquierda es la transcripción completa de la entrevista, con buena calidad. Podemos localizar la transcripción de un fragmento concreto del vídeo, traducirla a distintos idiomas, copiarla o descargarla, incluso en un fichero SRT de subtítulos mapeados con los tiempos.

Figura 9. Ejemplo de transcripción con minutaje en NoteGPT.
Entre tanto, a la derecha encontramos el resumen del vídeo con los puntos más importantes, ordenados e ilustrados con emojis. También en el botón “AI Chat” podemos interactuar con un asistente conversacional y hacerle preguntas sobre el contenido.

Figura 10. Resumen de NoteGPT a partir de una entrevista en YouTube.
Y aunque esto ya es muy útil, lo mejor que podemos encontrar en NoteGPT son las flashcards, tarjetas de aprendizaje con preguntas y respuestas para interiorizar los conceptos del vídeo.


Figura 11. Tarjetas de aprendizaje de NoteGPT (pregunta y respuesta).
Un truco: si el resumen solo aparece en inglés, prueba a cambiar el idioma en los tres puntos de la derecha, junto a “Summarize” y haz clic de nuevo en “Summarize”. El resumen aparecerá en español más abajo. En el caso de las flashcards, para generarlas en español no lo intentes desde la página de inicio, hazlo desde “AI flashcards”. En “Create” podrás seleccionar el idioma.

Figura 12. Creación de flashcards en NoteGPT.
Crea vídeos sobre cualquier cosa: Lumen5
Lumen5 facilita la creación de vídeos con IA permitiendo crear el guion y las imágenes automáticamente a partir de contenido en texto o en voz. Lo más interesante de Lumen5 es el punto de partida, que puede ser un texto, un documento, simplemente una idea o también una grabación en audio o un vídeo ya existente.

Figura 13. Opciones de Lumen5.
El sistema nos permite, antes de crear el vídeo y también una vez creado, cambiar el formato de 16:9 (horizontal) a 1:1 (cuadrado) o a 9:16 (vertical), incluso con una opción en 9:16 especial para stories de Instagram.

Figura 14. Previsualización del vídeo y opciones de relación de aspecto.
En este caso, vamos a partir del mismo texto que en herramientas anteriores: las recomendaciones de la UNESCO para una gobernanza democrática de la IA. Seleccionando la opción de partida “Text on media”, lo pegamos directamente en el cajetín y hacemos clic en “Compose script”. El resultado es un guion muy sencillo y esquemático, dividido en bloques con los puntos básicos del texto, y una indicación muy interesante: una predicción sobre la duración del vídeo con ese guion, aproximadamente 1 minuto y 19 segundos.
Una nota importante: el guion no es una locución sonora, sino el texto que aparecerá escrito en las diferentes pantallas. Una vez terminado el vídeo, puedes traducirlo entero a cualquier otro idioma.

Figura 15. Propuesta de guion en Lumen5.
Si hacemos clic en “Continue” llegaremos a la última oportunidad para modificar el guion, donde podremos añadir bloques de texto nuevos o eliminar los existentes. Una vez listo, hacemos clic en “Convert to video” y encontraremos el story board listo para modificar imágenes, colores o el orden de las pantallas. El vídeo tendrá música de fondo, que también puedes cambiar, y en este punto podrás grabar tu voz por encima de la música para locutar el guion. Sin demasiado esfuerzo, este es el resultado final:
Figura 16. Resultado final de un vídeo creado con Lumen5.
Del amplio abanico de productos digitales basados en IA que ha florecido en los últimos años, quizá miles de ellos, hemos recorrido solo cinco ejemplos que nos demuestran que el conocimiento y el aprendizaje individual y colaborativo son más accesibles que nunca. La facilidad para convertir contenido de un formato a otro y la creación automática de guías y materiales de estudio debería promover una sociedad más informada y ágil, no solo a través del texto o la imagen sino también de la información condensada en ficheros o bases de datos.
Supondría un gran impulso para el progreso colectivo que entendiéramos que el valor de los sistemas basados en IA no es tan simple como escribir o crear contenido por nosotros, sino apoyar nuestros procesos de razonamiento, objetivar nuestra toma de decisiones y permitirnos manejar mucha más información de una manera eficiente y útil. Aprovechar las nuevas capacidades IA junto con iniciativas de datos abiertos puede ser clave en el siguiente paso de la evolución del pensamiento humano.
Contenido elaborado por Carmen Torrijos, experta en IA aplicada al lenguaje y la comunicación. Los contenidos y los puntos de vista reflejados en esta publicación son responsabilidad exclusiva de su autor.
El diseño de API web es una disciplina fundamental para el desarrollo de aplicaciones y servicios, al facilitar el intercambio fluido de datos entre diferentes sistemas. En el contexto de las plataformas de datos abiertos, las API cobran especial importancia, ya que permiten a los usuarios acceder de manera automática y eficiente a la información necesaria, ahorrando costes y recursos.
Este artículo explora los principios esenciales que deben guiar la creación de API web eficaces, seguras y sostenibles, en base a los principios recopilados por el Grupo de Arquitectura Técnica ligado a World Wide Web Consortium (W3C), siguiendo estándares éticos y técnicos. Aunque estos principios hacen referencia al diseño de API, muchos son aplicables al desarrollo web en general.
Se busca que los desarrolladores puedan garantizar que sus API no solo cumplan con los requisitos técnicos, sino que también respeten la privacidad y seguridad de los usuarios, promoviendo una web más segura y eficiente para todos.
En este post, analizaremos algunos consejos para los desarrolladores de las API y cómo se pueden poner en práctica.
Prioriza las necesidades del usuario
Al diseñar una API, es crucial seguir la jerarquía de necesidades establecida por el W3C:
- Primero, las necesidades del usuario final.
- Segundo, las necesidades de los desarrolladores web.
- Tercero, las necesidades de los implementadores de navegadores.
- Por último, la pureza teórica.
Así podremos impulsar una experiencia de usuario que sea intuitiva, funcional y atractiva. Esta jerarquía debe guiar las decisiones de diseño, aunque reconociendo que en ocasiones estos niveles se interrelacionan: por ejemplo, una API más fácil de usar para los desarrolladores suele resultar en mejor experiencia para el usuario final.
Garantiza la seguridad
Garantizar la seguridad al desarrollar una API es crucial para proteger, tanto los datos de los usuarios, como la integridad del sistema. Una API insegura puede ser un punto de entrada para atacantes que buscan acceder a información sensible o comprometer la funcionalidad del sistema. Por ello, al añadir nuevas funcionalidades, debemos cumplir las expectativas del usuario y garantizar su seguridad.
En este sentido, es esencial considerar factores relacionados con la autenticación de usuarios, encriptación de datos, validación de entradas, gestión de tasas de solicitud (o Rate Limiting, para limitar la cantidad de solicitudes que un usuario puede hacer en un periodo determinado y evitar ataques de denegación de servicio), etc. También es necesario monitorear continuamente las actividades de la API y mantener registros detallados para detectar y responder rápidamente a cualquier actividad sospechosa.
Desarrolla una interfaz de usuario que transmita confianza
Es necesario considerar cómo las nuevas funcionalidades impactan en las interfaces de usuario. Las interfaces deben ser diseñadas para que los usuarios puedan confiar y verificar que la información proporcionada es genuina y no ha sido falsificada. Aspectos como la barra de direcciones, los indicadores de seguridad y las solicitudes de permisos deben dejar claro con quién se están interactuando y cómo.
Por ejemplo, la función alert de JavaScript, que permite mostrar un cuadro de diálogo modal que parece parte del navegador, es un caso histórico que ilustra esta necesidad. Esta función, creada en los primeros días de la web, ha sido frecuentemente utilizada para engañar a usuarios haciéndoles creer que están interactuando con el navegador, cuando en realidad lo hacen con la página web. Si esta funcionalidad se propusiera hoy, probablemente no sería aceptada por estos riesgos de seguridad.
Pide consentimiento explicito a los usuarios
En el contexto de satisfacer una necesidad de usuario, una página web puede utilizar una función que suponga una amenaza. Por ejemplo, el acceso a la geolocalización del usuario puede ser de ayuda en algunos contextos (como una aplicación de mapas), pero también afecta a la privacidad.
En estos casos es necesario que el usuario consienta su uso. Para ello:
- El usuario debe entender a qué está accediendo. Si no puedes explicar a un usuario tipo a qué está consintiendo de forma inteligible, deberás reconsiderar el diseño de la función.
- El usuario debe poder elegir entre otorgar o rechazar ese permiso de manera efectiva. Si se rechaza una solicitud de permiso, la página web no podrá hacer nada que el usuario crea que ha descartado.
Al pedir consentimiento, podemos informar al usuario de qué capacidades tiene o no tiene la página web, reforzando su confianza en la seguridad del sitio. Sin embargo, el beneficio de una nueva función debe justificar la carga adicional que supone para el usuario decidir si otorga o no permiso para una función.
Usa mecanismos de identificación adecuados al contexto
Es necesario ser transparente y permitir a las personas controlar sus identificadores y la información adjunta a ellos que proporcionan en diferentes contextos en la web.
Las funcionalidades que utilizan o dependen de identificadores vinculados a datos sobre una persona conllevan riesgos de privacidad que pueden ir más allá de una sola API o sistema. Esto incluye datos generados pasivamente (como su comportamiento en la web) y aquellos recopilados activamente (por ejemplo, a través de un formulario). En este sentido, es necesario entender el contexto en el que se usarán y cómo se integrarán con otras funcionalidades de la web, asegurando de que el usuario pueda dar un consentimiento adecuado.
Es recomendable diseñar API que recopilen la mínima cantidad de datos necesarios y usar identificadores temporales de corta duración, a menos que sea absolutamente necesario un identificador persistente.
Crea funcionalidades compatibles con toda la gama de dispositivos y plataformas
En la medida de lo posible, asegura que las funcionalidades de la web estén operativas en diferentes dispositivos de entrada y salida, tamaños de pantalla, modos de interacción, plataformas y medios, favoreciendo la flexibilidad del usuario.
Por ejemplo, los modelos de diseño 'display: block', 'display: flex' y 'display: grid' en CSS, por defecto, colocan el contenido dentro del espacio disponible y sin solapamientos. De este modo funcionan en diferentes tamaños de pantalla y permiten a los usuarios elegir su propia fuente y tamaño sin causar desbordamiento de texto.
Agrega nuevas capacidades con cuidado
Añadir nuevas capacidades a la web requiere tener en consideración las funcionalidades y el contenido ya existentes, para valorar cómo va a ser su integración. No hay que asumir que un cambio es posible o imposible sin verificarlo primero.
Existen muchos puntos de extensión que permiten agregar funcionalidades, pero hay cambios que no se pueden realizar simplemente añadiendo o eliminando elementos, porque podrían generar errores o afectar a la experiencia de usuario. Por ello es necesario verificar antes la situación actual, como veremos en el siguiente apartado.
Antes de eliminar o cambiar funcionalidades, comprende su uso actual
Es posible eliminar o cambiar funciones y capacidades, pero primero hay que conocer bien la naturaleza y el alcance de su impacto en el contenido existente. Para ello puede ser necesario investigar cómo se utilizan las funciones actuales.
La obligación de comprender el uso existente se aplica a cualquier función de la que dependan los contenidos. Las funciones web no se definen únicamente en las especificaciones, sino también en la forma en que los usuarios las utilizan.
La práctica recomendada es priorizar la compatibilidad de las nuevas funciones con el contenido existente y el comportamiento del usuario. En ocasiones, una cantidad significativa de contenido puede depender de un comportamiento concreto. En estas situaciones, se desaconseja eliminar o cambiar dicho comportamiento.
Deja la web mejor de lo que la encontraste
La forma de añadir nuevas capacidades a una plataforma web es mejorando la plataforma en su conjunto, por ejemplo, sus características de seguridad, privacidad o accesibilidad.
La existencia de un defecto en una parte concreta de la plataforma no debe servir de excusa para añadir o ampliar funcionalidades adicionales con el fin de solucionarlo, ya que con ello se pueden duplicar problemas y disminuir la calidad general de la plataforma. Siempre que sea posible, hay que crear nuevas capacidades web que mejoren la calidad general de la plataforma, mitigando los defectos existentes de forma global.
Minimiza los datos del usuario
Hay que diseñar las funcionalidades para que sean operativas con la mínima cantidad necesaria de datos aportados por el usuario para llevar a cabo sus objetivos . Con ello, limitamos los riesgos de que se divulguen o utilicen indebidamente.
Se recomienda diseñar las API de forma que a los sitios web les resulte más fácil solicitar, recopilar y/o transmitir una pequeña cantidad de datos (datos más granulares o específicos), que trabajar con datos más genéricos o masivos. Las API deben proporcionar granularidad y controles de usuario, en particular si trabajan sobre datos personales.
Otras recomendaciones
El documento también ofrece consejos para el diseño de API utilizando diversos lenguajes de programación. En este sentido, proporciona recomendaciones ligadas a HTML, CSS, JavaScript, etc. Puedes leer las recomendaciones aquí.
Además, si estás pensando en integrar una API en tu plataforma de datos abiertos, te recomendamos la lectura de la Guía práctica para la publicación de Datos Abiertos usando APIs.
Siguiendo estas indicaciones podrás desarrollar sitios web consistentes y útiles para los usuarios, que les permitan alcanzar sus objetivos de manera ágil y optimizando recursos.
En la última década, la cantidad de datos que las organizaciones generan y necesitan gestionar ha crecido de manera exponencial. Con el auge del cloud, Internet de las Cosas (IoT, por sus siglas en inglés), edge computing y la inteligencia artificial (IA), las empresas se enfrentan al reto de integrar y gobernar datos que provienen de múltiples fuentes y entornos. En este contexto, han surgido dos enfoques clave para la gestión de datos que buscan solucionar los problemas asociados a la centralización de datos: Data Mesh y Data Fabric. Aunque estos conceptos se complementan, cada uno ofrece una aproximación distinta para resolver los desafíos de datos de las organizaciones modernas.
¿Por qué un data lake no es suficiente?
Muchas empresas han implementado data lakes o data warehouses centralizados con equipos dedicados como estrategia para impulsar el análisis de datos de compañía. Sin embargo, este enfoque suele generar problemas a medida que la empresa escala, como por ejemplo:
- Los equipos de datos centralizados se convierten en un cuello de botella. Estos equipos no pueden responder con la rapidez necesaria ante la variedad y volumen de preguntas que surgen desde diferentes áreas del negocio.
- La centralización crea una dependencia que limita la autonomía de los equipos de dominio, quienes conocen mejor sus necesidades de datos.
Aquí es donde entra en escena el enfoque Data Mesh.
Data Mesh: un enfoque descentralizado y orientado a dominios
Data Mesh rompe con la centralización de los datos y los distribuye en dominios específicos, permitiendo que cada equipo de negocio (o equipo de dominio) gestione y controle los datos que más conoce y utiliza. Este enfoque se basa en cuatro principios básicos:
- Propiedad de dominio: en lugar de que un equipo central de datos tenga todo el control, cada equipo es responsable de los datos que genera. Es decir, si eres el equipo de ventas, tú gestionas los datos de ventas; si eres el de marketing, gestionas los datos de marketing. Nadie conoce mejor esos datos que el propio equipo que los usa día a día.
- Datos como producto: esta idea nos recuerda que los datos no son solo para el uso del dominio que los genera, sino que pueden ser útiles para toda la empresa. Así que cada equipo debe pensar en sus datos como un “producto” que otros equipos también puedan usar. Esto implica que los datos deben ser accesibles, confiables y fáciles de encontrar, casi como si fueran una API pública.
- Plataforma autoservicio: la descentralización no significa que cada equipo tenga que reinventar la rueda. Para evitar que cada equipo de dominio se especialice en herramientas complejas de datos, el Data Mesh se apoya en una infraestructura de autoservicio que facilita la creación, despliegue y mantenimiento de productos de datos. Esta plataforma debe permitir a los equipos de dominio consumir y generar datos sin depender de una alta especialización técnica.
- Gobernanza federada: aunque los datos están distribuidos, sigue habiendo reglas comunes para todos. En un Data Mesh, la gobernanza es “federada”, es decir, cada equipo sigue unos estándares de interoperabilidad definidos globalmente. Esto asegura que todos los datos sean seguros, de alta calidad y cumplan con las normativas.
Estos principios hacen que el Data Mesh sea una arquitectura ideal para organizaciones que buscan mayor agilidad y que los equipos tengan autonomía sin perder de vista la calidad y el cumplimiento. A pesar de la descentralización, Data Mesh no crea silos de datos porque fomenta la colaboración y el intercambio estandarizado de datos entre equipos, asegurando acceso y gobernanza comunes en toda la organización.
Data Fabric: arquitectura para el acceso seguro y eficiente a datos distribuidos
Mientras que el Data Mesh se enfoca en la organización y propiedad de los datos en torno a dominios, el Data Fabric es una arquitectura que permite conectar y exponer los datos de una organización, independientemente de su ubicación. A diferencia de enfoques basados en la centralización de datos, como el data lake, el Data Fabric actúa como una capa unificada, ofreciendo acceso fluido a los datos distribuidos en múltiples sistemas sin necesidad de trasladarlos físicamente a un único repositorio.
En términos generales, el Data Fabric se basa en tres aspectos fundamentales:
- Acceso a los datos: en una empresa moderna, los datos se encuentran dispersos en diversas ubicaciones, tales como data lakes, data warehouses, bases de datos relacionales y numerosas aplicaciones SaaS (Software como servicio). En lugar de consolidar todos estos datos en un solo lugar, el Data Fabric emplea una capa de virtualización que permite acceder a ellos directamente desde sus fuentes de origen. Este enfoque minimiza la duplicación de datos y permite el acceso en tiempo real, facilitando así la toma de decisiones ágil. En los casos en que una aplicación requiera latencias bajas, el Data Fabric también dispone de herramientas de integración robusta, como ETL (extracción, transformación y carga), para mover y transformar los datos cuando sea necesario.
- Gestión del ciclo de vida de los datos: el Data Fabric no solo facilita el acceso, sino que también garantiza una gestión adecuada a lo largo de todo el ciclo de vida de los datos. Esto incluye aspectos críticos como la gobernanza, la privacidad y el cumplimiento de normativas. La arquitectura del Data Fabric se apoya en metadatos activos que automatizan la aplicación de políticas de seguridad y acceso, asegurando que solo los usuarios con los permisos adecuados accedan a la información correspondiente. Asimismo, ofrece funcionalidades avanzadas de trazabilidad (linaje), que permiten rastrear el origen de los datos, conocer sus transformaciones y evaluar su calidad, lo cual resulta esencial en entornos regulados bajo normativas como el Reglamento General de Protección de Datos (GDPR en sus siglas en inglés).
- Exposición de los datos: tras conectar los datos y aplicar las políticas de gobernanza y seguridad, el siguiente paso del Data Fabric es poner esos datos a disposición de los usuarios finales. A través de catálogos empresariales, los datos se organizan y presentan de forma accesible para analistas, científicos de datos y desarrolladores, quienes pueden localizarlos y utilizarlos de manera eficiente.
En resumen, el Data Fabric no reemplaza a los data lakes o data warehouses, sino que facilita la integración y gestión de los datos ya existentes en la organización. Su objetivo es crear un entorno seguro y flexible que permita el flujo controlado de datos y una visión unificada, sin la necesidad de trasladarlos físicamente, impulsando así una toma de decisiones más ágil y bien fundamentada.
Data Mesh vs. Data Fabric: ¿Competidores o aliados?
Si bien el Data Mesh y el Data Fabric tienen algunos objetivos en común, cada uno resuelve problemas diferentes y, de hecho, pueden encontrarse beneficios al aplicar mecanismos de ambos enfoques de forma complementaria. La siguiente tabla muestra una comparativa de ambos enfoques:
| ASPECTO | DATA MESH | DATA FABRIC |
|---|---|---|
| Enfoque | Organizacional y estructural, orientado a dominios. | Técnico, centrado en la integración de datos. |
| Propósito | Descentralizar la propiedad y la responsabilidad de los datos a los equipos de dominio. | Crear una capa unificada de acceso a datos distribuida en múltiples entornos. |
| Gestión de datos | Cada dominio gestiona sus propios datos y define los estándares de calidad. | Los datos se integran mediante servicios y APIs, lo que permite una visión unificada sin mover físicamente los datos. |
| Gobernanza | Federada, con reglas establecidas por cada dominio, manteniendo estándares comunes. | Centralizada a nivel de plataforma, con automatización de políticas de acceso y seguridad mediante metadatos activos. |
Figura 1. Tabla comparativa de Data Mesh VS. Data Fabric. Fuente: Elaboración propia.
Conclusión
Tanto el Data Mesh como el Data Fabric están diseñados para resolver los desafíos de la gestión de datos en empresas modernas. El Data Mesh aporta un enfoque organizacional que empodera a los equipos de dominio, mientras que el Data Fabric permite una integración flexible y accesible de datos distribuidos sin necesidad de moverlos físicamente. La elección entre ambos, o la combinación de los dos, dependerá de las necesidades específicas de cada organización, aunque es importante considerar la inversión en infraestructura, formación y posibles cambios organizativos que estos enfoques requieren. Para empresas pequeñas o medianas, un data warehouse tradicional puede ser una alternativa práctica y rentable, especialmente si sus volúmenes de datos y la complejidad organizativa son manejables. De cualquier modo, dado el crecimiento de los ecosistemas de datos en las organizaciones, ambos modelos representan un avance hacia un entorno de datos más ágil, seguro y útil, facilitando una gestión de datos mejor alineada con los objetivos estratégicos en un entorno.
Definiciones
- Data Lake: Es un repositorio de almacenamiento que permite guardar grandes volúmenes de datos en su formato original, ya sean estructurados, semiestructurados o no estructurados. Su estructura flexible permite almacenar datos sin procesar y usarlos para análisis avanzados y machine learning.
- Data Warehouse: Es un sistema de almacenamiento de datos estructurados que organiza, procesa y optimiza los datos para realizar análisis y generar reportes. Está diseñado para consultas rápidas y análisis de datos históricos, siguiendo un esquema predefinido para facilitar el acceso a la información.
Referencias
- Dehghani, Zhamak. Data Mesh Principles and Logical Architecture. https://martinfowler.com/articles/data-mesh-principles.html
- Dehghani, Zhamak. Data Mesh: Delivering Data-Driven Value at Scale. O''Reilly Media. Libro que detalla la implementación y los principios fundamentales del Data Mesh en organizaciones.
- Data Mesh Architecture. Sitio web sobre Data Mesh y arquitecturas de datos. https://www.datamesh-architecture.com/
- IBM. Data Fabric. IBM Topics. https://www.ibm.com/topics/data-fabric
- IBM Technology. Data Fabric: Unifying Data Across Hybrid and Multicloud Environments. YouTube. https://www.youtube.com/watch?v=0Zzn4eVbqfk&t=4s&ab_channel=IBMTechnology
Contenido elaborado por Juan Benavente, ingeniero superior industrial y experto en Tecnologías ligadas a la economía del dato. Los contenidos y los puntos de vista reflejados en esta publicación son responsabilidad exclusiva de su autor.