L'algorithme : maintenir un faisceau de largeur k (ex : k=5). À chaque étape, étendre chaque candidat par tous les tokens suivants possibles, noter les séquences résultantes, et garder les k meilleures. Continuer jusqu'à ce que tous les candidats aient généré un token de fin ou atteint une limite de longueur. Retourner la séquence complète la mieux notée. La largeur du faisceau k fait le compromis qualité vs. calcul : k=1 est le décodage glouton, un k plus grand explore plus de chemins mais coûte k fois plus de calcul.
La recherche en faisceau brute favorise les séquences plus courtes (moins de tokens = moins de multiplications de probabilités = probabilité totale plus élevée). Une pénalité de longueur (diviser le score par longueur^α) contrecarre ce biais, encourageant le modèle à générer des sorties complètes et bien formées plutôt que de couper court. Le facteur de pénalité α est un hyperparamètre : α=0 est pas de pénalité, α=1 normalise complètement par la longueur. Les valeurs typiques sont 0.6–1.0.
La recherche en faisceau fonctionne mieux pour les tâches avec une "bonne" réponse (traduction, synthèse, génération structurée) où tu veux la sortie la plus probable. Elle fonctionne mal pour les tâches créatives ou conversationnelles où la diversité compte — la recherche en faisceau tend à produire du texte générique et répétitif parce que les séquences de haute probabilité sont souvent ennuyeuses. Les interfaces LLM modernes utilisent l'échantillonnage (avec température et top-p) pour le chat, et la recherche en faisceau est surtout utilisée en interne pour des tâches spécifiques comme la génération d'appels d'outils.