Prompt Engineering
La ingeniería de prompts diseña las instrucciones, el contexto y los ejemplos que se proporcionan a un modelo de IA para orientar sus resultados sin volver a entrenarlo, desde los LLM hasta la visión artificial.
La ingeniería de prompts consiste en diseñar la entrada que se proporciona a un modelo generativo —incluidas las instrucciones, el contexto, los ejemplos y el formato de salida solicitado— para orientar lo que produce el modelo sin cambiar sus pesos. Despegó con GPT-3: en Language Models are Few-Shot Learners (2020), OpenAI mostró que un modelo de 175.000 millones de parámetros podía realizar tareas nuevas sin actualizar los gradientes cuando el prompt describía la tarea y ofrecía algunos ejemplos, una capacidad que el artículo denomina aprendizaje en contexto. Hoy, el prompt es la principal forma de controlar los modelos de lenguaje grandes (LLM), los modelos de visión y lenguaje (VLM), los generadores de texto a imagen y los modelos de visión guiados por prompts.
Técnicas principales#
- Instrucciones y roles: Un prompt de sistema define el rol, las reglas y el público del modelo; los delimitadores, como los encabezados o las etiquetas de estilo XML, separan las instrucciones de los datos que se procesan.
- Ejemplos con pocos ejemplos: Los pares de entrada y salida resueltos muestran la tarea y el formato de respuesta con más precisión que una descripción. Un prompt sin ejemplos es de cero ejemplos.
- Formato de salida: El prompt especifica el formato, como una lista o JSON con claves determinadas. Cuando el código debe analizar el resultado, las salidas estructuradas aplican un esquema durante la decodificación, en lugar de depender de la solicitud.
- Prompts de cadena de pensamiento: Pedir pasos de razonamiento intermedios antes de la respuesta, lo que aumenta la precisión en problemas de varios pasos.
- Encadenamiento de prompts: Dividir una tarea compleja en varios prompts, cada uno con una tarea acotada, conectados mediante código.
- Contexto recuperado: Insertar documentos o datos encontrados mediante una búsqueda para que el modelo responda a partir de los hechos proporcionados, en lugar de recurrir a la memoria.
Los hechos proporcionados reducen las alucinaciones, y su posición importa: el estudio Lost in the Middle descubrió que los modelos aprovechan mejor la información cuando aparece al principio o al final de una ventana de contexto larga, y peor cuando queda enterrada en medio.
El efecto de los ejemplos se aprecia mejor en un modelo base que nunca se ha ajustado con instrucciones. Este fragmento proporciona a GPT-2, cargado con Transformers de Hugging Face, la misma instrucción con y sin tres ejemplos:
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("gpt2")
model = AutoModelForCausalLM.from_pretrained("gpt2")
# The same instruction, without and with three worked examples that show the answer format
instruction = "Convert each country to its capital city.\n"
prompts = {
"zero-shot": instruction + "Italy:",
"few-shot": instruction + "France: Paris\nJapan: Tokyo\nCanada: Ottawa\nItaly:",
}
for name, prompt in prompts.items():
inputs = tokenizer(prompt, return_tensors="pt")
output = model.generate(**inputs, max_new_tokens=4, do_sample=False, pad_token_id=tokenizer.eos_token_id)
completion = tokenizer.decode(output[0, inputs.input_ids.shape[1] :])
print(f"{name}: {completion!r}")Imprime zero-shot: '\n\nItaly is' y few-shot: ' Rome\nSpain:'. La instrucción por sí sola hizo que GPT-2 escribiera prosa sobre Italia, mientras que los tres ejemplos hicieron que respondiera «Roma» en el formato esperado y continuara el patrón con el siguiente país.
El diseño de prompts es empírico#
Pequeños cambios en la redacción o la disposición pueden alterar mucho los resultados. Melanie Sclar y sus colegas midieron diferencias de precisión de hasta 76 puntos en LLaMA-2-13B debidas únicamente a cambios de formato, como separadores, uso de mayúsculas y espacios; la sensibilidad persistió con modelos más grandes, más ejemplos y ajuste con instrucciones. Por tanto, los prompts se desarrollan como el código: se prueban con un conjunto fijo de entradas cuyas salidas correctas se conocen, se revisan tras los fallos y se versionan, como parte habitual de LLMOps.
El ciclo se puede automatizar. Automatic Prompt Engineer (APE), de Yongchao Zhou y sus colegas, hace que un LLM proponga instrucciones candidatas y conserva las que mejor puntuación obtienen en los ejemplos; sus instrucciones igualaron o superaron a las redactadas por personas en 19 de 24 tareas, según Large Language Models Are Human-Level Prompt Engineers.
Prompts para modelos de visión#
En visión artificial, las indicaciones adoptan varias formas. Los generadores de texto a imagen, como Stable Diffusion, responden a descripciones del sujeto, el estilo, la iluminación y la composición, además de a indicaciones negativas que enumeran lo que deben evitar. Los modelos de segmentación guiados por indicaciones aceptan indicaciones visuales, como puntos y cajas, y SAM 3 de Meta también acepta frases nominales cortas y segmenta cada instancia del concepto indicado; Ultralytics Platform utiliza esta función para la anotación automática mediante indicaciones de texto.
Los detectores de vocabulario abierto convierten los nombres de clase en prompts. Ultralytics YOLOE detecta y segmenta las clases que indique set_classes(), como «carretilla elevadora» o «autobús de dos pisos», comparando las características de las regiones con las incrustaciones de texto de esos nombres, por lo que la redacción cambia directamente lo que encuentra. Como la coincidencia se basa en la apariencia, los prompts que dependen del estado, la posición o la comparación —como «dañado», «el más a la izquierda» o «el que están transportando»— no tienen una referencia visual fiable, y funcionan mejor los nombres cercanos a las categorías cotidianas.
Ingeniería de prompts y términos relacionados#
- Ajuste de prompts: Aprende vectores de prompt continuos mediante descenso de gradiente con datos etiquetados. La ingeniería de prompts redacta el prompt a mano en lenguaje natural.
- Ajuste fino: Cambia los pesos del modelo mediante el entrenamiento con un conjunto de datos etiquetado. La ingeniería de prompts deja el modelo intacto y actúa durante la inferencia.
- Ingeniería de contexto: Abarca todo lo que entra en el contexto del modelo en una aplicación, incluidos los documentos recuperados, los resultados de las herramientas y la memoria. La ingeniería de prompts se ocupa de redactar las instrucciones y los ejemplos.
- Inyección de prompts: Un ataque que oculta instrucciones en el texto o las imágenes que lee el modelo, para que anulen el prompt del desarrollador.










