OpenAI
Esta página se tradujo automáticamente. Ver el artículo original en inglés.

Mejores prácticas para la ingeniería de prompts con la API de OpenAI

Cómo dar instrucciones claras y efectivas a los modelos de OpenAI

Última actualización: 2 days ago

Cómo funciona la ingeniería de prompts

Debido a la forma en que se entrenan los modelos de OpenAI, existen formatos de prompt específicos que funcionan particularmente bien y generan resultados del modelo más útiles.

La guía oficial de ingeniería de prompts de OpenAI suele ser el mejor punto de partida para obtener consejos sobre cómo crear prompts.

A continuación presentamos varios formatos de prompt que hemos visto que funcionan bien, pero siéntete libre de explorar otros formatos que podrían ajustarse mejor a tu tarea.

Reglas prácticas y ejemplos

Nota: “{text input here}” es un marcador de posición para el texto/contexto real

1. Usa el modelo más reciente

Para obtener mejores resultados, por lo general recomendamos usar los modelos más recientes y con mayor capacidad. Los modelos más nuevos tienden a ser más fáciles de ajustar mediante prompts.


Nota: Hay algunas diferencias a considerar al crear prompts para un modelo de razonamiento frente a un modelo GPT. Más detalles aquí.

2. Coloca las instrucciones al inicio del prompt y usa ### o """ para separar la instrucción y el contexto

Menos efectivo ❌:

Resume el texto de abajo como una lista con viñetas de los puntos más importantes.

{text input here}

Mejor ✅:

Resume el texto de abajo como una lista con viñetas de los puntos más importantes.

Texto: """
{text input here}
"""

3. Sé específico, descriptivo y tan detallado como sea posible sobre el contexto, el resultado, la longitud, el formato, el estilo, etc.

Sé específico sobre el contexto, el resultado, la longitud, el formato, el estilo, etc.

Menos efectivo ❌:

Escribe un poema sobre OpenAI. 

Mejor ✅:

Escribe un poema corto e inspirador sobre OpenAI, enfocándote en el reciente lanzamiento del producto DALL-E (DALL-E es un modelo de ML de texto a imagen), en el estilo de {famous poet}

4. Expresa el formato de salida deseado mediante ejemplos

Menos efectivo ❌:

Extrae las entidades mencionadas en el texto de abajo. Extrae los siguientes 4 tipos de entidades: nombres de empresas, nombres de personas, temas específicos y temas.

Texto: {text}

Muestra y explica: los modelos responden mejor cuando se les muestran requisitos de formato específicos. Esto también facilita extraer y analizar de forma programática múltiples salidas de manera confiable.

Mejor ✅:

Extrae las entidades importantes mencionadas en el texto de abajo. Primero extrae todos los nombres de empresas, luego extrae todos los nombres de personas, después extrae temas específicos que encajen con el contenido y, por último, extrae temas generales y globales

Formato deseado:
Nombres de empresas: <lista_separada_por_comas_de_nombres_de_empresas>
Nombres de personas: -||-
Temas específicos: -||-
Temas generales: -||-

Texto: {text}

5. Empieza con zero-shot, luego few-shot; si ninguno funciona, entonces afina (fine-tune)

✅ Zero-shot

Extrae palabras clave del texto de abajo.

Texto: {text}

Palabras clave:

✅ Few-shot: proporciona un par de ejemplos

Extrae palabras clave de los textos correspondientes a continuación.

Texto 1: Stripe proporciona APIs que los desarrolladores web pueden usar para integrar el procesamiento de pagos en sus sitios web y aplicaciones móviles.
Palabras clave 1: Stripe, procesamiento de pagos, APIs, desarrolladores web, sitios web, aplicaciones móviles
##
Texto 2: OpenAI ha entrenado modelos de lenguaje de última generación que son muy buenos para comprender y generar texto. Nuestra API brinda acceso a estos modelos y puede usarse para resolver prácticamente cualquier tarea que implique procesar lenguaje.
Palabras clave 2: OpenAI, modelos de lenguaje, procesamiento de texto, API.
##
Texto 3: {text}
Palabras clave 3:

✅ Fine-tune: consulta las mejores prácticas de fine-tuning aquí.

6. Reduce las descripciones “relleno” e imprecisas

Menos efectivo ❌:

La descripción de este producto debería ser bastante corta, solo unas cuantas oraciones y no mucho más.

Mejor ✅:

Usa un párrafo de 3 a 5 oraciones para describir este producto.

7. En lugar de solo decir qué no hacer, di qué hacer en su lugar

Menos efectivo ❌:

A continuación hay una conversación entre un Agente y un Cliente. NO PIDAS NOMBRE DE USUARIO NI CONTRASEÑA. NO LO REPITAS.

Cliente: No puedo iniciar sesión en mi cuenta.
Agente:

Mejor ✅:

A continuación hay una conversación entre un Agente y un Cliente. El agente intentará diagnosticar el problema y sugerir una solución, sin hacer ninguna pregunta relacionada con PII. En lugar de pedir PII, como nombre de usuario o contraseña, dirige al usuario al artículo de ayuda www.samplewebsite.com/help/faq

Cliente: No puedo iniciar sesión en mi cuenta.
Agente:

8. Específico para generación de código: usa “palabras guía” para orientar al modelo hacia un patrón particular

Menos efectivo ❌:

# Escribe una función simple de python que
# 1. Me pida un número en millas
# 2. Convierta millas a kilómetros

En el ejemplo de código de abajo, agregar “import” le da una pista al modelo de que debe empezar a escribir en Python. (Del mismo modo, “SELECT” es una buena pista para el inicio de una sentencia SQL.)

Mejor ✅:

# Escribe una función simple de python que
# 1. Me pida un número en millas
# 2. Convierta millas a kilómetros

import

9. Usa la función Generate Anything

Los desarrolladores pueden usar la función 'Generate Anything' para describir una tarea o el resultado esperado en lenguaje natural y recibir un prompt adaptado.

Obtén más información sobre cómo usar la función 'Generate Anything'.

Parámetros

En general, vemos que model y temperature son los parámetros más usados para modificar la salida del modelo.

  1. model - Los modelos con mayor rendimiento por lo general son más caros y pueden tener mayor latencia.

  2. temperature - Una medida de con qué frecuencia el modelo genera un token menos probable. Cuanto mayor sea temperature, más aleatoria (y por lo general más creativa) será la salida. Sin embargo, esto no es lo mismo que la “veracidad”. Para la mayoría de los casos de uso factuales, como extracción de datos y preguntas y respuestas veraces, lo mejor es una temperature de 0.

  3. max_completion_tokens (longitud máxima) - No controla la longitud de la salida, sino un límite rígido de corte para la generación de tokens. Lo ideal es que no llegues a este límite con frecuencia, ya que tu modelo se detendrá cuando “piense” que terminó o cuando llegue a una secuencia de parada que hayas definido.

  4. stop (secuencias de parada) - Un conjunto de caracteres (tokens) que, cuando se generan, harán que se detenga la generación de texto.

Para ver descripciones de otros parámetros, consulta la referencia de la API.

¿Este artículo te fue útil?