Dominando la Ingeniería de Prompt para Desatar el Potencial de ChatGPT

Mastering Prompt Engineering to Unleash ChatGPT's Potential

Explora las mejores prácticas y mejora tus indicaciones para obtener mejores resultados

Foto de Léonard Cotte en Unsplash

La ingeniería de indicaciones se ha convertido rápidamente en parte de nuestras vidas, como una brisa, gracias a ChatGPT y otros grandes modelos de lenguaje. Aunque no es un campo completamente nuevo, actualmente está experimentando una gran popularidad. Dicho esto, creo que ahora es el momento perfecto para mejorar tus habilidades y convertirte en un mejor ingeniero de indicaciones.

Si te preguntas de qué se trata la ingeniería de indicaciones, ¡preguntémosle a ChatGPT!

Según los datos de Google Trends, “ingeniería de indicaciones” alcanzó su punto máximo en interés de búsqueda en los últimos meses. Los usuarios que buscaron “ingeniería de indicaciones” estaban interesados en temas de seguimiento como “curso”, “aprendizaje” y “salario” 🤑. Hay un aumento en el número de consultas para “cursos de ingeniería de indicaciones”.

Google Trends en los últimos 12 meses para 'ingeniería de indicaciones'. Un valor de 100 representa el mayor nivel de popularidad para el término. Aquí he filtrado los últimos 12 meses, pero puedes ajustarlo.

Ya sea que estés utilizando la ingeniería de indicaciones para consultas diarias simples, encontrar inspiraciones de recetas o planificar tu próximo viaje utilizando la interfaz de usuario web (por ejemplo, la interfaz de usuario de ChatGPT), o si estás involucrado en el desarrollo de aplicaciones que acceden a grandes modelos de lenguaje API (por ejemplo, ChatGPT API), mejorar tus habilidades de escritura de indicaciones mejorará significativamente la calidad de las respuestas que obtienes. Comprender la ingeniería de indicaciones también proporciona información útil sobre el funcionamiento de los grandes modelos de lenguaje, sus capacidades y limitaciones.

En este artículo, profundizaré en las ideas que adquirí y proporcionaré algunos ejemplos para mostrar conceptos clave. ¡Empecemos! 💬 🤖

Empezando con la ingeniería de indicaciones

La ingeniería de indicaciones juega un papel importante en obtener el máximo provecho de los Grandes Modelos de Lenguaje (LLMs). Cuando las indicaciones están bien escritas, las respuestas son más precisas, relevantes y útiles.

Aquí hay algunas pautas de sentido común a seguir al escribir indicaciones:

  • 🔖 Sé claro y específico: Comunica claramente lo que esperas del modelo y proporciona instrucciones específicas.
  • 🔖 Incluye contenido esencial y estilo de salida deseado: Incluye toda la información necesaria y especifica el formato o estilo en el que deseas que esté la respuesta.
  • 🔖 Proporciona ejemplos siempre que sea posible: Incluir ejemplos puede ayudar al modelo a comprender la estructura de respuesta deseada.

También hay algunas consideraciones importantes a tener en cuenta:

  • 📍Las respuestas pueden contener errores
  • 📍Las respuestas a la misma indicación pueden variar
  • 📍El conocimiento del modelo se basa en el momento en que se recopilaron los datos de entrenamiento (por ejemplo, la fecha límite del conocimiento de ChatGPT es septiembre de 2021)

Cinco patrones de indicaciones súper poderosos

Ahora cubriremos cinco patrones de indicaciones muy importantes que puedes seguir al interactuar con LLMs.

1. Patrón de persona

Usando el patrón de persona, puedes pedirle a ChatGPT que actúe como una persona específica y realice una tarea específica.

¡No está mal en absoluto! (Plan de aprendizaje de alemán por ChatGPT)

También puede invertir este patrón y pedirle a ChatGPT que asuma que usted es Persona X. Por ejemplo: “Crea un plan de aprendizaje de alemán para mí y asume que tengo una licenciatura en Lingüística”.

2. Patrón de refinamiento de preguntas

Usando el patrón de refinamiento de preguntas, puede solicitar a ChatGPT que genere preguntas de seguimiento y use las respuestas para esas preguntas para responder con precisión la pregunta inicial.

Escritura de indicaciones con patrón de refinamiento de preguntas

Usando este método, podemos obtener información sobre los factores que ChatGPT considera al componer una respuesta. También podemos proporcionar contexto adicional más allá de lo que se incluyó en la indicación inicial.

3. Patrón de plantilla

