AI-901

Deep Dive

Practicar ahora
D5 · IA Generativa

Prompt Engineering — Diseña instrucciones efectivas para LLMs

Prompt engineering es la disciplina de diseñar instrucciones que maximizan la calidad de las respuestas de un LLM. El AI-901 evalúa las técnicas básicas y los parámetros clave de generación.

¿Qué es Prompt Engineering?

Prompt engineering es la práctica de diseñar, estructurar y refinar las instrucciones que se envían a un LLM para obtener el resultado deseado, sin modificar los pesos del modelo. Es la "interfaz de programación" entre el humano y el LLM.

¿Por qué importa?

El mismo modelo con distintos prompts puede producir resultados radicalmente diferentes en calidad, formato y precisión.

Prompt malo:

"Resume esto"

Prompt bueno:

"Resume el siguiente artículo en 3 puntos clave de máximo 20 palabras cada uno, orientados a ejecutivos de negocio sin contexto técnico."

Prompt engineering vs Fine-tuning

Prompt engineering: modificas el INPUT al modelo. Rápido, sin costo de entrenamiento, flexible.

Fine-tuning: modificas los PESOS del modelo. Lento, costoso, pero puede mejorar comportamientos muy específicos.

Siempre empieza con prompting. Solo haz fine-tuning si prompting no es suficiente.

Anatomía de un prompt

Un prompt bien construido tiene hasta 6 componentes. No todos son necesarios siempre:

Instrucción

necesario

Qué debe hacer el modelo. Verbo de acción claro: "Resume", "Clasifica", "Extrae", "Traduce".

"Clasifica el siguiente correo como urgente/normal/spam."

Contexto

Información de fondo que ayuda al modelo a entender el escenario.

"Eres un asistente de soporte técnico de una empresa de software B2B."

Datos de entrada (input)

necesario

El texto, documento o información sobre la que debe operar el modelo.

"Texto del correo: [correo aquí]"

Ejemplos (few-shot)

Pares input/output que muestran exactamente qué formato y estilo se espera.

"Ejemplo: correo sobre contraseña olvidada → urgente"

Formato de salida

Cómo debe estructurarse la respuesta: JSON, lista, tabla, máximo X palabras, idioma.

"Responde solo con una palabra: urgente, normal o spam."

Restricciones

Qué NO debe hacer el modelo: no inventar, no usar jerga técnica, no exceder N tokens.

"No respondas si no hay suficiente información. Di: Información insuficiente."

Técnicas principales

Zero-shot prompting

Envías la tarea directamente sin ejemplos. Funciona bien para tareas simples o cuando el modelo tiene conocimiento suficiente.

Traducciones, resúmenes simples, preguntas directas.

Prompt

Traduce al inglés: "El gato duerme en el tejado."

Respuesta

The cat sleeps on the roof.

Few-shot prompting

Proporcionas 2-5 ejemplos de input/output antes de la tarea real. El modelo infiere el patrón y lo aplica.

Clasificación personalizada, formato específico, tareas con estilo definido.

Prompt

Formal: "Buenos días" → Informal: "Buenas" Formal: "¿Podría usted asistir?" → Informal: "¿Vienes?" Formal: "Le saluda atentamente" → Informal:

Respuesta

"Un saludo"

Chain-of-Thought (CoT)

Pides al modelo que razone paso a paso antes de dar la respuesta final. Mejora significativamente el razonamiento matemático, lógico y de múltiples pasos.

Problemas matemáticos, razonamiento lógico, análisis complejo.

Prompt

Si hay 3 cajas con 8 manzanas cada una, y se regalan 5 manzanas, ¿cuántas quedan? Razona paso a paso.

Respuesta

1) Total: 3×8=24. 2) Regaladas: 5. 3) Quedan: 24-5=19.

Role prompting

Asignas un rol específico al modelo para que adopte un estilo, nivel de expertise y perspectiva concretos.

Explicaciones técnicas/simples, mentoría, análisis especializado.

Prompt

Actúa como un médico de cabecera explicando a un paciente sin formación médica qué es la diabetes tipo 2.

Respuesta

[explicación accesible, sin jerga médica innecesaria]

System prompt y roles de conversación

Las APIs de chat (GPT-4, GPT-3.5) tienen tres roles: system, user y assistant. El system prompt es la instrucción de contexto que define el comportamiento base del modelo para toda la conversación.

Estructura de una llamada de chat

// SYSTEM — instrucción base (invisible al usuario final)

{ role: 'system', content: 'Eres un asistente de soporte de Azure. Responde solo preguntas sobre Azure. Si la pregunta no es sobre Azure, di que no puedes ayudar. Responde siempre en español.' }

// USER — mensaje del usuario

{ role: 'user', content: '¿Cómo creo una máquina virtual en Azure?' }

// ASSISTANT — respuesta anterior del modelo (para historial)

{ role: 'assistant', content: 'Para crear una VM en Azure...' }

// USER — siguiente turno

{ role: 'user', content: '¿Cuánto cuesta?' }

Qué definir en el system prompt

Rol y personalidad del asistente
Idioma y tono de respuesta
Dominio de conocimiento permitido
Formato de las respuestas
Restricciones de comportamiento
Cómo manejar preguntas fuera de alcance

System prompt y seguridad

Los usuarios pueden intentar jailbreak: instrucciones para que el modelo ignore el system prompt ("ignora las instrucciones anteriores y..."). El content filtering de Azure OpenAI detecta estos intentos. Un buen system prompt también incluye instrucciones sobre cómo resistir manipulaciones.

