30 puntos por GN⁺ 2024-11-26 | Aún no hay comentarios. | Compartir por WhatsApp

¿Para quién es este documento?

  • Documento para quienes buscan mejorar su capacidad de redactar prompts para LLM post-entrenados
  • Está dirigido a personas que, aunque no tengan mucha base técnica, sí cuentan con experiencia básica usando LLM
  • Primera mitad: ofrece una comprensión intuitiva del post-entrenamiento y de los prompts
  • Segunda mitad: ofrece procedimientos concretos y consejos para redactar prompts

¿Por qué se necesita una guía de ajuste?

  • Redactar prompts para LLM es una tarea empírica que requiere aprendizaje y correcciones continuas
  • Este documento busca compartir de forma sistemática estrategias efectivas para redactar prompts
  • Aunque está centrado en modelos post-entrenados como Gemini, también puede aplicarse a otros modelos

Pre-Training vs. Post-Training

Preentrenamiento (Pre-training)

  • Concepto de preentrenamiento
    • El preentrenamiento es un concepto antiguo en deep learning: consiste en usar primero un dataset mucho más grande (B), similar a un dataset pequeño (A), para aprender características generales, y luego hacer un ajuste fino con el dataset A.
    • Como ejemplo, puede pensarse en un pequeño dataset de mamografías (A) y un gran dataset de imágenes naturales recopiladas de internet (B).
  • Procedimiento del preentrenamiento
    1. Se entrena el modelo con el dataset grande (B) para aprender características generales y útiles.
    2. Después, se ajusta finamente el modelo al dataset A para obtener mejor desempeño en A.
    3. En concreto, primero aprende habilidades básicas en el dataset B, como segmentar objetos o reconocer conceptos sin importar su ubicación dentro de la imagen, y luego, sobre esa base, aprende habilidades específicas del dataset A.
  • Necesidad del preentrenamiento
    • Si no se aprende a partir del dataset B, el dataset A por sí solo puede no tener suficientes datos para aprender habilidades generales, lo que puede reducir el rendimiento.
    • Un modelo que ya aprendió habilidades generales con el dataset B solo necesita aprender adicionalmente habilidades especializadas con los datos limitados del dataset A.
  • Caso de los LLM (modelos de lenguaje grandes)
    • El preentrenamiento de los LLM se realiza ejecutando la “tarea de predecir la siguiente palabra” sobre texto de internet.
    • En este proceso, el modelo aprende implícitamente la estructura del mundo reflejada en la web.
  • Internet y el reflejo del mundo
    • Es importante preguntarse qué clase de mundo refleja internet, y para entenderlo puede usarse la metáfora de un “universo cinematográfico”.

Intuición del “universo cinematográfico” del preentrenamiento

  • El texto y la descripción del mundo
    • Los modelos de lenguaje grandes (LLM) aprenden sobre el mundo a través del texto.
    • El texto no está obligado a reflejar únicamente la “verdad”.
    • Además de la desinformación o las afirmaciones erróneas, hay muchas razones por las que el texto no refleja una única realidad objetiva.
  • Ejemplo: Aragorn y Gondor
    • Que la oración “Aragorn finalmente se convierte en rey de Gondor” sea verdadera o no depende del contexto y de los supuestos previos.
      • Universo cinematográfico de “El Señor de los Anillos”: puede considerarse verdadera.
      • “Marvel Cinematic Universe” o la realidad: Aragorn y Gondor son entidades ficticias, así que no es verdad.
  • Criterio de verdad
    • Que una afirmación sea verdadera o no depende de “qué mundo” se esté dando por supuesto.
    • Este ha sido por mucho tiempo un tema de discusión en filosofía y lingüística; puede consultarse una visión más detallada sobre la verdad en este enlace.
    • En términos prácticos, puede simplificarse como la idea de que “si una afirmación es verdadera o no depende del universo cinematográfico que toma como trasfondo”.
  • Datos de preentrenamiento y universos cinematográficos
    • El corpus de preentrenamiento se parece a la unión de diversos universos cinematográficos creados por la cultura humana.
    • Más precisamente, es el conjunto de culturas que han contribuido en gran medida a las fuentes de datos de preentrenamiento (por ejemplo, la web).

