Explorando la Ingeniería de Prompts de ChatGPT para Desarrolladores

Bienvenidos a mi exploración del curso “ChatGPT Prompt Engineering for Developers“. Este curso, presentado por Andrew Ng e Isa Fulford, ofrece una interesante inmersión en el mundo de los Grandes Modelos de Lenguaje (LLMs) y sus aplicaciones.

En este artículo, profundizaré en conceptos clave como la diferencia entre los LLMs base y los LLMs afinados por instrucción (instruction tuned), las buenas prácticas para una Ingeniería de Prompts efectiva y el proceso iterativo de desarrollo de prompts. También exploro varias aplicaciones de los LLMs, incluyendo la de resumir texto, la inferencia de temas, análisis de sentimientos, la transformación de texto, e incluso la construcción de tu propio chatbot personalizado.

¿Te unes a este viaje para descubrir el potencial de los LLMs en el ámbito del desarrollo de software?

Como alguien metido en el mundo del desarrollo, este curso despertó mi interés al mostrar un nuevo universo de posibilidades para la construcción de software.

Entendiendo el LLM Base y el LLM Fine Tuned

Un concepto clave introducido al principio del curso es la distinción entre los Grandes Modelos de Lenguaje (LLMs) base y los LLMs afinados por instrucción. Permíteme usar instruction tuned en lugar de afinados por instrucción de ahora en adelante, porque esa traducción al Español me suena un tanto ridícula! jeje.

Un LLM base, entrenado en un amplio corpus de datos de texto, es hábil en predecir la próxima palabra en una frase. Por ejemplo, si le das un prompt a un LLM base con “Érase una vez un unicornio”, podría completar la frase con algo como “que vivía en un bosque mágico con todos sus amigos unicornios”.

Sin embargo, si le haces una pregunta directa como “¿Cuál es la capital de Francia?”, es posible que no te de la respuesta que esperas. Esto se debe a que los LLMs base no están explícitamente entrenados para responder preguntas o seguir instrucciones. Están entrenados para predecir la próxima palabra en una frase basándose en los patrones que han aprendido de los datos de entrenamiento. Como resultado, podrían proporcionar una continuación creativa o inesperada de la frase, en lugar de la respuesta correcta “París”.

Base LLM vs Instruction Tuned LLM

Aquí es donde entran en juego los LLMs instruction tuned. Estos modelos están entrenados para seguir instrucciones, lo que los hace más propensos a proporcionar respuestas directas y precisas a las consultas. Así que, si le preguntas a un LLM instruction tuned “¿Cuál es la capital de Francia?”, es mucho más probable que te dé la respuesta correcta: “La capital de Francia es París”. Estos modelos se refinan aún más utilizando una técnica llamada RLHF (Reinforcement Learning from Human Feedback), que mejora su utilidad, honestidad, y reduce la probabilidad de que generen texto problemático, ya que hay un humano por detrás corrigiendo y guiando al modelo para aprenda las mejores respuestas posibles.

Si estás construyendo un chatbot, un resumidor de texto, o un traductor de idiomas, saber cuándo usar un LLM base o un LLM instruction tuned puede impactar significativamente en el éxito de tu proyecto.

Guía para una Ingeniería de Prompts efectiva

El segundo módulo del curso se sumerge en las recomendaciones para una ingeniería de prompts exitosa. Isa Fulford presenta dos principios clave para escribir prompts: escribir instrucciones claras y específicas, y darle tiempo al modelo para pensar. Vamos a explorar estos principios con más detalle.

Guía de Ingeniería de Prompts

Escribir Instrucciones Claras y Específicas