Podemos proporcionar una plantilla e instruir a ChatGPT para generar una respuesta siguiendo la plantilla. Para demostrar, proporcionaré varios párrafos de la página de Wikipedia sobre Modelos de Lenguaje Grandes. Usando esos párrafos, ChatGPT generará cinco preguntas y respuestas siguiendo la plantilla.

Usando markdown puede dar formato al texto; como ***palabra*** para palabra

4. Inducción sin muestra

Como sabemos, los Modelos de Lenguaje Grandes pueden seguir instrucciones y son capaces de aprender patrones de la indicación y seguirlos en la respuesta. Aquí hay una tarea de ejemplo para el aprendizaje sin muestra, donde podemos enseñar cómo clasificar clases que el modelo no ha encontrado antes. Tomemos un ejemplo del conjunto de datos de reseñas de clientes de Disneyland y pidamos al modelo que determine el sentimiento de una reseña específica.

Como puede ver, la respuesta es “positiva”.

5. Inducción de cadena de pensamiento

En lugar de proporcionar solo la respuesta final, especialmente para problemas matemáticos, la inducción de cadena de pensamiento tiene como objetivo hacer explicaciones paso a paso.

En el siguiente ejemplo, le hice una pregunta trampa a ChatGPT y al principio cometió un error en su respuesta. Sin embargo, cuando solicité a ChatGPT que proporcionara su razonamiento completo que llevó a la respuesta, pudo entregar la solución correcta.

Este enfoque también es un gran ejemplo de cómo los modelos de lenguaje grandes generan texto prediciendo cada palabra subsecuente.

Como puede ver, la respuesta es incorrecta. Deberían ser 9 dulces de goma y no 8. Ahora resolveremos esto mejorando nuestra indicación y asegurándonos de que ChatGPT siga una plantilla donde pueda hacer más evaluaciones.

Como se puede ver, cuando ChatGPT necesita escribir un proceso de razonamiento, encuentra la respuesta correcta.

Con respuestas abiertas, solo vemos el destino; con la promoción de la cadena de pensamiento, comprendemos el viaje. 🤓

Utilización de la API de ChatGPT para construir aplicaciones de datos

1. Resumir texto y extraer información

Resumir información puede ser una técnica que ahorra tiempo, especialmente cuando necesita extraer puntos clave o detalles específicos. Con la API de ChatGPT, podemos aprovechar sus capacidades para generar resúmenes para grandes volúmenes de texto.

Tomando como ejemplo el conjunto de datos de reseñas de Disneyland, que consta de 42,000 reseñas, podemos facilitar el proceso de evaluación utilizando resúmenes. Aunque lo demostraré con solo una reseña, el enfoque fácilmente puede escalar para manejar cantidades mayores de texto.

Para utilizar la API de ChatGPT, deberá iniciar sesión en su cuenta de OpenAI y generar su clave de API navegando a la sección “Ver claves de API” en la esquina superior derecha. Una vez que haya creado su clave de API, deberá almacenarla en un lugar seguro y no mostrarla.

# Instalar openai pip install openaiimport osimport openai# Almacenar de forma segura su clave APIOPENAI_API_KEY = "sk-XXXXXXXXXXXXXXXXXXXXXXXX"openai.api_key = OPENAI_API_KEY

A continuación, generaremos una función auxiliar que tomará nuestra sugerencia y devolverá una finalización para esa sugerencia.

# Función auxiliar para devolver finalización para una sugerenciadef get_completion(prompt, model="gpt-3.5-turbo"):     messages = [{"role": "user", "content": prompt}]    response = openai.ChatCompletion.create(        model=model,        messages=messages,        temperature=0, # grado de aleatoriedad de la respuesta    )    return response.choices[0].message["content"]

# Ingresar una reseñareview = """He estado en Disney World, Disneyland Anaheim y Tokyo Disneylandpero siento que Disneyland Hong Kong es realmente demasiado pequeño para serllamado un Disneyland. Tiene muy pocas atracciones y paseos.Los souvenirs, la comida e incluso las entradas son un poco más caros que en otros Disneyland. Básicamente, este parque es bueno solo para niños pequeños y personas que nunca han estado en Disney. Las opciones de comida eran aceptables, principalmente comida rápida, y no demasiado caras. El agua embotellada, sin embargo, era MUY cara, pero tienen fuentes de agua para que pueda rellenar sus botellas de agua. El desfile fue bastante bueno. Estaba lleno de gente no era un problema, pero lo que fue el problema fueque la gente era simplemente tan grosera, empujando y cortando en las líneaspara los paseos, tiendas de regalos, puestos de comida era simplemente demasiado para soportar. olvidando tratar de ver uno de los espectáculos es gratis para todos los asientos, no veo cómo Disney puede permitir que esto suceda, fue por mucho la peor propiedad de Disney administrada."""

