La recherche en faisceau (beam search) est une stratégie de décodage utilisée par les modèles de langage pour construire une séquence de texte. Plutôt que de choisir aveuglément le mot le plus probable à chaque étape (comme le ferait une recherche gloutonne), elle garde en mémoire un petit nombre de chemins concurrents — comme un explorateur qui suit simultanément plusieurs sentiers prometteurs avant de décider lequel mène vraiment au sommet.
Comment ça fonctionne
À chaque étape de génération, le modèle conserve les k séquences partielles les plus probables, où k est la largeur du faisceau (beam width). Pour chacune, il évalue les continuations possibles, calcule leurs scores cumulés, puis ne retient que les k meilleures parmi toutes les combinaisons. Le score d'une séquence repose sur la log-probabilité cumulée :
$$\text{score}(y_{1:t}) = \sum_{i=1}^{t} \log P(y_i \mid y_{1:i-1}, x)$$
On utilise le logarithme pour éviter que le produit de nombreuses probabilités (toutes inférieures à 1) ne s'effondre vers zéro.
Comparaison des stratégies
| Stratégie | Chemins explorés | Qualité | Coût |
|---|---|---|---|
| Recherche gloutonne | 1 | Variable | Faible |
| Recherche en faisceau | k (ex. 4–10) | Souvent meilleure | Modéré |
| Échantillonnage | 1 (aléatoire) | Créative, variée | Faible |
Forces et limites
- Avantages : produit des textes plus cohérents pour la traduction automatique, le résumé et la légende d'images.
- Limites : tend à favoriser les phrases courtes et répétitives, manque de diversité, et coûte plus cher qu'un décodage glouton.
En somme, la recherche en faisceau échange un surcoût de calcul contre une meilleure cohérence globale — un compromis entre exploration et exploitation.