El primer principio es escribir instrucciones claras y específicas. Esto es crucial para guiar al modelo hacia la salida deseada y reducir la posibilidad de respuestas irrelevantes o incorrectas. Aquí hay algunas tácticas para lograr esto:

  1. Usar delimitadores: Los delimitadores son signos de puntuación que separan piezas específicas de texto del resto del prompt. Pueden ser triples comillas invertidas, comillas, etiquetas XML, o títulos de secciones. Los delimitadores hacen claro al modelo en qué texto debe enfocarse y pueden ayudar a evitar inyecciones de prompts, donde un usuario podría dar instrucciones contradictorias.
  2. Pedir una salida estructurada: Si quieres facilitar el análisis de las salidas del modelo, pide una salida estructurada como HTML o JSON. Esto puede llevar a salidas más detalladas y relevantes.
  3. Verificar si se cumplen las condiciones: Si la tarea hace suposiciones que no necesariamente se cumplen, dile al modelo que verifique estas suposiciones primero. Si no se cumplen, el modelo debería indicarlo y detenerse antes de intentar completar completamente la tarea.
  4. Prompts de con ejemplos: Proporcionar ejemplos de ejecuciones exitosas de la tarea que quieres que el modelo realice antes de pedirle que haga la tarea real puede ayudar al modelo a entender mejor el contexto y por tanto también mejorar la salida deseada.

Darle Tiempo al Modelo para Pensar

El segundo principio es darle tiempo al modelo para pensar. Si un modelo está cometiendo errores de razonamiento al apresurarse a una conclusión incorrecta, deberías intentar reformular la consulta para solicitar una cadena o serie de razonamientos relevantes antes de que el modelo proporcione su respuesta final.

Especificar los Pasos Requeridos para Completar una Tarea

Desglosar la tarea en pasos específicos e instruir al modelo para que siga estos pasos puede ayudar al modelo a entender mejor la tarea y producir resultados más precisos. Por ejemplo, si quieres que el modelo resuma un texto, traduzca el resumen al francés, liste cada nombre en el resumen en francés, y produzca un objeto JSON, puedes especificar estos pasos en el prompt. De esta manera, el modelo sabe exactamente qué necesita hacer y en qué orden.

Veamos un ejemplo. En el curso, Isa proporciona un párrafo que describe la historia de Jack y Jill. Luego le pide al modelo que realice las siguientes acciones:

  1. Resumir el texto.
  2. Traducir el resumen al francés.
  3. Listar cada nombre en el resumen en francés.
  4. Producir un objeto JSON que contenga el resumen en francés y el número de nombres.

Al especificar estos pasos, el modelo completa con éxito la tarea, proporcionando un resumen, una traducción, una lista de nombres, y un objeto JSON.

Instruir al Modelo para que Elabore su Propia Solución

A veces, obtenemos mejores resultados cuando instruimos explícitamente a los modelos para que razonen su propia solución antes de llegar a una conclusión. Esto es similar a darle a una persona tiempo para resolver una pregunta de matemáticas compleja antes de pedir la respuesta.

Por ejemplo, en el curso, Isa presenta un escenario donde un estudiante proporciona una solución a un problema de matemáticas. Se le pide al modelo que determine si la solución del estudiante es correcta. Sin embargo, sin resolver el problema por sí mismo, el modelo está de acuerdo con la solución del estudiante, siendo ésta incorrecta.

Para rectificar esto, Isa instruye al modelo para que resuelva su propia solución al problema primero, y luego compare su solución con la solución del estudiante. Con este enfoque, el modelo identifica correctamente que la solución del estudiante es incorrecta.

Estos ejemplos subrayan la importancia de proporcionar instrucciones claras y específicas al modelo y permitirle tiempo suficiente para ‘pensar’. Siguiendo estos principios, puedes guiar al modelo hacia la salida esperada y así reducir la posibilidad de respuestas incorrectas.

Limitaciones del Modelo

También es importante ser consciente de las limitaciones de los LLMs. Aunque el modelo de lenguaje ha sido expuesto a una gran cantidad de conocimiento durante su proceso de entrenamiento, podría inventar cosas que suenan plausibles pero que en realidad no son ciertas. Estas respuestas inventadas se conocen como alucinaciones.

