ConocimIA se complace en anunciar su próxima sesión dedicada a la Inteligencia Artificial. Debido a la entusiasta respuesta y la creciente demanda por parte de los asistentes, el profesor Manuel Blázquez ha preparado una conferencia especial que abordará el funcionamiento de ChatGPT de manera accesible para todos los públicos. El objetivo es ofrecer una comprensión detallada que permita a cada individuo aproximarse al conocimiento de esta tecnología avanzada y comprender sus alcances y aplicaciones.

  1. Fecha: 15 de diciembre de 2023 / 10:30-13:00h
  2. Lugar: Sala de Conferencias, Facultad de Ciencias de la Documentación. UCM
  3. Entrada: Libre hasta completar aforo

Primera parte: Entendiendo el funcionamiento de ChatGPT

Prof. Manuel Blázquez Ochando

¿Qué es GPT?

La sesión comienza con una explicación del acrónimo que da nombre al modelo: Generative Pre-trained Transformer. Se trata de un sistema generativo, es decir, capaz de producir textos originales en respuesta a las consultas de los usuarios. Su naturaleza es probabilística: calcula la probabilidad de cada palabra en su respuesta y selecciona la más probable según el contexto construido hasta ese momento. En esencia, ChatGPT es un predictor de palabras en forma de chat.

Diferencias con la Recuperación de Información tradicional

Tanto en Recuperación de Información (RI) como en ChatGPT se necesita un input del usuario. Sin embargo, mientras que en RI el interfaz suele ser un buscador que devuelve una lista de documentos relevantes, en ChatGPT el interfaz es conversacional y el resultado es un texto generado que pretende resolver directamente la necesidad de información. En RI no se crean nuevos documentos; en ChatGPT sí, generando textos que pueden considerarse nuevos documentos según su extensión y contexto.

Una pregunta frecuente entre los usuarios es si ChatGPT se limita a copiar textos de internet. La respuesta es negativa. Cuando el sistema genera una respuesta, no está reproduciendo literalmente ningún documento existente, sino construyendo una nueva secuencia de palabras basada en patrones aprendidos durante el entrenamiento. Esto explica por qué es posible realizar búsquedas en internet de fragmentos generados por ChatGPT y no encontrar coincidencias exactas.

El papel del lenguaje natural

El lenguaje natural es ambiguo, polisémico y complejo. Procesarlo requiere técnicas avanzadas que permitan a la máquina interpretar intenciones, extraer entidades relevantes y generar respuestas coherentes. ChatGPT se basa en redes neuronales profundas, programas diseñados para realizar tareas altamente complejas que requieren clasificación y aprendizaje. A diferencia de los programas tradicionales —con reglas predefinidas, sintaxis estricta y procesos de trabajo bien determinados—, las redes neuronales aprenden los patrones y características del lenguaje natural a partir de ejemplos.

Vectorización y embeddings

Uno de los conceptos fundamentales para comprender ChatGPT es la vectorización. En Recuperación de Información, los documentos se representan como vectores en un espacio n-dimensional, lo que permite calcular coeficientes de similitud entre documentos y consultas. ChatGPT lleva esta idea un paso más allá: cada palabra, expresión o fragmento de texto se convierte en un vector —un embedding— de entre 300 y 4096 dimensiones. Estos vectores capturan no solo la presencia de términos, sino también sus relaciones semánticas: palabras con significados similares tienden a ocupar posiciones cercanas en el espacio vectorial.

El proceso de generación de respuestas sigue una secuencia:

  1. Análisis de la consulta del usuario
  2. Vectorización de la consulta
  3. Búsqueda en la lista de embeddings de la base de conocimiento de ChatGPT
  4. Aplicación de un modelo probabilístico para determinar qué palabras tienen mayor probabilidad de satisfacer el contexto

El mecanismo de atención (Attention is All You Need)

La arquitectura Transformer, introducida en el artículo seminal "Attention is All You Need" (Vaswani et al., 2017), constituye la base técnica de ChatGPT. El mecanismo de atención permite al modelo ponderar la importancia de cada palabra en relación con las demás, capturando dependencias a larga distancia que las redes recurrentes tradicionales no podían manejar eficientemente. Esta capacidad, combinada con el entrenamiento masivo, explica la fluidez y coherencia de las respuestas generadas.

Generación de texto paso a paso

La generación de texto en ChatGPT es un proceso secuencial. El modelo selecciona un token inicial, luego busca los tokens más probables para continuar, y así sucesivamente. En cada paso, aplica reglas de sintaxis y gramática para asegurar que la salida sea lingüísticamente correcta. El muestreo (sampling) introduce un grado de variabilidad que hace que las respuestas no sean idénticas cada vez, incluso ante la misma consulta.

