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

Prácticas recomendadas de ingeniería de prompts con la API de OpenAI

Cómo dar instrucciones claras y eficaces 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, hay formatos de prompt específicos que funcionan especialmente 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 prompts.

A continuación presentamos varios formatos de prompt que consideramos eficaces, pero siéntete libre de explorar otros formatos que puedan ajustarse mejor a tu tarea.

Reglas generales y ejemplos

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

1. Usar el modelo más reciente

Para obtener los mejores resultados, por lo general recomendamos usar los modelos más recientes y capaces. Los modelos más nuevos tienden a ser más fáciles de trabajar con ingeniería de prompts.


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

2. Colocar las instrucciones al inicio del prompt y usar ### o """ para separar la instrucción del contexto

Menos eficaz ❌:

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. Ser lo más específico, descriptivo y detallado posible sobre el contexto, resultado, longitud, formato, estilo deseados, etc.

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

Menos eficaz ❌:

Escribe un poema sobre OpenAI. 

Mejor ✅:

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

4. Expresar el formato de salida deseado mediante ejemplos

Menos eficaz ❌:

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 generales.

Texto: {text}

Muestra y explica: los modelos responden mejor cuando se les muestran requisitos de formato específicos. Esto también facilita analizar mediante programación varias salidas de forma 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 se ajusten al contenido y, finalmente, extrae temas generales abarcadores

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

Texto: {text}

5. Empezar sin ejemplos, luego con pocos ejemplos y, si ninguno funciona, hacer ajuste fino

✅ Sin ejemplos

Extrae palabras clave del texto de abajo.

Texto: {text}

Palabras clave:

✅ Pocos ejemplos: proporciona un par de ejemplos

Extrae palabras clave de los textos correspondientes de abajo.

Texto 1: Stripe proporciona API 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, API, desarrolladores web, sitios web, aplicaciones móviles
##
Texto 2: OpenAI ha entrenado modelos de lenguaje de vanguardia que son muy buenos para comprender y generar texto. Nuestra API proporciona 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:

✅ Ajuste fino: consulta las prácticas recomendadas de ajuste fino aquí.

6. Reducir las descripciones “relleno” e imprecisas

Menos eficaz ❌:

La descripción de este producto debe ser bastante breve, de solo unas pocas oraciones, y no mucho más extensa.

Mejor ✅:

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

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

Menos eficaz ❌:

La siguiente es una conversación entre un agente y un cliente. NO PIDAS NOMBRE DE USUARIO NI CONTRASEÑA. NO REPITAS.

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

Mejor ✅:

La siguiente es una conversación entre un agente y un cliente. El agente intentará diagnosticar el problema y sugerir una solución, mientras se abstiene de hacer preguntas relacionadas con PII. En lugar de pedir PII, como nombre de usuario o contraseña, remite 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 la generación de código: usar “palabras iniciales” para orientar al modelo hacia un patrón particular

Menos eficaz ❌:

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

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

Mejor ✅:

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

import

9. Usar la función Generar cualquier cosa

Los desarrolladores pueden usar la función “Generar cualquier cosa” para describir una tarea o el resultado esperado en lenguaje natural y recibir un prompt personalizado.


Obtén más información sobre cómo usar la función “Generar cualquier cosa”.

Parámetros

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

  1. `model` - Los modelos de mayor rendimiento suelen ser más costosos y pueden tener mayor latencia.

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

  3. `max_completion_tokens` (longitud máxima) - No controla la longitud de la salida, sino que establece un límite estricto para la generación de tokens. Lo ideal es que no alcances este límite con frecuencia, ya que el modelo se detendrá cuando considere que terminó o cuando llegue a una secuencia de detención que hayas definido.

  4. `stop` (secuencias de detención) - Un conjunto de caracteres (tokens) que, al generarse, harán que se detenga la generación de texto.

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

¿Este artículo te fue útil?