Cómo funciona
Un modelo de lenguaje genera una salida token por token. En cada paso, estima qué tokens pueden venir a continuación. La decodificación greedy elige únicamente el token más probable en ese instante y sigue adelante. El beam search mantiene varias secuencias parciales en paralelo, llamadas hipótesis.
El ancho del haz, también llamado beam width, define cuántas hipótesis siguen siendo consideradas. Con ancho 1, el proceso se acerca a la elección greedy. Con un ancho mayor, el sistema compara más caminos posibles y descarta los que resultan menos prometedores a medida que la secuencia crece.
Cada hipótesis recibe una puntuación acumulada con base en las probabilidades asignadas por el modelo. Como las secuencias largas pueden acumular puntuaciones distintas a las cortas, las implementaciones pueden aplicar normalización por longitud u otros criterios. Estos ajustes cambian la preferencia del algoritmo y deben evaluarse en el contexto de la tarea.
Beam search no es una búsqueda en internet ni una consulta dentro de una base de datos. Es un método de decodificación: una forma de elegir una secuencia entre las posibilidades que el modelo puede generar. No crea conocimiento nuevo y no garantiza que la mejor secuencia según la puntuación sea correcta o útil.
Ejemplo práctico
Imagina un sistema de traducción que necesita traducir “a reunión fue aplazada”. Después de generar “the meeting”, el modelo puede considerar “was postponed”, “is delayed” u otras continuaciones. En lugar de comprometerse de inmediato con una sola, el haz preserva algunas opciones y evalúa cómo se desarrollan en las siguientes palabras.
Una continuación que parece menos probable después de la primera palabra puede formar, al final, una frase más coherente. El algoritmo puede percibirlo porque compara secuencias parciales más largas, no solo la próxima palabra aislada. Aun así, el resultado depende de las puntuaciones y de las reglas usadas para finalizar y comparar hipótesis.
En generación de texto, por ejemplo, un haz amplio puede producir una respuesta más predecible o repetitiva, dependiendo del modelo y de los parámetros. Por eso, aumentar el ancho no significa automáticamente obtener una respuesta mejor. El resultado debe compararse con otros métodos en la misma tarea.
Para qué sirve
Beam search se usa en tareas en las que la salida es una secuencia estructurada, como traducción automática, reconocimiento de voz, subtitulado de imágenes y generación de texto. En esos casos, evaluar algunas alternativas completas puede ser más útil que elegir cada token de forma aislada.
El método es especialmente interesante cuando la calidad depende de relaciones entre partes distantes de la salida. Una palabra puede parecer improbable localmente, pero contribuir a una frase completa más adecuada. Mantener hipótesis ayuda a posponer decisiones irreversibles hasta que haya más contexto generado.
El costo también importa. Cada hipótesis debe expandirse y puntuarse, por lo que haces más grandes pueden consumir más memoria y procesamiento. En aplicaciones interactivas, esa latencia puede ser indeseada. Los desarrolladores pueden comenzar con un ancho pequeño y comparar calidad, tiempo de respuesta y diversidad en ejemplos representativos.
Beam search no sustituye la evaluación humana ni métricas adecuadas. En traducción, por ejemplo, es necesario verificar fidelidad y naturalidad; en código, es necesario ejecutar pruebas. Usa el método cuando la tarea se beneficia de comparar secuencias, y elige el ancho por experimentación, no por una regla universal.