P

Beam Search : Définition et Exemples

Le Beam Search est un algorithme de décodage utilisé par les modèles de langage pour générer du texte en explorant simultanément plusieurs séquences candidates, afin de trouver la sortie la plus probable.

Définition complète

Le Beam Search (recherche en faisceau) est une stratégie de décodage heuristique utilisée lors de la génération de texte par les modèles de langage. Plutôt que de choisir uniquement le mot le plus probable à chaque étape (approche gloutonne), l'algorithme maintient en parallèle plusieurs hypothèses partielles appelées "faisceaux" (beams), ce qui permet d'explorer un espace de solutions plus large.

Le fonctionnement est le suivant : à chaque étape de génération, le modèle calcule les probabilités de tous les tokens possibles pour chaque faisceau actif. Il ne conserve ensuite que les k séquences les plus probables, où k est la "largeur du faisceau" (beam width). Ce paramètre contrôle le compromis entre qualité de la sortie et coût de calcul. Une largeur de 1 équivaut à une recherche gloutonne, tandis qu'une largeur infinie correspondrait à une recherche exhaustive.

En pratique, le Beam Search produit des textes plus cohérents et grammaticalement corrects que le décodage glouton, car il évite les choix localement optimaux qui mènent à des impasses. Cependant, il tend à générer des textes plus génériques et répétitifs que les méthodes d'échantillonnage stochastique comme le top-k ou le top-p sampling, car il favorise systématiquement les séquences à haute probabilité.

Cet algorithme est particulièrement utilisé dans les tâches où la précision prime sur la créativité, comme la traduction automatique, le résumé de texte ou la reconnaissance vocale. Dans le contexte du prompt engineering, comprendre le Beam Search aide à choisir les bons paramètres de génération selon l'objectif visé.

Étymologie

Le terme "Beam Search" provient de l'analogie avec un faisceau lumineux (beam en anglais) qui éclaire simultanément plusieurs chemins possibles dans un arbre de recherche. L'algorithme a été développé dans les années 1970 dans le domaine de l'intelligence artificielle et de la recherche opérationnelle, avant d'être largement adopté en traitement automatique du langage naturel.

Exemples concrets

Traduction automatique où la précision est essentielle

Traduis ce texte juridique en anglais avec une grande fidélité au sens original. Utilise un décodage beam search avec une largeur de 5 pour maximiser la précision.

Génération de résumés factuels à partir d'un document

Résume cet article scientifique en 3 phrases. Privilégie la précision factuelle plutôt que la créativité.

Comparaison des stratégies de décodage via l'API d'un LLM

Génère deux versions de cette réponse : une avec temperature=0 (déterministe, similaire au beam search) et une avec temperature=0.9 (créative). Compare les résultats.

Usage pratique

En prompt engineering, le Beam Search influence indirectement vos résultats lorsque vous réglez les paramètres de génération. Fixer une température basse (proche de 0) produit un comportement similaire au Beam Search : des réponses précises et prévisibles. Utilisez cette approche pour les tâches factuelles (résumés, traductions, extraction de données) et préférez des méthodes d'échantillonnage plus créatives pour le brainstorming ou la rédaction narrative.

Concepts liés

Greedy DecodingTop-k SamplingTop-p Sampling (Nucleus Sampling)Temperature

FAQ

Quelle est la différence entre le Beam Search et le Greedy Search ?
Le Greedy Search choisit uniquement le token le plus probable à chaque étape, tandis que le Beam Search maintient plusieurs candidats en parallèle (selon la largeur du faisceau). Le Beam Search explore ainsi un espace plus large et produit généralement des résultats de meilleure qualité, au prix d'un temps de calcul plus élevé.
Pourquoi le Beam Search génère-t-il parfois des textes répétitifs ?
Le Beam Search favorise les séquences à haute probabilité, ce qui peut conduire à des boucles répétitives, car répéter un segment déjà généré reste statistiquement probable. Pour contrer ce problème, on utilise souvent des pénalités de répétition ou des techniques comme le n-gram blocking qui interdisent la répétition de séquences de mots déjà produites.
Peut-on utiliser le Beam Search avec ChatGPT ou Claude ?
Les API de ChatGPT et Claude ne proposent pas directement un paramètre "beam search". Cependant, en réglant la température à 0, vous obtenez un décodage déterministe qui s'apparente au résultat d'un Beam Search avec une largeur de 1. Pour un contrôle plus fin, certains frameworks open source comme Hugging Face Transformers permettent de configurer explicitement le Beam Search avec la largeur souhaitée.

Voir aussi

Recevez de nouveaux prompts chaque semaine

Rejoignez notre newsletter.