El modelo Llama-2-13b-chat-ms destaca por su capacidad para mantener conversaciones fluidas y preciass. Para maximizar su rendimiento, es fundamental aplicar técnicas de ingeniería de prompts que guíen al modelo hacia el resultado deseado. A continuación, se presentan diez estrategias diseñadas para mejorar la calidad de las respuestas y la precisión técnica.
1. Implementación de estructuras semánticas claras
La claridad en la estructura del prompt minimiza la ambigüedad. Utilizar delimitadores y etiquetas de rol ayuda al modelo a identificar qué parte es la instrucción y qué parte es el contenido. Por ejemplo:
### Instrucción:
Resume el siguiente fragmento técnico centrándote en los beneficios de rendimiento.
### Texto:
[Insertar contenido aquí]
### Resumen:
2. Ajuste del parámetro de temperatura
La configuración de generación influye directamente en la predictibilidad del texto. El parámetro temperature controla la aleatoriedad:
- Valores bajos (0.1 - 0.3): Ideales para tareas que requieren consistencia, como la generación de código o la extracción de datos.
- Valores altos (0.7 - 1.0): Recomendados para tareas creativas, redacción de correos o brainstorming, permitiendo mayor diversidad en el léxico.
3. Definición de roles y perfiles técnicos
Asignar una identidad específica al modelo permite ajustar el tono y la profundidad del conocimiento. En lugar de una pregunta genérica, establezca un contexto profesional:
Actúa como un arquitecto de soluciones Senior con experiencia en AWS.
Analiza este esquema de base de datos y señala posibles cuellos de botella.
4. Aprendizaje con pocos ejemplos (Few-Shot Prompting)
Proporcionar ejemplos de entrada y salida es la forma más efectiva de etsandarizar el formato de respuesta. Esto es crucial cuando se requiere que la salida siga un esquema JSON o una estructura de lista específica:
Entrada: Convertir "Hola mundo" a mayúsculas.
Salida: HOLA MUNDO
Entrada: Convertir "Ingeniería de prompts" a mayúsculas.
Salida:
5. Uso de restricciones cuantitativas y cualitativas
Para evitar respuestas excesivamente largas o vagas, incluya límites explícitos en sus instrucciones. Esto ayuda a que el modelo se mantenga enfocado en lo esencial:
Explica el protocolo TCP/IP utilizando un máximo de 100 palabras y evita tecnicismos innecesarios.
6. Diálogo iterativo y refinamiento progresivo
En problemas complejos, es preferible descomponer la tarea en varias etapas mediante una conversación continua. Comience con una visión general y profundice en áreas específicas basándose en las respuestas anteriores del modelo.
7. Configuración de Prompts de Sistema
El "System Prompt" establece las reglas globales que rigen toda la sesión de chat. Es el lugar adecuado para definir el idioma, las prohibiciones de contenido o el estilo de respuesta persistente:
[INST] <<sys>>
Eres un tutor de matemáticas. Siempre respondes con una explicación paso a paso y terminas con un ejercicio de práctica relacionado.
<</sys>>
¿Cómo se resuelve una ecuación de segundo grado? [/INST]
8. Eliminación de la ambigüedad en las consultas
Las preguntas vagas suelen generar respuestas genéricas. Para obtener resultados de alta calidad, sea específico en su solicitud de información, incluyendo el "qué", el "cómo" y el "para qué":
# En lugar de:
¿Cómo programo en Python?
# Intente:
Proporciona una guía de inicio rápido para conectar una aplicación Python a una base de datos PostgreSQL utilizando la librería psycopg2.
9. Inyección de contexto externo (RAG)
Para tareas que requieren datos actualizados o información privada, incluya el contexto directamente en el prompt. Llama-2-13b funciona excepcionalmente bien cuando se le pide que procese información proporcionada en el momento:
Utilizando la siguiente documentación técnica del proyecto, genera una tabla comparativa de las funciones A y B:
[Documentación adjunta]
10. Evaluación y ajuste de tokens de salida
Controlar la longitud de la respuesta mediante el parámetro max_new_tokens en el script de inferencia ayuda a gestionar la latencia y el costo computacional. Si la respuesta se corta prematuramente, aumente este valor o refine el prompt para que sea más conciso.
# Ejemplo de configuración en Python para control de longitud
configuracion_generacion = {
"max_new_tokens": 512,
"do_sample": True,
"top_p": 0.95,
"top_k": 50,
"temperature": 0.8
}