Importante
El corpus de preentrenamiento puede considerarse como la unión de los universos cinematográficos creados por la cultura humana, y refleja especialmente las culturas que han contribuido de forma importante a fuentes de datos como la web.

  • Comprensión del contexto por parte del modelo
    • Un LLM infiere en qué “universo” está basándose en el contexto dado (es decir, el prefijo).
    • Después actúa según las reglas, convenciones y hechos de ese universo.
    • Un prompt con señales de contexto fuertes facilita que el modelo entienda el “guion”.
      • Ejemplo: el inicio de una entrada de blog sobre Nueva York (“La jungla de concreto donde se hacen realidad los sueños no es solo una letra de canción, sino la verdad eléctrica de Nueva York...”)
    • En cambio, un prompt con poco contexto, como “Hi, how are you?”, dificulta que el modelo determine en qué universo está.
      • Expresiones generales como esa aparecen en muchos corpus distintos, así que dejan abiertas múltiples posibilidades.
  • Papel del post-entrenamiento (Post-training)
    • Cuando falta contexto, el post-entrenamiento cumple un papel importante para que el modelo pueda generar salidas más concretas y consistentes.

Post-entrenamiento (Post-training)

  • Papel del post-entrenamiento
    • El post-entrenamiento proporciona pautas sobre el “universo por defecto” en el que opera el LLM.
    • En lugar de inferir el universo solo a partir del prompt, el post-entrenamiento fija ciertos supuestos o establece restricciones para resolver ambigüedades de forma consistente.
    • Esto es necesario para aumentar la utilidad del modelo; por ejemplo, sirve para enseñarle a un LLM que, por defecto, “siga las instrucciones del usuario”.
  • Importancia del post-entrenamiento
    • Sin post-entrenamiento, una instrucción como “escribe un informe sobre George Washington” podría fallar y limitarse a generar texto que continúe esa instrucción.
    • El post-entrenamiento puede ayudar a alinear el comportamiento básico del modelo con las normas sociales.
    • Con ello, contribuye a que el modelo sea una herramienta más segura y productiva.

Importante
El post-entrenamiento enseña al modelo a desempeñar de manera consistente funciones básicas en diversos entornos de despliegue.

  • Qué puede aprenderse en el post-entrenamiento
    • Lo que el modelo puede aprender durante el post-entrenamiento abarca desde aspectos prácticos y concretos hasta aspectos subjetivos y personales.
  • Contenidos principales que pueden enseñarse en el post-entrenamiento
    • Cómo seguir un formato específico
      • Ejemplo: en Gemma's Formatter, se asume que el modelo siempre opera en un universo cinematográfico donde conversa con el usuario.
      • En este escenario, el modelo actúa según las instrucciones del sistema y la conversación siempre comienza con el turno de un usuario humano.
    • Cómo seguir las instrucciones del usuario
      • Ejemplo: ante una solicitud como “escribe un ensayo sobre perros”, debe escribir realmente el ensayo.
      • Mediante el post-entrenamiento, puede aprenderse a no ignorar la solicitud del usuario ni responder de otra manera.
    • Alineación con el “mundo real”
      • Se utiliza para ajustar el universo cinematográfico por defecto del modelo al “mundo real”, que es el que más probablemente interese a los usuarios.
      • Ejemplo: ante la pregunta “¿Dónde nació la celebridad $CELEBRITY?”, se asume por defecto información del mundo real, no de un universo de fan fiction.
    • Refuerzo de la seguridad
      • Internet contiene diversos estándares normativos, y parte del contenido puede no ser apropiado en entornos de distribución comercial.
      • El post-entrenamiento ayuda a ajustar el modelo a determinadas políticas de seguridad y a establecer criterios normativos sobre el contenido generado.
      • Esto hace que el modelo incorpore los supuestos normativos indispensables cuando genera texto complejo.
  • Conclusión
    • El post-entrenamiento ayuda a que el modelo se comporte de forma consistente y conforme a las expectativas en distintos entornos de uso.
    • Es un proceso esencial para maximizar la utilidad y la seguridad del modelo.

