25 puntos por GN⁺ 2023-12-17 | 2 comentarios | Compartir por WhatsApp
  • Una guía que comparte estrategias y técnicas para obtener mejores resultados con modelos de lenguaje a gran escala (también llamados modelos GPT)
  • Los métodos explicados aquí a veces pueden combinarse para lograr un efecto mayor, y se recomienda experimentar para encontrar el enfoque más adecuado
  • Se pueden explorar prompts de ejemplo para aprender qué puede hacer el modelo

Seis estrategias para obtener mejores resultados

Escribir instrucciones claras

  • Como el modelo no puede leer la mente, hay que pedir con claridad lo que se quiere.
  • Incluir detalles para obtener respuestas más relevantes, pedirle al modelo que interprete a un personaje específico o usar delimitadores para indicar con claridad las partes diferenciadas de la entrada.
  • Especificar los pasos necesarios para completar la tarea, proporcionar ejemplos e indicar la longitud deseada de la salida.

Proporcionar texto de referencia

  • Los modelos de lenguaje pueden inventar respuestas falsas con seguridad, especialmente cuando se les piden temas difíciles, citas o URL.
  • Indicarle al modelo que responda usando un texto de referencia, o que responda citando a partir de ese texto.

Dividir tareas complejas en subtareas simples

  • Así como descomponer sistemas complejos en componentes modulares es una buena práctica en ingeniería de software, lo mismo aplica a las tareas que se entregan a un modelo de lenguaje.
  • Las tareas complejas tienen una tasa de error más alta y a menudo pueden redefinirse como un flujo de trabajo de tareas simples.
  • Usar clasificación de intención para identificar las instrucciones más relevantes para la consulta del usuario y, en el caso de aplicaciones conversacionales que requieren diálogos muy largos, resumir o filtrar conversaciones previas.
  • Resumir documentos largos por partes y construir de forma recursiva un resumen general.

Darle al modelo "tiempo para pensar"

  • Si se le pide al modelo una "cadena de pensamiento" antes de redactar la respuesta, en lugar de apresurarse a responder, puede producir respuestas más confiables.
  • Indicarle al modelo que primero formule su propia solución y usar un monólogo interno o una serie de consultas para ocultar el proceso de razonamiento del modelo.
  • Preguntarle al modelo si hay algo que haya pasado por alto en una iteración anterior.

Usar herramientas externas

  • Proporcionar al modelo la salida de otras herramientas para compensar sus debilidades.
  • Implementar recuperación eficiente de conocimiento mediante búsqueda basada en embeddings, usar ejecución de código para realizar cálculos más precisos o llamar APIs externas.
  • Permitir que el modelo tenga acceso a funciones específicas.

Probar sistemáticamente los cambios

  • Mejorar el rendimiento es más fácil cuando puede medirse.
  • Es necesario definir una suite de pruebas integral (o "eval") para verificar si los cambios tienen un impacto positivo en el rendimiento general.
  • Evaluar comparando la salida del modelo con respuestas de referencia.

Opinión de GN⁺

  • Lo más importante: la ingeniería de prompts es un método clave para optimizar el rendimiento de los modelos de lenguaje, ya que permite comprender con precisión la intención del usuario y ofrecer instrucciones concretas para obtener los resultados deseados.
  • Por qué resulta interesante: estas estrategias hacen más efectivo el uso de modelos de lenguaje de inteligencia artificial y permiten lograr un mejor desempeño, especialmente en modelos recientes como GPT-4.
  • Punto destacable: esta guía ofrece ejemplos y estrategias concretas que ayudan a resolver problemas comunes que puede enfrentar un ingeniero de software principiante al usar modelos de lenguaje, y muestra cómo aprovecharlos de forma más efectiva en el trabajo real.

2 comentarios

 
GN⁺ 2023-12-17
Opiniones de Hacker News
  • Discusión sobre el prompt de sistema de ChatGPT

    • Los modelos más recientes de ChatGPT son eficaces para manejar reglas complejas.
    • Según la experiencia, es mejor dar instrucciones más estrictas que usar un prompt de sistema.
    • Las llamadas a funciones y el soporte para datos estructurados son una forma de prompt engineering, y son mucho más potentes que usar solo prompts de sistema.
    • Hay un ejemplo de demostración interesante que compara prompts de sistema con resultados de datos estructurados.
  • Experiencia al pedir una cheeseburger en español

    • El mesero reaccionó de forma extraña a la traducción al español sugerida por ChatGPT y Google Translate.
    • Como había interés en mejorar la traducción, se pidió una versión de español adaptada para mexicoamericanos.
    • Al día siguiente, cuando se hizo el pedido con la frase "Cheeseburger sin pepinillos", el mesero dijo que eso estaba mejor.
  • Discusión sobre las características de los LLM (Large Language Models)

    • Casi no hay distinción entre entrada e instrucción, así que la entrada del usuario se considera parte del prompt.
    • Esto genera la conocida vulnerabilidad de "prompt injection", pero se debe a la característica inherente de que el modelo no distingue entre instrucciones y entrada.
    • La combinación del prompt y la entrada se convierte en la entrada total del programa, lo que dificulta tener certeza sobre su comportamiento.
    • Esta es una razón por la que los LLM todavía no se usan de forma lo bastante confiable para tareas complejas.
  • Dudas sobre aprender a escribir prompts

    • Hay reservas sobre dedicar mucho tiempo a dominar por completo la escritura de prompts, porque las nuevas versiones y distintos LLM responden de manera diferente.
    • A medida que los sistemas se vuelvan más inteligentes, quizá ya no sean necesarios prompts complejos.
  • Comparación entre el prompt engineering y las consultas avanzadas de búsqueda de Google

    • Los chatbots funcionan bien para preguntas básicas, pero mientras más compleja es la información solicitada, más difícil es obtener información precisa.
    • En la búsqueda de Google también es fácil obtener información básica, pero cuando se quieren resultados menos obvios se usan operadores de búsqueda avanzada.
  • Comparación entre los prompts de búsqueda en Google y los prompts para LLM

    • La gente se acostumbró a escribir palabras clave simples en Google para obtener lo que necesita en internet.
    • Tener que escribir ahora oraciones complejas tomará tiempo, y quizá sea una etapa temporal.
  • Fallas en la comunicación entre humanos y límites de los LLM

    • La comunicación entre personas falla con frecuencia, y la mayoría no es particularmente buena comunicándose de forma efectiva.
    • Es difícil esperar que las máquinas sean mejores leyendo la mente y la intención humanas.
    • El prompt engineering debería existir para mejorar la capacidad de comunicación entre personas.
  • Crítica al término "prompt engineering"

    • Se plantea la opinión de que la palabra "engineering" se está usando en exceso.
  • El papel de los LLM al enseñar comunicación clara a los humanos

    • A través de los LLM, los humanos están aprendiendo a comunicarse con mayor claridad.
  • Facilidad de implementar apps de chat basadas en LLM

    • Hay muchas ventajas para implementar apps de chat basadas en LLM incluso sin avances teóricos.
    • Se requiere el esfuerzo de los desarrolladores para obtener resultados mejores que los actuales.