Este proceso de construcción secuencial explica por qué es difícil distinguir si un texto ha sido escrito por una IA o por un humano: la pérdida de información y la reconstrucción a partir de los embeddings originales generan textos que, aunque derivados de patrones aprendidos, presentan una apariencia de originalidad.

Datos y escala

ChatGPT fue entrenado con 570 GB de datos procedentes de fuentes como Common Crawl y OpenWebText2, procesando 175 mil millones de parámetros. Esta escala, combinada con la arquitectura Transformer, es la responsable de su capacidad para mantener conversaciones coherentes, responder preguntas complejas y realizar tareas diversas sin necesidad de programación específica por tarea.

Segunda parte: Data-mining de Bibliotecas Públicas con ChatGPT

Prof. Pedro Lázaro Rodríguez

Contexto y necesidad

La segunda parte de la sesión presenta un caso práctico de aplicación de ChatGPT en el ámbito de la investigación bibliotecaria. La investigación sobre bibliotecas públicas requiere acceso a datos fiables y actualizados. En España, fuentes como la web Bibliotecas públicas españolas en cifras (BPEC) y la Estadística de Bibliotecas de CulturaBASE ofrecen información valiosa, pero con limitaciones significativas:

  1. La consulta de datos está organizada por categorías, no por redes completas
  2. Para obtener datos de todos los municipios de una variable, pueden ser necesarias más de 800 interacciones manuales
  3. Los datos no están disponibles en formatos que faciliten su análisis agregado
  4. La información a nivel de municipio requiere procesos manuales tediosos

De wget a Python con ChatGPT

El ponente relata su experiencia previa con herramientas como wget en Linux para automatizar descargas, y cómo ChatGPT 3.5 le permitió dar el salto a Python. La conversación con el modelo fue iterativa:

  1. Solicitud inicial: ayuda para crear un script que descargara datos
  2. Conversión: de script Bash a Python, con BeautifulSoup para analizar HTML
  3. Resolución de problemas: gestión de errores como externally-managed-environment en Debian
  4. Mejoras sucesivas:
  5. Formateo de códigos con dos dígitos ({:02d})
  6. Extracción de títulos desde el atributo summary de las tablas
  7. División de columnas para separar variable y año
  8. Gestión de formatos numéricos españoles (coma como decimal, punto como millar)
  9. Generación de CSV y ODS con estructura organizada

PyDataBibPub: el script resultante

El script desarrollado, denominado PyDataBibPub, automatiza la descarga de datos de bibliotecas públicas españolas a nivel municipal. Sus capacidades incluyen:

  1. Descarga de datos de los 52 códigos provinciales (formateados como 01, 02…)
  2. Selección de variables específicas, años y ámbitos geográficos
  3. Unificación en un único CSV por variable con todos los años seleccionados
  4. Adición de columnas con provincias y comunidades autónomas
  5. Generación de un CSV consolidado con todas las variables
  6. Creación de una hoja de cálculo ODS con pestañas organizadas
  7. Limpieza de filas con datos inconsistentes (ej. informes anuales con cero bibliotecas)
  8. Chequeo de coherencia de columnas entre diferentes descargas

La versión final alcanzó 271 líneas de instrucciones, requiriendo 8 módulos de Python. El script, al igual que la fuente de datos, se adaptó a los cambios en la estructura de la web, evolucionando a una segunda versión (PyDataBibPub V2) cuando la URL original se modificó.

Límites y consideraciones legales

El uso de estas herramientas no está exento de restricciones. El Ministerio de Cultura establece en su aviso legal que la descarga de contenidos se limita al uso privado, prohibiendo expresamente la reproducción, distribución o comunicación pública sin autorización expresa. Este marco legal condiciona la difusión de los datos obtenidos.

Reflexiones sobre el uso de ChatGPT

El ponente comparte varias reflexiones derivadas de su experiencia:

  1. La versión 3.5 de ChatGPT, con una actitud exploratoria, fue suficiente para desarrollar herramientas complejas
  2. El valor didáctico reside tanto en los resultados como en el proceso de interacción con el modelo
  3. ChatGPT comete errores, pero puede subsanarlos si se le proporcionan instrucciones adecuadas y ejemplos
  4. Se observa un cierto aprendizaje durante la conversación: cuando se le indica la solución correcta, tiende a aplicarla en casos similares
  5. Es recomendable mantener el contexto en una misma conversación y abrir nuevo chat cuando la tarea cambie
  6. La herramienta no es buena o mala por sí misma; la ética y la moral son categorías de las personas, y la tecnología adquiere valor según el uso que hagamos de ella