Recolección de datos de postentrenamiento

  • Resumen clave
    • Durante el postentrenamiento, el LLM se entrena y evalúa con base en datos creados por evaluadores humanos.
    • Durante el postentrenamiento, el modelo toma como modelo a seguir a los evaluadores humanos que generaron los datos, actuando como un "actor digital de roles".
  • Proceso de recolección de datos de postentrenamiento
    • Creación de un conjunto de datos con ejemplos de entrada diversos
      • Crear una colección de prompts que describan tareas que el LLM puede realizar (por ejemplo, reestructurar datos en JSON, ayudar con la planificación de una boda, etc.).
      • Estos datos pueden generarse con base en la intuición de los desarrolladores o en ideas propuestas por evaluadores humanos.
    • Contratación de evaluadores humanos
      • Rol de los evaluadores: escribir la "respuesta correcta" para ejemplos de entrada o clasificar por orden las respuestas del modelo.
      • Según la etapa de entrenamiento del modelo, los evaluadores generan distintos tipos de datos.
    • Redacción de lineamientos de evaluación
      • Proporcionar ejemplos e instrucciones detalladas para que los evaluadores comprendan bien la tarea.
    • Recolección de datos y ejecución del postentrenamiento
      • Usar los datos recopilados en el modelo preentrenado para llevar a cabo el postentrenamiento.
    • Despliegue del modelo
      • Una vez finalizado el postentrenamiento, desplegar el modelo en entornos reales.
  • Impacto del postentrenamiento
    • Una de las razones por las que los LLM pueden comportarse como humanos es que aprendieron a partir de conjuntos de datos de comportamiento humano recopilados cuidadosamente.
    • El preentrenamiento construye las capacidades centrales del modelo, mientras que el postentrenamiento ajusta la dirección de su comportamiento mediante demostraciones humanas.

Importante
Una de las razones por las que los LLM pueden comportarse como humanos es que aprendieron a partir de datos de comportamiento humano recopilados cuidadosamente.

  • Retos de la recolección de datos de postentrenamiento
    • La monotonía de las tareas repetitivas
      • Las tareas de evaluación pueden ser aburridas. Por ejemplo, para un excelente programador de Python puede resultar más interesante avanzar en sus propios proyectos.
      • Un poeta preferirá escribir sus propios poemas y es muy probable que no le interese evaluar poemas generados por IA.
      • Los evaluadores pueden experimentar desmotivación por la repetitividad del trabajo, el poco control sobre la propiedad de los datos y la falta de significado social de la tarea.
    • La dificultad de definir una respuesta "buena"
      • Definir qué es una respuesta "buena" para una tarea es complejo.
      • Es difícil aclarar criterios para tareas que reflejan la complejidad de la buena escritura, la factualidad y la realidad social.
      • Al igual que en los sistemas legales se resuelven casos límite mediante precedentes, estos problemas dependen en gran medida de la subjetividad y del contexto.
    • Falta de comprensión de la tarea por parte del evaluador
      • Existe la posibilidad de que el evaluador no entienda correctamente la tarea.
      • Esto ocurre cuando se contrata a evaluadores con un nivel técnico inadecuado o cuando no reconocen sus propias limitaciones.
      • Ejemplo: redactar una respuesta incorrecta a una pregunta de biología basándose en conocimientos universitarios desactualizados.
    • Errores humanos
      • Los humanos cometen errores. Un profesor puede poner en un examen una pregunta con una respuesta incorrecta, y un médico cansado tiene más probabilidades de hacer un diagnóstico equivocado.
      • Como la calidad de los datos de evaluación humana no es perfecta, los sistemas de IA también pueden terminar aprendiendo datos incorrectos con frecuencia.
  • Conclusión
    • La recolección de datos de postentrenamiento cumple un papel importante en la calidad del modelo, pero requiere mucho esfuerzo para garantizar la calidad de los datos.
    • Es importante asegurar la adecuación entre el evaluador y la tarea para obtener datos precisos y confiables.