Una táctica para reducir las alucinaciones es pedirle al modelo que primero encuentre cualquier cita relevante del texto y luego le pida que use esas citas para responder preguntas. Tener una forma de rastrear la respuesta hasta el documento fuente puede ser útil para reducir las alucinaciones.

Además de las limitaciones ya mencionadas, es importante saber que los modelos de lenguaje grande como ChatGPT no tienen acceso a información en tiempo real. No pueden proporcionar las últimas noticias, actualizaciones del mercado de valores, o datos confidenciales de una organización específica. Solo saben lo que se les ha enseñado, y no pueden acceder o recuperar datos personales a menos que se les haya compartido en el curso de la conversación. Ahora, los plugins son herramientas valiosas que proporcionan este tipo de acceso al LLM en sí, de modo que cuando ChatGPT los integra, sí que pueden manejar información actualizada proporcionada por los plugins.

Además, estos modelos no entienden sus propias salidas de la manera en que los humanos lo hacen. Generan respuestas basadas en patrones que han aprendido, pero no comprenden el significado de esas respuestas. Por último, aunque pueden generar texto que puede parecer como consejos personales u opiniones, es importante recordar que estos no son realmente sus propios creencias o consejos. No tienen experiencias personales o emociones, y cualquier consejo dado debe ser considerado teniendo esto muy presente.

Desarrollo Iterativo de Prompts: Una Clave para Aplicaciones Efectivas

En el mundo de los LLMs, hay un concepto básico que se debe comprender: el desarrollo iterativo de prompts. Como explica Andrew Ng, rara vez se logra la instrucción perfecta para una aplicación en el primer intento. En cambio, es un proceso de refinamiento y mejora constante, similar al entrenamiento de un modelo de aprendizaje automático.

El proceso comienza con una idea para una tarea que quieres que el LLM complete. Escribe una instrucción clara y específica que, si es necesario, dé tiempo al modelo para pensar. Después de ejecutar la instrucción, evalúas el resultado. Si no cumple con tus expectativas, refinas la instrucción basándote en las deficiencias del resultado anterior. Este ciclo se repite hasta que se obtiene una instrucción que funciona bien para tu aplicación.

No existe una instrucción universal para todas las situaciones. La eficacia de un prompt depende de la tarea y la aplicación específicas. Por lo tanto, el éxito en la Ingeniería de Prompts no radica en conocer la instrucción perfecta, sino en tener un buen proceso para desarrollar instrucciones efectivas para tu aplicación específica.

Como desarrollador de Software, este concepto me resulta familiar. Es similar a cómo desarrollamos y refinamos código hasta que cumple con nuestros requisitos.

De hecho los principios del desarrollo iterativo de instrucciones se pueden aplicar a nuestro trabajo diario. Ya sea que estemos escribiendo código, diseñando sistemas, o incluso comunicándonos con nuestro equipo, la idea de comenzar con un primer intento, evaluar el resultado y luego refinarlo en base a los comentarios es un poderoso enfoque para resolver problemas.

Resumir Texto: Una Poderosa Aplicación de los LLMs

Una de las aplicaciones más útil quizás de los Grandes Modelos de Lenguaje es su capacidad para resumir texto. En nuestro mundo actual, donde todo está acelerado, y donde el exceso de información es un desafío común, la habilidad para resumir rápidamente y entender la esencia de un texto es sin lugar a dudas muy valiosa.

Andrew Ng lo demuestra en el curso utilizando el ejemplo de resumir reseñas de productos. Si gestionas un e-commerce con una gran cantidad de reseñas, tener una herramienta para resumir reseñas extensas puede ayudarte a tener una visión rápida de más opiniones y tener una mejor idea de lo que tus clientes están pensando.

El proceso comienza con la escritura de una instrucción que le pide al modelo que genere un resumen breve de una reseña de producto. También puedes especificar el número máximo de palabras para el resumen. ¿El resultado? Un resumen conciso que captura los puntos clave de la reseña.