# Escribir la sugerencia y generar la respuesta utilizando la función auxiliarprompt = f"""    Resuma la reseña a continuación en 30 palabras.    Reseña: ```{review}```    """response = get_completion(prompt)print(response)

Disneyland Hong Kong es demasiado pequeño con pocas atracciones y paseos. La comida y los souvenirs son caros. Bueno solo para niños pequeños y visitantes por primera vez. Lleno de gente con personas groseras y mal administrado.

El resumen es bastante bueno y tiene alrededor de 30 palabras como lo pedimos en la sugerencia. Si queremos, también podemos enfocarnos en un elemento específico en los resúmenes, como el precio y el valor.

prompt = f"""    Resuma la reseña a continuación en 10 palabras y    enfóquese en el precio y el valor.    Reseña: ```{review}'''    """response = get_completion(prompt)print(response)

Disneyland caro, pequeño y lleno de gente con pocas atracciones.

Al generar un resumen específico, hemos transformado nuestra revisión inicial en una declaración más significativa e impactante. 🍄

Ahora, llevémoslo un paso más allá y extrayamos información relevante en formato JSON para un procesamiento e integración más fácil con otros sistemas. Definiremos una plantilla para las claves en la sugerencia.

prompt = f"""    Identifique los siguientes elementos de la reseña:     - Sentimiento (positivo o negativo)    - ¿Qué parque de Disney fue revisado?    - ¿El revisor está expresando decepción? (verdadero o falso)    - ¿El revisor está expresando felicidad? (verdadero o falso)    Formatee su respuesta como un objeto JSON con    "Sentimiento", "Parque", "Enojo" y "Felicidad" como las claves.    Formatee el valor de Enojo y Felicidad como un booleano.    Mantenga las respuestas cortas.    Reseña: ```{review}```    """response = get_completion(prompt)print(response)

{ “Sentimiento”: “negativo”, “Parque”: “Hong Kong Disneyland”, “Enojo”: true, “Felicidad”: false }

¡Es bastante sorprendente!

2. Traducir el texto

Como puedes imaginar, si podemos crear resúmenes, también podemos traducir el texto a diferentes idiomas. Basándonos en el ejemplo anterior, ahora solicitaremos que se generen resúmenes en inglés, italiano y alemán.

prompt = f"""    Tu tarea es resumir la siguiente reseña.    Resume la reseña a continuación en un máximo de 10 palabras.    Imprime el resumen en inglés, italiano y alemán    Reseña: ```{review}```    """response = get_completion(prompt)print(response)

Resumen: Inglés: Disneyland Hong Kong es pequeño con pocas atracciones y caro. Italiano: Disneyland Hong Kong è piccolo con poche attrazioni e costoso. Alemán: Disneyland Hong Kong ist klein mit wenigen Attraktionen und teuer.

3. Ampliando el texto

La ampliación implica utilizar un fragmento de texto más pequeño y aprovechar las capacidades de un gran modelo de lenguaje para generar un texto más extenso. Por ejemplo, si ingresamos una reseña de un cliente, podemos producir un correo electrónico de respuesta detallado y abordar las inquietudes planteadas. Podemos proporcionar pautas para el formato y contenido.

prompt = f"""    Tu tarea es escribir un correo electrónico de respuesta al cliente.    Dado el correo electrónico del cliente delimitado por ```.    Genera una respuesta para agradecer al cliente por su reseña.        Pautas:    - Si el sentimiento es positivo o neutral, agradece al cliente    por su retroalimentación y hace referencia a los detalles específicos que mencionó.    - Si el sentimiento es negativo, discúlpate sinceramente por su mala experiencia, asume la responsabilidad y proporciona información de contacto de seguimiento.    - Expresa aprecio por su tiempo y reseña. Refiérase a puntos específicos para establecer una relación.    - Para experiencias negativas, discúlpate sinceramente y acepta la responsabilidad. \    Ofrece información de contacto de servicio al cliente.    - Apunta a un tono conciso pero reflexivo.    - Cierre profesionalmente como "Agente de atención al cliente de IA".    Reseña del cliente: ```{review}```    """    response = get_completion(prompt)print(response)

