ChatGPT
ChatGPT (Chat Generative Pre-Trained Transformer) es una aplicación de chatbot de inteligencia artificial desarrollado en 2022 por OpenAI que se especializa en el diálogo
El chatbot es un modelo de lenguaje ajustado con técnicas de aprendizaje tanto supervisadas como de refuerzo
Está compuesto por los modelos GPT-4 y GPT-3.5 de OpenAI
Transformers y GPT
La arquitectura Transformers (propuesta por Google en 2017, Attention Is All You Need) ha permitido el desarrollo de los modelos LLM (large language model), sistemas capaces de reconocer y generar lenguaje natural basados en Deep Learning
Basados en la arquitectura Transformers, GPT y GPT 2 fueron publicado con licencias de código abierto, a partir de aquí (GPT 3. GPT4…) OpenAI ofrece acceso a sus modelos mediante una API de pago
La versión base, GPT está entrenada para proporcionar la mejor continuación posible de un texto
Sobre este modelo base se entrenan nuevas versiones para que el modelo responda como lo haría una persona en función de las instrucciones que se le hayan dado: así aparece ChatGPT
No hay mucha información oficial sobre las especificaciones de ChatGPT a partir de la versión 3, pero podemos encontrar algunas pistas sobre GPT3 y GPT4:
- GPT 3 (publicado en 2020):
Es un modelo de 175.000 millones de parámetrosPara un entrenamiento son necesarios unos 34 días en1024 tarjetas NVIDIA A100 GPUs
En 2021, simplemente ejecutar un único entrenamiento de esa magnitud en un proveedor como Google Cloud o AWS costaba unos $2.5M
- GPT 4 (publicado en 2022):
Es un modelo con más de 1 billón (europeo) de parámetrosPara su entrenamiento se utilizarían más de 10000 GPUs NVIDIA
Para hacer una inferencia (por ejemplo responder a una pregunta que le hagamos) se utilizarían 7 GPUs
El coste de su entrenamiento estaba por encima de los $100M
Versiones
ChatGPT
Es la versión gratuita de la aplicación, utiliza GPT 3.5
Se trata de una versión de GPT entrenada para seguir instrucciones
Además, se incluyen reglas para evitar que ChatGPT genere contenidos controvertidos (por ejemplo, que niegue el cambio climático o que haga comentarios racistas)
Estos casos son fácilmente reconocibles, la respuesta de ChatGPT suele comenzar por el mensaje «Como inteligencia artificial, …» seguido de algún tipo de excusa antes de dar una respuesta más o menos genérica
Actualmente accesible mediante interfaz web o API (para integrar en otros sistemas/aplicaciones)
Es necesario crear un usuario en la plataforma openai.com para poder probarlo
ChatGPT Plus
Además de la versión gratuita, OpenAI ofrece una versión de pago con algunas características adicionales:
- Coste suscripción 20$/mes
- Acceso a modelo ChatGPT 4 (frente a GPT 3.5 en versión gratuita)
- Funcionalidad adicional:
- Navegación web
- Análisis de datos avanzado (anteriormente Intérprete de Código)
- Dalle-3
- Creación y acceso a «GPTs», configurables con nuestros propios datos/instrucciones
- Acceso prioritario durante picos de Acceso
- Acceso a características beta (Plugins)
- Contextos de 4k
El acceso a la versión 4 de GPT puede verse sujeto a restricciones (se aplican las restricciones por geolocalización IP o aquellas que OpenAI considere oportunas)
ChatGPT Enterprise
En septiembre de 2023 OpenAI publicó una suscripción Enterprise con las siguientes características:
- No se utilizan los datos de tu empresa para entrenar los modelos de OpenAI
- Encriptación de las conversaciones
- Gestión de usuarios de la empresa, estadísticas avanzadas
- Sin limitaciones de uso en GPT4
- Ejecución de GPT4 a mayor velocidad (2x)
- Contextos de 32k en lugar de 4k
Usando ChatGPT
Creación de cuenta
Antes de poder usar ChatGPT es necesario tener una cuenta registrada en el sistema de OpenAI
Para ello usaremos el siguiente enlace de registro
Introduciremos nuestro correo y una contraseña
Iremos a nuestra cuenta de correo, que debe ser válida y real
Y confirmaremos el registro de la cuenta haciendo click en el email de verificación que nos enviarán
Seguiremos introduciendo el resto de datos de usuario que se nos solicite en el formulario
Y ya podemos empezar a usar el Chat de comandos promt de ChatGPT siempre que nos acreditemos con el usuario y contraseña de la cuenta que hemos creado
Privacidad
Hay que tener especial cuidado cuando usamos ChatGPT
Por defecto nuestras conversaciones se almacenan en un historial y se pueden usar para seguir entrenando a ChatGPT
Si no queremos que nuestros datos se usen para entrenar, hay una opción en la configuración de nuestra cuenta para desactivar el uso de nuestros datos para entrenar a ChatGPT (y el historial de conversaciones)
Las instrucciones detalladas se pueden encontrar en la documentación de OpenAI
PROMP
ChatGPT está entrenado para seguir y ejecutar las instrucciones que nosotros le proporcionemos
Nuestras instrucciones, se denominan prompts
Pueden ser tan simples o complejas como queramos, y pueden incluir información adicional
Por ejemplo, un texto de ejemplo, una imagen, un enlace a una página web…
Podemos «hablar» con ChatGPT de forma interactiva
Por ejemplo, pedirle que complete o corrija sobre su respuesta previa
Eso significa que podemos preguntarle algo, y a continuación hacer referencia bien a nuestra pregunta anterior, bien a su respuesta:
PROMPS Efectivos
ChatGPT es bastante literal interpretando nuestras instrucciones, así que conviene que le demos toda la información necesaria para que complete sus tareas según nuestras expectativas
En general, un buen prompt debe incluir:
- Rol: para ChatGPT (experto en…, asistente de…)
- Contexto: la situación relativa al texto que tenemos que generar
- Instrucciones/tareas: Lo que necesitamos que ChatGPT haga por nosotros
- Formato/estilo: si queremos una carta formal, estilo más moderno, agresivo… o si necesitamos que la respuesta esté formateada en JSON por ejemplo
Incluso se le puede pedir al propio ChatGPT para que te de más consejos
Podemos consultar en este link un completo listado de ejemplos
Estos prompts están en inglés, pero recuerda que le puedes pedirle a ChatGPT que te los traduzca a tu idioma
La documentación de openAI también proporciona algunos consejos
Ejemplos
Cuento de hadas
Vamos a perdirle que Escriba un cuento de hadas con final feliz
Le Pedimos que modifique el final del cuento por uno más triste
Le pedimos que genere una moraleja para la historia
Por último le pedimos que genere la historia pero con Hansel y Gretel, encontrándose con un dragón y que un hada madrina les da un consejo para vencerlo
Carta
Vamos a simular que somos un empleado de la Dirección General de Obras Públicas utilizando ChatGPT para ayudarle en su día a día
Le pedimos que genere una carta para informar a un usuario de que se va a realizar una canalización que pasará por su finca
Le pedimos que genere una segunda carta informando al usuario de que se ha desestimado su solicitud de paralización de la obra
Qué puede hacer
Hay muchas cosas que ChatGPT puede hacer muy bien, basta con pedírselas
A continuación os presentamos algunos ejemplos de aplicaciones:
Tareas creativas
- Generar historias de ficción
- Generar documentación técnica (si le proporcionamos suficiente información)
- Textos para propuestas de proyectos
- Informes
- Cartas
- Brainstorming: Nombres de producto, títulos de obras…
Formación
- Crear resúmenes de textos
- Generar actividades, ejercicios tipo test
- Planificar clases
- Generar temarios
- Código
Proofreading
- Revisar textos para corregir gramática y ortografía
- Cambiar el estilo:
- En función de la audiencia (para un estudiante de secundaria, para un científico…)
- En función del rol de ChatGPT («habla con el estilo y vocabulario de un profesor de literatura universitario/de un estudiante de secundaria…»)
Traducción
- ChatGPT ha sido entrenado con un corpus que incluye un gran número de lenguajes y podemos pedirle que traduzca desde/hacia ellos
Conviene que después de hacer una traducción, le pidamos a ChatGPT que revise el texto, corrija traducciones literales y ajuste el estilo y lenguaje a nuestra audiencia
- También conoce un gran número de lenguajes de programación y podemos pedirle que transforme código de un lenguaje a otro
- También podemos pedirle que transforme formatos de ficheros (por ejemplo, datos de formato csv a json)
Código
- Generación de código siguiendo instrucciones
Podemos especificar si necesitamos anotaciones de tipos (por ejemplo en Python) o tests unitarios
- Validación de código
- Explicación de funciones
- Refactoring: utilizando otra biblioteca, cambiando nombres de variables…
Razonamientos
Podemos plantear problemas, retos y cuestiones complejas a ChatGPT partiendo de supuestos y hechos bien especificados
Para su resolución se pueden realizar las siguientes técnicas de promting:
- IO (Direct Input/Output): planteamos un problema y solicitamos la respuesta
- IO con refinamiento: planteamos un problema, solicitamos la respuesta y le pedimos que la mejore
- CoT (Chain of Thoughts): planteamos un problema y le pedimos que nos explique cómo ha llegado a la solución paso a paso
- CoT-SC (Chain of Thoughts – Self Consistency): Aplicamos Chain Of Thoughts varias veces y seleccionamos la respuesta más consistente (la que se repite más veces)
- Tree-of-thoughts: generamos un prompt que permita a ChatGPT explorar distintas vías de pensamiento de forma crítica, hasta encontrar una solución satisfactoria
En el siguiente enlace se pueden encontrar estas técnicas con más detalles sobre ellas y también algunas técnicas más complejas
IO (Direct Input/Output)
Es el método más básico, consiste en preguntarle a ChatGPT directamente por la respuesta a nuestro problema
Funciona correctamente con cuestiones sencillas, pero fallará en problemas complejos
Aunque con los últimos entrenamientos ChatGPT ha aprendido a razonar por pasos aunque no se lo pidamos explícitamente, y en muchas ocasiones generará la respuesta correcta sin necesidad de ayuda adicional
IO con refinamiento
Un método que proporciona buenos resultados: le pedimos a ChatGPT que nos responda a nuestro problema
Y a continuación en prompts sucesivos le pedimos a ChatGPT que revise y mejore su respuesta
CoT (Chain of Thoughts)
Podemos pedirle explícitamente a ChatGPT que razone sobre cada etapa del proceso, o mostrarle un ejemplo con ese razonamiento para que él lo repita
CoT-SC (Chain of Thoughts – Self Consistency)
Realizaremos un razonamiento con Chain-of-thought varias veces, y a continuación seleccionaremos la respuesta más repetida (la más consistente entre las distintas ejecuciones)
Tree-of-thoughts
Generamos un prompt que permita a ChatGPT explorar distintas vías de pensamiento de forma crítica, hasta encontrar una solución satisfactoria
Limitaciones
La mayoría de las limitaciones se pueden resolver mediante el uso de plugins (actualmente disponibles en la versión ChatGPT Plus o ChatGPT Enterprise)
Pero es importante conocerlas para evitar «sorpresas» al utilizar ChatGPT
Proporcionar respuestas complejas si no le damos tiempo para razonar
Si le pedimos a ChatGPT que nos responda a una pregunta compleja, ChatGPT intentará realizarla en pequeños pasos
La salida de cada paso le sirve de apoyo para el razonamiento siguiente, y mejora mucho sus resultados
Por ejemplo le pedimos:
Ahora se lo pedimos dejándole «pensar»:
Cuando le hemos dejado «pensar», el resultado ha sido mucho mejor
Operaciones matemáticas complejas
Por ejemplo, multiplicar números de más de 3 cifras
La respuesta de ChatGPT normalmente se aproximará al valor correcto (en este caso 553,254), pero no será exacta
Por ejemplo, operaciones con raíces cuadradas grandes
La solución se aproximará al valor correcto (en este caso 44.988887516807970076138159027823), pero no será exacta
En operaciones aritméticas aparentemente sencillas, empezaremos a ver efectos con números relativamente grandes
Por ejemplo, seguramente obtengamos la respuesta correcta para el valor de 3 elevado al cubo pero no para 333 elevado al cubo
Una vez que nos ha dado una respuesta, si no le corregimos dará ese resultado por bueno, y es bastante probable que ChatGPT lo reutilice en respuestas posteriores sobre la misma operación
Esta limitación se puede solventar utilizando el plugin WolframAlpha
Un plugin que está especializado en operaciones matemáticas
Ofrecer o verificar información factual
Cuándo le preguntamos un dato factual, no tiene por qué respondernos con la realidad
Aunque afirme lo contrario, tampoco puede verificar si el dato es veraz o no con certitud
Tampoco puede darnos la fuente de sus datos (no es algo soportado por el algoritmo)
Por ejemplo vamos a preguntarle por el monumento ecuestre a Espartero, pero queremos información del de Madrid, ya que hay varios en España
Le insistimos que queremos el de Madrid
Le pedimos educadamente que nos enumere si hay más en España
Esta limitación se puede solventar mediante el uso de la navegación integrada en ChatGPT y de plugins que le permitan acceder a bases de datos, páginas web, artículos científicos…
Como por ejemplo los plugins: WebPilot, World Bank Data, WolframAlpha, ScholarAI
Acceso a información actualizada
El corpus de entrenamiento varia con el tiempo, pero es estático en un momento dado
Por ejemplo en septiembre de 2023 se utiliza un corpus que llega hasta septiembre de 2021 para GPT3.5, y enero de 2022 para GPT-4
Vamos a probar a preguntarle con fecha 7 de abril de 2024, cuándo falleció Akira Toriyama
En la fecha de 7 de abril de 2024, no ha podido responderme cuando falleció Akira Toriyama (que ha sido el 1 de marzo de 2024 con 68 años)
Esta limitación se puede solventar con ChatGPT4 y su navegación web
O los mismos plugins que la anterior: WebPilot, World Bank Data, WolframAlpha, ScholarAI…
Saber a qué fecha y hora estamos
Recientemente el modelo GPT 3.5 ha empezado a contestarnos con la fecha correcta, probablemente porque OpenAI incluya esa información en un texto previo a nuestros prompts
ChatGPT 4 sin embargo sigue sin poder respondernos (aunque a veces sí que puede)
ChatGPT presenta un comportamiento errático en este sentido, a veces contesta, a veces dice que no tiene esa información, y en ocasiones nos da una fecha errónea
Vamos a probar a preguntarle con fecha 7 de abril de 2024, qué hora es
Esta limitación se puede solventar por ejemplo con el plugin WolframAlpha
Acceso a información sobre el propio ChatGPT
ChatGPT no conoce su versión actual, el valor de sus parámetros de configuración, etc
Al igual que con los datos factuales, en ocasiones ChatGPT nos puede contestar como si conociese la respuesta, pero no podemos confiar en que sea cierto
Esta limitación se puede solventar con las capacidades de navegación de ChatGPT4
O con alguno de los plugins, como por ejemplo WebPilot
Análisis de datos avanzado
El módulo de Análisis avanzado de datos (actualmente integrado en el modelo GTP-4, con suscripción ChatGPT plus) puede generar y ejecutar código Python
Por ejemplo para analizar un conjunto de datos a partir de un fichero en formato .xls
Una vez cargados los datos, podemos pedirle a ChatGPT que realice las tareas típicas de un flujo de Aprendizaje automático
- Establecer un resumen de las variables cargadas
- Analizar relaciones entre ellas
- Identificar variables con problemas (valores nulos, outliers…)
- Hacer análisis gráficos y estadísticos (histogramas, valores medios/medianas/desviación típica, coeficientes de correlación…)
- Modelos predictivos
- Análisis de agrupamientos
- Generación de visualizaciones complejas (por ejemplo, generar mapas…)
Estas acciones pueden verse limitadas por las características del entorno de ejecución
Ya que podemos recibir mensajes de que el sistema se ha quedado sin memoria con facilidad
Todo dependerá del volumen de datos y de la complejidad del análisis que queramos que realice
Plugins
Están disponibles con la suscripción a ChatGPT plus
Más de 900 plugins en septiembre de 2023
Actualmente sólo es posible seleccionar 3 plugins activos durante una consulta
Cuando escribamos un prompt, ChatGPT decidirá si puede apoyarse en alguno de esos 3 plugins activos para responder a nuestra pregunta
Capacidades que ofrecen:
- Acceso a fuentes de datos actualizadas en tiempo real (información de vuelos, información estadística, artículos científicos…)
- Capacidades de cálculo matemático y programación (operaciones aritméticas, análisis numérico, optimizaciones, scripts de Python)
- Capacidades gráficas (generación de QRs, diagramas, imágenes) Análisis de ficheros (pdfs, imágenes…)
- Acceso a servicios (reservas en hoteles, restaurantes, viajes)
- Generación de contenidos específicos (mejora de prompts, horóscopos, libros infantiles…)
- Y casi cualquier cosa que se les ocurra a los desarrolladores del plugin
WolframAlpha
Es uno de los plugins más potentes
Se conectará al motor de WolframAlpha, el cuál es usado por Wolfram Mathematica
Mathematica es un programa utilizado en áreas científicas, de ingeniería, matemática y áreas computacionales
Originalmente fue concebido por Stephen Wolfram, quien continúa siendo el líder del grupo de matemáticos y programadores que desarrollan el producto en Wolfram Research, compañía ubicada en Champaign, Illinois
Comúnmente considerado como un sistema de álgebra computacional, Mathematica es también un poderoso lenguaje de programación de propósito general
Podemos usar WolframAlpha para:
- Resolver problemas matemáticos (desde operaciones algebraicas hasta resolver ecuaciones diferenciales y problemas de optimización)
- Generar gráficas y visualizaciones, incluyendo mapas
- Resolver problemas de física
- Acceder a bases de datos con información sobre distancias, carreteras, poblaciones, etc
- Recuperar información de fecha y hora en tiempo real
Con este plugin se resuelven los problemas con las operaciones matemáticas complejas
Devolviéndonos resultados con precisos y con la precisión decimal que le indiquemos (en código del lenguaje de Wolfram, ya que gracias al plugin es capaz de comprenderlo, generarlo y ejecutarlo)
También se resuelven los problemas con las fechas y la hora en tiempo real
Por eso, una buena práctica al usar este plugin es:
- Si ChatGPT nos responde con código de Mathematica (el lenguade de Wolfram), le pediremos que ejecute ese código directamente
- Si ChatGPT nos responde con código en otro lenguaje, le pediremos el código usando WolframAlpha y luego le pediremos que lo ejecute
La principal limitación de este plugin son de tiempo de cálculo
Si le pedimos una tarea demasiado compleja, es posible que nos devuelva un error «timeout» y no obtengamos ninguna respuesta
En la página de Wolfram encontramos ejemplos espectaculares de sus posibilidades
WebPilot
Al activarlo, ChatGPT se convertirá en un buscador, ya que los prompts podrán hacer búsquedas en Internet
Si le decimos por ejempo Busca en wikipedia… o Recupera de internet…
ChatGPT puede concatenar varias consultas cuando WebPilot está activo, si lo estima necesario dentro de la misma respuesta
Por ejemplo, si le pedimos que recupere información de Wikipedia sobre la Grecia Clásica y el Imperio Romano, cruzando ambas informaciones
Scholarassist
Conectado al repositorio de artículos científicos arxiv nos permitirá recuperar información sobre investigaciones científicas sobre física, matemáticas, informática, biología, medicina, etc
AskYourPDF/Link Reader/Ai PDF
Cualquier de estos plugins (entre otros, ya que la lista de plugins similares es muy extensa) hará que ChatGPT sea capaz de leer el contenido de un fichero en formato PDF
Link Reader soporta además otros formatos (basados en la plataforma de ofimática de Office de Microsoft) como PowerPoint, Excel, etc
Podremos pasar la URL del fichero en nuestro propmt y a continuación ChatGPT podrá contestar a nuestras preguntas en base a su contenido
En ocasiones, si tenemos WebPilot y AskYourPDF instalados
ChatGPT utilizará WebPilot para recuperar el contenido del fichero PDF de forma automática y luego utilizará AskYourPDF para analizarlo
Wordcloud
Mediante este plugin podremos generar gráficos de nubes de palabras para visualizar gráficamente el contenido de un texto
Combinado con cualquiera de los plugins anteriores, nos permitirá generar gráficos de nubes de palabras a partir de los resultados de una búsqueda en Internet, de un artículo científico, de un fichero PDF…
Show Me Diagrams
ChatGPT ya es capaz de generar diagramas utilizando la notación Mermaid por si solo
Pero gracias a este plugin podremos además visualizarlos en la propia respuesta de ChatGPT
Canva
La popular aplicación Canva también tiene su propio plugin, y nos permitirá recuperar automáticamente algunas de las plantillas de las que dispone para luego editarlas en su plataforma
Prompt perfect
Añade la palabra «perfect» a tus prompts
Prompt Perfect refinará tu petición para que obtengas el mejor resultado posible de ChatGPT
Debemos estar validados con usuario y contraseña para que funcione
Stories
Permite generar historias, en formato libro, con ilustraciones incorporadas
De momento sólo disponible en inglés
There’s an AI for that
Buscador de páginas web especializado en webs que permitan resolver tus problemas mediante IA
Depuración de errores con plugins
Si ChatGPT, haciendo uso de algún plugin no logra el resultado deseado
Podemos comprobar tanto la información que ChatGPT le ha pasado a dicho plugin como la que el plugin ha devuelto
Si hacemos click en la flechita hacia abajo que aparece al lado del nombre de cada plugin que se ha utilizado en la consulta