¿Y si quieres que el resumen se enfoque en un aspecto específico de la reseña? Por ejemplo, si quieres dar información al departamento de envíos, puedes modificar la instrucción para enfocarte en los aspectos que mencionan el envío y la entrega del producto. De igual manera, si quieres dar información relevante al departamento de precios, puedes pedirle al modelo que se centre en los aspectos del precio y el valor percibido.

A veces, en lugar de resumir, es posible que quieras extraer información específica del texto. Por ejemplo, si quieres extraer información relevante para el departamento de envíos, puedes indicárselo al modelo y este proporcionará un resumen que se centra únicamente en los detalles de envío.

Esta capacidad de los LLMs puede ser increíblemente útil en un flujo de trabajo en el que necesites resumir múltiples piezas de texto. Por ejemplo, si tienes cientos de reseñas en tu sitio web, puedes usar los LLMs para generar resúmenes breves de estas reseñas, permitiendo que tú u otra persona repasen las reseñas mucho más rápido. Si un resumen en particular te resulta interesante, entonces puedes adentrarte en la reseña original y más larga.

No es difícil imaginar cómo esto podría integrarse en nuestro trabajo diario, ya sea resumiendo notas de reuniones, dando feedback de clientes o incluso revisiones de código. Las posibles aplicaciones son tantas como tu imaginación te permita y la verdad es que estoy emocionado de poder explorarlas más.

Inferencia de Temas y un Nuevo Enfoque para el Análisis de Sentimientos

Una de las aplicaciones más impresionantes de los Grandes Modelos de Lenguaje es su capacidad para inferir temas y sentimientos a partir de un texto. Esta habilidad abre un nuevo enfoque para el análisis de contenido, lo que permite comprender rápidamente los temas principales o los sentimientos de un documento sin tener que leerlo en su totalidad.

Andrew Ng ejemplifica esto en su curso utilizando varios casos de uso. Uno de los más convincentes es el análisis de reseñas de productos. Imagina que estás haciendo un e-commerce que tiene una gran cantidad de reseñas. Tener una herramienta para inferir el sentimiento de las reseñas puede ayudarte a entender rápidamente lo que tus clientes están pensando. Al pedirle al modelo que clasifique el sentimiento de una reseña, puedes obtener un resultado conciso, como “positivo” o “negativo”, que captura el tono general de la reseña.

Pero el poder de los LLMs va más allá del simple análisis de sentimientos. También puedes usarlos para inferir emociones específicas expresadas en el texto. Por ejemplo, si quieres entender si un cliente está expresando enojo o deleite, puedes modificar la instrucción para enfocarte en estas emociones específicas. Esto puede ser muy útil para las organizaciones de atención al cliente, ya que comprender el estado emocional de un cliente puede guiar el enfoque del servicio al cliente.

Otra aplicación fascinante es la capacidad de inferir temas a partir de un texto. Dado un texto largo, como un artículo de noticias o una entrada de blog, puedes pedirle al modelo que determine los puntos clave que se están discutiendo.

Por ejemplo, Andrew usa un artículo de periódico ficticio y al pedirle al modelo que determine cinco temas que se están discutiendo en el texto, el modelo extrae exitosamente una lista de temas sobre los que trata el artículo.

Además, también puedes usar esta capacidad para determinar si un texto cubre un tema específico. Por ejemplo, si te interesa la NASA y quieres saber si un artículo de noticias trata sobre este tema, puedes simplemente preguntarle al modelo. Si el tema incluye a la NASA, puedes adentrarte en el artículo para obtener más detalles.

Estas aplicaciones de los LLMs son particularmente relevantes. Y como desarrollador de software, podrías utilizarlo para inferir las claves en un fragmento de código, un documento técnico o incluso una transcripción de reunión. También pueden usarse para comprender el sentimiento o emociones específicas expresadas en comentarios de usuarios o comunicaciones de equipo.

En definitiva todo esto nos puede ayudar a comprender rápidamente los temas principales, enfocar nuestra atención en las partes más relevantes y responder de manera más efectiva a las necesidades de nuestros usuarios.