Estimado cliente valioso, Gracias por tomarse el tiempo de compartir su experiencia en Disneyland Hong Kong. Agradecemos sus comentarios y lamentamos saber que su visita no cumplió con sus expectativas. Pedimos disculpas por cualquier inconveniente causado por el número limitado de atracciones y paseos, así como por los precios más altos de los recuerdos, la comida y los boletos. Entendemos que estos factores pueden afectar su experiencia general en el parque. Nos complace saber que encontró aceptables las opciones de comida y que disfrutó del desfile. También agradecemos sus comentarios sobre las multitudes y el comportamiento grosero de algunos invitados. Tomamos estos problemas en serio y trabajaremos para mejorar nuestra gestión del parque para garantizar una experiencia más agradable para todos los invitados. Si tiene más inquietudes o desea proporcionar comentarios adicionales, no dude en ponerse en contacto con nuestro equipo de atención al cliente en [insertar información de contacto]. Valoramos sus comentarios y esperamos tener la oportunidad de brindarle una mejor experiencia en el futuro. Gracias nuevamente por su reseña. Atentamente, Agente de atención al cliente de IA

¡Buen trabajo, agente de atención al cliente de IA! ✉️

Conclusión

En este artículo, exploramos las mejores prácticas de ingeniería de consignas utilizando tanto la interfaz web como la API. Discutimos varios patrones de consigna efectivos, incluidos los patrones de persona, la refinación de preguntas, las plantillas, la prueba de cero y la consigna de cadena de pensamiento. Además, nos adentramos en la utilización de la API de ChatGPT generando nuestra clave secreta y exploramos sus capacidades en la resumen de texto, traducción y ampliación.

Espero que este tutorial te inspire a utilizar grandes modelos de lenguaje para aumentar tu creatividad y productividad. Estoy seguro de que puede ayudarte a generar ideas, obtener nuevos conocimientos, resolver problemas complejos y mejorar tu trabajo diario en muchos niveles. ¡Las posibilidades son vastas! 🤖✨

🍓 Si disfrutas leyendo artículos como este y deseas apoyar mi escritura, considera convertirte en miembro de Zepes! Los miembros de Zepes tienen acceso completo a los artículos de todos los escritores y si usas mi enlace de referencia, estarás apoyando directamente mi escritura.

🍓 Si ya eres miembro y estás interesado en leer mis artículos, puedes suscribirte para recibir notificaciones o seguirme en Zepes. Háganme saber si tienen alguna pregunta o sugerencia.

Recursos adicionales que recomiendo después de este artículo:

Antes de escribir este artículo, terminé dos cursos en línea enfocados en dominar la ingeniería de prompts. El primer curso, ChatGPT Prompt Engineering para Desarrolladores proporcionado por DeepLearning.AI es un gran recurso especialmente si eres un desarrollador y trabajas con las APIs. El segundo curso, Prompt Engineering for ChatGPT ofrecido por Coursera es realmente útil si estás escribiendo prompts en la interfaz de usuario web. La mayoría de los aprendizajes en este artículo provienen de estos dos valiosos recursos, ¡los recomiendo encarecidamente si estás interesado!

Referencias

  1. Google trends para la ingeniería de prompts
  2. Dataset de reseñas de clientes de Disneyland, Licencia: CC0: Dominio Público
  3. Curso de ChatGPT Prompt Engineering para Desarrolladores proporcionado por DeepLearning.AI
  4. Prompt Engineering for ChatGPT ofrecido por Coursera
  5. Foto de cabecera por Léonard Cotte en Unsplash
  6. Todas las demás imágenes son del autor

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Microsoft AI lanza LLMLingua una técnica única de compresión rápida que comprime los mensajes para acelerar la inferencia de Modelos de Lenguaje Grandes (LLMs)

Los Modelos de Lenguaje de Gran Tamaño (LLM, por sus siglas en inglés), debido a su gran capacidad de generalización ...

Inteligencia Artificial

Honda comenzará un servicio de taxis sin conductor en Tokio, según el CEO

La alianza con GM, Cruise tiene como objetivo eventual contar con 500 robotaxis.

Inteligencia Artificial

Ajuste fino de un modelo Llama-2 7B para la generación de código en Python

Hace aproximadamente 2 semanas, el mundo de la IA generativa quedó impactado por el lanzamiento del nuevo modelo de I...

Aprendizaje Automático

Los ejércitos de robots luchan en las épicas batallas en pantalla de Battlecode.

La competencia de programación de larga duración fomenta habilidades y amistades que duran toda la vida.

Inteligencia Artificial

Un Enfoque Integral para Mejorar la Seguridad del IoT con Inteligencia Artificial

Transforma la seguridad de IoT con soluciones impulsadas por IA. Protege tus dispositivos de posibles amenazas para u...