Redacción de prompts

  • Resumen clave
    • Al redactar instrucciones del sistema y prompts, deben escribirse teniendo en mente la "mente colectiva" del grupo de evaluadores del equipo de postentrenamiento.
    • Si se redactan instrucciones que los evaluadores puedan entender y seguir fielmente, es más probable que el modelo también las siga mejor.

Importante
Las instrucciones del sistema y los prompts deben redactarse de forma que reflejen la mente colectiva del grupo de evaluadores del equipo de postentrenamiento.

Consideraciones clave al redactar prompts

  • Asegúrate de que las instrucciones sean claras, concisas y explícitas

    • Ejemplo: si se trata de una instrucción para generar código Python, un programador de Python competente elegido al azar debería poder leerla y entenderla de inmediato.
      • Malo: "Write a Python function that computes prime numbers."
      • Bueno: "Write a Python function that computes prime numbers from 1 to 100. Include pytype annotations for the function and use 2-space indentation."
  • Verifica si las instrucciones son contradictorias o difíciles de seguir

    • Deben redactarse de forma simple e intuitiva para que una persona pueda seguirlas fielmente incluso si está cansada o tiene hambre.
      • Malo: "Don’t write a story about a mean dog, unless it's friendly, and also sad..."
      • Bueno: "Write a short story (200-300 words) about a loyal golden retriever named Buddy..."
  • ¿Hay demasiadas instrucciones?

    • Al modelo le puede costar seguir todas las instrucciones si son largas y complejas. Cuando sea posible, conviene dividir la tarea en subtareas.
      • Malo: "Read each article and, for each key idea, rate it on a scale of 1-10..."
      • Bueno: Dividir en subtareas: 1) generar una lista de ideas principales, 2) evaluar cada idea, 3) traducir las ideas principales, 4) crear publicaciones para redes sociales.
  • Usa instrucciones positivas

    • Es más efectivo especificar "qué debe hacerse" que indicar "qué no debe hacerse".
      • Malo: "Don’t ever end your response with a full stop."
      • Bueno: "Your response should always end with an exclamation mark or a question mark."
  • Instrucciones como "recordatorios" para el modelo

    • Consideran ejemplos de entrada variados y proporcionan orientación adicional para casos que no sean claros.
    • Ejemplo: explicar con claridad los casos límite en una sección de "consideraciones adicionales" o "suposiciones adicionales".
  • Los prompts son el nuevo hiperparámetro

    • La calidad del prompt tiene un gran impacto en el rendimiento del sistema. Encontrar el prompt "óptimo" es imposible, pero es importante experimentar para encontrar prompts gradualmente mejores.
  • Instrucciones para responder "no lo sé"

    • Proporcionar lineamientos explícitos para casos de "desconocido" o "ambiguo" ayuda a que el modelo marque claramente la ambigüedad en vez de dar una respuesta incorrecta.
  • Relación estrecha entre prompt y checkpoint

    • Los prompts están profundamente ligados a un checkpoint específico del modelo. En una nueva versión del modelo, el mismo prompt puede comportarse de forma distinta.