Transformando Texto con Grandes Modelos de Lenguaje

Los Grandes Modelos de Lenguaje se pueden utilizar para transformar texto, otra capacidad más que abre una amplia gama de aplicaciones. Desde traducir texto entre idiomas hasta corregir gramática y ortografía, transformar texto es una herramienta muy potente en el mundo del procesamiento del lenguaje natural.

Los LLMs también se pueden utilizar para tareas como parafrasear texto, convertir texto en voz o generar escritura creativa. Por ejemplo, podrías usar un LLM para convertir un documento técnico complejo en otro con un lenguaje más sencillo, haciéndolo más accesible para un público más amplio. Del mismo modo, podrías usar un LLM para convertir texto escrito en un formato adecuado para la síntesis de voz, lo que permite la creación de audiolibros o asistentes de voz. En el ámbito de la escritura creativa, los LLMs se pueden utilizar para generar ideas para historias, escribir poesía o incluso redactar guiones para obras de teatro o películas. Estos ejemplos resaltan la versatilidad de los LLMs en la transformación de texto, abriendo un amplio abanico de posibilidades para su aplicación.

Tareas de Traducción

Vamos con otra aplicación más de los Grandes Modelos de Lenguaje. La traducción de texto entre idiomas. Estos modelos han sido entrenados en una gran cantidad de texto de Internet, que incluye contenido en muchos idiomas diferentes. Este entrenamiento les proporciona la capacidad de traducir entre cientos de idiomas con diferentes grados de habilidad.

Por ejemplo, si quieres traducir la frase en inglés “Hi, I would like to order a blender” al español, simplemente puedes darle al modelo la instrucción “Traduce el siguiente texto en inglés al español: ‘Hi, I would like to order a blender’”. El modelo producirá el texto traducido: “Hola, me gustaría pedir una licuadora”. Sencillo.

Modificación del Tono

El tono de un texto puede variar enormemente dependiendo del público objetivo. Por ejemplo, la forma en que escribirías un correo electrónico a un colega o un profesor sería bastante diferente a cómo mandarías un mensaje de texto a un amigo. Los Grandes Modelos de Lenguaje como ChatGPT pueden ayudar a producir texto en diferentes tonos. Por ejemplo, puedes pedirle al modelo que transforme un mensaje casual en un formato más formal, como el de una carta de negocios.

Transformación del Formato

Los Grandes Modelos de Lenguaje también son capaces de convertir diferentes formatos, como de JSON a HTML, XML y Markdown. Esto puede ser especialmente útil cuando necesitas convertir datos entre diferentes formatos para diversas aplicaciones.

Corrección Ortográfica y Gramatical

Otro uso popular de los Grandes Modelos de Lenguaje es la corrección ortográfica y gramatical. Cuando trabajas en un idioma que no es tu lengua materna, esto te puede sacar de más de un apuro. El modelo puede revisar y corregir un texto, facilitando asegurarte de que tu escritura sea clara y libre de errores.

En conclusión

Entender estas capacidades de los Grandes Modelos de Lenguaje nos proporciona una visión de las innumerables posibilidades que estos tienen para ayudarnos a manejar y entender el texto de manera más efectiva. Tanto si estás trabajando en desarrollo de software, análisis de contenido, o cualquier otra tarea relacionada con el texto, es evidente que estos modelos tienen un enorme potencial para transformar la manera en que trabajamos con el lenguaje natural.

En el mundo del desarrollo de software, las capacidades transformadoras de los LLMs poseen un enorme potencial. Imagina un escenario en el que podemos traducir sin problemas la documentación técnica a múltiples idiomas, haciéndola accesible para un equipo global. O piensa en la posibilidad de convertir al instante formatos de datos para adaptarse a nuestras necesidades específicas en un proyecto, ahorrándonos horas de trabajo manual. O más allá, generar un código limpio, efectivo y eficiente, que se adapte a unos requisitos previamente definidos.