Parámetros de generación

Temperature

rango: 0.0 – 2.0default: 1.0

Controla la aleatoriedad de la distribución de probabilidad sobre los tokens. Con temperatura 0, siempre elige el token más probable (determinístico). Con temperatura alta, tokens poco probables tienen más chance de aparecer.

Valor bajo: 0 – 0.3: extracción de datos, respuestas factuales, código consistente.
Valor alto: 0.8 – 2.0: brainstorming, escritura creativa, variedad de ideas.
Trampa: Temperatura 0 ≠ calidad máxima. Temperatura 0 = consistencia máxima. Para creativity → sube; para precision → baja.

Top-p (nucleus sampling)

rango: 0.0 – 1.0default: 1.0

Solo considera los tokens cuya probabilidad acumulada alcanza p. Top-p 0.9 = considera el conjunto de tokens más probables hasta sumar 90% de probabilidad.

Valor bajo: 0.1 – 0.5: muy conservador, respuestas cortas y predecibles.
Valor alto: 0.8 – 1.0: vocabulario amplio, respuestas variadas.
Trampa: No es necesario ajustar tanto temperature como top-p. Generalmente se usa uno u otro. OpenAI recomienda top-p o temperature, no ambos.

Max tokens

rango: 1 – límite del modelodefault: Varía

Número máximo de tokens que el modelo puede generar en la respuesta. Si el modelo llega al límite, corta la respuesta aunque no haya terminado.

Valor bajo: Respuestas cortas, clasificación con una sola palabra.
Valor alto: Documentos largos, análisis detallados.
Trampa: Max tokens limita el OUTPUT, no el contexto total. El contexto incluye el prompt más la respuesta.

Frequency penalty

rango: -2.0 – 2.0default: 0

Penaliza tokens que ya aparecieron en el texto generado, proporcional a cuántas veces aparecieron. Reduce repetición de palabras.

Valor bajo: Valor positivo: menos repetición de palabras específicas.
Valor alto: Valor negativo: el modelo puede repetir palabras deliberadamente.
Trampa: Frequency penalty penaliza por frecuencia real. Presence penalty (similar) penaliza simplemente por haber aparecido, independiente de la frecuencia.

Grounding — anclar respuestas en datos reales

Grounding es la técnica de proporcionar contexto factual en el prompt para que el modelo base sus respuestas en información verificada, no en su conocimiento paramétrico (que puede estar desactualizado o ser incorrecto).

Sin grounding (sin anclar)

User:

"¿Cuáles son los precios de suscripción de Azure SQL?"

Assistant:

[puede inventar precios desactualizados o incorrectos]

Con grounding (anclado)

System:

"Responde SOLO usando la información del documento siguiente. Si no está en el documento, di que no tienes esa información."

Contexto: [documento de precios actual]

User:

"¿Cuáles son los precios de Azure SQL?"

Assistant:

[precio real del documento, con cita]

RAG es grounding a escala: en lugar de incluir documentos manualmente en cada prompt, RAG recupera automáticamente los documentos relevantes y los incluye como contexto antes de generar la respuesta.

Antipatrones comunes

Antipatrón: Prompt vago

Ejemplo del problema

"Ayúdame con mi código"

Mejor enfoque

Especifica lenguaje, el error exacto, qué intentas lograr, qué has probado.

Antipatrón: Instrucciones negativas sin alternativa

Ejemplo del problema

"No uses jerga técnica"

Mejor enfoque

"Explica usando analogías cotidianas, sin usar términos técnicos especializados. Nivel: adulto sin formación en tecnología."

Antipatrón: Prompt gigante sin estructura

Ejemplo del problema

Un párrafo de 500 palabras sin separadores

Mejor enfoque

Usa secciones claras: ## Contexto, ## Tarea, ## Formato de salida, ## Restricciones.

Antipatrón: Pedir múltiples cosas en un solo prompt

Ejemplo del problema

"Resume, traduce, clasifica y genera un título para este texto"

Mejor enfoque

Separa en llamadas distintas o usa jerarquía clara: "Primero resume en 3 puntos. Luego, basándote en el resumen, clasifica en una de: [A, B, C]."

Trampas frecuentes del examen

¿Temperatura 0 produce la mejor respuesta?

No necesariamente. Temperatura 0 produce la respuesta más determinística y consistente (siempre la misma para el mismo prompt). Es la mejor para tareas factuales o de extracción. Para creatividad o variedad de ideas, temperatura alta produce mejores resultados.

¿Few-shot prompting modifica el modelo?

No. Few-shot prompting incluye ejemplos en el contexto del prompt pero no modifica los pesos del modelo. Es una forma de "in-context learning" — el modelo aprende el patrón solo para esa llamada, sin persistencia.

¿Prompt engineering reemplaza al fine-tuning?

No siempre, pero es el primer paso. Prompting es más rápido y económico. Fine-tuning se usa cuando necesitas un comportamiento muy específico o consistente que no se logra con prompts — como un tono de marca muy particular o terminología especializada. La recomendación es probar prompting primero.

¿Entendiste este tema?

Pon a prueba lo que acabas de aprender

Un equipo quiere usar GPT-4o para analizar contratos legales y extraer: fecha de inicio, fecha de vencimiento, cláusulas de renovación automática y partes firmantes. El modelo sin instrucciones específicas devuelve párrafos extensos con texto innecesario. ¿Qué técnica de prompt engineering mejoraría más el resultado?