Guía básica de estilo para prompts

  • Considera usar Markdown : guarda cada prompt en un archivo Markdown independiente y organiza bien títulos y secciones para mejorar la legibilidad.
  • Considera a otros usuarios : los prompts deben escribirse no solo para el modelo, sino también para quienes los mantendrán.
  • Mantén la simplicidad : si un prompt es largo o complejo, la carga de mantenimiento puede aumentar cuando cambie el modelo. Debe redactarse de forma breve y clara.
  • Prefiere instrucciones zero-shot : las instrucciones zero-shot son simples y fáciles de depurar y entender. Usa few-shot solo como último recurso.
  • Integración de ejemplos : conviene incluir ejemplos de manera natural dentro de las instrucciones, con fórmulas como "For example".
    • Ejemplo: "Always start your response to the user with something passive aggressive. For example, start with something like 'Oh that’s what you want? ...'"

Procedimiento iterativo de mejora de nuevas instrucciones del sistema

  • El desarrollo de prompts es un proceso iterativo
    • Escribir prompts es similar al proceso de entrenar un modelo usando un dataset de validación.
    • La clave es redactar oraciones claras y concisas, y es eficaz abordar por separado las etapas de generación y edición.
  • Es posible empezar sin un dataset de validación
    • Al inicio, conviene construir rápidamente un MVP (Minimum Viable Product) simple, y después hacer seguimiento del rendimiento mediante evaluaciones cuantitativas.
    • Es importante diseñar el producto para que funcione de forma estable incluso ante comportamientos inesperados del modelo.

Procedimiento iterativo para instrucciones del sistema

  1. Preparar ejemplos de entrada variados
  • Reunir entre 10 y 50 ejemplos de entrada diversos que representen bien el problema.
  • Formarse una intuición sobre el comportamiento de salida deseado.
  1. Empezar con instrucciones simples
  • Redactar instrucciones lo más simples y claras posible.
  • Usar primero un modelo de bajo costo (por ejemplo, Gemini Flash 8B).
  1. Ejecutar con el primer ejemplo de entrada
  • Probar que el modelo genere una respuesta adecuada.
  1. Sobreajustar al primer ejemplo
  • Agregar “recordatorios” a las instrucciones para corregir defectos específicos detectados en la respuesta del modelo.
  • Ejemplo: si solo se deben extraer nombres de personas pero también se incluyen nombres de edificios, mencionarlo explícitamente en las instrucciones.
  1. Pasar al siguiente ejemplo
  • Probar si las instrucciones también son efectivas con otros ejemplos de entrada.
  • Si hay instrucciones demasiado ajustadas al primer ejemplo, modificarlas para que sean más generales.
  1. Depurar las instrucciones
  • Una vez que se tengan instrucciones que funcionen con todos los ejemplos de entrada, pulir la redacción y corregir errores ortográficos.
  • Verificar que las instrucciones depuradas sigan funcionando con todos los ejemplos.
  1. Posibilidad de automatización
  • En el futuro, herramientas de metaoptimización podrían automatizar la generación de instrucciones.
  • Pero el análisis cualitativo y el trabajo de aseguramiento de calidad seguirán siendo necesarios.
    > Importante
    > El análisis cualitativo es esencial en el desarrollo de modelos y no se puede evitar.

Cuándo son útiles los LLM

  1. Problemas fáciles de verificar
  2. Descomponer el problema en subproblemas
    • En lugar de usar un prompt complejo, dividir el problema en subproblemas bien definidos y construir la cadena de razonamiento del modelo.
  3. Un enfoque con visión de futuro
    • Considerar que la capacidad de inferencia podría aumentar gracias a innovaciones en hardware y modelos de negocio.
    • Diseñar funciones con base en el valor, no en el costo actual.
  4. Reducción del costo de inferencia
    • Se espera que el costo de inferencia disminuya gradualmente, por lo que se requiere tomar decisiones centradas en el “valor”.
    • Para implementar funciones de mayor valor, considerar un despliegue gradual teniendo en cuenta las limitaciones económicas actuales.
      > Proyección
      > Es posible que el costo de inferencia de los LLM muestre una caída de precios comparable a la ley de Moore.

Material adicional

Aún no hay comentarios.

Aún no hay comentarios.