Además, la habilidad de revisar y corregir textos puede suponer un salto de nivel en nuestra comunicación. Ya sea refinando el lenguaje en nuestros correos electrónicos, mejorando la claridad de nuestros comentarios de código, o asegurándonos de que nuestra documentación de proyecto esté libre de errores, esta característica puede mejorar significativamente la calidad de nuestra comunicación escrita.

El poder de grandes modelos de lenguaje como ChatGPT reside en su versatilidad y adaptabilidad. Al continuar explorando y entendiendo sus capacidades, estamos abriendo nuevas vías para la eficiencia y la innovación en nuestro trabajo. El futuro del desarrollo de software con la IA es prometedor y sinceramente me motiva poder estar viviendo en primera persona todo este cambio.

Generando Textos Más Largos con Grandes Modelos de Lenguaje

El concepto de ‘Expansión’ implica el uso de un LLM para generar un texto más largo a partir de una entrada más corta. Esto podría ser un correo electrónico, un ensayo, u otra forma de texto extendido basado en un tema dado o un conjunto de instrucciones.

No obstante, es crucial recordar que aunque los LLMs pueden generar piezas de texto más largas, no tienen la habilidad de crear nueva información verídica que no estuviera en sus datos de entrenamiento. No pueden hacer investigaciones ni acceder a datos en tiempo real, por lo que cualquier información que generen se basa en patrones que han aprendido durante el entrenamiento. Por eso es importante siempre verificar la información generada por los LLMs, especialmente cuando se utilizan para tareas que requieren información actualizada.

Es importante tener en cuenta que, aunque hay muchos usos positivos, también puede haber usos problemáticos, como la generación de spam. Por tanto, es importante utilizar estas capacidades de manera responsable y de forma que realmente ayude a las personas.

Respuestas de Correo Electrónico Personalizadas

Uno de los ejemplos que Isa Fulford muestra en este módulo del curso es la generación de una respuesta a un cliente, con un correo electrónico personalizado, usando los comentarios en la reseña del cliente. Dado el sentimiento de la reseña, el LLM puede elaborar una respuesta personalizada. Por ejemplo, si el sentimiento es positivo o neutral, el modelo puede agradecer al cliente por su revisión. Si el sentimiento es negativo, el modelo puede disculparse y sugerir que se pongan en contacto con el servicio al cliente. El modelo también puede incorporar detalles específicos de la revisión para hacer la respuesta más personalizada.

Jugando con la Temperatura

Otro concepto que exploramos en este módulo es el parámetro de ‘temperatura’ del LLM. Este parámetro nos permite controlar el grado de aleatoriedad en las respuestas del modelo. Una temperatura más baja (por ejemplo, 0) hace que el modelo sea más determinista y probablemente elija la siguiente palabra más probable, mientras que una temperatura más alta (por ejemplo, 0.7) hace que la salida del modelo sea más diversa y creativa.

Conclusión

Expandir con los LLMs puede ser una herramienta muy útil para generar textos más largos a partir de entradas más cortas. Sin embargo, es fundamental utilizar esta capacidad de manera responsable. Cuando generamos textos que se mostrarán a los usuarios, la transparencia es clave. Los usuarios deben ser conscientes de que el texto que están viendo fue generado por una IA.

Aplicando LLMs al Desarrollo de Software

Como desarrollador, el poder de los LLMs como herramienta para construir rápidamente aplicaciones de software es sencillamente impresionante. Las posibles aplicaciones son innumerables, desde la creación de chatbots hasta la síntesis de texto, la inferencia de información, la transformación de datos…

Construyendo Tu Propio Chatbot Personalizado con Grandes Modelos de Lenguaje

En el mundo de la IA, una de las aplicaciones quizás más antiguas es la capacidad de crear un chatbot personalizado. Utilizando un gran modelo de lenguaje esto ha cobrado mucha más utilidad. Este chatbot puede ser tuneado para realizar la tarea que te convenga según tu caso de uso, desde tomar pedidos en un restaurante hasta proporcionar servicio al cliente. Las posibilidades son infinitas, y lo mejor es que sólo requiere un mínimo esfuerzo para configurarlo.