Tercera parte: Data-mining en PARES (Portal de Archivos Españoles)

Prof. Manuel Blázquez Ochando

El desafío de extraer autoridades

PARES (Portal de Archivos Españoles) recoge la identificación, descripción y digitalización de la documentación procedente de los archivos históricos españoles. Para fines de investigación, resulta fundamental poder extraer estos datos de forma sistemática. Los webcrawlers son programas que permiten descargar el contenido de páginas HTML objetivo, pero tradicionalmente han requerido conocimientos avanzados de programación.

Metodología de interacción con ChatGPT

La sesión presenta una metodología práctica para crear webcrawlers con la ayuda de ChatGPT:

  1. Indicar el objetivo: comunicar que se está desarrollando un webcrawler
  2. Especificar el lenguaje de programación (PHP, Python, etc.)
  3. Definir las funciones a utilizar (cURL, DOM, XPath)
  4. Proporcionar el código HTML de la página a analizar
  5. Señalar los contenidos específicos que se desean extraer
  6. Pedir ayuda con amabilidad, manteniendo un tono colaborativo

Resolución de errores y aprendizaje iterativo

Cuando el código presenta errores, se recomienda:

  1. Mostrar el fragmento de código HTML donde falla la extracción
  2. Proporcionar el texto del error o warning que devuelve el servidor
  3. Una vez resuelto, continuar con el desarrollo

Es importante reconocer al modelo cuando su respuesta ha sido correcta, para reforzar su aprendizaje. Si se observa que ChatGPT comienza a perder contexto (cuando la conversación se alarga demasiado), conviene recordarle la tarea principal.

Aplicación práctica: extracción de autoridades

La demostración práctica se centra en la extracción de datos de autoridades de PARES, utilizando ejemplos como James Monroe, Felipe II, Manuel Filiberto de Saboya... El código generado permite obtener de forma automática la información catalográfica de estas autoridades, que posteriormente puede ser procesada para su análisis o integración en otros sistemas.

Conclusiones sobre el uso de ChatGPT para scraping

  1. Se necesitan conocimientos previos de scraping para sacar el máximo partido a la herramienta
  2. ChatGPT facilita enormemente la tarea, permitiendo programar más rápidamente
  3. Ayuda a depurar bugs con agilidad
  4. Es una herramienta muy útil para crear otras herramientas
  5. No se puede esperar que programe todo sin supervisión (al menos por ahora)
  6. La interacción prolongada muestra un cierto aprendizaje si se le enseña con ejemplos
  7. En una misma conversación no conviene cambiar el contexto de trabajo
  8. Cuando la conversación es demasiado larga, conviene recordarle la tarea
  9. Se observa una mejora notable desde el lanzamiento de ChatGPT hasta la fecha actual

Conclusión general

La sesión conjunta ofrece una visión integral del potencial de ChatGPT en el ámbito de las Ciencias de la Documentación. Desde la comprensión de su funcionamiento interno hasta su aplicación práctica en tareas de extracción y análisis de datos, los asistentes adquieren tanto fundamentos conceptuales como herramientas aplicables a su trabajo profesional o académico. La combinación de la explicación teórica con los casos prácticos de data-mining de bibliotecas públicas y extracción de autoridades de PARES demuestra la versatilidad de esta tecnología y su capacidad para multiplicar las capacidades del profesional de la información.

Esta sesión forma parte de las actividades del Seminario ConocimIA, un espacio dedicado al seguimiento y análisis de la inteligencia artificial en el ámbito de las Ciencias de la Documentación.

Materiales de la conferencia

Los materiales empleados en esta sesión están disponibles para su descarga en formato PPTX y PDF. La presentación recoge las ideas, referencias y preguntas abiertas que se han planteado a lo largo de la conferencia, y puede servir como punto de partida para profundizar en los temas tratados o para su uso en contextos formativos, siempre con la debida atribución.

  1. Blázquez-Ochando, M. (2023). Cómo funciona ChatGPT. conocimIA_mblazquez_2023-12-15_como-funciona-chatgpt.pptx
  2. Lázaro-Rodríguez, P. (2023). Data-mining de Bibliotecas Públicas con ChatGPT. conocimIA_plazaro_2023-12-15_data-mining-bpe.pdf
  3. Blázquez-Ochando, M. (2023). Data-mining de PARES con ChatGPT. conocimIA_mblazquez_2023-12-15_data-mining-pares.pptx