Constrained Decoding
Aprende cómo la decodificación restringida fuerza un JSON válido, esquemas, gramáticas y salidas de herramientas para que las respuestas de la IA sean más seguras, estructuradas y fáciles de analizar para el software.
La decodificación restringida es una técnica de inferencia que limita un modelo generativo a salidas válidas mientras genera cada token. En lugar de permitir que el modelo elija entre todo su vocabulario, el descodificador elimina las opciones que violarían una regla, como una lista de etiquetas permitidas, una expresión regular, una gramática o un JSON Schema. Esto hace que las respuestas del modelo sean más fáciles y seguras de analizar para el software, especialmente cuando un sistema de inteligencia artificial debe devolver datos estructurados o seleccionar una acción permitida.
Cómo Funciona la Decodificación Restringida#
Un modelo de lenguaje autorregresivo genera una secuencia token a token. En cada paso, asigna puntuaciones llamadas logits a los posibles tokens siguientes y normalmente los convierte en probabilidades utilizando softmax. La decodificación restringida inserta un paso de filtrado adicional:
- Rastrea la porción de la salida ya generada.
- Determina qué tokens siguientes siguen siendo válidos bajo la restricción.
- Enmascara los tokens inválidos para que su probabilidad sea cero.
- Selecciona o toma muestras de los tokens válidos restantes.
- Actualiza el estado de la restricción y repite.
El conjunto válido cambia dinámicamente. Después de generar {"status": ", por ejemplo, un esquema puede permitir únicamente tokens que puedan completar "approved", "rejected" o "review". Los motores que ofrecen vLLM structured outputs pueden hacer cumplir elecciones, expresiones regulares, gramáticas y esquemas JSON, mientras que Outlines JSON generation puede derivar restricciones de esquemas o modelos de Python tipados.
La decodificación de restricciones por grafo describe implementaciones que representan secuencias válidas como rutas a través de un grafo o máquina de estados. Cada token generado mueve el descodificador a otro estado, cuyas aristas salientes definen las siguientes opciones válidas. Este enfoque es útil para gramáticas, relaciones de entidades y otras reglas dependientes del estado.
Conceptos relacionados y diferencias clave#
La decodificación restringida está estrechamente relacionada con varios conceptos de inteligencia artificial, pero no son intercambiables:
- Structured outputs: El resultado deseado, como un objeto con campos obligatorios y tipos de datos. La decodificación restringida es un mecanismo utilizado para producir ese resultado. Servicios que incluyen OpenAI Structured Outputs, Claude structured outputs y Gemini structured outputs exponen controles basados en esquemas.
- Modo JSON: Por lo general, garantiza una sintaxis JSON válida, pero es posible que no aplique claves particulares, tipos o valores permitidos. La decodificación restringida por esquemas apunta a una estructura específica.
- Function calling and tool use: Define cómo un modelo solicita una operación externa. La decodificación restringida puede hacer cumplir nombres de funciones válidos y formas de argumentos, pero la aplicación sigue ejecutando y autorizando la herramienta.
- Prompt engineering: Pide al modelo que siga un formato mediante instrucciones. Influye en el comportamiento, pero no elimina mecánicamente los tokens inválidos.
- Speculative decoding: Acelera la generación proponiendo y verificando tokens. Su objetivo principal es la velocidad, mientras que la decodificación restringida controla la validez.
Los sistemas tipados pueden definir esquemas a través de herramientas como Pydantic JSON Schema en lugar de escribir manualmente cada regla.
Aplicaciones en el mundo real#
Procesamiento de documentos: Un sistema de procesamiento de facturas puede extraer vendor, invoice_number, total y currency de documentos escaneados. La decodificación restringida garantiza que la respuesta tenga las claves y los tipos de datos esperados antes de que entre en el software de contabilidad. Evita cargas útiles mal formadas, aunque no puede garantizar que el total extraído sea fácticamente correcto.
Automatización de seguridad impulsada por visión: Un sistema puede usar Ultralytics YOLO26 para detectar trabajadores y equipos de protección, y luego enviar las observaciones relevantes a un modelo de lenguaje. El descodificador puede restringir la decisión del modelo a no_action, manual_review o send_alert. En un flujo de trabajo de Ultralytics Platform Agents workflow, se pueden conectar modelos de visión, condiciones, modelos de lenguaje y acciones para que solo las imágenes que califiquen avancen a los pasos posteriores.
Ejemplo de Flujo de Trabajo Práctico#
Las predicciones de visión artificial ya están estructuradas en lugar de generarse token por token. El siguiente flujo de trabajo de YOLO Predict mode produce JSON que puede convertirse en entrada para una decisión posterior de un modelo de lenguaje restringido:
from ultralytics import YOLO
# Load the recommended object detection model
model = YOLO("yolo26n.pt")
# Run inference and select the first result
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
# Serialize detections for a downstream constrained decoder
json_output = result.to_json()
print(json_output)Aquí, to_json() realiza una serialización determinista, no una decodificación restringida. El paso restringido ocurriría más tarde si un modelo generativo convirtiera estas detecciones en un informe o acción limitada por esquemas.
Beneficios, Límites y Mejores Prácticas#
La decodificación restringida reduce los errores de análisis, los reintentos, los campos inesperados y los argumentos de herramientas no válidos. Sin embargo, la validez estructural no elimina las LLM hallucinations: una respuesta perfectamente formada aún puede contener hechos incorrectos o una acción inapropiada.
Utiliza esquemas estrechos, descripciones de campos significativas, enumeraciones para opciones cerradas y campos anulables cuando la información pueda no estar disponible. Valida las reglas de negocio después de la generación, gestiona los rechazos y las respuestas truncadas, y prueba el subconjunto de esquemas compatible de cada proveedor. En producción, mide también la sobrecarga de compilación de esquemas, la latencia de decodificación y la precisión semántica en lugar de evaluar únicamente el cumplimiento del formato.