La clave para crear un chatbot personalizado es entender cómo usar eficazmente el formato de Chat Completion de OpenAI. Este formato permite al modelo tomar una serie de mensajes como entrada y devolver un mensaje generado por el modelo como salida.

Uno de los componentes más importantes del formato de Chat Completion es el mensaje del sistema. Este mensaje establece el comportamiento y la personalidad del asistente, actuando como una instrucción de alto nivel para la conversación. Es como susurrar al oído del asistente, guiando sus respuestas sin que el usuario sea consciente del mensaje del sistema.

Ilustremos esto con un ejemplo en el que construimos un chatbot automatizado, “OrderBot”, diseñado para agilizar la recopilación de indicaciones de un potencial cliente de un restaurante de pizzas. El mensaje del sistema en este caso podría ser algo como: “Eres OrderBot, un servicio automatizado para recoger pedidos para un restaurante de pizzas. Primero saludas al cliente, luego recoges el pedido, y luego preguntas si es para recoger o para entregar. Asegúrate de aclarar todas las opciones, extras y tamaños para identificar de manera única el artículo del menú. Respondes en un estilo breve, muy conversacional y amigable.”

A medida que avanza la conversación, el modelo tiene la información que necesita para determinar qué hacer a continuación. Por ejemplo, si un cliente pregunta: “¿Cuánto cuesta una pizza grande de pepperoni?”, el modelo puede responder con precisión porque tiene en su contexto la información que necesita en el mensaje del sistema y los mensajes anteriores del usuario.

Una gran ventaja de este enfoque es que permite un alto grado de personalización. Al ajustar el mensaje del sistema, puedes cambiar el comportamiento del chatbot y hacer que actúe como diferentes personajes con diferentes personalidades. Podrías crear un chatbot que hable como Shakespeare, un chatbot que hable como un pirata, o cualquier otra cosa que puedas imaginar.

Por cierto, si eres curioso y quieres aprender cómo crear un chatbot usando GPT-3, te recomiendo este perspicaz artículo de Cobus Greyling.


Más allá de los bots para tomar pedidos en restaurantes, existen numerosas otras aplicaciones potenciales para los chatbots personalizados. Por ejemplo, podrías crear un bot asistente virtual que ayude a los usuarios a gestionar sus agendas, establecer recordatorios o encontrar información online. Los bots de tutoría podrían proporcionar experiencias de aprendizaje personalizadas, ofreciendo explicaciones y problemas de práctica en varias materias. Los bots de salud mental podrían proporcionar conversaciones de apoyo, ejercicios de atención plena o recursos para obtener más ayuda. Estos ejemplos ilustran el amplio rango de posibilidades para los chatbots personalizados, demostrando el potencial de los LLMs para revolucionar varias industrias y campos.

¡Pruébalo tú mismo!

Para ayudarte a comprender de manera práctica los conceptos discutidos en este curso, he creado un repositorio público en GitLab con los ejemplos que se iban mostrando en el curso.

En este repositorio, encontrarás fragmentos de código que demuestran todos estos conceptos de los que hemos ido hablando y que son clave en la ingeniería de prompts. Siéntete libre de clonar el repositorio, ejecutar el código y experimentar con él para profundizar tu entendimiento de estos conceptos.

La mejor manera de aprender es haciendo. Así que no dudes en ponerte manos a la obra con el código y probar por ti mismo estas fascinantes capacidades de la IA.

Recuerda, el aprendizaje es un viaje, no un destino. Así que sigue explorando, sigue preguntando, sigue aprendiendo. Y mientras lo haces, no olvides disfrutar del viaje. Nos vemos en el próximo post, donde seguiremos desentrañando los misterios de la Ingeniería de Software juntos. ¡Hasta la próxima!